> - StreamDevice In this case you want to take one message packet and set the values of 50 EPICS records from it. That is a little messy with StreamDevice, though again it could be done I think.
As Mark suggested, it can be done with StreamDevice.
You will have a protocol entries looking like this:
sendPing {
out 2,7,3,255,0,0,0,0,"%<xor>";
in 2,7,1,255,"%(\$1:LoadCrntAI.VAL)R","%(\$1:LoadVltgAI.VAL)R","%(\$1:DcpsVltgAI.VAL)R","%(\$1:DcResetCrntAI.VAL)R","%(\$1:DcResetVltgAI.VAL)R","%(\$1:FlmntCrntAI.VAL)R","%(\$1:FlmntVltgAI.VAL)R","%*28r","%(\$1:Main:StsLI.VAL)02.2r","%(\$1:HighVltg:StsLI.VAL)02.2r","%(\$1:Flmnt:StsLI.VAL)02.2r","%(\$1:Cmnctn:StsLI.VAL)02.2r","%(\$1:Reset:StsLI.VAL)02.2r","%(\$1:Mode:StsLI.VAL)02.2r","%<xor>";
}
In the case where you cannot find satisfying converters in which case, you will have to program it (C++ as well).
StreamDevice is now relatively mature though. And based on your email, I don't think you will have any issues.
Good luck,
--
Emmanuel