14namespace SatelliteIds {
34 namespace Id = SatelliteIds;
36 switch (constellation) {
38 return wireId >= Id::GLONASS_FIRST_NMEA_ID && wireId <= Id::GLONASS_LAST_NMEA_ID
39 ? wireId - Id::GLONASS_FIRST_NMEA_ID + Id::FIRST_LOCAL_ID
42 return wireId >= Id::GALILEO_FIRST_NMEA_ID && wireId <= Id::GALILEO_LAST_NMEA_ID
43 ? wireId - Id::GALILEO_FIRST_NMEA_ID + Id::FIRST_LOCAL_ID
46 if (wireId >= Id::BEIDOU_EXTENDED_FIRST_NMEA_ID && wireId <= Id::BEIDOU_EXTENDED_LAST_NMEA_ID) {
47 return wireId - Id::BEIDOU_EXTENDED_FIRST_NMEA_ID + Id::FIRST_LOCAL_ID;
49 return wireId >= Id::BEIDOU_LEGACY_FIRST_NMEA_ID && wireId <= Id::BEIDOU_LEGACY_LAST_NMEA_ID
50 ? wireId - Id::BEIDOU_LEGACY_FIRST_NMEA_ID + Id::FIRST_LOCAL_ID
53 return wireId >= Id::QZSS_FIRST_NMEA_ID && wireId <= Id::QZSS_LAST_NMEA_ID
54 ? wireId - Id::QZSS_FIRST_NMEA_ID + Id::FIRST_LOCAL_ID
57 return wireId >= Id::SBAS_FIRST_NMEA_ID && wireId <= Id::SBAS_LAST_NMEA_ID
58 ? wireId - Id::SBAS_FIRST_NMEA_ID + Id::SBAS_FIRST_PRN
98[[nodiscard]] std::optional<GSV>
gsv(
const Sentence& input);
104 static constexpr std::chrono::microseconds
IDLE_TIMEOUT = std::chrono::milliseconds(150);
105 static constexpr std::chrono::microseconds
BATCH_TIMEOUT = std::chrono::seconds(1);
127 uint64_t timestamp = 0;
128 std::vector<SatelliteData> satellites = {};
135 uint64_t timestamp = 0;
139 std::map<GPSConstellation, std::map<int, View>> _views;
140 std::map<GPSConstellation, Used> _used;
141 std::optional<int> _time;
142 std::optional<uint64_t> _batchStartedUs;
143 uint64_t _lastAcceptedUs = 0;
std::array< MessageId, 4 > messages
Bounded multipart/multisignal assembly; scheduling and delivery remain with the caller.
std::optional< uint64_t > deadlineUs() const
Update ingest(const Sentence &input, uint64_t receivedAtUs)
static constexpr std::chrono::microseconds BATCH_TIMEOUT
SatelliteEpoch flushDue(uint64_t nowUs)
static constexpr std::chrono::microseconds IDLE_TIMEOUT
constexpr int QZSS_FIRST_NMEA_ID
constexpr int QZSS_LAST_NMEA_ID
constexpr int FIRST_LOCAL_ID
constexpr int BEIDOU_EXTENDED_LAST_NMEA_ID
constexpr int BEIDOU_EXTENDED_FIRST_NMEA_ID
constexpr int BEIDOU_LEGACY_LAST_NMEA_ID
constexpr int GLONASS_LAST_NMEA_ID
constexpr int GLONASS_FIRST_NMEA_ID
constexpr int GALILEO_LAST_NMEA_ID
constexpr int SBAS_LAST_NMEA_ID
constexpr int SBAS_FIRST_NMEA_ID
constexpr int SBAS_FIRST_PRN
constexpr int GALILEO_FIRST_NMEA_ID
constexpr int BEIDOU_LEGACY_FIRST_NMEA_ID
std::optional< GSV > gsv(const Sentence &input)
GPSConstellation satelliteConstellation(std::string_view talker, std::optional< int > systemId, std::optional< int > satelliteId)
std::vector< SatelliteSystem > SatelliteEpoch
int satelliteId(GPSConstellation constellation, int wireId)
Canonical constellation-local identifier; preserve unknown/vendor ranges unchanged.
GPSConstellation constellation
Unknown denotes a combined GN report with identities resolved per satellite.
std::vector< SatelliteData > satellites
GPSConstellation constellation
uint64_t inViewTimestampUs
uint64_t inUseTimestampUs
std::optional< int > inUse
GPSConstellation constellation