Fixposition SDK 0.0.0-heads/main-0-g90a51ff
Collection of c++ libraries and apps for use with Fixposition products
Loading...
Searching...
No Matches
fpsdk::common::parser::nmea Namespace Reference

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...
 

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  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' , GLO_L1OF = 0x200 + '1' ,
  GLO_L2OF = 0x200 + '3' , GAL_E1 = 0x300 + '7' , GAL_E5A = 0x300 + '1' , GAL_E5B = 0x300 + '2' ,
  BDS_B1ID = 0x400 + '1' , BDS_B2ID = 0x400 + 'B' , BDS_B1C = 0x400 + '3' , BDS_B2A = 0x400 + '5' ,
  QZSS_L1CA = 0x500 + '1' , QZSS_L1S = 0x500 + '4' , QZSS_L2CM = 0x500 + '5' , QZSS_L2CL = 0x500 + '6' ,
  QZSS_L5I = 0x500 + '7' , QZSS_L5Q = 0x500 + '8' , 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.
 

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")
 

Detailed Description

Parser NMEA routines and types.

Enumeration Type Documentation

◆ NmeaTalkerId

NMEA talker IDs.

Enumerator
UNSPECIFIED 

Unspecified.

PROPRIETARY 

Proprietary.

GPS_SBAS 

GPS and/or SBAS.

GLO 

GLONASS.

GAL 

GALILEO.

BDS 

BeiDou.

NAVIC 

NavIC.

QZSS 

QZSS.

GNSS 

GNSS (multi-constellation)

Definition at line 181 of file nmea.hpp.

◆ NmeaQualityGga

NMEA-Gx-GGA quality indicator.

Enumerator
UNSPECIFIED 

Unspecified.

NOFIX 

No fix.

SPP 

Autonomous GNSS fix.

DGNSS 

Differential GPS fix (e.g. with SBAS)

PPS 

PPS mode.

RTK_FIXED 

RTK fixed.

RTK_FLOAT 

RTK float.

ESTIMATED 

Estimated (dead reckoning only)

MANUAL 

Manual input mode.

SIM 

Simulator.

Definition at line 197 of file nmea.hpp.

◆ NmeaStatusGllRmc

NMEA-Gx-GLL and NMEA-Gx-RMC status.

Note
Do not use <, >, >=, <= operators on this!
Enumerator
UNSPECIFIED 

Unspecified.

INVALID 

Data invalid.

VALID 

Data valid.

Definition at line 216 of file nmea.hpp.

◆ NmeaModeGllVtg

NMEA-Gx-GLL and NMEA-Gx-VTG pos mode.

Note
Do not use <, >, >=, <= operators on this!
Enumerator
UNSPECIFIED 

Unspecified.

INVALID 

Invalid (no fix)

AUTONOMOUS 

Autonomous mode (SPP)

DGNSS 

Differential GNSS fix.

ESTIMATED 

Estimated (dead reckoning only)

MANUAL 

Manual input mode.

SIM 

Simulator mode.

Definition at line 229 of file nmea.hpp.

◆ NmeaModeRmcGns

NMEA-Gx-RMC and NMEA-Gx-GNS pos mode.

Note
Do not use <, >, >=, <= operators on this!
Enumerator
UNSPECIFIED 

Unspecified.

INVALID 

Invalid (no fix)

AUTONOMOUS 

Autonomous mode (SPP)

DGNSS 

Differential GNSS fix.

ESTIMATED 

Estimated (dead reckoning only)

RTK_FIXED 

RTK fixed.

RTK_FLOAT 

RTK float.

PRECISE 

Precise.

MANUAL 

Manual input mode.

SIM 

Simulator mode.

Definition at line 245 of file nmea.hpp.

◆ NmeaNavStatusRmc

NMEA-Gx-RMC navigational status.

Note
Do not use <, >, >=, <= operators on this!
Enumerator
UNSPECIFIED 

Unspecified.

SAFE 

Safe.

CAUTION 

Caution.

UNSAFE 

Unsafe.

NA 

Equipment does not provide navigational status.

Definition at line 264 of file nmea.hpp.

◆ NmeaOpModeGsa

NMEA-Gx-GNS operation mode.

Note
Do not use <, >, >=, <= operators on this!
Enumerator
UNSPECIFIED 

Unspecified.

MANUAL 

Manual.

AUTO 

Automatic.

Definition at line 278 of file nmea.hpp.

◆ NmeaNavModeGsa

NMEA-Gx-GNS nav mode.

Enumerator
UNSPECIFIED 

Unspecified.

NOFIX 

No fix.

FIX2D 

2D fix

FIX3D 

3D fix

Definition at line 288 of file nmea.hpp.

◆ NmeaSystemId

NMEA system IDs.

Note
Do not use <, >, >=, <= operators on this!
Enumerator
UNSPECIFIED 

Unspecified.

GPS_SBAS 

GPS and/or SBAS.

GLO 

GLONASS.

GAL 

Galileo.

BDS 

BeiDou.

QZSS 

QZSS.

NAVIC 

NavIC.

Definition at line 301 of file nmea.hpp.

◆ NmeaSignalId

NMEA signal IDs.

Note
Do not use <, >, >=, <= operators on this!
Enumerator
UNSPECIFIED 

Unspecified.

NONE 

None.

GPS_L1CA 

GPS L1 C/A or SBAS L1 C/A.

GPS_L2CL 

GPS L2 CL.

GPS_L2CM 

GPS L2 CM.

GPS_L5I 

GPS L5 I.

GPS_L5Q 

GPS L5 Q.

GLO_L1OF 

GLONASS L1 OF.

GLO_L2OF 

GLONASS L2 OF.

GAL_E1 

Galileo E1.

GAL_E5A 

Galileo E5 A.

GAL_E5B 

Galileo E5 B.

BDS_B1ID 

BeiDou B1I D.

BDS_B2ID 

BeiDou B2I D.

BDS_B1C 

BeiDou B1 C.

BDS_B2A 

BeiDou B2 a.

QZSS_L1CA 

QZSS L1 C/A.

QZSS_L1S 

QZSS L1S.

QZSS_L2CM 

QZSS L2 CM.

QZSS_L2CL 

QZSS L2 CL.

QZSS_L5I 

QZSS L5 I.

QZSS_L5Q 

QZSS L5 Q.

NAVIC_L5A 

NavIC L5 A.

Definition at line 317 of file nmea.hpp.

Function Documentation

◆ NmeaGetMessageMeta()

bool fpsdk::common::parser::nmea::NmeaGetMessageMeta ( NmeaMessageMeta & meta,
const uint8_t * msg,
const std::size_t msg_size )

Get NMEA message meta data.

Parameters
[out]metaThe meta data
[in]msgPointer to the NMEA message
[in]msg_sizeSize of the NMEA message (>= 11)
Note
No check on the data provided is done. The caller must ensure that the data is a correct NMEA message.
Returns
true if the meta data was successfully extracted, false otherwise

◆ NmeaGetMessageName()

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".

Parameters
[out]nameString to write the name to
[in]sizeSize of name (incl. nul termination)
[in]msgPointer to the NMEA message
[in]msg_sizeSize of the msg
Note
No check on the data provided is done. The caller must ensure that the data is a valid NMEA message.
Returns
true if message name was generated, false if name buffer was too small

◆ NmeaGetMessageInfo()

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.

Parameters
[out]infoString to write the info to
[in]sizeSize of name (incl. nul termination)
[in]msgPointer to the NMEA message
[in]msg_sizeSize of the msg
Note
No check on the data provided is done. The caller must ensure that the data is a valid NMEA message.
Returns
true if message info was generated (even if info is empty), false if name buffer was too small

Variable Documentation

◆ NMEA_PREAMBLE

uint8_t fpsdk::common::parser::nmea::NMEA_PREAMBLE = '$'
staticconstexpr

NMEA framing preamble.

Definition at line 100 of file nmea.hpp.

◆ NMEA_FRAME_SIZE

std::size_t fpsdk::common::parser::nmea::NMEA_FRAME_SIZE = 6
staticconstexpr

NMEA frame size ("$*cc\r\n")

Definition at line 101 of file nmea.hpp.