Fixposition SDK 0.0.0-heads/main-0-g90a51ff
Collection of c++ libraries and apps for use with Fixposition products
Loading...
Searching...
No Matches
novb.hpp File Reference

Fixposition SDK: Parser NOV_B routines and types. More...

#include <cstddef>
#include <cstdint>
Include dependency graph for novb.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fpsdk::common::parser::novb::NovbLongHeader
 NOV_B frame long header. More...
 
struct  fpsdk::common::parser::novb::NovbShortHeader
 NOV_B frame short header. More...
 
struct  fpsdk::common::parser::novb::NovbHeader
 Union of NOV_B long and short header. More...
 
struct  fpsdk::common::parser::novb::NovbRawdmi
 NOV_B-RAWDMI payload. More...
 
struct  fpsdk::common::parser::novb::NovbRawimu
 NOV_B-RAWIMU payload. More...
 
struct  fpsdk::common::parser::novb::NovbBestgnsspos
 NOV_B-BESTGNSSPOS payload. More...
 
struct  fpsdk::common::parser::novb::NovbBestvel
 NOV_B-BESTVEL payload. More...
 
struct  fpsdk::common::parser::novb::NovbHeading2
 NOV_B-HEADING2 payload. More...
 
struct  fpsdk::common::parser::novb::NovbInspvax
 NOV_B-INSPVAX payload. More...
 

Namespaces

namespace  fpsdk
 Fixposition SDK.
 
namespace  fpsdk::common
 Fixposition SDK: Common library.
 
namespace  fpsdk::common::parser
 Parser.
 
namespace  fpsdk::common::parser::novb
 Parser NOV_B routines and types.
 

Macros

#define NOV_B_PACKED   /* packed */
 Message truct that must be packed.
 

Enumerations

enum class  fpsdk::common::parser::novb::NovbMsgTypeSource : uint8_t { fpsdk::common::parser::novb::PRIMARY = 0b00000000 , fpsdk::common::parser::novb::SECONDARY = 0b00000001 , fpsdk::common::parser::novb::_MASK = 0b00011111 }
 Message type measurement source (bits 4..0 of NovbLongHeader.message_type) More...
 
enum class  fpsdk::common::parser::novb::NovbMsgTypeFormat : uint8_t {
  fpsdk::common::parser::novb::BINARY = 0b00000000 , fpsdk::common::parser::novb::ASCII = 0b00100000 , fpsdk::common::parser::novb::AASCII_NMEA = 0b01000000 , fpsdk::common::parser::novb::RESERVED = 0b01100000 ,
  fpsdk::common::parser::novb::_MASK = 0b01100000
}
 Message type format (bits 6..5 of NovbLongHeader.message_type) More...
 
enum class  fpsdk::common::parser::novb::NovbMsgTypeResp : uint8_t { fpsdk::common::parser::novb::ORIGINAL = 0b00000000 , fpsdk::common::parser::novb::RESPONSE = 0b10000000 , fpsdk::common::parser::novb::_MASK = 0b10000000 }
 Message type format (bit 7 of NovbLongHeader.message_type) More...
 
enum class  fpsdk::common::parser::novb::NovbTimeStatus : uint8_t {
  fpsdk::common::parser::novb::UNKNOWN = 20 , fpsdk::common::parser::novb::APPROXIMATE = 60 , fpsdk::common::parser::novb::COARSEADJUSTING = 80 , fpsdk::common::parser::novb::COARSE = 100 ,
  fpsdk::common::parser::novb::COARSESTEERING = 120 , fpsdk::common::parser::novb::FREEWHEELING = 130 , fpsdk::common::parser::novb::FINEADJUSTING = 140 , fpsdk::common::parser::novb::FINE = 160 ,
  fpsdk::common::parser::novb::FINEBACKUPSTEERING = 170 , fpsdk::common::parser::novb::FINESTEERING = 180 , fpsdk::common::parser::novb::SATTIME = 200
}
 Message time status (NovbLongHeader.time_status) More...
 
