EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Channel access dynamic array subscription update element count
From: Michael Abbott <[email protected]>
To: Andrew Johnson <[email protected]>
Cc: [email protected], [email protected]
Date: Mon, 5 Oct 2009 17:56:02 +0100 (BST)
On Mon, 5 Oct 2009, Andrew Johnson wrote:
> Jeff,
> 
> While you're responding on this subject could you definitively answer 
> Michael's original questions, which were:
> 
> > Firstly, is it possible for the element count of a channel to change 
> > while the channel is connected?  I'm thinking in particular of the 
> > case when using camonitor (well, ok, I mean ca_create_subscription()) 
> > to monitor a waveform PV.  Each event_handler callback is informed of 
> > the dbr count -- but as far as I can tell, it's always the maximum 
> > waveform size, even if NORD is smaller.
> 
> > Is the fact that the update size doesn't change, ca_element_count() 
> > always reports the NELM, and subscribing with zero count gets the full 
> > wavelength, is this restriction fundamental to channel access, a 
> > limitation of the channel access server, or just something that hasn't 
> > been implemented in the waveform record?  This question becomes more 
> > interesting as we use waveform records for large images!

Let me try and understand Jeff's remarks to possibly make it easier for 
him to interpret my question.

By the options I listed:


1. Fundamental to channel access

I think Jeff is saying that current implementations of channel access do 
not expect the update size to change, but that there is nothing in the 
protocol over the wire to preclude such a change, merely the risk of 
breaking existing clients.

I like Jeff's suggestion of interpreting a zero size request as "give me 
what you've got, whatever size it is, and always send me the current 
size."  No doubt there are client applications that might have lazily 
allocated a fixed rx buffer but still specified zero size, and they'll 
break, but I suspect that's not so painful.  Point the finger at them, 
laugh, and fix them or tell them to set the CA_FIXED_SIZE option on their 
new servers (I'm going to guess that the CA wire protocol has no provision 
for such extensible settings, or does it?).

However, are there implementations of libca which are lazy in this way?  
Hopefully not!


2. A limitation of channel access server

I think that Jeff is saying precisely this, dynamic channel size doesn't 
exist because it's never been implemented in any channel access server.


3. Not implemented in Waveform record

Well clearly not, there's no mechanism there!  However, the Waveform 
record can do two things.  Firstly, send updates on changes to NORD!  
It's a bit remarkable that this doesn't happen already;  and secondly, of 
course, use dynamic channel size as soon as the CA server layer provides 
it.

Replies:
RE: Channel access dynamic array subscription update element count Jeff Hill
References:
Channel access and ca_element_count michael.abbott
RE: Channel access and ca_element_count Jeff Hill
RE: Channel access dynamic array subscription update element count Jeff Hill
Re: Channel access dynamic array subscription update element count Andrew Johnson

Navigate by Date:
Prev: Re: Channel access dynamic array subscription update element count Andrew Johnson
Next: RE: state notation code flags Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Channel access dynamic array subscription update element count Andrew Johnson
Next: RE: Channel access dynamic array subscription update element count Jeff Hill
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·