FP_A messages
NMEA style framing is used. Frames (messages) are in this form:
$FP,msg_type,msg_version,field3,field4,…,fieldN*CC\r\n
Where:
The NMEA style framing:
$
– Start character (“$”, ASCII 36)*CC
– Checksum: “*” (ASCII 42) and two-digit XOR value of all payload characters in capital hexadecimal notation, for example: “FPX” ='F' ^ 'P' ^ 'X' = 70 ^ 80 ^ 88 = 78 = 0x4e
= checksum4E
\r\n
– Sentence termination characters (CR + LF, ASCII 13 + 10)
A Fixposition identifier:
FP
– Fixposition ASCII message identifier, “FP” (ASCII 70 + 80)
Fixposition message type and version:
msg_type
(=field1
) – Message type, all capital letters (ASCII 65–90)msg_version
(=field2
) – Message version, decimal number (letters 0–9, ASCII 48–57), range 1–…
Data fields (payload)
field3,field4,…,fieldN
– The structure of the message data is defined by themsg_type
andversion
. Each field can contain all printable 7-bit ASCII characters (ASCII 32–126), excluding the reserved characters!
(ASCII 33),$
(ASCII 36),*
(ASCII 42),,
(ASCII 44),\
(ASCII 92),~
(ASCII 126).
Field separators
All fields (identifier, message type, message version, data fields) are separated by a comma (
,
, ASCII 44)
Null fields
Data fields can be null, meaning their value is absent to indicate that no data is available. The data for null fields is the empty string. For example:
Definition:
…,fieldi,fieldi+1,fieldi+2,…
Values:
fieldi
= 123,fieldi+1
= null,fieldi+2
= 456Payload string:
…,123,,456,…
Data field types:
Numeric: Decimal integer number, one or more digits (0-9) and optional leading “-” sign
Float (.x): Decimal floating point number, one or more digits (0-9) and optional leading “-” sign, with x digits fractional part separated by a dot (“.”)
Float (x): Decimal floating point number with x significant digits, optional leading “-“, optional fractional part separated by a dot (“.”)
String: String of allowed payload characters (but not the
,
field separator)