Campbell Scientific FP2 data
The FP2 data format uses 16 bits to represent a variable-precision floating point number. FP2 has a total range of -7999 to 7999 and variable precision of 0.001 to 1. It also has the ability to signal +/– INF and NAN, most commonly used to indicate a computational or measurement error. FP2 range and maximum precision shows the numeric ranges and precision; Bit description describes the bits, and Calculation of finished value provides bit usage in calculating a finished value.
Range | Maximum precision |
b15 and b14 |
---|---|---|
–7.999 to 7.999 | 0.001 | 11 |
–79.99 to 79.99 | 0.01 | 10 |
–799.9 to 799.9 | 0.1 | 01 |
–7,999 to 7,999 | 1 | 00 |
Name | Bit | Description |
---|---|---|
Sign (S) | 16 (MSB) |
Specifies the sign of the value. 0 = positive, 1 = negative. |
Exponent (E) | 15 and 14 | Specifies the magnitude of the negative decimal exponent. |
Mantissa (M) | 13 to 0 (LSB) | Specifies the magnitude of the 13-bit mantissa, 0 to 8191 |
Sign (S) | Exponent (E) | Mantissa (M) | FP2 value equals |
---|---|---|---|
0 | 00 | 8191 | + INF |
1 | 00 | 8191 | – INF |
1 | 00 | 8190 | NAN |
0 or 1 | 00 or 01 or 10 | 0 to 7999 | (–1 ^ S) × (10 ^ –E) × M |
When transmitted in a pseudobinary format, the 16 bits are encoded as follows. Bits 16 through 13 are the least significant four bits of the first byte, bits 12 through 7 are the least significant six bits of the second byte, and the last six bits are the least significant bits of the last byte. The following tables are examples of encoding values.
Encoding of 1234 |
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character 1 = @ |
Character 2 = S |
Character 3 = R |
|||||||||||||||||||||
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
Encoding of 1.234 |
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character 1 = F |
Character 2 = S |
Character 3 = R |
|||||||||||||||||||||
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
Character 1 = D | Character 2 = S | Character 3 = R | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 |
Encoding of 123.4 |
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character 1 = B |
Character 2 = S |
Character 3 = R |
|||||||||||||||||||||
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
Encoding of 0.123 |
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character 1 = F |
Character 2 = A |
Character 3 = { |
|||||||||||||||||||||
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
Encoding of -1234 |
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character 1 = H |
Character 2 = S |
Character 3 = R |
|||||||||||||||||||||
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
Encoding of -1.234 |
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character 1 = N |
Character 2 = S |
Character 3 = R |
|||||||||||||||||||||
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
Encoding of -12.34 |
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character 1 = L |
Character 2 = S |
Character 3 = R |
|||||||||||||||||||||
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
Encoding of -123.4 |
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character 1 = J |
Character 2 = S |
Character 3 = R |
|||||||||||||||||||||
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
Encoding of -0.123 |
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character 1 = N |
Character 2 = A |
Character 3 = { |
|||||||||||||||||||||
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
Encoding of INF |
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character 1 = A |
Character 2 = ? |
Character 3 = ? |
|||||||||||||||||||||
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
Encoding of -INF |
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character 1 = I |
Character 2 = ? |
Character 3 = ? |
|||||||||||||||||||||
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
Encoding of NAN |
|||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character 1 = I |
Character 2 = ? |
Character 3 = ~ |
|||||||||||||||||||||
|
|
|
|
Sign |
Exponent |
Mantissa |
|
|
Mantissa |
|
|
Mantissa |
|||||||||||
p |
1 |
0 |
0 |
b16 |
b15 |
b14 |
b13 |
p |
1 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
p |
1 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |