0.3.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
NAV::UbloxGnssOrbitCollector Class Reference

Collects UBX-RXM-SFRBX messages and provides the Orbit information. More...

Classes

struct  EphemerisBuilder
 Ephemeris builder to store unfinished ephemeris data till all subframes are collected. More...
 

Public Member Functions

UbloxGnssOrbitCollectoroperator= (const UbloxGnssOrbitCollector &)=delete
 Copy assignment operator.
 
UbloxGnssOrbitCollectoroperator= (UbloxGnssOrbitCollector &&)=delete
 Move assignment operator.
 
std::string type () const override
 String representation of the Class Type.
 
 UbloxGnssOrbitCollector ()
 Default constructor.
 
 UbloxGnssOrbitCollector (const UbloxGnssOrbitCollector &)=delete
 Copy constructor.
 
 UbloxGnssOrbitCollector (UbloxGnssOrbitCollector &&)=delete
 Move constructor.
 
 ~UbloxGnssOrbitCollector () override
 Destructor.
 
- Public Member Functions inherited from NAV::Node
virtual void afterCreateLink (OutputPin &startPin, InputPin &endPin)
 Called when a new link was established.
 
virtual void afterDeleteLink (OutputPin &startPin, InputPin &endPin)
 Called when a link was deleted.
 
virtual void deinitialize ()
 Deinitialize the Node.
 
bool doDeinitialize (bool wait=false)
 Asks the node worker to deinitialize the node.
 
bool doDisable (bool wait=false)
 Asks the node worker to disable the node.
 
bool doEnable ()
 Enable the node.
 
bool doInitialize (bool wait=false)
 Asks the node worker to initialize the node.
 
bool doReinitialize (bool wait=false)
 Asks the node worker to reinitialize the node.
 
virtual void flush ()
 Function called by the flow executer after finishing to flush out remaining data.
 
template<typename T >
std::optional< InputPin::IncomingLink::ValueWrapper< T > > getInputValue (size_t portIndex) const
 Get Input Value connected on the pin. Only const data types.
 
Mode getMode () const
 Get the current mode of the node.
 
const ImVec2 & getSize () const
 Get the size of the node.
 
State getState () const
 Get the current state of the node.
 
virtual void guiConfig ()
 ImGui config window which is shown on double click.
 
InputPininputPinFromId (ax::NodeEditor::PinId pinId)
 Returns the pin with the given id.
 
size_t inputPinIndexFromId (ax::NodeEditor::PinId pinId) const
 Returns the index of the pin.
 
void invokeCallbacks (size_t portIndex, const std::shared_ptr< const NodeData > &data)
 Calls all registered callbacks on the specified output port.
 
bool isDisabled () const
 Checks if the node is disabled.
 
bool isInitialized () const
 Checks if the node is initialized.
 
bool isOnlyRealtime () const
 Checks if the node is only working in real time (sensors, network interfaces, ...)
 
bool isTransient () const
 Checks if the node is changing its state currently.
 
std::string nameId () const
 Node name and id.
 
 Node (const Node &)=delete
 Copy constructor.
 
 Node (Node &&)=delete
 Move constructor.
 
 Node (std::string name)
 Constructor.
 
void notifyOutputValueChanged (size_t pinIdx, const InsTime &insTime, const std::scoped_lock< std::mutex > &guard)
 Notifies connected nodes about the change.
 
virtual bool onCreateLink (OutputPin &startPin, InputPin &endPin)
 Called when a new link is to be established.
 
Nodeoperator= (const Node &)=delete
 Copy assignment operator.
 
Nodeoperator= (Node &&)=delete
 Move assignment operator.
 
OutputPinoutputPinFromId (ax::NodeEditor::PinId pinId)
 Returns the pin with the given id.
 
size_t outputPinIndexFromId (ax::NodeEditor::PinId pinId) const
 Returns the index of the pin.
 
void releaseInputValue (size_t portIndex)
 Unblocks the connected node. Has to be called when the input value should be released and getInputValue was not called.
 
std::scoped_lock< std::mutex > requestOutputValueLock (size_t pinIdx)
 Blocks the thread till the output values was read by all connected nodes.
 
virtual bool resetNode ()
 Resets the node. It is guaranteed that the node is initialized when this is called.
 
virtual void restore (const json &j)
 Restores the node from a json object.
 
virtual void restoreAtferLink (const json &j)
 Restores link related properties of the node from a json object.
 
virtual json save () const
 Saves the node into a json object.
 
void wakeWorker ()
 Wakes the worker thread.
 
virtual ~Node ()
 Destructor.
 

Static Public Member Functions

static std::string category ()
 String representation of the Class Category.
 
static std::string typeStatic ()
 String representation of the Class Type.
 
- Static Public Member Functions inherited from NAV::Node
static std::string toString (State state)
 Converts the state into a printable text.
 

