Hello,
I've just upgraded from using asyn 4-6 to 4-8 and discovered that a
small part of my driver support has broken. My driver support retrieves
a byte-wide array from the device and uses asyn Int32Array interface to
send this to a waveform record with the FTVL field set to "CHAR". The
new version of asyn has introduced a check of this field in
devAsynInt32Array.c initCommon and fails if the field is not set to
"LONG" or "ULONG".
As my data is only byte-wide, I don't want to fill it into a 32bit wide
array and set FTVL to "LONG" as that would send out 4 times as much
data. I guess the "proper" fix would be to implement int8Array and
int16Array interfaces in devAsyn... Is anyone up for that?
For now, I have just rebuild my own version of asyn with this particular
check commented out. This way seems to work ok for now as the client is
requesting the data type from the WF record and it seems to just "do the
right thing" and retrieves a byte-sized array. I must admit that I don't
fully understand if commenting out this type checking has any
complicated implications that may break other stuff...
Cheers,
Ulrik
--------------------------------------------------------------------
Ulrik Pedersen phone: +44(0)1235-778580
Software Engineer email: [email protected]
Diamond Light Source Ltd.
Rutherford Appleton Laboratory,
Chilton, Didcot
OxfordShire OX11 0DE
--------------------------------------------------------------------