But, I can't seem to do any :readmath" on the returned value.
My bug with readmath is fixed in this .jar file:
http://lygte-info.dk/pic/Projects/TestController/TestController.jar It is not a general release, the jar file do not contain device definitions and only changes compared to v1.44 is in the Block driver.
Added a "txrxn/txrxn?" where first parameter is number of bytes to receive.
The default format is unsigned, I have fixed that, but you can easily get a signed value, use: txrx1? 0x12 0x00 / 0i1
Everything after / is output format specifiers, it is possible to use many when receiving multiple bytes.
The first number is offset into the received data.
The letter is format: i=signed (1 to 8 bytes), u=unsigned (1 to 8 bytes), f=float (4 or 8 bytes), s=string, add a r to swap byte sequence (Default is lsb first).
The next number if how many bytes to use for the number
It is also possible to add a multiplier with *factor or divisor with /factor (Ignored for string)
And a offset with +offset or -offset (Multiply/divide must be first) (Ignored for string)
The #VerifyDevice works, but do not support readmath, it can be used this way:
#verifyDevice S200 deviceModel?
#scpiCmd deviceModel? txrx1? 0x26 0x00
:readmath: value==0x32?"S200":"unknown";