I am using Modbus/ModbusSerialMaster at master · electricimp/Modbus · GitHub to read modbus float values ( 2 registers ). Please see : Modbus Comms: How to Set Floating Point Values – The Preferred Pyroscope
In Node.js I can simply use buffer.readFloatBE(0) to convert the buffer of two 16bits values to a float value.
How can I do this using squirrel? i.e convert 2 16bits values to float
I would assemble your read bits to an integer value and then use casti2f() to convert it to an IEEE 754 float. Using the example on the page you link to:
local i = 0x42487df4; local f = casti2f(i); server.log(f); // Outputs 50.123
Thank you @smittytone
local float_value = casti2f(res[1] | (res[0] << 16));
does the trick.
This topic was automatically closed after 60 days. New replies are no longer allowed.