This question relates to my previous ones:
I transmit data through bluetooth LE to a node.js server. Here is the format of serialized data:
top: 10 bit (unsigned integer)
bottom: 10 bit (unsigned integer)
accelerometerX: 23 bit (truncated 32-bit floating point)
accelerometerY: 23 bit
...
Data is received as a node.js buffer. I'm able to parse top and bottom as they are integers, and I can use shift operation on them.
top = data.readUInt16LE() & 0x3FF;
bottom = data.readUInt16LE(1);
bottom = (bottom >> 2) & 0x3FF;
accX = data.readUInt32LE(2);
accX = ((accX >> 4) & 0x7FFFFFF) << 9;
However, for accX are floats. I can't use ReadFloat32LE from node.js as it's not byte aligned. So now I'm reading as uint32, shift it back with 9 least significant digits. How do I get float from its bit representation in NodeJS?