|
QGroundControl
Ground Control Station for MAVLink Drones
|
Namespaces | |
| namespace | Field |
| namespace | FixDimension |
| namespace | GgaQuality |
| namespace | SatelliteIds |
Classes | |
| struct | Frame |
| Views into a single wire frame; the caller owns the backing bytes. More... | |
| class | Framer |
| struct | GGA |
| struct | GLL |
| struct | GST |
| struct | GSV |
| class | LineFramer |
| Frames printable ASCII lines. A '$' or '#' restarts the line, so a sentence or log is not lost after garbage. More... | |
| struct | NavigationEpoch |
| class | NavigationEpochAssembler |
| struct | NavigationStatus |
| struct | NavigationUpdate |
| struct | RMC |
| class | SatelliteAssembler |
| Bounded multipart/multisignal assembly; scheduling and delivery remain with the caller. More... | |
| struct | SatelliteData |
| struct | SatelliteSystem |
| struct | Sentence |
| struct | UtcDate |
| struct | VTG |
| struct | ZDA |
Typedefs | |
| using | SatelliteEpoch = std::vector< SatelliteSystem > |
Functions | |
| GPSConstellation | satelliteConstellation (std::string_view talker, std::optional< int > systemId, std::optional< int > satelliteId) |
| std::optional< GSV > | gsv (const Sentence &input) |
| int | satelliteId (GPSConstellation constellation, int wireId) |
| Canonical constellation-local identifier; preserve unknown/vendor ranges unchanged. | |
| unsigned char | checksum (std::string_view body) |
| std::optional< uint32_t > | hexNumber (std::string_view digits) |
| The value of digits when every one is a hexadecimal digit, with no sign or prefix; nullopt otherwise. | |
| size_t | splitFields (std::string_view text, std::span< std::string_view > fields) |
| Preserve empty fields, including the final field. Return zero on storage overflow. | |
| std::optional< Frame > | frame (std::string_view text) |
| bool | isStandardSentence (std::string_view text) |
| A checked sentence from a standard talker, not a proprietary $P... sentence. | |
| std::optional< Sentence > | sentence (std::string_view text) |
| double | degreesFromDegreesMinutes (double ddmm) |
| Convert a signed ddmm.mmmm (or dddmm.mmmm) value; invalid values return NaN. | |
| std::optional< double > | coordinate (std::string_view field, std::string_view hemisphere, bool latitude) |
| std::optional< GGA > | gga (const Sentence &input) |
| Quality zero is a valid fix-loss observation with empty coordinates and optional hemisphere fields. | |
| std::optional< int > | utcMilliseconds (std::string_view field) |
| std::optional< UtcDate > | rmcDate (std::string_view field) |
| std::optional< RMC > | rmc (const Sentence &input) |
| std::optional< GLL > | gll (const Sentence &input) |
| std::optional< VTG > | vtg (const Sentence &input) |
| std::optional< ZDA > | zda (const Sentence &input) |
| GPSFixQuality | fixQuality (unsigned quality, GPSFixQuality autonomous) |
| Autonomous GGA does not distinguish 2D/3D; the caller supplies its independently resolved quality. | |
| std::optional< NavigationStatus > | navigationStatus (const Sentence &input) |
| std::optional< GST > | gst (const Sentence &input) |
| template<class T > | |
| std::optional< T > | number (std::string_view field, int base=DECIMAL_BASE) |
| constexpr bool | isAsciiDigit (char ch) |
| Locale-independent ASCII character classes for receiver text. | |
| constexpr bool | isAsciiUpper (char ch) |
Variables | |
| constexpr int | DECIMAL_BASE = 10 |
| constexpr int | HEX_BASE = 16 |
| constexpr int | CHECKSUM_DIGITS = 2 |
| constexpr double | MINUTES_PER_DEGREE = 60.0 |
| using NMEA::SatelliteEpoch = typedef std::vector<SatelliteSystem> |
Definition at line 85 of file NMEASatellites.h.
| unsigned char NMEA::checksum | ( | std::string_view | body | ) |
Definition at line 55 of file NMEASentence.cc.
References QGC::nmeaChecksum().
Referenced by NMEAUtils::frame(), and NMEA::Frame::hasValidChecksum().
| std::optional< double > NMEA::coordinate | ( | std::string_view | field, |
| std::string_view | hemisphere, | ||
| bool | latitude | ||
| ) |
Definition at line 147 of file NMEASentence.cc.
References latitude, and MINUTES_PER_DEGREE.
| double NMEA::degreesFromDegreesMinutes | ( | double | ddmm | ) |
Convert a signed ddmm.mmmm (or dddmm.mmmm) value; invalid values return NaN.
Definition at line 137 of file NMEASentence.cc.
References MINUTES_PER_DEGREE.
| GPSFixQuality NMEA::fixQuality | ( | unsigned | quality, |
| GPSFixQuality | autonomous | ||
| ) |
Autonomous GGA does not distinguish 2D/3D; the caller supplies its independently resolved quality.
Definition at line 321 of file NMEASentence.cc.
References NMEA::GgaQuality::DIFFERENTIAL, NMEA::GgaQuality::ESTIMATED, NMEA::GgaQuality::GPS, NMEA::GgaQuality::INVALID, NMEA::GgaQuality::MANUAL, NMEA::GgaQuality::RTK_FIXED, and NMEA::GgaQuality::RTK_FLOAT.
| std::optional< Frame > NMEA::frame | ( | std::string_view | text | ) |
Split a printable $BODY[*CHECKSUM] frame, accepting no terminator, LF, or CRLF. Checksum syntax and value are checked separately so malformed checksums can be repaired.
Definition at line 91 of file NMEASentence.cc.
References NMEA::Sentence::PREFIX_LENGTH.
Referenced by QuectelCodec::checkedBody(), NMEAUtils::repairChecksum(), and sentence().
Quality zero is a valid fix-loss observation with empty coordinates and optional hemisphere fields.
Definition at line 167 of file NMEASentence.cc.
References coordinate(), NMEA::Sentence::count, NMEA::Sentence::fields, NMEA::Field::GGA_ALTITUDE, NMEA::Field::GGA_ALTITUDE_UNITS, NMEA::Field::GGA_GEOID_SEPARATION, NMEA::Field::GGA_GEOID_UNITS, NMEA::Field::GGA_HDOP, NMEA::Field::GGA_LATITUDE, NMEA::Field::GGA_LATITUDE_HEMISPHERE, NMEA::Field::GGA_LONGITUDE, NMEA::Field::GGA_LONGITUDE_HEMISPHERE, NMEA::Field::GGA_MIN_FIELDS, NMEA::Field::GGA_QUALITY, NMEA::Field::GGA_SATELLITES_USED, NMEA::GgaQuality::INVALID, latitude, longitude, NMEA::GgaQuality::MAX_VALUE, NMEA::GGA::quality, and NMEA::Sentence::type().
Definition at line 275 of file NMEASentence.cc.
References coordinate(), NMEA::Sentence::count, NMEA::Sentence::fields, NMEA::Field::GLL_LATITUDE, NMEA::Field::GLL_LATITUDE_HEMISPHERE, NMEA::Field::GLL_LONGITUDE, NMEA::Field::GLL_LONGITUDE_HEMISPHERE, NMEA::Field::GLL_MIN_FIELDS, NMEA::Field::GLL_STATUS, NMEA::Field::GLL_TIME, latitude, longitude, NMEA::Sentence::type(), and utcMilliseconds().
Definition at line 367 of file NMEASentence.cc.
References NMEA::Sentence::count, NMEA::Sentence::fields, NMEA::Field::GST_ALTITUDE_ERROR, NMEA::Field::GST_LATITUDE_ERROR, NMEA::Field::GST_LONGITUDE_ERROR, NMEA::GST::horizontalAccuracy, latitude, longitude, NMEA::Sentence::type(), and NMEA::GST::verticalAccuracy.
Definition at line 124 of file NMEASatellites.cc.
References NMEA::SatelliteData::constellation, NMEA::Sentence::count, NMEA::Sentence::fields, HEX_BASE, NMEA::SatelliteData::id, satelliteConstellation(), satelliteId(), NMEA::Sentence::talker(), NMEA::Sentence::type(), and Unknown.
Referenced by NMEA::SatelliteAssembler::ingest().
| std::optional< uint32_t > NMEA::hexNumber | ( | std::string_view | digits | ) |
The value of digits when every one is a hexadecimal digit, with no sign or prefix; nullopt otherwise.
Definition at line 60 of file NMEASentence.cc.
References HEX_BASE.
Referenced by gpsASCIILog(), and NMEA::Frame::hasValidChecksum().
|
constexpr |
Locale-independent ASCII character classes for receiver text.
Definition at line 157 of file NMEASentence.h.
|
constexpr |
Definition at line 162 of file NMEASentence.h.
| bool NMEA::isStandardSentence | ( | std::string_view | text | ) |
A checked sentence from a standard talker, not a proprietary $P... sentence.
Definition at line 116 of file NMEASentence.cc.
References sentence().
| std::optional< NavigationStatus > NMEA::navigationStatus | ( | const Sentence & | input | ) |
Receiver-declared validity, independent of coordinate availability. A valid flag alone is not a usable fix. GSA is untimed; malformed/unsupported status fields return no observation.
Definition at line 343 of file NMEASentence.cc.
References NMEA::Sentence::count, NMEA::Sentence::fields, NMEA::Field::GGA_QUALITY, NMEA::Field::GLL_STATUS, NMEA::Field::GLL_TIME, NMEA::Field::GSA_DIMENSION, NMEA::GgaQuality::INVALID, NMEA::GgaQuality::MAX_VALUE, NMEA::FixDimension::NO_FIX, NMEA::Field::RMC_STATUS, NMEA::FixDimension::THREE_D, NMEA::Sentence::type(), NMEA::Field::UTC_TIME, and utcMilliseconds().
Referenced by NMEA::NavigationEpochAssembler::ingest().
| std::optional< T > NMEA::number | ( | std::string_view | field, |
| int | base = DECIMAL_BASE |
||
| ) |
Definition at line 255 of file NMEASentence.cc.
References coordinate(), NMEA::Sentence::count, NMEA::RMC::courseDegrees, NMEA::Sentence::fields, NMEA::RMC::latitude, latitude, NMEA::RMC::longitude, longitude, NMEA::Field::RMC_COURSE, NMEA::Field::RMC_LATITUDE, NMEA::Field::RMC_LATITUDE_HEMISPHERE, NMEA::Field::RMC_LONGITUDE, NMEA::Field::RMC_LONGITUDE_HEMISPHERE, NMEA::Field::RMC_MIN_FIELDS, NMEA::Field::RMC_SPEED_KNOTS, NMEA::Field::RMC_STATUS, NMEA::RMC::speedMetersPerSecond, NMEA::Sentence::type(), NMEA::Field::UTC_TIME, utcMilliseconds(), and NMEA::RMC::utcMilliseconds.
| std::optional< UtcDate > NMEA::rmcDate | ( | std::string_view | field | ) |
Definition at line 236 of file NMEASentence.cc.
| GPSConstellation NMEA::satelliteConstellation | ( | std::string_view | talker, |
| std::optional< int > | systemId, | ||
| std::optional< int > | satelliteId | ||
| ) |
Definition at line 39 of file NMEASatellites.cc.
References satelliteId().
Referenced by gsv(), and NMEA::SatelliteAssembler::ingest().
|
inline |
Canonical constellation-local identifier; preserve unknown/vendor ranges unchanged.
Definition at line 32 of file NMEASatellites.h.
References BeiDou, Galileo, GLONASS, QZSS, and SBAS.
Referenced by gsv(), NMEA::SatelliteAssembler::ingest(), and satelliteConstellation().
| std::optional< Sentence > NMEA::sentence | ( | std::string_view | text | ) |
Definition at line 122 of file NMEASentence.cc.
References NMEA::Sentence::count, NMEA::Sentence::fields, frame(), NMEA::Sentence::HEADER_LENGTH, NMEA::Sentence::PREFIX_LENGTH, and splitFields().
Referenced by NMEA::NavigationEpochAssembler::ingest(), and isStandardSentence().
| size_t NMEA::splitFields | ( | std::string_view | text, |
| std::span< std::string_view > | fields | ||
| ) |
Preserve empty fields, including the final field. Return zero on storage overflow.
Definition at line 70 of file NMEASentence.cc.
Referenced by sentence().
| std::optional< int > NMEA::utcMilliseconds | ( | std::string_view | field | ) |
Definition at line 206 of file NMEASentence.cc.
References DECIMAL_BASE.
Referenced by gll(), NMEA::SatelliteAssembler::ingest(), navigationStatus(), rmc(), and zda().
Definition at line 289 of file NMEASentence.cc.
References NMEA::Sentence::count, NMEA::VTG::courseDegrees, NMEA::Sentence::fields, NMEA::VTG::speedMetersPerSecond, NMEA::Sentence::type(), NMEA::Field::VTG_MIN_FIELDS, NMEA::Field::VTG_SPEED_KMH, NMEA::Field::VTG_SPEED_KNOTS, and NMEA::Field::VTG_TRUE_COURSE.
Definition at line 303 of file NMEASentence.cc.
References NMEA::Sentence::count, NMEA::Sentence::fields, NMEA::Sentence::type(), NMEA::Field::UTC_TIME, utcMilliseconds(), NMEA::Field::ZDA_DAY, NMEA::Field::ZDA_MIN_FIELDS, NMEA::Field::ZDA_MONTH, and NMEA::Field::ZDA_YEAR.
|
constexpr |
Definition at line 21 of file NMEASentence.h.
Referenced by NMEA::Frame::hasValidChecksum().
|
constexpr |
Definition at line 19 of file NMEASentence.h.
Referenced by NMEAUtils::makeGGA(), and utcMilliseconds().
|
constexpr |
Definition at line 20 of file NMEASentence.h.
Referenced by gsv(), hexNumber(), and NMEA::SatelliteAssembler::ingest().
|
constexpr |
Definition at line 22 of file NMEASentence.h.
Referenced by coordinate(), degreesFromDegreesMinutes(), and NMEAUtils::makeGGA().