![]() |
Fixposition SDK 0.0.0-heads/main-0-g5e3c297
Collection of c++ libraries and apps for use with Fixposition products on Linux
|
Parser NMEA routines and types. More...
Classes | |
| struct | NmeaAzEl |
| struct | NmeaCno |
| struct | NmeaCollectGsaGsv |
| Collector for NMEA-Gx-GSA and NMEA-Gx-GPA. More... | |
| struct | NmeaCoordinates |
| NMEA coordinates (integer degrees, float minutes and a sign for N/S resp. E/W) More... | |
| struct | NmeaDate |
| NMEA date (year, month, day) More... | |
| struct | NmeaFloat |
| NMEA float value. More... | |
| struct | NmeaGgaPayload |
| NMEA-Gx-GGA message payload. More... | |
| struct | NmeaGllPayload |
| NMEA-Gx-GLL message payload. More... | |
| struct | NmeaGsaPayload |
| NMEA-Gx-GSA message payload (NMEA 4.11 only!) More... | |
| struct | NmeaGstPayload |
| NMEA-Gx-GST message payload. More... | |
| struct | NmeaGsvPayload |
| NMEA-Gx-GSV message payload (NMEA 4.11 only!) More... | |
| struct | NmeaHdtPayload |
| NMEA-Gx-HDT message payload. More... | |
| struct | NmeaInt |
| NMEA integer value. More... | |
| struct | NmeaLlh |
| NMEA geodetic position. More... | |
| struct | NmeaMessageMeta |
| NMEA message meta data. More... | |
| struct | NmeaPayload |
| NMEA payload base class. More... | |
| struct | NmeaRmcPayload |
| NMEA-Gx-RMC message payload. More... | |
| struct | NmeaSat |
| NMEA satellite (used, e.g. in GSA) More... | |
| struct | NmeaTime |
| NMEA time (hour, minutes, seconds) More... | |
| struct | NmeaVersion |
| Constants for different versions of NMEA. More... | |
| struct | NmeaVtgPayload |
| NMEA-Gx-VTG message payload. More... | |
| struct | NmeaZdaPayload |
| NMEA-Gx-ZDA message payload. More... | |
Typedefs | |
| using | NmeaPayloadPtr = std::unique_ptr<NmeaPayload> |
| Pointer to NMEA payload. | |
Enumerations | |
| enum class | NmeaTalkerId : int { UNSPECIFIED = '!' , PROPRIETARY = 'x' , GPS_SBAS = 'P' , GLO = 'L' , GAL = 'A' , BDS = 'B' , NAVIC = 'I' , QZSS = 'Q' , GNSS = 'N' } |
| NMEA talker IDs. More... | |
| enum class | NmeaFormatter { UNSPECIFIED , GGA , GLL , RMC , VTG , GST , HDT , ZDA , GSA , GSV } |
| NMEA formatter. More... | |
| enum class | NmeaQualityGga : int { UNSPECIFIED = '!' , NOFIX = '0' , SPP = '1' , DGNSS = '2' , PPS = '3' , RTK_FIXED = '4' , RTK_FLOAT = '5' , ESTIMATED = '6' , MANUAL = '7' , SIM = '8' } |
| NMEA-Gx-GGA quality indicator. More... | |
| enum class | NmeaStatusGllRmc : int { UNSPECIFIED = '!' , INVALID = 'V' , VALID = 'A' } |
| NMEA-Gx-GLL and NMEA-Gx-RMC status. More... | |
| enum class | NmeaModeGllVtg : int { UNSPECIFIED = '!' , INVALID = 'N' , AUTONOMOUS = 'A' , DGNSS = 'D' , ESTIMATED = 'E' , MANUAL = 'M' , SIM = 'S' } |
| NMEA-Gx-GLL and NMEA-Gx-VTG pos mode. More... | |
| enum class | NmeaModeRmcGns : int { UNSPECIFIED = '!' , INVALID = 'N' , AUTONOMOUS = 'A' , DGNSS = 'D' , ESTIMATED = 'E' , RTK_FIXED = 'R' , RTK_FLOAT = 'F' , PRECISE = 'P' , MANUAL = 'M' , SIM = 'S' } |
| NMEA-Gx-RMC and NMEA-Gx-GNS pos mode. More... | |
| enum class | NmeaNavStatusRmc : int { UNSPECIFIED = '!' , SAFE = 'S' , CAUTION = 'C' , UNSAFE = 'U' , NA = 'V' } |
| NMEA-Gx-RMC navigational status. More... | |
| enum class | NmeaOpModeGsa : int { UNSPECIFIED = '!' , MANUAL = 'M' , AUTO = 'A' } |
| NMEA-Gx-GNS operation mode. More... | |
| enum class | NmeaNavModeGsa : int { UNSPECIFIED = '!' , NOFIX = '1' , FIX2D = '2' , FIX3D = '3' } |
| NMEA-Gx-GNS nav mode. More... | |
| enum class | NmeaSystemId : int { UNSPECIFIED = '!' , GPS_SBAS = '1' , GLO = '2' , GAL = '3' , BDS = '4' , QZSS = '5' , NAVIC = '6' } |
| NMEA system IDs. More... | |
| enum class | NmeaSignalId : int { UNSPECIFIED = 0x000 + '!' , NONE = 0x000 + '0' , GPS_L1CA = 0x100 + '1' , GPS_L2CL = 0x100 + '6' , GPS_L2CM = 0x100 + '5' , GPS_L5I = 0x100 + '7' , GPS_L5Q = 0x100 + '8' , GAL_E1 = 0x300 + '7' , GAL_E5A = 0x300 + '1' , GAL_E5B = 0x300 + '2' , GAL_E6BC = 0x300 + '3' , GAL_E6A = 0x300 + '4' , BDS_B1ID = 0x400 + '1' , BDS_B2ID = 0x400 + 'B' , BDS_B1C = 0x400 + '3' , BDS_B2A = 0x400 + '5' , BDS_B2B = 0x400 + '6' , QZSS_L1CA = 0x500 + '1' , QZSS_L1S = 0x500 + '4' , QZSS_L2CM = 0x500 + '5' , QZSS_L2CL = 0x500 + '6' , QZSS_L5I = 0x500 + '7' , QZSS_L5Q = 0x500 + '8' , GLO_L1OF = 0x200 + '1' , GLO_L2OF = 0x200 + '3' , NAVIC_L5A = 0x600 + '5' } |
| NMEA signal IDs. More... | |
Functions | |
| bool | NmeaGetMessageMeta (NmeaMessageMeta &meta, const uint8_t *msg, const std::size_t msg_size) |
| Get NMEA message meta data. | |
| bool | NmeaGetMessageName (char *name, const std::size_t size, const uint8_t *msg, const std::size_t msg_size) |
| Get NMEA message name. | |
| bool | NmeaGetMessageInfo (char *info, const std::size_t size, const uint8_t *msg, const std::size_t msg_size) |
| Get NMEA message info. | |
| bool | NmeaMakeMessage (std::vector< uint8_t > &msg, const std::string &payload) |
| Make a NMEA message. | |
| bool | NmeaMakeMessage (std::string &msg, const std::string &payload) |
| Make a NMEA message. | |
| const char * | NmeaTalkerIdStr (const NmeaTalkerId talker) |
| Stringify NMEA talker ID. | |
| const char * | NmeaFormatterStr (const NmeaFormatter formatter) |
| Stringify NMEA formatter. | |
| const char * | NmeaQualityGgaStr (const NmeaQualityGga qual) |
| Stringify NMEA-Gx-GGA quality indicator. | |
| const char * | NmeaStatusGllRmcStr (const NmeaStatusGllRmc status) |
| Stringify NMEA-Gx-GLL and NMEA-Gx-RMC status. | |
| const char * | NmeaModeGllVtgStr (const NmeaModeGllVtg mode) |
| Stringify NMEA-Gx-GLL and NMEA-Gx-VTG pos mode. | |
| const char * | NmeaModeRmcGnsStr (const NmeaModeRmcGns mode) |
| Stringify NMEA-Gx-RMC and NMEA-Gx-GNS pos mode. | |
| const char * | NmeaNavStatusRmcStr (const NmeaNavStatusRmc navstatus) |
| Stringify NMEA-Gx-RMC navigational status. | |
| const char * | NmeaOpModeGsaStr (const NmeaOpModeGsa opmode) |
| Stringify NMEA-Gx-GNS operation mode. | |
| const char * | NmeaNavModeGsaStr (const NmeaNavModeGsa navmode) |
| Stringify NMEA-Gx-GNS nav mode. | |
| const char * | NmeaSystemIdStr (const NmeaSystemId system) |
| Stringify NMEA system ID. | |
| const char * | NmeaSignalIdStr (const NmeaSignalId signal) |
| Stringify NMEA signal IDs. | |
| NmeaPayloadPtr | NmeaDecodeMessage (const uint8_t *msg, const std::size_t msg_size) |
| Decode NMEA message. | |
| NmeaPayloadPtr | NmeaDecodeMessage (const std::vector< uint8_t > &msg) |
| Decode NMEA message. | |
Variables | |
| static constexpr uint8_t | NMEA_PREAMBLE = '$' |
| NMEA framing preamble. | |
| static constexpr std::size_t | NMEA_FRAME_SIZE = 6 |
| NMEA frame size ("$*cc\r\n") | |
Parser NMEA routines and types.
| using fpsdk::common::parser::nmea::NmeaPayloadPtr = std::unique_ptr<NmeaPayload> |
|
strong |
|
strong |
NMEA formatter.
| Enumerator | |
|---|---|
| UNSPECIFIED | Unspecified. |
| GGA | Formatter GGA (NmeaGgaPayload) |
| GLL | Formatter GLL (NmeaGllPayload) |
| RMC | Formatter RMC (NmeaRmcPayload) |
| VTG | Formatter VTG (NmeaVtgPayload) |
| GST | Formatter GST (NmeaGstPayload) |
| HDT | Formatter HDT (NmeaHdtPayload) |
| ZDA | Formatter ZDA (NmeaZdaPayload) |
| GSA | Formatter GSA (NmeaGsaPayload) |
| GSV | Formatter GSV (NmeaGsvPayload) |
|
strong |
|
strong |
|
strong |
|
strong |
NMEA-Gx-RMC and NMEA-Gx-GNS pos mode.
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
NMEA signal IDs.
| bool fpsdk::common::parser::nmea::NmeaGetMessageMeta | ( | NmeaMessageMeta & | meta, |
| const uint8_t * | msg, | ||
| const std::size_t | msg_size ) |
Get NMEA message meta data.
| [out] | meta | The meta data |
| [in] | msg | Pointer to the NMEA message |
| [in] | msg_size | Size of the NMEA message (>= 11) |
| bool fpsdk::common::parser::nmea::NmeaGetMessageName | ( | char * | name, |
| const std::size_t | size, | ||
| const uint8_t * | msg, | ||
| const std::size_t | msg_size ) |
Get NMEA message name.
Generates a name (string) in the form "NMEA-TALKER-FORMATTER" (for example, "NMEA-GP-GGA"). Some proprietary messages are recognised, for example, "NMEA-PUBX-POSITION".
| [out] | name | String to write the name to |
| [in] | size | Size of name (incl. nul termination) |
| [in] | msg | Pointer to the NMEA message |
| [in] | msg_size | Size of the msg |
name buffer was too small | bool fpsdk::common::parser::nmea::NmeaGetMessageInfo | ( | char * | info, |
| const std::size_t | size, | ||
| const uint8_t * | msg, | ||
| const std::size_t | msg_size ) |
Get NMEA message info.
This stringifies the content of some NMEA messages, for debugging.
| [out] | info | String to write the info to |
| [in] | size | Size of name (incl. nul termination) |
| [in] | msg | Pointer to the NMEA message |
| [in] | msg_size | Size of the msg |
name buffer was too small | bool fpsdk::common::parser::nmea::NmeaMakeMessage | ( | std::vector< uint8_t > & | msg, |
| const std::string & | payload ) |
Make a NMEA message.
| [out] | msg | The message frame |
| [in] | payload | The message payload, including the talker ID and formatter (up to MAX_NMEA_SIZE - NMEA_FRAME_SIZE bytes, can be empty) |
msg now contains the message), false if failed contructing the message (payload too large) | bool fpsdk::common::parser::nmea::NmeaMakeMessage | ( | std::string & | msg, |
| const std::string & | payload ) |
Make a NMEA message.
| [out] | msg | The message frame |
| [in] | payload | The message payload, including the talker ID and formatter (up to MAX_NMEA_SIZE - NMEA_FRAME_SIZE bytes, can be empty) |
msg now contains the message), false if failed contructing the message (payload too large) | const char * fpsdk::common::parser::nmea::NmeaTalkerIdStr | ( | const NmeaTalkerId | talker | ) |
Stringify NMEA talker ID.
| [in] | talker | The NMEA talker ID |
| const char * fpsdk::common::parser::nmea::NmeaFormatterStr | ( | const NmeaFormatter | formatter | ) |
Stringify NMEA formatter.
| [in] | formatter | The NMEA formatter |
| const char * fpsdk::common::parser::nmea::NmeaQualityGgaStr | ( | const NmeaQualityGga | qual | ) |
Stringify NMEA-Gx-GGA quality indicator.
| [in] | qual | The NMEA-Gx-GGA quality indicator |
| const char * fpsdk::common::parser::nmea::NmeaStatusGllRmcStr | ( | const NmeaStatusGllRmc | status | ) |
Stringify NMEA-Gx-GLL and NMEA-Gx-RMC status.
| [in] | status | The NMEA-Gx-GLL and NMEA-Gx-RMC status |
| const char * fpsdk::common::parser::nmea::NmeaModeGllVtgStr | ( | const NmeaModeGllVtg | mode | ) |
Stringify NMEA-Gx-GLL and NMEA-Gx-VTG pos mode.
| [in] | mode | The NMEA-Gx-GLL and NMEA-Gx-VTG pos mode |
| const char * fpsdk::common::parser::nmea::NmeaModeRmcGnsStr | ( | const NmeaModeRmcGns | mode | ) |
Stringify NMEA-Gx-RMC and NMEA-Gx-GNS pos mode.
| [in] | mode | The NMEA-Gx-RMC and NMEA-Gx-GNS pos mode |
| const char * fpsdk::common::parser::nmea::NmeaNavStatusRmcStr | ( | const NmeaNavStatusRmc | navstatus | ) |
Stringify NMEA-Gx-RMC navigational status.
| [in] | navstatus | The NMEA-Gx-RMC navigational status |
| const char * fpsdk::common::parser::nmea::NmeaOpModeGsaStr | ( | const NmeaOpModeGsa | opmode | ) |
Stringify NMEA-Gx-GNS operation mode.
| [in] | opmode | The NMEA-Gx-GNS operation mode |
| const char * fpsdk::common::parser::nmea::NmeaNavModeGsaStr | ( | const NmeaNavModeGsa | navmode | ) |
Stringify NMEA-Gx-GNS nav mode.
| [in] | navmode | The NMEA-Gx-GNS nav mode |
| const char * fpsdk::common::parser::nmea::NmeaSystemIdStr | ( | const NmeaSystemId | system | ) |
Stringify NMEA system ID.
| [in] | system | The NMEA system ID |
| const char * fpsdk::common::parser::nmea::NmeaSignalIdStr | ( | const NmeaSignalId | signal | ) |
Stringify NMEA signal IDs.
| [in] | signal | The NMEA signal IDs |
| NmeaPayloadPtr fpsdk::common::parser::nmea::NmeaDecodeMessage | ( | const uint8_t * | msg, |
| const std::size_t | msg_size ) |
Decode NMEA message.
| [in] | msg | Pointer to the NMEA message |
| [in] | msg_size | Size of the NMEA message (>= 11) |
Referenced by NmeaDecodeMessage().
|
inline |
Decode NMEA message.
| [in] | msg | The NMEA message data |
Definition at line 827 of file nmea.hpp.
References NmeaDecodeMessage().
|
staticconstexpr |