enum class  fpsdk::common::parser::novb::NovbPortAddr : uint8_t { fpsdk::common::parser::novb::NO_PORTS = 0x00 , fpsdk::common::parser::novb::ALL_PORTS = 0x80 , fpsdk::common::parser::novb::THISPORT = 0xc0 }
 Message port address (NovbLongHeader.port_address) More...
 
enum class  fpsdk::common::parser::novb::NovbGnssSolStat : uint32_t {
  fpsdk::common::parser::novb::SOL_COMPUTED = 0 , fpsdk::common::parser::novb::INSUFFICIENT_OBS = 1 , fpsdk::common::parser::novb::NO_CONVERGENCE = 2 , fpsdk::common::parser::novb::SINGULARITY = 3 ,
  fpsdk::common::parser::novb::COV_TRACE = 4 , fpsdk::common::parser::novb::TEST_DIST = 5 , fpsdk::common::parser::novb::COLD_START = 6 , fpsdk::common::parser::novb::V_H_LIMIT = 7 ,
  fpsdk::common::parser::novb::VARIANCE = 8 , fpsdk::common::parser::novb::RESIDUALS = 9
}
 Solution status. More...
 
enum class  fpsdk::common::parser::novb::NovbGnssSolExtStat : uint8_t { fpsdk::common::parser::novb::SOL_VERIFIED = 0b00000001 }
 Extended solution status (bits) More...
 
enum class  fpsdk::common::parser::novb::NovbSolSource : uint8_t { fpsdk::common::parser::novb::PRIMARY = 0b00000100 , fpsdk::common::parser::novb::SECONDARY = 0b00001000 , fpsdk::common::parser::novb::_MASK = 0b00001100 }
 Solution source (bits) More...
 
enum class  fpsdk::common::parser::novb::NovbDatumId : uint32_t { fpsdk::common::parser::novb::WGS84 = 61 , fpsdk::common::parser::novb::USER = 63 }
 Datum ID. More...
 
enum class  fpsdk::common::parser::novb::NovbPosOrVelType : uint32_t {
  fpsdk::common::parser::novb::NONE = 0 , fpsdk::common::parser::novb::FIXEDPOS = 1 , fpsdk::common::parser::novb::FIXEDHEIGHT = 2 , fpsdk::common::parser::novb::DOPPLER_VELOCITY = 8 ,
  fpsdk::common::parser::novb::SINGLE = 16 , fpsdk::common::parser::novb::PSRDIFF = 17 , fpsdk::common::parser::novb::WAAS = 18 , fpsdk::common::parser::novb::PROPAGATED = 19 ,
  fpsdk::common::parser::novb::L1_FLOAT = 32 , fpsdk::common::parser::novb::NARROW_FLOAT = 34 , fpsdk::common::parser::novb::L1_INT = 48 , fpsdk::common::parser::novb::WIDE_INT = 49 ,
  fpsdk::common::parser::novb::NARROW_INT = 50 , fpsdk::common::parser::novb::RTK_DIRECT_INS = 51 , fpsdk::common::parser::novb::INS_SBAS = 52 , fpsdk::common::parser::novb::INS_PSRSP = 53 ,
  fpsdk::common::parser::novb::INS_PSRDIFF = 54 , fpsdk::common::parser::novb::INS_RTKFLOAT = 55 , fpsdk::common::parser::novb::INS_RTKFIXED = 56 , fpsdk::common::parser::novb::PPP_CONVERGING = 68 ,
  fpsdk::common::parser::novb::PPP = 69 , fpsdk::common::parser::novb::OPERATIONAL = 70 , fpsdk::common::parser::novb::WARNING = 71 , fpsdk::common::parser::novb::OUT_OF_BOUNDS = 72 ,
  fpsdk::common::parser::novb::INS_PPP_CONVERGING = 73 , fpsdk::common::parser::novb::INS_PPP = 74 , fpsdk::common::parser::novb::PPP_BASIC_CONVERGING = 77 , fpsdk::common::parser::novb::PPP_BASIC = 78 ,
  fpsdk::common::parser::novb::INS_PPP_BASIC_CONVERGING = 79 , fpsdk::common::parser::novb::INS_PPP_BASIC = 80
}
 Position or velocity type. More...
 
