Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
gnsstk::PNBGPSCNav2DataFactory Class Reference

Detailed Description

This class provides a factory that processes PackedNavBits data containing GPS CNav2 (Civil Nav on L1C) data as defined in IS-GPS-800 section 3.5. The results of the addData method (in the navOut argument) may contain any number of GPSCNav2Alm, GPSCNav2Eph, GPSCNav2Health or GPSCNav2TimeOffset objects, according to what data is fed to the method and what data is requested via the validity and type filters (see PNBNavDataFactory).

Note
Currently validity is not checked in any way in this class.

Definition at line 60 of file PNBGPSCNav2DataFactory.hpp.

#include <PNBGPSCNav2DataFactory.hpp>

Inheritance diagram for gnsstk::PNBGPSCNav2DataFactory:
Inheritance graph
[legend]

Public Member Functions

bool addData (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut, double cadence=-1) override
 
bool processAlmOrb (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut, unsigned offset=0)
 
bool processEph (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut, unsigned offset=0)
 
bool processGGTOEOP (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut, unsigned offset=0)
 
bool processISC (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut)
 
bool processSF3 (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut, unsigned offset=0)
 
bool processUTCIono (const PackedNavBitsPtr &navIn, NavDataPtrList &navOut, unsigned offset=0)
 
void resetState () override
 Reset the state of the data accumulator (for ISCs). More...
 
- Public Member Functions inherited from gnsstk::PNBNavDataFactory
 PNBNavDataFactory ()
 
virtual void setControl (const FactoryControl &ctrl)
 
virtual void setTypeFilter (const NavMessageTypeSet &nmts)
 
virtual void setValidityFilter (NavValidityType nvt)
 

Static Public Member Functions

static CommonTime getSF2Time (const CommonTime &timestamp)
 
static CommonTime getSF3Time (const CommonTime &timestamp)
 

Protected Types

typedef std::shared_ptr< GPSCNav2ISCGPSCNav2ISCPtr
 Quick alias for a shared_ptr to GPSCNav2ISC. More...
 

Protected Member Functions

GPSCNav2ISCPtr getISCObj (const PackedNavBitsPtr &navIn, const NavSatelliteID &nsid)
 

Protected Attributes

std::map< NavSatelliteID, GPSCNav2ISCPtriscAcc
 Map signal to ISC for accumulating data between SF2 and SF3. More...
 
- Protected Attributes inherited from gnsstk::PNBNavDataFactory
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...
 

Member Typedef Documentation

◆ GPSCNav2ISCPtr

typedef std::shared_ptr<GPSCNav2ISC> gnsstk::PNBGPSCNav2DataFactory::GPSCNav2ISCPtr
protected

Quick alias for a shared_ptr to GPSCNav2ISC.

Definition at line 139 of file PNBGPSCNav2DataFactory.hpp.

Member Function Documentation

◆ addData()

bool gnsstk::PNBGPSCNav2DataFactory::addData ( const PackedNavBitsPtr navIn,
NavDataPtrList navOut,
double  cadence = -1 
)
overridevirtual

Process a PackedNavBits object, producing NavData objects as appropriate.

Parameters
[in]navInThe PackedNavBits data to process.
[out]navOutAny resulting NavData objects that were completed, usually as a result of adding navIn to the set of data.
[in]cadenceThis value is ignored in this class.
Returns
false on error.

Implements gnsstk::PNBNavDataFactory.

Definition at line 67 of file PNBGPSCNav2DataFactory.cpp.

◆ getISCObj()

PNBGPSCNav2DataFactory::GPSCNav2ISCPtr gnsstk::PNBGPSCNav2DataFactory::getISCObj ( const PackedNavBitsPtr navIn,
const NavSatelliteID nsid 
)
protected

Retrieve an existing GPSCNav2ISCPtr from iscAsc or create and return a new one.

Parameters
[in]navInThe PackedNavBits being used to construct the ISC data (for setting the time stamp).
[in]nsidThe satellite/signal identifier for the data contained within navIn.
Returns
A GPSCNav2ISCPtr object corresponding to the specified signal.

Definition at line 593 of file PNBGPSCNav2DataFactory.cpp.

◆ getSF2Time()

CommonTime gnsstk::PNBGPSCNav2DataFactory::getSF2Time ( const CommonTime timestamp)
static

Adjust a timestamp so it matches the transmit time of subframe 2, which is going to be offset by 0.52 seconds

Definition at line 606 of file PNBGPSCNav2DataFactory.cpp.

◆ getSF3Time()

CommonTime gnsstk::PNBGPSCNav2DataFactory::getSF3Time ( const CommonTime timestamp)
static

Adjust a timestamp so it matches the transmit time of subframe 3, which is going to be offset by 12.52 seconds

