I receive a string from a device containing the current draw as a 6
character number. ie. for 2.45 A, the string would be 000245. Using the
format converter %6f in the proto file, I am able to read the value into
a ai record as 245. However when I try to convert the input string using
%=6.2f, I always read in 0 as the current.
Am I understanding the = operator properly? How can I convert the string
000245 input into 2.45 in the ai record?
I would convert the string to an integer (which it basically is) to have it written to the RVAL (raw value) field of the ai record and use the standard linear conversion function of the ai (setting LINR to SLOPE and ESLO to the desired factor) to convert it to the value in engineering units.
StreamDevice's = operator is used to *compare* an input string with a value. (E.g., for an output record, if your device's return string contains the value that you just set, you can make sure that it matches.)
Cheers,
~Ralph