enum class  fpsdk::common::parser::novb::NovbSigUsedGpsGlo : uint8_t {
  fpsdk::common::parser::novb::GPS_L1 = 0x01 , fpsdk::common::parser::novb::GPS_L2 = 0x02 , fpsdk::common::parser::novb::GPS_L5 = 0x04 , fpsdk::common::parser::novb::GLONASS_L1 = 0x10 ,
  fpsdk::common::parser::novb::GLONASS_L2 = 0x20 , fpsdk::common::parser::novb::GLONASS_L5 = 0x40
}
 GPS and GLONASS signals used (bits) More...
 
enum class  fpsdk::common::parser::novb::NovbSigUsedGalBds : uint8_t {
  fpsdk::common::parser::novb::GALILEO_L1 = 0x01 , fpsdk::common::parser::novb::GALILEO_L2 = 0x02 , fpsdk::common::parser::novb::GALILEO_L5 = 0x04 , fpsdk::common::parser::novb::GALILEO_ALTBOC = 0x08 ,
  fpsdk::common::parser::novb::BEIDOU_L1 = 0x10 , fpsdk::common::parser::novb::BEIDOU_L2 = 0x20 , fpsdk::common::parser::novb::BEIDOU_L5 = 0x40 , fpsdk::common::parser::novb::GALILEO_E6 = 0x80
}
 Gelileo and BeiDou signals used (bits) More...
 
enum class  fpsdk::common::parser::novb::NovbInsSolStatus : uint32_t {
  fpsdk::common::parser::novb::INS_INACTIVE = 0 , fpsdk::common::parser::novb::INS_ALIGNING = 1 , fpsdk::common::parser::novb::INS_HIGH_VARIANCE = 2 , fpsdk::common::parser::novb::INS_SOLUTION_GOOD = 3 ,
  fpsdk::common::parser::novb::INS_SOLUTION_FREE = 6 , fpsdk::common::parser::novb::INS_ALIGNMENT_COMPLETE = 7 , fpsdk::common::parser::novb::DETERMINING_ORIENTATION = 8 , fpsdk::common::parser::novb::WAITING_INITIAL_POS = 9 ,
  fpsdk::common::parser::novb::WAITING_AZIMUTH = 10 , fpsdk::common::parser::novb::INITIALIZING_BIASES = 11 , fpsdk::common::parser::novb::MOTION_DETECT = 12 , fpsdk::common::parser::novb::WAITING_ALIGNMENTORIENTATION = 14
}
 Intertial solution status. More...
 
enum class  fpsdk::common::parser::novb::NovbInsSolExtStatus : uint32_t {
  fpsdk::common::parser::novb::POSITION_UPDATE = 0x00000001 , fpsdk::common::parser::novb::PHASE_UPDATE = 0x00000002 , fpsdk::common::parser::novb::ZERO_VELOCITY_UPDATE = 0x00000004 , fpsdk::common::parser::novb::WHEEL_SENSOR_UPDATE = 0x00000008 ,
  fpsdk::common::parser::novb::HEADING_UPDATE = 0x00000010 , fpsdk::common::parser::novb::EXTERNAL_POSITION_UPDATE = 0x00000020 , fpsdk::common::parser::novb::INS_SOLUTION_CONVERGENCE = 0x00000040 , fpsdk::common::parser::novb::DOPPLER_UPDATE = 0x00000080 ,
  fpsdk::common::parser::novb::PSEUDORANGE_UPDATE = 0x00000100 , fpsdk::common::parser::novb::VELOCITY_UPDATE = 0x00000200 , fpsdk::common::parser::novb::DR_UPDATE = 0x00000800 , fpsdk::common::parser::novb::PHASE_WINDUP_UPDATE = 0x00001000 ,
  fpsdk::common::parser::novb::COURSE_OVER_GROUND_UPDATE = 0x00002000 , fpsdk::common::parser::novb::EXTERNAL_VELOCITY_UPDATE = 0x00004000 , fpsdk::common::parser::novb::EXTERNAL_ATTITUDE_UPDATE = 0x00008000 , fpsdk::common::parser::novb::EXTERNAL_HEADING_UPDATE = 0x00010000 ,
  fpsdk::common::parser::novb::EXTERNAL_HEIGHT_UPDATE = 0x00020000 , fpsdk::common::parser::novb::SECONDARY_INS_USED = 0x00400000 , fpsdk::common::parser::novb::TURN_ON_BIAS_ESTIMATED = 0x01000000 , fpsdk::common::parser::novb::ALIGNMENT_DIRECTION_VERIFIED = 0x02000000 ,
  fpsdk::common::parser::novb::ALIGNMENT_INDICATION_1 = 0x04000000 , fpsdk::common::parser::novb::ALIGNMENT_INDICATION_2 = 0x08000000 , fpsdk::common::parser::novb::ALIGNMENT_INDICATION_3 = 0x10000000 , fpsdk::common::parser::novb::NVM_SEED_INDICATION_1 = 0x20000000 ,
  fpsdk::common::parser::novb::NVM_SEED_INDICATION_2 = 0x40000000 , fpsdk::common::parser::novb::NVM_SEED_INDICATION_3 = 0x80000000
}
 Extended intertial solution status (bits) More...
 