Definition at line 622 of file PNBGPSCNav2DataFactory.cpp.

◆ processAlmOrb()

bool gnsstk::PNBGPSCNav2DataFactory::processAlmOrb ( const PackedNavBitsPtr navIn,
NavDataPtrList navOut,
unsigned  offset = 0 
)

Process subframe 3 page 4 (midi almanac).

Parameters
[in]navInThe PackedNavBits data containing the message.
[out]navOutThe GPSCNav2Alm and/or GPSCNav2Health objects generated from navIn.
[in]offsetThe bit offset for the start of the almanac.
Returns
true if successful (navOut may still be empty).
Todo:
I'm not entirely sure what's appropriate here. The source signal is actually L1C CNAV2 but it's broadcasting signal status for L2 signals that don't have CNAV2.
Todo:
apply 13-bit week rollover adjustment, not 10-bit. Must be completed by January, 2137 :-)
Todo:
GEO QZSS satellites use a different i0 reference, but I have yet to figure out how to determine if a QZSS satellite is GEO or QZO

Definition at line 253 of file PNBGPSCNav2DataFactory.cpp.

◆ processEph()

bool gnsstk::PNBGPSCNav2DataFactory::processEph ( const PackedNavBitsPtr navIn,
NavDataPtrList navOut,
unsigned  offset = 0 
)

Process ephemeris messages.

Parameters
[in]navInThe as-broadcast ephemeris message bits.
[out]navOutThis will contain a GPSCNav2Eph object.
[in]offsetThe bit offset for the start of the ephemeris.
Returns
false on error.
Todo:
apply 13-bit week rollover adjustment, not 10-bit. Must be completed by January, 2137 :-)

Definition at line 116 of file PNBGPSCNav2DataFactory.cpp.

◆ processGGTOEOP()

bool gnsstk::PNBGPSCNav2DataFactory::processGGTOEOP ( const PackedNavBitsPtr navIn,
NavDataPtrList navOut,
unsigned  offset = 0 
)

Process subframe 3 page 2 (GGTO & EOP).

Parameters
[in]navInThe PackedNavBits data containing the message.
[out]navOutThe GPSCNav2TimeOffset objects generated from navIn.
[in]offsetThe bit offset for the start of the time offset.
Returns
true if successful (navOut may still be empty).
Note
this is defined in IS-QZSS. Not sure if we should really be checking to make sure the signal is from a QZSS satellite.

Definition at line 443 of file PNBGPSCNav2DataFactory.cpp.

◆ processISC()

bool gnsstk::PNBGPSCNav2DataFactory::processISC ( const PackedNavBitsPtr navIn,
NavDataPtrList navOut 
)
Note
If processISC is given a sequence of nothing but subframe 2, the last subframe 2 won't produce an ISC object.

Definition at line 499 of file PNBGPSCNav2DataFactory.cpp.

◆ processSF3()

bool gnsstk::PNBGPSCNav2DataFactory::processSF3 ( const PackedNavBitsPtr navIn,
NavDataPtrList navOut,
unsigned  offset = 0 
)

Process subframe 3, any page.

Parameters
[in]navInThe PackedNavBits data containing the message.
[out]navOutThe GPSCNav2Alm, GPSCNav2Health and/or GPSCNav2TimeOffset objects generated from navIn.
[in]offsetThe bit offset for the start of subframe 3.
Returns
true if successful (navOut may still be empty).

Definition at line 229 of file PNBGPSCNav2DataFactory.cpp.

◆ processUTCIono()

bool gnsstk::PNBGPSCNav2DataFactory::processUTCIono ( const PackedNavBitsPtr navIn,
NavDataPtrList navOut,
unsigned  offset = 0 
)

Process subframe 3 page 1 (UTC & IONO).

Parameters
[in]navInThe PackedNavBits data containing the message.
[out]navOutThe GPSCNav2TimeOffset objects generated from navIn.
[in]offsetThe bit offset for the start of the time offset.
Returns
true if successful (navOut may still be empty).

Definition at line 373 of file PNBGPSCNav2DataFactory.cpp.

◆ resetState()

void gnsstk::PNBGPSCNav2DataFactory::resetState ( )
inlineoverridevirtual

Reset the state of the data accumulator (for ISCs).

Implements gnsstk::PNBNavDataFactory.

Definition at line 126 of file PNBGPSCNav2DataFactory.hpp.

Member Data Documentation

◆ iscAcc

std::map<NavSatelliteID, GPSCNav2ISCPtr> gnsstk::PNBGPSCNav2DataFactory::iscAcc
protected

Map signal to ISC for accumulating data between SF2 and SF3.

Definition at line 142 of file PNBGPSCNav2DataFactory.hpp.


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


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:45