MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / extractFloat32LE

Function extractFloat32LE

app/rcc/scripts/parser/js/mavlink.js:96–111  ·  view source on GitHub ↗

* Extracts a 32-bit float from byte array (little-endian).

(bytes, offset)

Source from the content-addressed store, hash-verified

94 * Extracts a 32-bit float from byte array (little-endian).
95 */
96function extractFloat32LE(bytes, offset) {
97 var b0 = bytes[offset], b1 = bytes[offset + 1];
98 var b2 = bytes[offset + 2], b3 = bytes[offset + 3];
99
100 var sign = (b3 & 0x80) ? -1 : 1;
101 var exponent = ((b3 & 0x7F) << 1) | (b2 >> 7);
102 var mantissa = ((b2 & 0x7F) << 16) | (b1 << 8) | b0;
103
104 if (exponent === 0)
105 return sign * mantissa * Math.pow(2, -149);
106
107 if (exponent === 0xFF)
108 return mantissa ? NaN : sign * Infinity;
109
110 return sign * (mantissa | 0x800000) * Math.pow(2, exponent - 150);
111}
112
113/**
114 * Extracts a 16-bit signed integer from byte array (little-endian).

Callers 1

mavlink.jsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected