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  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: libCAS: variable size array
From: Michael Ritzert <[email protected]>
To: [email protected]
Date: Wed, 21 Sep 2016 15:38:38 +0200
Hi all,

I have a (EPICS 3.14) CAS application that provides a variable-sized array of
UInt8.  Unfortunately, I fail to tell the CA client that the array size has
changed. All clients are stuck with the array size they receive when they
first connect.

On the server side, I have:
casEventMask select(getCAS()->valueEventMask() | getCAS()->logEventMask());
select |= getCAS()->propertyEventMask();
m_value->dump();
postEvent(select, *m_value);

The dump correctly reflects the new size:
----------dump This=0x89d3b8---------
 dimension=1 app-type=16 Atomic
 prim-type=aitUint8(aitEnumUint8)
 20 values=<
0x76 0x45 0x65 0x52 0x78 0x50 0x4c 0x39 0x33 0x31 0x74 0x71 0x37 0x37 0x59 0x34 0x65 0x55 0x71 0x58 >
 ref-count=2
 total-bytes=336, data-size=256, element-count=256
 destructor=NULL
 (0) 0x8a0b90 first=0 count=256
 LocalDataFormat NetworkDataFormat
-------------------------------------
----------dump This=0x89d400---------
 dimension=1 app-type=16 Atomic
 prim-type=aitUint8(aitEnumUint8)
 20 values=<
0x47 0x49 0x46 0x38 0x39 0x61 0x29 0x00 0x19 0x00 0xf7 0x00 0x00 0x00 0x00 0x00 0x00 0xe7 0x00 0x42 >
 ref-count=2
 total-bytes=1280, data-size=1199, element-count=1199
 destructor=NULL
 (0) 0x8a0b98 first=0 count=1199
 LocalDataFormat NetworkDataFormat
-------------------------------------

and clients always receive the correct length for their initial values.

From debug outputs I know that PV::maxBound(unsigned) is not called when
the length changes.

Is it possible to post an event to have a client (I tried camonitor and CSS)
update the stored length information?

Thanks,
Michael
-- 
Dr. Michael Ritzert                   Tel: +49 621 181 2883
Schaltungstechnik und Simulation      Fax: +49 621 181 2734
Technische Informatik, Uni Heidelberg [email protected]
68131 Mannheim, Germany               http://sus.ziti.uni-heidelberg.de

Replies:
Re: libCAS: variable size array Michael Davidsaver

Navigate by Date:
Prev: module for Keithley 6485 PA-meter Paramveer Jain
Next: Re: module for Keithley 6485 PA-meter Johnson, Andrew N.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: module for Keithley 6485 PA-meter Mark Rivers
Next: Re: libCAS: variable size array Michael Davidsaver
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 15 Nov 2016 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·