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

Fixposition SDK: GNSS types and utilities. More...

#include <cstdint>
#include "parser/nmea.hpp"
#include "parser/ubx.hpp"
#include "types.hpp"
Include dependency graph for gnss.hpp:

Go to the source code of this file.

Classes

struct  fpsdk::common::gnss::Sat
 Satellite ("sat"), consisting of GNSS and satellite number, suitable for indexing and sorting. More...
struct  fpsdk::common::gnss::SatSig
 Satellite plus frequency band and signal ("satsig"), suitable for indexing and sorting. More...
struct  std::hash< fpsdk::common::gnss::Sat >
 Hasher for Sat (e.g. std::unordered_map) More...
struct  std::hash< fpsdk::common::gnss::SatSig >
 Hasher for SatSig (e.g. std::unordered_map) More...

Namespaces

namespace  fpsdk
 Fixposition SDK.
namespace  fpsdk::common
 Fixposition SDK: Common library.
namespace  fpsdk::common::gnss
 GNSS types and utilities.

Typedefs

using fpsdk::common::gnss::SvNr = uint8_t
 Satellite number (within a GNSS)

Enumerations

enum class  fpsdk::common::gnss::FixType : uint8_t {
  fpsdk::common::gnss::UNKNOWN = 0 , fpsdk::common::gnss::NOFIX = 1 , fpsdk::common::gnss::DRONLY = 2 , fpsdk::common::gnss::TIME = 3 ,
  fpsdk::common::gnss::SPP_2D = 4 , fpsdk::common::gnss::SPP_3D = 5 , fpsdk::common::gnss::SPP_3D_DR = 6 , fpsdk::common::gnss::RTK_FLOAT = 7 ,
  fpsdk::common::gnss::RTK_FIXED = 8 , fpsdk::common::gnss::RTK_FLOAT_DR = 9 , fpsdk::common::gnss::RTK_FIXED_DR = 10
}
 GNSS fix types. More...
enum class  fpsdk::common::gnss::Gnss : uint8_t {
  fpsdk::common::gnss::UNKNOWN = 0 , fpsdk::common::gnss::GPS , fpsdk::common::gnss::SBAS , fpsdk::common::gnss::GAL ,
  fpsdk::common::gnss::BDS , fpsdk::common::gnss::QZSS , fpsdk::common::gnss::GLO , fpsdk::common::gnss::NAVIC
}
 GNSS. More...
enum class  fpsdk::common::gnss::Signal : uint8_t {
  fpsdk::common::gnss::UNKNOWN = 0 , fpsdk::common::gnss::GPS_L1CA , fpsdk::common::gnss::GPS_L2C , fpsdk::common::gnss::GPS_L5 ,
  fpsdk::common::gnss::SBAS_L1CA , fpsdk::common::gnss::GAL_E1 , fpsdk::common::gnss::GAL_E6 , fpsdk::common::gnss::GAL_E5B ,
  fpsdk::common::gnss::GAL_E5A , fpsdk::common::gnss::BDS_B1C , fpsdk::common::gnss::BDS_B1I , fpsdk::common::gnss::BDS_B3I ,
  fpsdk::common::gnss::BDS_B2I , fpsdk::common::gnss::BDS_B2A , fpsdk::common::gnss::QZSS_L1CA , fpsdk::common::gnss::QZSS_L1S ,
  fpsdk::common::gnss::QZSS_L2C , fpsdk::common::gnss::QZSS_L5 , fpsdk::common::gnss::GLO_L1OF , fpsdk::common::gnss::GLO_L2OF ,
  fpsdk::common::gnss::NAVIC_L5A
}
 Signals. More...
enum class  fpsdk::common::gnss::Band : uint8_t {
  fpsdk::common::gnss::UNKNOWN = 0 , fpsdk::common::gnss::L1 , fpsdk::common::gnss::E6 , fpsdk::common::gnss::L2 ,
  fpsdk::common::gnss::L5
}
 Frequency bands. More...
enum class  fpsdk::common::gnss::SigUse : uint8_t {
  fpsdk::common::gnss::UNKNOWN = 0 , fpsdk::common::gnss::NONE , fpsdk::common::gnss::SEARCH , fpsdk::common::gnss::ACQUIRED ,
  fpsdk::common::gnss::UNUSABLE , fpsdk::common::gnss::CODELOCK , fpsdk::common::gnss::CARRLOCK
}
 Signal use. More...
enum class  fpsdk::common::gnss::SigCorr : uint8_t {
  fpsdk::common::gnss::UNKNOWN = 0 , fpsdk::common::gnss::NONE , fpsdk::common::gnss::SBAS , fpsdk::common::gnss::BDS ,
  fpsdk::common::gnss::RTCM2 , fpsdk::common::gnss::RTCM3_OSR , fpsdk::common::gnss::RTCM3_SSR , fpsdk::common::gnss::QZSS_SLAS ,
  fpsdk::common::gnss::SPARTN
}
 Signal correction data availability. More...
enum class  fpsdk::common::gnss::SigIono : uint8_t {
  fpsdk::common::gnss::UNKNOWN = 0 , fpsdk::common::gnss::NONE , fpsdk::common::gnss::KLOB_GPS , fpsdk::common::gnss::KLOB_BDS ,
  fpsdk::common::gnss::SBAS , fpsdk::common::gnss::DUAL_FREQ
}
 Ionosphere corrections. More...
enum class  fpsdk::common::gnss::SigHealth : uint8_t { fpsdk::common::gnss::UNKNOWN = 0 , fpsdk::common::gnss::HEALTHY , fpsdk::common::gnss::UNHEALTHY }
 Signal health. More...
