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  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017 
<== Date ==> <== Thread ==>

Subject: RE: Channel access dynamic array subscription update element count
From: "Jeff Hill" <johill@lanl.gov>
To: "'Michael Abbott'" <michael.abbott@diamond.ac.uk>, "'Andrew Johnson'" <anj@aps.anl.gov>
Cc: tech-talk@aps.anl.gov
Date: Mon, 5 Oct 2009 16:45:33 -0600
> 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.

yes - clients, and much less likely (I will have to look at the code) old
versions of libca.

> (I'm going to guess that the CA wire protocol has no provision
> for such extensible settings, or does it?).

The protocol has a version number in it and different behaviors can be
assigned depending on the client knowing the server's version (and
visa-versa), but of course code size and maintenance headaches grow.

> 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.

correct

> 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.

Yes, for variable dynamic length updates to work the ca server would need an
interface for efficiently querying the current number of elements from the
database. It learns this currently from dbNameToAddr.

Jeff
______________________________________________________
Jeffrey O. Hill           Email        johill@lanl.gov
LANL MS H820              Voice        505 665 1831
Los Alamos NM 87545 USA   FAX          505 665 5107

Message content: TSPA


> -----Original Message-----
> From: Michael Abbott [mailto:michael.abbott@diamond.ac.uk]
> Sent: Monday, October 05, 2009 10:56 AM
> To: Andrew Johnson
> Cc: Jeff Hill; michael.abbott@diamond.ac.uk; tech-talk@aps.anl.gov
> Subject: Re: Channel access dynamic array subscription update element
> count
> 
> 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.



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
Re: Channel access dynamic array subscription update element count Michael Abbott

Navigate by Date:
Prev: RE: Channel access dynamic array subscription update element count Jeff Hill
Next: Re: state notation code flags Benjamin Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017 
Navigate by Thread:
Prev: Re: Channel access dynamic array subscription update element count Michael Abbott
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 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·