var data = msg.payload; // Create a buffer var bufT = new ArrayBuffer(4); var bufP = new ArrayBuffer(4); var bufH = new ArrayBuffer(4); // Create a data view of it var viewT = new DataView(bufT); var viewP = new DataView(bufP); var viewH = new DataView(bufH); // set bytes data.forEach(function (b, i) { if(i >= 0 && i < 4) viewT.setUint8(i%4, b); if(i >= 4 && i < 8) viewP.setUint8(i%4, b); if(i >= 8 && i < 12) viewH.setUint8(i%4, b); }); // Read the bits as a float; note that by doing this, we're implicitly // converting it from a 32-bit float into JavaScript's native 64-bit double var numT = viewT.getFloat32(0); numT = Math.round(numT*100)/100; var numP = viewP.getFloat32(0); numP = Math.round(numP*100)/100; var numH = viewH.getFloat32(0); numH = Math.round(numH*100)/100; // Done var msgT = { payload:numT }; var msgP = { payload:numP }; var msgH = { payload:numH }; flow.set("numT",numT); flow.set("numP",numP); flow.set("numH",numH); return [msgT,msgP,msgH];