Functions

constexpr uint16_t fpsdk::common::parser::novb::NovbMsgId (const uint8_t *msg)
 Get message ID.
 
constexpr bool fpsdk::common::parser::novb::NovbIsLongHeader (const uint8_t *msg)
 Check if message has the long header.
 
constexpr bool fpsdk::common::parser::novb::NovbIsShortHeader (const uint8_t *msg)
 Check if message has the short header.
 
bool fpsdk::common::parser::novb::NovbGetMessageName (char *name, const std::size_t size, const uint8_t *msg, const std::size_t msg_size)
 Get NOV_B message name.
 
bool fpsdk::common::parser::novb::NovbGetMessageInfo (char *info, const std::size_t size, const uint8_t *msg, const std::size_t msg_size)
 Get NOV_B message info.
 
const char * fpsdk::common::parser::novb::NovbMsgTypeSourceStr (const uint8_t message_type)
 Stringify message type measurement source.
 
const char * fpsdk::common::parser::novb::NovbTimeStatusStr (const NovbTimeStatus time_status)
 Stringify time status.
 

Variables

static constexpr uint8_t fpsdk::common::parser::novb::NOV_B_SYNC_1 = 0xaa
 Sync char 1.
 
static constexpr uint8_t fpsdk::common::parser::novb::NOV_B_SYNC_2 = 0x44
 Sync char 2.
 
static constexpr uint8_t fpsdk::common::parser::novb::NOV_B_SYNC_3_LONG = 0x12
 Sync char 3 (long header)
 
static constexpr uint8_t fpsdk::common::parser::novb::NOV_B_SYNC_3_SHORT = 0x13
 Sync char 3 (short header)
 
static constexpr std::size_t fpsdk::common::parser::novb::NOV_B_HEAD_SIZE_LONG = 28
 Size of the NOV_B long header (NovbLongHeader)
 
static constexpr std::size_t fpsdk::common::parser::novb::NOV_B_HEAD_SIZE_SHORT = 12
 Size of the NOV_B short header (NovbShortHeader)
 
