I'm facing another problem.
My device's temperature values live in input registers (function code 0x04). TC has the full holding-register set - holding?, holdingS?, holdingF? - but for input registers only the unsigned input? exists; there is no inputS? or inputF?.
The floating-point temperature block (0x01C2) would need an input-register float read (inputF?), which does not exist, so I fall back to the integer block (0x0190) with /10. But those integers are signed, and without an inputS? I cannot read
negative temperatures - and this device is specified from -200 degC (XEXX:-200~1350 degC @ 2%, XDXX: -200~850 degC @ 1%), so negatives are well within range, not an edge case.
I can add a per-channel readmath (((value+32768)%65536)-32768)/10 to fix the sign manually, but that forces one read per channel, so I lose polling all 6 values in a single transaction.
Could you add inputS? (and ideally inputF?) to mirror the existing holding commands? Either one solves it: inputF? lets me use the float block directly (signed by nature, no scaling), or inputS? lets the integer block handle negatives.