Private Member Functions

void decryptBeiDou (const SatId &satId, const ubx::UbxRxmSfrbx &sfrbx, const InsTime &insTime)
 Decrypt the BeiDou SFRBX message.
 
void decryptGalileo (const SatId &satId, const ubx::UbxRxmSfrbx &sfrbx, const InsTime &insTime)
 Decrypt the Galileo SFRBX message.
 
void decryptGLONASS (const SatId &satId, const ubx::UbxRxmSfrbx &sfrbx, const InsTime &insTime)
 Decrypt the GLONASS SFRBX message.
 
void decryptGPS (const SatId &satId, const ubx::UbxRxmSfrbx &sfrbx, const InsTime &insTime)
 Decrypt the GPS SFRBX message.
 
void decryptIRNSS (const SatId &satId, const ubx::UbxRxmSfrbx &sfrbx, const InsTime &insTime)
 Decrypt the IRNSS SFRBX message.
 
void decryptQZSS (const SatId &satId, const ubx::UbxRxmSfrbx &sfrbx, const InsTime &insTime)
 Decrypt the QZSS SFRBX message.
 
void decryptSBAS (const SatId &satId, const ubx::UbxRxmSfrbx &sfrbx, const InsTime &insTime)
 Decrypt the SBAS SFRBX message.
 
EphemerisBuildergetEphemerisBuilder (const SatId &satId, const InsTime &insTime, size_t IOD=0)
 Searches the ephemeris builder for the given satellite and time. If nothing found returns a new instance.
 
std::optional< std::reference_wrapper< EphemerisBuilder > > getEphemerisBuilder (const SatId &satId, size_t IOD)
 Searches the ephemeris builder for the given Issue of Data Ephemeris.
 
std::optional< std::reference_wrapper< EphemerisBuilder > > getLastEphemerisBuilder (const SatId &satId)
 Searches the most recent ephemeris builder for the given satellite.
 
bool initialize () override
 Initialize the node.
 
void onDeleteLink (OutputPin &startPin, InputPin &endPin) override
 Called when a link is to be deleted.
 
void receiveObs (InputPin::NodeDataQueue &queue, size_t pinIdx)
 Data receive function.
 

Private Attributes

std::vector< EphemerisBuilder_ephemerisBuilder
 Map of ephemeris build helper for each satellite.
 
GnssNavInfo _gnssNavInfo
 Data object to share over the output pin.
 
std::unordered_map< SatId, size_t > _lastAccessedBuilder
 List of IOD for each satellite.
 
std::optional< std::unique_lock< std::mutex > > _postProcessingLock
 Mutex to lock if the connected ublox obs provider is a file reader.
 
std::set< SatelliteSystem_warningsNotImplemented
 List of satellite systems to emit warnings because conversion is not implemented yet.
 

Static Private Attributes

static constexpr size_t INPUT_PORT_INDEX_UBLOX_OBS
 Flow (UbloxObs)
 
static constexpr size_t OUTPUT_PORT_INDEX_GNSS_NAV_INFO
 Object.
 

Additional Inherited Members

- Public Types inherited from NAV::Node
enum class  Mode : uint8_t {
  REAL_TIME ,
  POST_PROCESSING
}
 Different Modes the Node can work in. More...
 
enum class  State : uint8_t {
  Disabled ,
  Deinitialized ,
  DoInitialize ,
  Initializing ,
  Initialized ,
  DoDeinitialize ,
  Deinitializing ,
  DoShutdown ,
  Shutdown
}
 Possible states of the node. More...
 
- Public Attributes inherited from NAV::Node
bool callbacksEnabled
 Enables the callbacks.
 
ax::NodeEditor::NodeId id
 Unique Id of the Node.
 
std::vector< InputPininputPins
 List of input pins.
 
Kind kind
 Kind of the Node.
 
std::string name
 Name of the Node.
 
std::vector< OutputPinoutputPins
 List of output pins.
 
std::multimap< InsTime, std::pair< OutputPin *, size_t > > pollEvents
 Map with callback events (sorted by time)
 
- Protected Attributes inherited from NAV::Node
ImVec2 _guiConfigDefaultWindowSize
 
bool _hasConfig
 Flag if the config window should be shown.
 
bool _lockConfigDuringRun
 Lock the config when executing post-processing.
 
bool _onlyRealTime
 Whether the node can run in post-processing or only real-time.
 

Detailed Description

Collects UBX-RXM-SFRBX messages and provides the Orbit information.

Member Function Documentation

◆ decryptBeiDou()

void NAV::UbloxGnssOrbitCollector::decryptBeiDou ( const SatId & satId,
const ubx::UbxRxmSfrbx & sfrbx,
const InsTime & insTime )
private

Decrypt the BeiDou SFRBX message.

Parameters
[in]satIdSatellite Identifier
[in]sfrbxRAWX-SFRBX message
[in]insTimeTime of the message

