19#include <unordered_map>
28namespace ubx = NAV::vendor::ublox;
53 [[nodiscard]] std::string
type()
const override;
59 constexpr static size_t INPUT_PORT_INDEX_UBLOX_OBS = 0;
60 constexpr static size_t OUTPUT_PORT_INDEX_GNSS_NAV_INFO = 0;
63 bool initialize()
override;
74 std::optional<std::unique_lock<std::mutex>> _postProcessingLock;
77 struct EphemerisBuilder
82 EphemerisBuilder(
const SatId& satId, std::shared_ptr<SatNavData> navData)
83 : satId(satId), navData(std::
move(navData))
89 std::shared_ptr<SatNavData> navData;
90 std::bitset<5> subframes;
94 std::vector<EphemerisBuilder> _ephemerisBuilder;
97 std::unordered_map<SatId, size_t> _lastAccessedBuilder;
100 std::set<SatelliteSystem> _warningsNotImplemented;
107 EphemerisBuilder& getEphemerisBuilder(
const SatId& satId,
const InsTime& insTime,
size_t IOD = 0);
113 std::optional<std::reference_wrapper<EphemerisBuilder>> getEphemerisBuilder(
const SatId& satId,
size_t IOD);
118 std::optional<std::reference_wrapper<EphemerisBuilder>> getLastEphemerisBuilder(
const SatId& satId);
129 void decryptGPS(
const SatId& satId,
const ubx::UbxRxmSfrbx& sfrbx,
const InsTime& insTime);
135 void decryptGalileo(
const SatId& satId,
const ubx::UbxRxmSfrbx& sfrbx,
const InsTime& insTime);
141 void decryptGLONASS(
const SatId& satId,
const ubx::UbxRxmSfrbx& sfrbx,
const InsTime& insTime);
147 void decryptBeiDou(
const SatId& satId,
const ubx::UbxRxmSfrbx& sfrbx,
const InsTime& insTime);
153 void decryptQZSS(
const SatId& satId,
const ubx::UbxRxmSfrbx& sfrbx,
const InsTime& insTime);
159 void decryptIRNSS(
const SatId& satId,
const ubx::UbxRxmSfrbx& sfrbx,
const InsTime& insTime);
165 void decryptSBAS(
const SatId& satId,
const ubx::UbxRxmSfrbx& sfrbx,
const InsTime& insTime);
Navigation message information.
Satellite Navigation data (to calculate SatNavData and clock)
void move(std::vector< T > &v, size_t sourceIdx, size_t targetIdx)
Moves an element within a vector to a new position.
Definition Vector.hpp:26
GNSS Navigation message information.
Definition GnssNavInfo.hpp:30
Abstract parent class for all nodes.
Definition Node.hpp:86
Output pins of nodes.
Definition Pin.hpp:338
Collects UBX-RXM-SFRBX messages and provides the Orbit information.
Definition UbloxGnssOrbitCollector.hpp:34
UbloxGnssOrbitCollector & operator=(const UbloxGnssOrbitCollector &)=delete
Copy assignment operator.
UbloxGnssOrbitCollector(UbloxGnssOrbitCollector &&)=delete
Move constructor.
UbloxGnssOrbitCollector()
Default constructor.
static std::string typeStatic()
String representation of the Class Type.
UbloxGnssOrbitCollector & operator=(UbloxGnssOrbitCollector &&)=delete
Move assignment operator.
static std::string category()
String representation of the Class Category.
~UbloxGnssOrbitCollector() override
Destructor.
std::string type() const override
String representation of the Class Type.
UbloxGnssOrbitCollector(const UbloxGnssOrbitCollector &)=delete
Copy constructor.
Identifies a satellite (satellite system and number)
Definition SatelliteIdentifier.hpp:32
Broadcast Navigation Data Subframe.
Definition UbloxTypes.hpp:707