Hi Anton,
Thanks for taking some time to report this issue.
I will emulate the typical computer support personal and respond to a question with an escalating number of questions
:-).
Ø
The Array has zero length (NORD=0) after boot. Then I get garbage as first
Ø
character while the number of elements is 128 in my case and this number
Ø
was requested. When specifying 0 at request I get
args.count=0 as it should
Ø
with 3.14.12.
o Is this issue repeatable when testing with a different client side code other than
caget? If so, which ca client code is in use?
o Is this issue repeatable when testing with multiple record types and or multiple device support modules?
o You mention that the issue is related to NORD being zero just after booting the IOC. Does the problem persist
or does it happen only once; if it doesn’t persist then what is the action that causes an improvement? For example, I could imagine some different scenarios where the behavior might improve the second time that a CA client attaches, in a particular client’s
second subscription update, the first time that the record processes, or the second time that the record processes.
o In what versions of EPICS does it fail, and in
what versions does it work correctly; is it working correctly in 3.14.12?
Thanks for your help.
best regards,
Jeff
From: Mezger
Anton Christian [mailto:[email protected]]
Sent: Thursday, January 16, 2014 9:24 AM
To: Hill, Jeff
Cc: [email protected]
Subject: RE: garbage in zero length arrays
Hi Jeff,
The Array has zero length (NORD=0) after boot. Then I get garbage as first character while the number of elements is 128 in my case and this number was requested. When specifying 0 at request I get args.count=0
as it should with 3.14.12.
Regards
Anton
__________________________________________
Paul Scherrer Institut
Dr. Anton Christian Mezger
WBGB/103
CH-5232 Villigen PSI
Telefon: +41 56 310 34 06
E-Mail: [email protected]
From: Hill, Jeff [mailto:[email protected]]
Sent: Donnerstag, 16. Januar 2014 17:20
To: Mezger Anton Christian
Subject: RE: garbage in zero length arrays
Anton,
As memory serves, a request for a zero length subscription will probably be rejected by an old version of the CA server.
Jeff
Thank you Jeff,
this confirms that I can set 0 in the
ca_add_event_array. In any case of epics combinations (ioc, client) that would work properly at monitor receive.
Thanks and best regards
Anton
__________________________________________
Paul Scherrer Institut
Dr. Anton Christian Mezger
WBGB/103
CH-5232 Villigen PSI
Telefon: +41 56 310 34 06
E-Mail: [email protected]
Ø
My question is: when specifying 0, how does that behave in older epics versions and channel
Ø
access gateways. Does it use then the maximum amount of elements ?
When a channel connects the maximum number of elements is supplied by the server as a channel attribute. In newer versions of EPICS the current number of elements is returned with each subscription update. In older versions the maximum
number of elements was always returned; when the current number of elements was less than the maximum number then any additional elements at the end were zero padded.
Jeff
Hi all,
When monitoring a non initialized char array with ca_add_event_array, one gets most of the time in the first element of the array.
This only when the request uses ca_element_count(chid) which is non zero. When using the dynamic behavior by specifiying 0 elements, the received args.count correspond to the actual size of the array, including zero when not initialized.
My question is: when specifying 0, how does that behave in older epics versions and channel access gateways. Does it use then the maximum amount of elements ?
Anton
__________________________________________
Paul Scherrer Institut
Dr. Anton Christian Mezger
WBGB/103
CH-5232 Villigen PSI
Telefon: +41 56 310 34 06
E-Mail: [email protected]