On Dec 23, 2019, at 7:13 PM, STARRITT, Andrew via Tech-talk <tech-[email protected]> wrote:
Using base-3-15-6, running cainfo SR07BM01FPM01:FILL_PATTERN_ELEMENT_030_EXTRACT
yields
SR07BM01FPM01:FILL_PATTERN_ELEMENT_030_EXTRACT
State: connected
Host: CR01GW17-CTL:5064
Access: read, no write
Native data type: DBF_DOUBLE
Request type: DBR_DOUBLE
Element count: 360
However, previously with an IOC using 3.14.8.4 this yielded a single valued PV.
The code change that Michael pointed out was a correction to the original subArray record code – the maximum number of elements of a CA channel should be fixed since many clients rely on that to allocate local storage for channel data,
but as you saw unfortunately the subArray code was returning NELM or NORD, both of which can be changed at runtime. cainfo reports the maximum array size, not the current size.
However from 3.15.1 onward you may be able to avoid having to use any subArray records at all since the IOC’s CA server supports channel filters, and specifically the array
filter. To fetch the item at index 30 you should be able to do this:
$ caget 'SR07BM01FPM01:FILL_PATTERN_ABS_WAVEFORM.[30:30]'
I believe cainfo with that channel name will also report a single element.