This class provides a factory that processes PackedNavBits data containing GPS CNav (Civil Nav, aka data ID 4) data as defined in IS-GPS-200 section 30. The results of the addData method (in the navOut argument) may contain any number of GPSCNavAlm, GPSCNavEph, GPSCNavHealth or GPSCNavTimeOffset objects, according to what data is fed to the method and what data is requested via the validity and type filters (see PNBNavDataFactory).
Definition at line 65 of file PNBGPSCNavDataFactory.hpp.
#include <PNBGPSCNavDataFactory.hpp>
Public Member Functions | |
bool | addData (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut, double cadence=-1) override |
void | dumpState (std::ostream &s) const |
bool | process12 (unsigned msgType, const PackedNavBitsPtr &navIn, NavDataPtrList &navOut) |
bool | process30 (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut) |
bool | process31 (unsigned msgType, const PackedNavBitsPtr &navIn, NavDataPtrList &navOut) |
bool | process33 (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut) |
bool | process35 (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut) |
bool | processAlmOrb (unsigned msgType, const PackedNavBitsPtr &navIn, NavDataPtrList &navOut) |
bool | processEph (unsigned msgType, const PackedNavBitsPtr &navIn, NavDataPtrList &navOut) |
bool | processRedAlmOrb (unsigned msgType, unsigned offset, unsigned pre, bool alert, unsigned wna, double toa, const PackedNavBitsPtr &navIn, NavDataPtrList &navOut) |
void | resetState () override |
![]() | |
PNBNavDataFactory () | |
virtual void | setControl (const FactoryControl &ctrl) |
virtual void | setTypeFilter (const NavMessageTypeSet &nmts) |
virtual void | setValidityFilter (NavValidityType nvt) |
Protected Attributes | |
std::map< unsigned, std::vector< PackedNavBitsPtr > > | ephAcc |
![]() | |
FactoryControl | factControl |
Configuration for the behavior of this factory. More... | |
NavValidityType | navValidity |
Determines how the factory should filter added data. More... | |
bool | processAlm |
If true, almanac data will be output by addData. More... | |
bool | processEph |
If true, ephemeris data will be output by addData. More... | |
bool | processHea |
If true, health data will be output by addData. More... | |
bool | processIono |
If true, ionospheric data will be output by addData. More... | |
bool | processISC |
If true, inter-signal correction data will be output by addData. More... | |
bool | processTim |
If true, time offset data will be output by addData. More... | |
|
overridevirtual |
Process a PackedNavBits object, producing NavData objects as appropriate.
[in] | navIn | The PackedNavBits data to process. |
[out] | navOut | Any resulting NavData objects that were completed, usually as a result of adding navIn to the set of data. |
[in] | cadence | This value is ignored in this class. |
Implements gnsstk::PNBNavDataFactory.
Definition at line 57 of file PNBGPSCNavDataFactory.cpp.
void gnsstk::PNBGPSCNavDataFactory::dumpState | ( | std::ostream & | s | ) | const |
For debugging purposes, dump the sizes of the accumulator maps.
[in,out] | s | The stream to write the debug output to. |
Definition at line 895 of file PNBGPSCNavDataFactory.cpp.
bool gnsstk::PNBGPSCNavDataFactory::process12 | ( | unsigned | msgType, |
const PackedNavBitsPtr & | navIn, | ||
NavDataPtrList & | navOut | ||
) |
Process message type 12. This includes reduced almanac data.
[in] | msgType | Type of the message that contains the packet being decoded. Used to determine the subject satellite in QZSS. |
[in] | navIn | The PackedNavBits data containing the message. |
[out] | navOut | The GPSCNavTimeOffset object generated from navIn. |
Definition at line 559 of file PNBGPSCNavDataFactory.cpp.
bool gnsstk::PNBGPSCNavDataFactory::process30 | ( | const PackedNavBitsPtr & | navIn, |
NavDataPtrList & | navOut | ||
) |
Process message type 30. This includes ionospheric correction information for single-frequency users.
[in] | navIn | The PackedNavBits data containing the message. |
[out] | navOut | The GPSCNavIono object generated from navIn. |
Definition at line 578 of file PNBGPSCNavDataFactory.cpp.
bool gnsstk::PNBGPSCNavDataFactory::process31 | ( | unsigned | msgType, |
const PackedNavBitsPtr & | navIn, | ||
NavDataPtrList & | navOut | ||
) |
Process message type 31. This includes reduced almanac data.
[in] | msgType | Type of the message that contains the packet being decoded. Used to determine the subject satellite in QZSS. |
[in] | navIn | The PackedNavBits data containing the message. |
[out] | navOut | The GPSCNavTimeOffset object generated from navIn. |
Definition at line 630 of file PNBGPSCNavDataFactory.cpp.
bool gnsstk::PNBGPSCNavDataFactory::process33 | ( | const PackedNavBitsPtr & | navIn, |
NavDataPtrList & | navOut | ||
) |
Process message type 33. This includes GPS-UTC time offset data.
[in] | navIn | The PackedNavBits data containing the message. |
[out] | navOut | The GPSCNavTimeOffset object generated from navIn. |
Definition at line 799 of file PNBGPSCNavDataFactory.cpp.
bool gnsstk::PNBGPSCNavDataFactory::process35 | ( | const PackedNavBitsPtr & | navIn, |
NavDataPtrList & | navOut | ||
) |
Process message type 35. This includes GPS-GNSS time offset data.
[in] | navIn | The PackedNavBits data containing the message. |
[out] | navOut | The GPSCNavTimeOffset object generated from navIn. |
Definition at line 839 of file PNBGPSCNavDataFactory.cpp.
bool gnsstk::PNBGPSCNavDataFactory::processAlmOrb | ( | unsigned | msgType, |
const PackedNavBitsPtr & | navIn, | ||
NavDataPtrList & | navOut | ||
) |
Process message type 37 (GPS, QZSS) or 53 (QZSS).
[in] | msgType | The CNAV message type. |
[in] | navIn | The PackedNavBits data containing the message. |
[out] | navOut | The GPSCNavAlm and/or GPSCNavHealth objects generated from navIn. |
Definition at line 391 of file PNBGPSCNavDataFactory.cpp.
bool gnsstk::PNBGPSCNavDataFactory::processEph | ( | unsigned | msgType, |
const PackedNavBitsPtr & | navIn, | ||
NavDataPtrList & | navOut | ||
) |
Process ephemeris messages 1-2. When a complete and consistent ephemeris is accumulated in ephAcc, that ephemeris is placed in navOut.
[in] | msgType | The CNAV message type (10-11). |
[in] | navIn | The as-broadcast ephemeris message bits. |
[out] | navOut | If an ephemeris is completed, this will contain a GPSCNavEph object. |
Definition at line 137 of file PNBGPSCNavDataFactory.cpp.
bool gnsstk::PNBGPSCNavDataFactory::processRedAlmOrb | ( | unsigned | msgType, |
unsigned | offset, | ||
unsigned | pre, | ||
bool | alert, | ||
unsigned | wna, | ||
double | toa, | ||
const PackedNavBitsPtr & | navIn, | ||
NavDataPtrList & | navOut | ||
) |
Process a single reduced almanac packed from either message type 12 or 31 (or, for QZSS, including message types 28 and 47).
[in] | msgType | Type of the message that contains the packet being decoded. Used to determine the subject satellite in QZSS. |
[in] | offset | The position of the first bit of the reduced almanac packet within navIn. |
[in] | pre | The 8-bit preamble taken from the message start. |
[in] | alert | The 1-bit alert flag taken from the message start. |
[in] | wna | The WNa (almanac week number) as extracted from the message. This value is shared across the message and applies to all packets in a given message. |
[in] | toa | The almanac reference time in seconds of week (see wna). |
[in] | navIn | The PackedNavBits data containing the message. |
[out] | navOut | The GPSCNavRedAlm object generated from navIn. |
Definition at line 646 of file PNBGPSCNavDataFactory.cpp.
|
inlineoverridevirtual |
Reset the state of the data accumulator. This method is intended to be used to clear out that intermediate data to start from a fresh state, e.g. if you're loading discontinuous data.
Implements gnsstk::PNBNavDataFactory.
Definition at line 172 of file PNBGPSCNavDataFactory.hpp.
|
protected |
Map GPS PRN to a vector of PackedNavBits for accumulating ephemeris data, where index 0 is message 10 and so on.
Definition at line 182 of file PNBGPSCNavDataFactory.hpp.