NOV_B messages (names and IDs)
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_BESTGNSSPOS_MSGID = 1429
 NOV_B-BESTGNSSPOS message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_BESTGNSSPOS_STRID = "NOV_B-BESTGNSSPOS"
 NOV_B-BESTGNSSPOS message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_BESTPOS_MSGID = 42
 NOV_B-BESTPOS message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_BESTPOS_STRID = "NOV_B-BESTPOS"
 NOV_B-BESTPOS message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_BESTUTM_MSGID = 726
 NOV_B-BESTUTM message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_BESTUTM_STRID = "NOV_B-BESTUTM"
 NOV_B-BESTUTM message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_BESTVEL_MSGID = 99
 NOV_B-BESTVEL message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_BESTVEL_STRID = "NOV_B-BESTVEL"
 NOV_B-BESTVEL message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_BESTXYZ_MSGID = 241
 NOV_B-BESTXYZ message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_BESTXYZ_STRID = "NOV_B-BESTXYZ"
 NOV_B-BESTXYZ message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_CORRIMUS_MSGID = 2264
 NOV_B-CORRIMUS message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_CORRIMUS_STRID = "NOV_B-CORRIMUS"
 NOV_B-CORRIMUS message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_HEADING2_MSGID = 1335
 NOV_B-HEADING2 message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_HEADING2_STRID = "NOV_B-HEADING2"
 NOV_B-HEADING2 message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_IMURATECORRIMUS_MSGID = 1362
 NOV_B-IMURATECORRIMUS message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_IMURATECORRIMUS_STRID = "NOV_B-IMURATECORRIMUS"
 NOV_B-IMURATECORRIMUS message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_INSCONFIG_MSGID = 1945
 NOV_B-INSCONFIG message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_INSCONFIG_STRID = "NOV_B-INSCONFIG"
 NOV_B-INSCONFIG message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_INSPVA_MSGID = 507
 NOV_B-INSPVA message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_INSPVA_STRID = "NOV_B-INSPVA"
 NOV_B-INSPVA message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_INSPVAS_MSGID = 508
 NOV_B-INSPVAS message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_INSPVAS_STRID = "NOV_B-INSPVAS"
 NOV_B-INSPVAS message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_INSPVAX_MSGID = 1465
 NOV_B-INSPVAX message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_INSPVAX_STRID = "NOV_B-INSPVAX"
 NOV_B-INSPVAX message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_INSSTDEV_MSGID = 2051
 NOV_B-INSSTDEV message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_INSSTDEV_STRID = "NOV_B-INSSTDEV"
 NOV_B-INSSTDEV message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_PSRDOP2_MSGID = 1163
 NOV_B-PSRDOP2 message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_PSRDOP2_STRID = "NOV_B-PSRDOP2"
 NOV_B-PSRDOP2 message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_RAWDMI_MSGID = 2269
 NOV_B-RAWDMI message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_RAWDMI_STRID = "NOV_B-RAWDMI"
 NOV_B-RAWDMI message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_RAWIMU_MSGID = 268
 NOV_B-RAWIMU message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_RAWIMU_STRID = "NOV_B-RAWIMU"
 NOV_B-RAWIMU message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_RAWIMUSX_MSGID = 1462
 NOV_B-RAWIMUSX message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_RAWIMUSX_STRID = "NOV_B-RAWIMUSX"
 NOV_B-RAWIMUSX message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_RXSTATUS_MSGID = 93
 NOV_B-RXSTATUS message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_RXSTATUS_STRID = "NOV_B-RXSTATUS"
 NOV_B-RXSTATUS message name.
 
static constexpr uint16_t fpsdk::common::parser::novb::NOV_B_TIME_MSGID = 101
 NOV_B-TIME message ID.
 
static constexpr const char * fpsdk::common::parser::novb::NOV_B_TIME_STRID = "NOV_B-TIME"
 NOV_B-TIME message name.
 

Detailed Description

Fixposition SDK: Parser NOV_B routines and types.

* ___    ___
* \  \  /  /
*  \  \/  /   Copyright (c) Fixposition AG (www.fixposition.com) and contributors
*  /  /\  \   License: see the LICENSE file
* /__/  \__\
*
* Parts copyright (c) 2020 NovAtel Inc. See the LICENSE file.
* Based on work by flipflip (https://github.com/phkehl)
* The information on message structures, IDs, descriptions etc. in this file are from publicly available data, such as:
* - https://github.com/novatel/novatel_oem7_driver/tree/master
* - https://docs.novatel.com/OEM7/Content/Messages/Binary.htm
* - https://docs.novatel.com/OEM7/Content/Messages/Description_of_Short_Headers.htm
* 

Definition in file novb.hpp.

Macro Definition Documentation

◆ NOV_B_PACKED

#define NOV_B_PACKED   /* packed */

Message truct that must be packed.

Definition at line 50 of file novb.hpp.