enum class  fpsdk::common::gnss::SatOrb : uint8_t {
  fpsdk::common::gnss::UNKNOWN = 0x00 , fpsdk::common::gnss::NONE = 0x01 , fpsdk::common::gnss::EPH = 0x02 , fpsdk::common::gnss::ALM = 0x04 ,
  fpsdk::common::gnss::PRED = 0x08 , fpsdk::common::gnss::OTHER = 0x10
}
 Satellite orbit source. More...

Functions

const char * fpsdk::common::gnss::FixTypeStr (const FixType fix_type)
 Stringify GNSS fix type.
const char * fpsdk::common::gnss::GnssStr (const Gnss gnss)
 Stringify GNSS.
char fpsdk::common::gnss::GnssChar (const Gnss gnss)
 Get GNSS char.
const char * fpsdk::common::gnss::SignalStr (const Signal signal, const bool kurz=false)
 Stringify signal.
const char * fpsdk::common::gnss::BandStr (const Band band)
 Stringify frequency band.
const char * fpsdk::common::gnss::SigUseStr (const SigUse use)
 Stringify signal use.
const char * fpsdk::common::gnss::SigCorrStr (const SigCorr corr)
 Stringify signal correction data availability.
const char * fpsdk::common::gnss::SigIonoStr (const SigIono iono)
 Stringify ionosphere corrections.
const char * fpsdk::common::gnss::SigHealthStr (const SigHealth health)
 Stringify signal health.
const char * fpsdk::common::gnss::SatOrbStr (const SatOrb orb)
 Stringify satellite orbit source.
Band fpsdk::common::gnss::SignalToBand (const Signal signal)
 Get frequency band for a signal.
Gnss fpsdk::common::gnss::SignalToGnss (const Signal signal)
 Get GNSS for a signal.
Gnss fpsdk::common::gnss::UbxGnssIdToGnss (const uint8_t gnssId)
 Convert UBX gnssId to GNSS.
Sat fpsdk::common::gnss::UbxGnssIdSvIdToSat (const uint8_t gnssId, const uint8_t svId)
 Convert UBX gnssId and svId to satellite.
Signal fpsdk::common::gnss::UbxGnssIdSigIdToSignal (const uint8_t gnssId, const uint8_t sigId)
 Convert UBX gnssId and sigId to signal.
FixType fpsdk::common::gnss::NmeaQualityGgaToFixType (const parser::nmea::NmeaQualityGga quality)
 Convert NMEA GGA quality to fix type.
FixType fpsdk::common::gnss::NmeaModeRmcGnsToFixType (const parser::nmea::NmeaModeRmcGns mode)
 Convert NMEA RMC/GNS mode to fix type.
FixType fpsdk::common::gnss::NmeaModeGllVtgToFixType (const parser::nmea::NmeaModeGllVtg mode)
 Convert NMEA GLL/VTG mode to fix type.
Sat fpsdk::common::gnss::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.
Signal fpsdk::common::gnss::NmeaSignalIdToSignal (const parser::nmea::NmeaSignalId signalId)
 Convert NMEA signal ID to signal.

Variables

static constexpr SvNr fpsdk::common::gnss::NUM_GPS = 32
 Number of GPS satellites (G01-G32, PRN)
static constexpr SvNr fpsdk::common::gnss::NUM_SBAS = 39
 Number of SBAS satellites (S20-S59, PRN - 100)
static constexpr SvNr fpsdk::common::gnss::NUM_GAL = 36
 Number of Galileo satellites (E01-E36, PRN)
static constexpr SvNr fpsdk::common::gnss::NUM_BDS = 63
 Number of BeiDou satellites (C01-C63, PRN)
static constexpr SvNr fpsdk::common::gnss::NUM_QZSS = 10
 Number of QZSS satellites (J01-J10, PRN - 192)
static constexpr SvNr fpsdk::common::gnss::NUM_GLO = 32
 Number of GLONASS satellites (R01-R32, slot)
static constexpr SvNr fpsdk::common::gnss::NUM_NAVIC = 14
 Number of NavIC satellites (I01-I14, PRN)
static constexpr SvNr fpsdk::common::gnss::FIRST_GPS = 1
 First GPS satellite number.
static constexpr SvNr fpsdk::common::gnss::FIRST_SBAS = 20
 First SBAS satellite number.
static constexpr SvNr fpsdk::common::gnss::FIRST_GAL = 1
 First Galileo satellite number.
static constexpr SvNr fpsdk::common::gnss::FIRST_BDS = 1
 First BeiDou satellite number.
static constexpr SvNr fpsdk::common::gnss::FIRST_QZSS = 1
 First QZSS satellite number.
static constexpr SvNr fpsdk::common::gnss::FIRST_GLO = 1
 First GLONASS satellite number.
static constexpr SvNr fpsdk::common::gnss::FIRST_NAVIC = 1
 First NavIC satellite number.
static constexpr SvNr fpsdk::common::gnss::INAVLID_SVNR = 0
 Invalid satellite number (in any GNSS)
static constexpr Sat fpsdk::common::gnss::INVALID_SAT
 Invalid "sat".
static constexpr SatSig fpsdk::common::gnss::INVALID_SATSIG
 Invalid SatSig.

Detailed Description

Fixposition SDK: GNSS types and utilities.

* ___    ___
* \  \  /  /
*  \  \/  /   Copyright (c) Fixposition AG (www.fixposition.com) and contributors
*  /  /\  \   License: see the LICENSE file
* /__/  \__\
*
* Based on work by flipflip (https://github.com/phkehl)
* 

Definition in file gnss.hpp.