> It is not currently (and may never be) possible to put a zero-length array through Channel Access;
> I don’t know if PVA and QSRV can handle them or not.
For PVAccess, the protocol has different type identifiers for scalars and arrays, so a 'double' is clearly distinguished from a 'double []' with exactly one element.
When using an array type, the length can change at runtime and include zero length == empty array.
As for QSRV, when you create a 'compress' record with NSAM = 1, the PV is a an NTScalar. For NSAM > 1 the PV is of type NTScalarArray.
So it behaves just like the Channel Access example, an array of size 1 appears as a scalar.
Not sure if this is a quirk in QSRV that could be fixed, or if the limitation is in the database/IOC API that it needs to use.
-Kay
|