This class provides a factory that processes PackedNavBits data containing Galileo F/NAV data as defined in Galileo OS-SIS-ICD. The results of the addData method (in the navOut argument) may contain any number of GalFNavAlm, GalFNavEph, GalFNavHealth or GalFNavTimeOffset 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 PNBGalFNavDataFactory.hpp.
#include <PNBGalFNavDataFactory.hpp>
Public Member Functions | |
bool | addData (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut, double cadence=-1) override |
bool | processAlm (unsigned pageType, const PackedNavBitsPtr &navIn, NavDataPtrList &navOut) |
bool | processAlmOrb (const std::vector< PackedNavBitsPtr > &almPage, GalFNavAlm *alm, GalFNavHealth *hp1, int ptA, int ptB, int asiSVID, int asbSVID, int asidAhalf, int asbdAhalf, int asiEcc, int asbEcc, int asiw, int asbw, int asidi, int asbdi, int asiOMEGAdot, int asbOMEGAdot, int asiM0, int asbM0, int asiaf0, int asbaf0, int asiaf1, int asbaf1, int asiE5ahs, int asbE5ahs) |
bool | processEph (unsigned pageType, 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 57 of file PNBGalFNavDataFactory.cpp.
bool gnsstk::PNBGalFNavDataFactory::processAlm | ( | unsigned | pageType, |
const PackedNavBitsPtr & | navIn, | ||
NavDataPtrList & | navOut | ||
) |
Process page types 5-6. When a complete almanac of page types 5,6 and consistent IODa are accumulated in almAcc, that almanac is placed in navOut, along with health information offset object, if such processing is enabled.
[in] | pageType | The page type (5-6) 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 GalFNavAlm object, and/or if health data is requested, this will contain a GalFNavHealth object |
Definition at line 366 of file PNBGalFNavDataFactory.cpp.
bool gnsstk::PNBGalFNavDataFactory::processAlmOrb | ( | const std::vector< PackedNavBitsPtr > & | almPage, |
GalFNavAlm * | alm, | ||
GalFNavHealth * | hp1, | ||
int | ptA, | ||
int | ptB, | ||
int | asiSVID, | ||
int | asbSVID, | ||
int | asidAhalf, | ||
int | asbdAhalf, | ||
int | asiEcc, | ||
int | asbEcc, | ||
int | asiw, | ||
int | asbw, | ||
int | asidi, | ||
int | asbdi, | ||
int | asiOMEGAdot, | ||
int | asbOMEGAdot, | ||
int | asiM0, | ||
int | asbM0, | ||
int | asiaf0, | ||
int | asbaf0, | ||
int | asiaf1, | ||
int | asbaf1, | ||
int | asiE5ahs, | ||
int | asbE5ahs | ||
) |
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 514 of file PNBGalFNavDataFactory.cpp.
bool gnsstk::PNBGalFNavDataFactory::processEph | ( | unsigned | pageType, |
const PackedNavBitsPtr & | navIn, | ||
NavDataPtrList & | navOut | ||
) |
Process page types 1-4. When a complete ephemeris of page types 1,2,3,4 and consistent IODnav are accumulated in ephAcc, that ephemeris is placed in navOut, along with a GST-UTC and GST-GPS time offset object and health information object, if such processing is enabled.
[in] | pageType | The page type (1-4) pertaining to navIn. |
[in] | navIn | The as-broadcast ephemeris bits. |
[out] | navOut | If an ephemeris is completed, this will contain a GalFNavEph object. If navIn contains page type 1 and health data is requested, navOut will contain a GalFNavHealth object. If navIn contains page type 4 and time offset data is requested, navOut will contain two GalFNavTimeOffset objects. |
Definition at line 118 of file PNBGalFNavDataFactory.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 618 of file PNBGalFNavDataFactory.cpp.
|
protected |
Map transmitting satellite ID to a vector of PackedNavBits for accumulating almanac data, where index 0 is page type 5 and so on.
Definition at line 210 of file PNBGalFNavDataFactory.hpp.
|
protected |
Map satellite ID to a vector of PackedNavBits for accumulating ephemeris data, where index 0 is page type 1 and so on.
Definition at line 213 of file PNBGalFNavDataFactory.hpp.