This class provides a factory that processes PackedNavBits data containing Galileo I/NAV data as defined in Galileo OS-SIS-ICD. The results of the addData method (in the navOut argument) may contain any number of GalINavAlm, GalINavEph, GalINavHealth or GalINavTimeOffset 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 62 of file PNBGalINavDataFactory.hpp.
#include <PNBGalINavDataFactory.hpp>
Public Member Functions | |
bool | addData (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut, double cadence=-1) override |
bool | processAlm (unsigned wordType, const PackedNavBitsPtr &navIn, NavDataPtrList &navOut) |
bool | processAlmOrb (const std::vector< PackedNavBitsPtr > &almWord, GalINavAlm *alm, GalINavHealth *hp1, GalINavHealth *hp2, int wtA, int wtB, int asiWNa, int asit0a, int asiSVID, int asbSVID, int asidAhalf, int asbdAhalf, int asiEcc, int asbEcc, int asiw, int asbw, int asidi, int asbdi, int asiOMEGA0, int asbOMEGA0, int asiOMEGAdot, int asbOMEGAdot, int asiM0, int asbM0, int asiaf0, int asbaf0, int asiaf1, int asbaf1, int asiE5bhs, int asbE5bhs, int asiE1Bhs, int asbE1Bhs) |
bool | processEph (unsigned wordType, const PackedNavBitsPtr &navIn, NavDataPtrList &navOut) |
bool | processOffset (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< NavSatelliteID, std::vector< PackedNavBitsPtr > > | almAcc |
std::map< NavSatelliteID, 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 56 of file PNBGalINavDataFactory.cpp.
bool gnsstk::PNBGalINavDataFactory::processAlm | ( | unsigned | wordType, |
const PackedNavBitsPtr & | navIn, | ||
NavDataPtrList & | navOut | ||
) |
Process word types 7-10. When a complete almanac of word types 7,8,9,10 and consistent IODa are accumulated in almAcc, that almanac is placed in navOut, along with a GST-GPS time offset object, if such processing is enabled.
[in] | wordType | The word type (7-10) pertaining to navIn. |
[in] | navIn | The as-broadcast almanac bits. |
[out] | navOut | If an almanac is completed and the data is requested, this will contain a GalINavAlm object. |
Definition at line 346 of file PNBGalINavDataFactory.cpp.
bool gnsstk::PNBGalINavDataFactory::processAlmOrb | ( | const std::vector< PackedNavBitsPtr > & | almWord, |
GalINavAlm * | alm, | ||
GalINavHealth * | hp1, | ||
GalINavHealth * | hp2, | ||
int | wtA, | ||
int | wtB, | ||
int | asiWNa, | ||
int | asit0a, | ||
int | asiSVID, | ||
int | asbSVID, | ||
int | asidAhalf, | ||
int | asbdAhalf, | ||
int | asiEcc, | ||
int | asbEcc, | ||
int | asiw, | ||
int | asbw, | ||
int | asidi, | ||
int | asbdi, | ||
int | asiOMEGA0, | ||
int | asbOMEGA0, | ||
int | asiOMEGAdot, | ||
int | asbOMEGAdot, | ||
int | asiM0, | ||
int | asbM0, | ||
int | asiaf0, | ||
int | asbaf0, | ||
int | asiaf1, | ||
int | asbaf1, | ||
int | asiE5bhs, | ||
int | asbE5bhs, | ||
int | asiE1Bhs, | ||
int | asbE1Bhs | ||
) |
Decode an almanac and/or health from a vector of Galileo almanac words.
[in] | almWord | An vector of size 4 of Galileo word types 7-10. |
[in,out] | alm | The pre-allocated almanac object to store the decoded data in. |
[in,out] | hp1 | The pre-allocated health object to store E5b health status data in. |
[in,out] | hp2 | The pre-allocated health object to store E1B health status data in. |
[in] | wtA | The index into almWord of the first word type of the pair of word types being decoded to make an almanac. |
[in] | wtB | The index into almWord of the second word type of the pair of word types being decoded to make an almanac. |
[in] | asiWNa | The index into almWord of the word type that contains the WNa value. |
[in] | asit0a | The index into almWord of the word type that contains the t0a value. |
[in] | asidAhalf | The index into almWord of the word type that contains the delta A**1/2 value. |
[in] | asbdAhalf | The first bit of the word type that contains the delta A**1/2 value. |
[in] | asiEcc | The index into almWord of the word type that contains the eccentricity value. |
[in] | asbEcc | The first bit of the word type that contains the eccentricity value. |
[in] | asiw | The index into almWord of the word type that contains the argument of perigee. |
[in] | asbw | The first bit of the word type that contains the argument of perigee. |
[in] | asidi | The index into almWord of the word type that contains the delta inclination. |
[in] | asbdi | The first bit of the word type that contains the delta inclination value. |
[in] | asiOMEGA0 | The index into almWord of the word type that contains the right ascension reference value. |
[in] | asbOMEGA0 | The first bit of the word type that contains the right ascension reference value. |
[in] | asiOMEGAdot | The index into almWord of the word type that contains the rate of right ascension value. |
[in] | asbOMEGAdot | The first bit of the word type that contains the rate of right ascension value. |
[in] | asiM0 | The index into almWord of the word type that contains the mean anomaly reference value. |
[in] | asbM0 | The first bit of the word type that contains the mean anomaly reference value. |
[in] | asiaf0 | The index into almWord of the word type that contains the clock bias value. |
[in] | asbaf0 | The first bit of the word type that contains the clock bias value. |
[in] | asiaf1 | The index into almWord of the word type that contains the clock drift value. |
[in] | asbaf1 | The first bit of the word type that contains the clock drift value. |
[in] | asiE5bhs | The index into almWord of the word type that contains the E5b health status value. |
[in] | asbE5bhs | The first bit of the word type that contains the E5b health status value. |
[in] | asiE1Bhs | The index into almWord of the word type that contains the E1B health status value. |
[in] | asbE1Bhs | The first bit of the word type that contains the E1B health status value. |
Definition at line 524 of file PNBGalINavDataFactory.cpp.
bool gnsstk::PNBGalINavDataFactory::processEph | ( | unsigned | wordType, |
const PackedNavBitsPtr & | navIn, | ||
NavDataPtrList & | navOut | ||
) |
Process word types 1-5. When a complete ephemeris of word types 1,2,3,4,5 and consistent IODnav are accumulated in ephAcc, that ephemeris is placed in navOut, along with a GST-UTC time offset object, if such processing is enabled.
[in] | wordType | The word type (1-5) pertaining to navIn. |
[in] | navIn | The as-broadcast ephemeris bits. |
[out] | navOut | If an ephemeris is completed, this will contain a GalINavEph object. |
Definition at line 124 of file PNBGalINavDataFactory.cpp.
bool gnsstk::PNBGalINavDataFactory::processOffset | ( | const PackedNavBitsPtr & | navIn, |
NavDataPtrList & | navOut | ||
) |
Process word type 6. This includes GST-UTC time offset data.
[in] | navIn | The PackedNavBits data containing word type 6. |
[out] | navOut | The GalINavTimeOffset object generated from navIn. |
Definition at line 613 of file PNBGalINavDataFactory.cpp.
|
overridevirtual |
Reset the state of the data accumulator. Most PNBNavDataFactory child classes will maintain some state to assemble data prior to processing. 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 686 of file PNBGalINavDataFactory.cpp.
|
protected |
Map transmitting satellite ID to a vector of PackedNavBits for accumulating almanac data, where index 0 is word type 7 and so on.
Definition at line 214 of file PNBGalINavDataFactory.hpp.
|
protected |
Map satellite ID to a vector of PackedNavBits for accumulating ephemeris data, where index 0 is word type 1 and so on.
Definition at line 217 of file PNBGalINavDataFactory.hpp.