◆ decryptGalileo()

void NAV::UbloxGnssOrbitCollector::decryptGalileo ( const SatId & satId,
const ubx::UbxRxmSfrbx & sfrbx,
const InsTime & insTime )
private

Decrypt the Galileo SFRBX message.

Parameters
[in]satIdSatellite Identifier
[in]sfrbxRAWX-SFRBX message
[in]insTimeTime of the message

◆ decryptGLONASS()

void NAV::UbloxGnssOrbitCollector::decryptGLONASS ( const SatId & satId,
const ubx::UbxRxmSfrbx & sfrbx,
const InsTime & insTime )
private

Decrypt the GLONASS SFRBX message.

Parameters
[in]satIdSatellite Identifier
[in]sfrbxRAWX-SFRBX message
[in]insTimeTime of the message

◆ decryptGPS()

void NAV::UbloxGnssOrbitCollector::decryptGPS ( const SatId & satId,
const ubx::UbxRxmSfrbx & sfrbx,
const InsTime & insTime )
private

Decrypt the GPS SFRBX message.

Parameters
[in]satIdSatellite Identifier
[in]sfrbxRAWX-SFRBX message
[in]insTimeTime of the message

◆ decryptIRNSS()

void NAV::UbloxGnssOrbitCollector::decryptIRNSS ( const SatId & satId,
const ubx::UbxRxmSfrbx & sfrbx,
const InsTime & insTime )
private

Decrypt the IRNSS SFRBX message.

Parameters
[in]satIdSatellite Identifier
[in]sfrbxRAWX-SFRBX message
[in]insTimeTime of the message

◆ decryptQZSS()

void NAV::UbloxGnssOrbitCollector::decryptQZSS ( const SatId & satId,
const ubx::UbxRxmSfrbx & sfrbx,
const InsTime & insTime )
private

Decrypt the QZSS SFRBX message.

Parameters
[in]satIdSatellite Identifier
[in]sfrbxRAWX-SFRBX message
[in]insTimeTime of the message

◆ decryptSBAS()

void NAV::UbloxGnssOrbitCollector::decryptSBAS ( const SatId & satId,
const ubx::UbxRxmSfrbx & sfrbx,
const InsTime & insTime )
private

Decrypt the SBAS SFRBX message.

Parameters
[in]satIdSatellite Identifier
[in]sfrbxRAWX-SFRBX message
[in]insTimeTime of the message

◆ getEphemerisBuilder() [1/2]

EphemerisBuilder & NAV::UbloxGnssOrbitCollector::getEphemerisBuilder ( const SatId & satId,
const InsTime & insTime,
size_t IOD = 0 )
private

Searches the ephemeris builder for the given satellite and time. If nothing found returns a new instance.

Parameters
[in]satIdSatellite identifier
[in]insTimeTime to search for (either time of ephemeris or time of clock)
[in]IODIssue of Data (Ephemeris, Nav, ...)
Returns
Reference to the ephemeris builder

◆ getEphemerisBuilder() [2/2]

std::optional< std::reference_wrapper< EphemerisBuilder > > NAV::UbloxGnssOrbitCollector::getEphemerisBuilder ( const SatId & satId,
size_t IOD )
private

Searches the ephemeris builder for the given Issue of Data Ephemeris.

Parameters
[in]satIdSatellite Identifier
[in]IODIssue of Data (Ephemeris, Nav, ...)
Returns
Reference to the ephemeris builder if it was found

◆ getLastEphemerisBuilder()

std::optional< std::reference_wrapper< EphemerisBuilder > > NAV::UbloxGnssOrbitCollector::getLastEphemerisBuilder ( const SatId & satId)
private

Searches the most recent ephemeris builder for the given satellite.

Parameters
[in]satIdSatellite identifier
Returns
Reference to the ephemeris builder if it was found

◆ initialize()

bool NAV::UbloxGnssOrbitCollector::initialize ( )
overrideprivatevirtual

Initialize the node.

Reimplemented from NAV::Node.

◆ onDeleteLink()

void NAV::UbloxGnssOrbitCollector::onDeleteLink ( OutputPin & startPin,
InputPin & endPin )
overrideprivatevirtual

Called when a link is to be deleted.

Parameters
[in]startPinPin where the link starts
[in]endPinPin where the link ends

Reimplemented from NAV::Node.

◆ receiveObs()

void NAV::UbloxGnssOrbitCollector::receiveObs ( InputPin::NodeDataQueue & queue,
size_t pinIdx )
private

Data receive function.

Parameters
[in]queueQueue with all the received data messages
[in]pinIdxIndex of the pin the data is received on

◆ type()

std::string NAV::UbloxGnssOrbitCollector::type ( ) const
nodiscardoverridevirtual

String representation of the Class Type.

Implements NAV::Node.


The documentation for this class was generated from the following file: