20#ifndef __FPSDK_COMMON_GNSS_HPP__
21#define __FPSDK_COMMON_GNSS_HPP__
461 uint32_t
id_ = 0x00000000;
561struct std::hash<
fpsdk::common::gnss::Sat>
573struct std::hash<
fpsdk::common::gnss::SatSig>
GNSS types and utilities.
static constexpr SvNr NUM_QZSS
Number of QZSS satellites (J01-J10, PRN - 192)
Gnss SignalToGnss(const Signal signal)
Get GNSS for a signal.
@ CARRLOCK
Signal tracked and carrier locked.
@ SEARCH
Signal is being searched.
@ UNUSABLE
Signal tracked but unused.
@ ACQUIRED
Signal was acquired.
@ CODELOCK
Signal tracked and code locked.
const char * SigHealthStr(const SigHealth health)
Stringify signal health.
static constexpr SvNr FIRST_GLO
First GLONASS satellite number.
const char * FixTypeStr(const FixType fix_type)
Stringify GNSS fix type.
SigIono
Ionosphere corrections.
@ KLOB_GPS
GPS style Klobuchar corrections.
@ DUAL_FREQ
Dual frequency iono-free combination.
@ KLOB_BDS
BeiDou style Klobuchar corrections.
FixType NmeaQualityGgaToFixType(const parser::nmea::NmeaQualityGga quality)
Convert NMEA GGA quality to fix type.
const char * SigCorrStr(const SigCorr corr)
Stringify signal correction data availability.
Signal NmeaSignalIdToSignal(const parser::nmea::NmeaSignalId signalId)
Convert NMEA signal ID to signal.
static constexpr SvNr FIRST_QZSS
First QZSS satellite number.
@ UNHEALTHY
Signal is unhealthy.
@ HEALTHY
Signal is healthy.
const char * SigIonoStr(const SigIono iono)
Stringify ionosphere corrections.
@ QZSS_L1S
[L1] QZSS L1 S (SAIF) signal
@ BDS_B2A
[L5] BeiDou B2a signal (B2 ap and B2 ad)
@ GAL_E6
[E6] Galileo E6 signal (E6A, E6B, and E6C)
@ GLO_L2OF
[L2] GLONASS L2 OF signal
@ QZSS_L1CA
[L1] QZSS L1 C/A signal
@ GAL_E5A
[L5] Galileo E5a signal (E5 aI and E5 aQ)
@ GPS_L5
[L5] GPS L5 signal (L5 I and L5 Q)
@ QZSS_L5
[L5] QZSS L5 signal (L5 I and L5 Q)
@ BDS_B1C
[L1] BeiDou B1c signal (B1 Cp and B1 Cd)
@ BDS_B2I
[L2] BeiDou B2I signal (B2I D1 and B2I D2)
@ GLO_L1OF
[L1] GLONASS L1 OF signal
@ GAL_E1
[L1] Galileo E1 signal (E1 C and E1 B)
@ SBAS_L1CA
[L1] SBAS L1 C/A signal
@ GAL_E5B
[L2] Galileo E5b signal (E5 bI and E5 bQ)
@ BDS_B3I
[E6] BeiDou B3I signal (B3I D1 and B3I D2)
@ GPS_L1CA
[L1] GPS L1 C/A signal
@ GPS_L2C
[L2] GPS L2 C signal (L2 CL and L2 CM)
@ BDS_B1I
[L1] BeiDou B1I signal (B1I D1 and B1I D2)
@ NAVIC_L5A
[L5] NavIC L5 A
@ QZSS_L2C
[L2] QZSS L2 C signal (L2 CL and L2 CM)
uint8_t SvNr
Satellite number (within a GNSS)
static constexpr SvNr FIRST_BDS
First BeiDou satellite number.
Sat UbxGnssIdSvIdToSat(const uint8_t gnssId, const uint8_t svId)
Convert UBX gnssId and svId to satellite.
static constexpr SvNr NUM_GLO
Number of GLONASS satellites (R01-R32, slot)
static constexpr SatSig INVALID_SATSIG
Invalid SatSig.
static constexpr SvNr FIRST_SBAS
First SBAS satellite number.
static constexpr SvNr NUM_SBAS
Number of SBAS satellites (S20-S59, PRN - 100)
const char * SigUseStr(const SigUse use)
Stringify signal use.
static constexpr SvNr NUM_GAL
Number of Galileo satellites (E01-E36, PRN)
@ DRONLY
Dead-reckoning only fix.
@ SPP_3D_DR
3D + dead-reckoning fix
@ RTK_FLOAT
RTK float fix (implies 3D fix)
@ RTK_FIXED_DR
RTK fixed fix + dead-reckoning (implies RTK_FIXED fix)
@ RTK_FLOAT_DR
RTK float fix + dead-reckoning (implies RTK_FLOAT fix)
@ RTK_FIXED
RTK fixed fix (implies 3D fix)
Gnss UbxGnssIdToGnss(const uint8_t gnssId)
Convert UBX gnssId to GNSS.
SatOrb
Satellite orbit source.
@ OTHER
Other, unspecified orbit source.
static constexpr Sat INVALID_SAT
Invalid "sat".
const char * BandStr(const Band band)
Stringify frequency band.
static constexpr SvNr NUM_GPS
Number of GPS satellites (G01-G32, PRN)
const char * SatOrbStr(const SatOrb orb)
Stringify satellite orbit source.
static constexpr SvNr NUM_BDS
Number of BeiDou satellites (C01-C63, PRN)
static constexpr SvNr FIRST_NAVIC
First NavIC satellite number.
Sat NmeaSystemIdSvIdToSat(const parser::nmea::NmeaSystemId systemId, const uint8_t svId, const parser::nmea::NmeaVersion nmeaVersion=parser::nmea::NmeaVersion::V411)
Convert NMEA system ID and satellite number to satellite.
const char * GnssStr(const Gnss gnss)
Stringify GNSS.
static constexpr SvNr FIRST_GPS
First GPS satellite number.
static constexpr SvNr NUM_NAVIC
Number of NavIC satellites (I01-I14, PRN)
static constexpr SvNr FIRST_GAL
First Galileo satellite number.
FixType NmeaModeGllVtgToFixType(const parser::nmea::NmeaModeGllVtg mode)
Convert NMEA GLL/VTG mode to fix type.
@ L5
L5 (E5) band (~1.1GHz)
@ L1
L1 (E1) band (~1.5GHz)
FixType NmeaModeRmcGnsToFixType(const parser::nmea::NmeaModeRmcGns mode)
Convert NMEA RMC/GNS mode to fix type.
static constexpr SvNr INAVLID_SVNR
Invalid satellite number (in any GNSS)
const char * SignalStr(const Signal signal, const bool kurz=false)
Stringify signal.
char GnssChar(const Gnss gnss)
Get GNSS char.
SigCorr
Signal correction data availability.
@ RTCM3_OSR
RTCM v3.x OSR type RTK corrections available.
@ RTCM3_SSR
RTCM v3.x SSR type RTK corrections available.
@ SPARTN
SPARTN corrections available.
@ RTCM2
RTCM v2 (DGNSS) corrections available.
@ QZSS_SLAS
QZSS SLAS corrections available.
Band SignalToBand(const Signal signal)
Get frequency band for a signal.
Signal UbxGnssIdSigIdToSignal(const uint8_t gnssId, const uint8_t sigId)
Convert UBX gnssId and sigId to signal.
NmeaSystemId
NMEA system IDs.
NmeaModeRmcGns
NMEA-Gx-RMC and NMEA-Gx-GNS pos mode.
NmeaModeGllVtg
NMEA-Gx-GLL and NMEA-Gx-VTG pos mode.
NmeaSignalId
NMEA signal IDs.
NmeaQualityGga
NMEA-Gx-GGA quality indicator.
Fixposition SDK: Common library.
Fixposition SDK: Parser NMEA routines and types.
Satellite plus frequency band and signal ("satsig"), suitable for indexing and sorting.
bool operator<(const SatSig &rhs) const
Less-than operator.
SvNr GetSvNr() const
Get satellite number.
Band GetBand() const
Get band.
uint32_t id_
Internal representation of Gnss+SvNr+Band+Signal.
SatSig(const Gnss gnss, const SvNr svnr, const Band band, const Signal signal)
Ctor: create SatSig.
Signal GetSignal() const
Get signal.
Gnss GetGnss() const
Get GNSS.
bool operator!=(const SatSig &rhs) const
Not equal operator.
Sat GetSat() const
Get satellite.
SatSig(const Sat sat, const Signal signal)
Ctor: create SatSig.
bool operator==(const SatSig &rhs) const
Equal operator.
SatSig()=default
Default ctor: invalid SatSig (INVALID_SATSIG)
Satellite ("sat"), consisting of GNSS and satellite number, suitable for indexing and sorting.
Sat(const Gnss gnss, const SvNr svnr)
Ctor: from GNSS and satellite number.
Gnss GetGnss() const
Get GNSS.
uint16_t id_
Internal representation of Gnss+SvNr.
bool operator==(const Sat &rhs) const
Equal operator.
Sat(const char *str)
Ctor: from string.
bool operator!=(const Sat &rhs) const
Not equal operator.
Sat()=default
Default ctor: invalid satellite (INVALID_SAT)
const char * GetStr() const
Stringify satellite.
bool operator<(const Sat &rhs) const
Less-than operator.
SvNr GetSvNr() const
Get satellite number.
Constants for different versions of NMEA.
static const NmeaVersion V411
Value for NMEA v4.11.
std::size_t operator()(const fpsdk::common::gnss::SatSig &k) const
operator
std::size_t operator()(const fpsdk::common::gnss::Sat &k) const
operator
Fixposition SDK: Common types and type helpers.
Fixposition SDK: Parser UBX routines and types.