namespace mrpt::obs::gnss

GNSS (GPS) data structures, mainly for use within mrpt::obs::CObservationGPS.

namespace gnss {

// namespaces

namespace mrpt::obs::gnss::nv_oem6_ins_status_type;
namespace mrpt::obs::gnss::nv_oem6_position_type;
namespace mrpt::obs::gnss::nv_oem6_solution_status;

// enums

enum gnss_message_type_t;

// structs

struct Message_NMEA_GGA;
struct Message_NMEA_GLL;
struct Message_NMEA_GSA;
struct Message_NMEA_RMC;
struct Message_NMEA_VTG;
struct Message_NMEA_ZDA;
struct Message_NV_OEM6_GENERIC_FRAME;
struct Message_NV_OEM6_GENERIC_SHORT_FRAME;
struct Message_NV_OEM6_RANGECMP;
struct Message_NV_OEM6_VERSION;
struct Message_TOPCON_PZS;
struct Message_TOPCON_SATS;
struct UTC_time;
struct gnss_message;
struct gnss_message_ptr;
struct nv_oem6_header_t;
struct nv_oem6_short_header_t;

// global variables

nv_oem6_header_t header;
nv_oem6_solution_status::nv_solution_status_t solution_stat =  nv_oem6_solution_status::INVALID_FIX;
nv_oem6_position_type::nv_position_type_t position_type =    nv_oem6_position_type::NONE;
double lat = 0;
double lon = 0;
double hgt = 0;
float undulation = 0;
uint32_t datum_id = 0;
float lat_sigma = 0;
float lon_sigma = 0;
float hgt_sigma = 0;
char base_station_id[4] {0, 0, 0, 0};
float diff_age = 0;
float sol_age = 0;
uint8_t num_sats_tracked = 0;
uint8_t num_sats_sol = 0;
uint8_t num_sats_sol_L1 = 0;
uint8_t num_sats_sol_multi = 0;
uint8_t reserved = 0;
uint8_t ext_sol_stat = 0;
uint8_t galileo_beidou_mask = 0;
uint8_t gps_glonass_mask = 0;
uint32_t crc = 0;
uint32_t week = 0;
double seconds_in_week = 0;
double vel_north = 0;
double vel_east = 0;
double vel_up = 0;
double roll = 0;
double pitch = 0;
double azimuth = 0;
nv_oem6_ins_status_type::nv_ins_status_type_t ins_status =    nv_oem6_ins_status_type::INS_INACTIVE;
double pos_cov[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
double att_cov[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
double vel_cov[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
uint32_t error = 0;
uint32_t num_stats = 0;
uint32_t rxstat = 0;
uint32_t rxstat_pri = 0;
uint32_t rxstat_set = 0;
uint32_t rxstat_clear = 0;
uint32_t aux1stat = 0;
uint32_t aux1stat_pri = 0;
uint32_t aux1stat_set = 0;
uint32_t aux1stat_clear = 0;
uint32_t aux2stat = 0;
uint32_t aux2stat_pri = 0;
uint32_t aux2stat_set = 0;
uint32_t aux2stat_clear = 0;
uint32_t aux3stat = 0;
uint32_t aux3stat_pri = 0;
uint32_t aux3stat_set = 0;
uint32_t aux3stat_clear = 0;
uint32_t sat_prn = 0;
uint32_t ref_week = 0;
uint32_t ref_secs = 0;
uint8_t subframe1[30];
uint8_t subframe2[30];
uint8_t subframe3[30];
double week_seconds = 0;
uint32_t imu_status = 0;
int32_t accel_z = 0;
int32_t accel_y_neg = 0;
int32_t accel_x = 0;
int32_t gyro_z = 0;
int32_t gyro_y_neg = 0;
int32_t gyro_x = 0;
double clock_offset = 0;
double clock_offset_std = 0;
double utc_offset = 0;
uint32_t clock_status = 0;
double a0 = 0;
double a1 = 0;
double a2 = 0;
double a3 = 0;
double b0 = 0;
double b1 = 0;
double b2 = 0;
double b3 = 0;
uint32_t utc_wn = 0;
uint32_t tot = 0;
double A0 = 0;
double A1 = 0;
uint32_t wn_lsf = 0;
uint32_t dn = 0;
uint32_t deltat_ls = 0;
uint32_t deltat_lsf = 0;

// global functions

template <class TGEODETICCOORDS>
GNSS_BINARY_MSG_DEFINITION_MID TGEODETICCOORDS getAsStruct() const;

bool getAllFieldDescriptions(std::ostream& o) const;
bool getAllFieldValues(std::ostream& o) const;
void fixEndianness();

} // namespace gnss

Global Variables

nv_oem6_header_t header

Novatel frame: NV_OEM6_BESTPOS.

Novatel frame: NV_OEM6_IONUTC.

Novatel frame: NV_OEM6_MARK2TIME.

Novatel frame: NV_OEM6_MARKTIME.

Novatel frame: NV_OEM6_MARKPOS.

Novatel frame: NV_OEM6_RAWIMUS.

Novatel frame: NV_OEM6_RAWEPHEM.

Novatel frame: NV_OEM6_RXSTATUS.

Novatel frame: NV_OEM6_INSCOVS.

Novatel frame: NV_OEM6_INSPVAS.

See also:

mrpt::obs::CObservationGPS Frame header

double lat = 0

[deg], [deg], hgt over sea level[m]

float lat_sigma = 0

Uncertainties (all in [m])

double pos_cov[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}

Position covariance matrix in local level frame (metres squared) xx,xy,xz,yx,yy,yz,zx,zy,zz.

double att_cov[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}

Attitude covariance matrix of the SPAN frame to the local level frame.

(deg sq) xx,xy,xz,yx,yy,yz,zx,zy,zz

double vel_cov[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}

Velocity covariance matrix in local level frame.

(metres/second squared) xx,xy,xz,yx,yy,yz,zx,zy,zz

double a0 = 0

Ionospheric alpha and beta constant terms parameters.

uint32_t utc_wn = 0

UTC reference week number.

uint32_t tot = 0

Reference time of UTC params.

double A0 = 0

UTC constant and 1st order terms.

uint32_t wn_lsf = 0

Future week number.

uint32_t dn = 0

Day number (1=sunday, 7=saturday)

uint32_t deltat_ls = 0

Delta time due to leap seconds.

uint32_t deltat_lsf = 0

Delta time due to leap seconds (future)

Global Functions

template <class TGEODETICCOORDS>
GNSS_BINARY_MSG_DEFINITION_MID TGEODETICCOORDS getAsStruct() const

Return the geodetic coords as a mrpt::topography::TGeodeticCoords structure (requires linking against mrpt-topography) Call as: getAsStruct<TGeodeticCoords>();.