![]() |
Fixposition SDK 0.0.0-heads/main-0-g97f6014
Collection of c++ libraries and apps for use with Fixposition products on Linux
|
API: fpsdk_common/parser/nmea.hpp and fpsdk::common::parser::nmea
The NMEA framing and behaviour is defined by the NMEA 0183 standard (v4.11 and erratas).
In NMEA speak messages are called Sentences. Frames (messages) are in this form:
$TalkerFormatter,field1,field2,…,fieldN*CC\r\n
Where:
$ – Start character ("$", ASCII 36)*CC – Checksum: "\*" (ASCII 42) and two digit XOR value of all payload characters in captial hexadecimal notation, for example: "FPX" = 'F' ^ 'P' ^ 'X' = 70 ^ 80 ^ 88 = 78 = 0x4e = checksum 4E\r\n – Sentence termination characters (CR + LF, ASCII 13 + 10)Talker ID – Two capital characters:Formatter ID – Three capital characters, for example:field1,field2,…,fieldN – The structure of the message data is defined by the Formatter. 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).…,fieldi,fieldi+1,fieldi+2,…fieldi = 123, fieldi+1 = null, fieldi+2 = 456…,123,,456,…