Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Attributes | Friends | List of all members
gnsstk::NavDataFactoryWithStore Class Reference

Detailed Description

Define methods and data structures for internally storing navigation message data internally as read from some source.

Todo:
Currently it's possible for health messages from one signal to stomp health messages on another signal. Specific example: if you have a CNAV message with the three signal health bits that get split up into L1, L2 and L5, it's possible for the L1 signal from the CNAV message to overwrite the health status from an LNAV message for L1 and vice versa. Since it's possible for the health bits to be different, we probably need to decide if we need to do something about this issue and if so, what.

Definition at line 63 of file NavDataFactoryWithStore.hpp.

#include <NavDataFactoryWithStore.hpp>

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

Classes

class  UniqueTimeOffset
 

Public Types

typedef std::map< TimeCvtKey, OffsetEpochMapOffsetCvtMap
 Map from the time system conversion pair to the conversion objects. More...
 
typedef std::map< CommonTime, OffsetMapOffsetEpochMap
 
typedef std::map< NavSatelliteID, NavDataPtrOffsetMap
 

Public Member Functions

bool addNavData (const NavDataPtr &nd)
 
bool addNavData (const NavDataPtr &nd, NavMessageMap &navMap, NavNearMessageMap &navNearMap, OffsetCvtMap &ofsMap)
 
void clear () override
 Remove all data from the internal store. More...
 
virtual size_t count (const NavMessageID &nmid) const
 
virtual size_t count (const SatID &satID, NavMessageType nmt=NavMessageType::Unknown) const
 
virtual size_t count (NavMessageType nmt) const
 
virtual size_t count (SatelliteSystem sys, NavMessageType nmt=NavMessageType::Unknown) const
 
void dump (std::ostream &s, DumpDetail dl) const override
 
void edit (const CommonTime &fromTime, const CommonTime &toTime) override
 
void edit (const CommonTime &fromTime, const CommonTime &toTime, const NavSatelliteID &satID) override
 
void edit (const CommonTime &fromTime, const CommonTime &toTime, const NavSignalID &signal) override
 
bool find (const NavMessageID &nmid, const CommonTime &when, NavDataPtr &navOut, SVHealth xmitHealth, NavValidityType valid, NavSearchOrder order) override
 
NavMessageIDSet getAvailableMsgs (const CommonTime &fromTime, const CommonTime &toTime) const override
 
NavSatelliteIDSet getAvailableSats (const CommonTime &fromTime, const CommonTime &toTime) const override
 
NavSatelliteIDSet getAvailableSats (NavMessageType nmt, const CommonTime &fromTime, const CommonTime &toTime) const override
 
CommonTime getFinalTime () const override
 
CommonTime getFirstTime (const SatID &sat) const
 
std::set< SatIDgetIndexSet (const CommonTime &fromTime, const CommonTime &toTime) const
 
std::set< SatIDgetIndexSet (NavMessageType nmt, const CommonTime &fromTime, const CommonTime &toTime) const
 
CommonTime getInitialTime () const override
 
CommonTime getLastTime (const SatID &sat) const
 
const NavMapgetNavMap (const NavMessageID &nmid) const
 
const NavMessageMapgetNavMessageMap () const
 Get read-only access to the nav data map (User priority). More...
 
const NavNearMessageMapgetNavNearMessageMap () const
 Get read-only access to the nav data map (Nearest priority). More...
 
bool getOffset (TimeSystem fromSys, TimeSystem toSys, const CommonTime &when, NavDataPtr &offset, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly) override
 
const OffsetCvtMapgetTimeOffsetMap () const
 Get read-only access to the time offset map. More...
 
 NavDataFactoryWithStore ()
 Initialize internal data. More...
 
virtual size_t numSatellites () const
 Return the number of distinct signals including PRN, in the data. More...
 
virtual size_t numSignals () const
 Return the number of distinct signals (ignoring PRN) in the data. More...
 
virtual size_t size () const
 Return the number of nav messages in data. More...
 
virtual ~NavDataFactoryWithStore ()
 Clean up. More...
 
- Public Member Functions inherited from gnsstk::NavDataFactory
virtual bool addDataSource (const std::string &source)=0
 
virtual void addTypeFilter (NavMessageType nmt)
 
virtual void clearTypeFilter ()
 
virtual std::string getClassName () const
 Returns the fully-qualified class name. Used for debugging. More...
 
virtual std::string getFactoryFormats () const =0
 Return a comma-separated list of formats supported by this factory. More...
 
std::set< SatIDgetIndexSet (const CommonTime &fromTime, const CommonTime &toTime) const
 
std::set< SatIDgetIndexSet (NavMessageType nmt, const CommonTime &fromTime, const CommonTime &toTime) const
 
NavMessageTypeSet getTypeFilter () const
 
virtual bool isPresent (const NavMessageID &nmid, const CommonTime &fromTime, const CommonTime &toTime)
 
virtual bool isTypePresent (NavMessageType nmt, const NavSatelliteID &satID, const CommonTime &fromTime, const CommonTime &toTime)
 
 NavDataFactory ()
 
virtual void setControl (const FactoryControl &ctrl)
 
virtual void setTypeFilter (const NavMessageTypeSet &nmts)
 
virtual void setValidityFilter (NavValidityType nvt)
 
virtual ~NavDataFactory ()
 Clean up. More...
 

Protected Member Functions

virtual bool findNearest (const NavMessageID &nmid, const CommonTime &when, NavDataPtr &navData, SVHealth xmitHealth, NavValidityType valid)
 
virtual bool findUser (const NavMessageID &nmid, const CommonTime &when, NavDataPtr &navData, SVHealth xmitHealth, NavValidityType valid)
 
bool matchHealth (NavData *ndp, SVHealth xmitHealth)
 
bool updateInitialFinal (const CommonTime &begin, const CommonTime &end)
 
bool validityCheck (const NavDataPtr &ndp, NavValidityType valid, SVHealth xmitHealth, const CommonTime &when)
 
bool validityCheck (const NavMap::iterator &ti, NavMap &nm, NavValidityType valid, SVHealth xmitHealth, const CommonTime &when)
 

Protected Attributes

NavMessageMap data
 Internal storage of navigation data for User searches. More...
 
CommonTime finalTime
 Store the latest applicable orbit time here, by addNavData. More...
 
std::map< SatID, std::pair< CommonTime, CommonTime > > firstLastMap
 Map subject satellite ID to time stamp pair (oldest,newest). More...
 
CommonTime initialTime
 Store the earliest applicable orbit time here, by addNavData. More...
 
NavNearMessageMap nearestData
 Internal storage of navigation data for Nearest searches. More...
 
OffsetCvtMap offsetData
 
- Protected Attributes inherited from gnsstk::NavDataFactory
FactoryControl factControl
 Configuration for the behavior of this factory. More...
 
NavValidityType navValidity
 
NavMessageTypeSet procNavTypes
 

Private Types

using TOUSatMap = std::map< SatID, TOUSet >
 Map transmitting satellite to unique time offsets. More...
 
using TOUSet = std::set< std::shared_ptr< StdNavTimeOffset >, UniqueTimeOffset >
 Collect unique StdNavTimeOffset data. More...
 
using TOUSigMap = std::map< NavSignalID, TOUSet >
 Map signal to unique time offsets. More...
 

Private Attributes

TOUSigMap touBySig
 Each signal's uniquely transmitted time offset. More...
 
TOUSatMap touBySV
 Each satellite's uniquely transmitted time offset. More...
 

Friends

class MultiFormatNavDataFactory
 Grant access to MultiFormatNavDataFactory for various functions. More...
 
class NavDataFactoryStoreCallback
 Grant access to NavDataFactoryStoreCallback to data maps. More...
 

Additional Inherited Members

- Public Attributes inherited from gnsstk::NavDataFactory
NavSignalSet supportedSignals
 

Member Typedef Documentation

◆ OffsetCvtMap

Map from the time system conversion pair to the conversion objects.

Definition at line 74 of file NavDataFactoryWithStore.hpp.

◆ OffsetEpochMap

Map from the timeStamp of a TimeOffsetData object to the collection of TimeOffsetData objects.

Definition at line 72 of file NavDataFactoryWithStore.hpp.

◆ OffsetMap

Map that will contain all TimeOffsetData objects with the same conversion pair broadcast at a given time.

Definition at line 69 of file NavDataFactoryWithStore.hpp.

◆ TOUSatMap

Map transmitting satellite to unique time offsets.

Definition at line 489 of file NavDataFactoryWithStore.hpp.

◆ TOUSet

using gnsstk::NavDataFactoryWithStore::TOUSet = std::set<std::shared_ptr<StdNavTimeOffset>, UniqueTimeOffset>
private

Collect unique StdNavTimeOffset data.

Definition at line 487 of file NavDataFactoryWithStore.hpp.

◆ TOUSigMap

Map signal to unique time offsets.

Definition at line 491 of file NavDataFactoryWithStore.hpp.

Constructor & Destructor Documentation

◆ NavDataFactoryWithStore()

gnsstk::NavDataFactoryWithStore::NavDataFactoryWithStore ( )

Initialize internal data.

Definition at line 55 of file NavDataFactoryWithStore.cpp.

◆ ~NavDataFactoryWithStore()

virtual gnsstk::NavDataFactoryWithStore::~NavDataFactoryWithStore ( )
inlinevirtual

Clean up.

Definition at line 80 of file NavDataFactoryWithStore.hpp.

Member Function Documentation

◆ addNavData() [1/2]

bool gnsstk::NavDataFactoryWithStore::addNavData ( const NavDataPtr nd)
inline

Add a nav message to the internal store (data).

Parameters
[in]ndThe nav data to add.
Returns
true if successful.

Definition at line 149 of file NavDataFactoryWithStore.hpp.

◆ addNavData() [2/2]

bool gnsstk::NavDataFactoryWithStore::addNavData ( const NavDataPtr nd,
NavMessageMap navMap,
NavNearMessageMap navNearMap,
OffsetCvtMap ofsMap 
)

Add a nav message to the given store.

Parameters
[in]ndThe nav data to add.
[out]navMapThe map to load the data in.
[out]navNearMapThe map to load the data in for use by "Nearest" (as opposed to "User") searches.
[out]ofsMapThe map to load TimeOffsetData into.
Returns
true if successful.

Definition at line 851 of file NavDataFactoryWithStore.cpp.

◆ clear()

void gnsstk::NavDataFactoryWithStore::clear ( )
overridevirtual

Remove all data from the internal store.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 840 of file NavDataFactoryWithStore.cpp.

◆ count() [1/4]

size_t gnsstk::NavDataFactoryWithStore::count ( const NavMessageID nmid) const
virtual

Return a count of messages matching the given NavMessageID.

Parameters
[in]nmidThe NavMessageID to match. Wildcards may be used. In addition to the standard wildcard support in SatID, ObsID and NavID, the signal field may be set to "Unknown" to be treated as a wildcard, as may the messageType field. The following code snippet represents a NavMessageID with all wildcards (which will match the results from the size() method).
NavMessageID key1(
NavSatelliteID(SatID(SatelliteSystem::Unknown),
NavID(NavType::Any)),
key1.sat.makeWild();
key1.xmitSat.makeWild();

The system field is initialized in the above constructor from the SatID system, which is why we're initializing it to "Unknown" (to make system a wildcard). But setting the SatID::system to Unknown doesn't make SatID a wildcard, that requires the SatID::makeWild() method calls.

Note
This method has a bit of overhead, though no more than find().

Reimplemented in gnsstk::MultiFormatNavDataFactory.

Definition at line 1022 of file NavDataFactoryWithStore.cpp.

◆ count() [2/4]

size_t gnsstk::NavDataFactoryWithStore::count ( const SatID satID,
NavMessageType  nmt = NavMessageType::Unknown 
) const
virtual

Return a count of messages where the SUBJECT satellite ID matches the given SatID and message type.

Parameters
[in]satIDThe subject satellite ID to match.
[in]nmtThe NavMessageType to match (default Unknown=all).
Note
This method has a bit of overhead, though no more than find().

Reimplemented in gnsstk::MultiFormatNavDataFactory.

Definition at line 1095 of file NavDataFactoryWithStore.cpp.

◆ count() [3/4]

size_t gnsstk::NavDataFactoryWithStore::count ( NavMessageType  nmt) const
virtual

Return a count of messages matching the given NavMessageType.

Note
This method has a bit of overhead, though no more than find().

Reimplemented in gnsstk::MultiFormatNavDataFactory.

Definition at line 1112 of file NavDataFactoryWithStore.cpp.

◆ count() [4/4]

size_t gnsstk::NavDataFactoryWithStore::count ( SatelliteSystem  sys,
NavMessageType  nmt = NavMessageType::Unknown 
) const
virtual

Return a count of messages matching the given SatelliteSystem and NavMessageType.

Parameters
[in]sysThe SatelliteSystem to match when counting.
[in]nmtThe NavMessageType to match (default Unknown=all).
Note
This method has a bit of overhead, though no more than find().
Only NavSignalID::system is checked, if you need to explicitly check NavSatelliteID::SatID::system, use the count(constNavMessageID&).

Reimplemented in gnsstk::MultiFormatNavDataFactory.

Definition at line 1076 of file NavDataFactoryWithStore.cpp.

◆ dump()

void gnsstk::NavDataFactoryWithStore::dump ( std::ostream &  s,
DumpDetail  dl 
) const
overridevirtual

Print the contents of this store in a human-readable format.

Parameters
[in,out]sThe stream to write the data to.
[in]dlThe level of detail the output should contain.
Todo:
To support the variances between nav codes Terse dump formats, it would probably be best to implement a "getTerseHeader" method and just call it for the first object in this map (which should be the same class for each item in nsami.second).

Reimplemented from gnsstk::NavDataFactory.

Definition at line 1458 of file NavDataFactoryWithStore.cpp.

◆ edit() [1/3]

void gnsstk::NavDataFactoryWithStore::edit ( const CommonTime fromTime,
const CommonTime toTime 
)
overridevirtual

Remove all data from the internal storage in the time span [fromTime,toTime).

Parameters
[in]fromTimeThe earliest time to be removed.
[in]toTimeThe earliest time that will NOT be removed.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 556 of file NavDataFactoryWithStore.cpp.

◆ edit() [2/3]

void gnsstk::NavDataFactoryWithStore::edit ( const CommonTime fromTime,
const CommonTime toTime,
const NavSatelliteID satID 
)
overridevirtual

Remove data for a specific satellite signal from the internal storage in the time span [fromTime,toTime).

Parameters
[in]fromTimeThe earliest time to be removed.
[in]toTimeThe earliest time that will NOT be removed.
[in]satIDThe complete signal specification for the data to be removed (subject satellite, transmit satellite, system, carrier, code, nav).

Reimplemented from gnsstk::NavDataFactory.

Definition at line 684 of file NavDataFactoryWithStore.cpp.

◆ edit() [3/3]

void gnsstk::NavDataFactoryWithStore::edit ( const CommonTime fromTime,
const CommonTime toTime,
const NavSignalID signal 
)
overridevirtual

Remove data for all satellites matching a specific signal from the internal storage in the time span [fromTime,toTime).

Parameters
[in]fromTimeThe earliest time to be removed.
[in]toTimeThe earliest time that will NOT be removed.
[in]signalThe signal for the data to be removed (system, carrier, code, nav).

Reimplemented from gnsstk::NavDataFactory.

Definition at line 831 of file NavDataFactoryWithStore.cpp.

◆ find()

bool gnsstk::NavDataFactoryWithStore::find ( const NavMessageID nmid,
const CommonTime when,
NavDataPtr navOut,
SVHealth  xmitHealth,
NavValidityType  valid,
NavSearchOrder  order 
)
overridevirtual

Search the store to find the navigation message that meets the specified criteria.

Note
In order for xmitHealth matching to occur, one must have loaded health information, meaning that health data must have been included in the type filter. For formats like SP3, which contain no health information, you won't get any results if you specify "Healthy", "Unhealthy" or "Degraded". Use this option with care.
Parameters
[in]nmidSpecify the message type, satellite and codes to match.
[in]whenThe time of interest to search for data.
[in]xmitHealthThe desired health status of the transmitting satellite.
[out]navOutThe resulting navigation message.
[in]validSpecify whether to search only for valid or invalid messages, or both.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
Returns
true if successful. If false, navData will be untouched.

Implements gnsstk::NavDataFactory.

Reimplemented in gnsstk::SP3NavDataFactory.

Definition at line 68 of file NavDataFactoryWithStore.cpp.

◆ findNearest()

bool gnsstk::NavDataFactoryWithStore::findNearest ( const NavMessageID nmid,
const CommonTime when,
NavDataPtr navData,
SVHealth  xmitHealth,
NavValidityType  valid 
)
protectedvirtual

Search the store to find the navigation message that meets the specified criteria using the nearest match in time (e.g. nearest toe to when).

Note
In order for xmitHealth matching to occur, one must have loaded health information, meaning that health data must have been included in the type filter. For formats like SP3, which contain no health information, you won't get any results if you specify "Healthy", "Unhealthy" or "Degraded". Use this option with care.
Parameters
[in]nmidSpecify the message type, satellite and codes to match.
[in]whenThe time of interest to search for data.
[in]xmitHealthThe desired health status of the transmitting satellite.
[out]navDataThe resulting navigation message.
[in]validSpecify whether to search only for valid or invalid messages, or both.
Returns
true if successful. If false, navData will be untouched.

Class for gathering matches in findNearest(). It's only used in findNearest so it is declared and implemented here alone.

Constructor for the iterator yielded by lower_bound.

Parameters
[in]theMapA pointer to the map containing the matching data.
[in]theItThe iterator referring to the result from lower_bound.

Definition at line 291 of file NavDataFactoryWithStore.cpp.

◆ findUser()

bool gnsstk::NavDataFactoryWithStore::findUser ( const NavMessageID nmid,
const CommonTime when,
NavDataPtr navData,
SVHealth  xmitHealth,
NavValidityType  valid 
)
protectedvirtual

Search the store to find the navigation message that meets the specified criteria using User-oriented data.

Note
In order for xmitHealth matching to occur, one must have loaded health information, meaning that health data must have been included in the type filter. For formats like SP3, which contain no health information, you won't get any results if you specify "Healthy", "Unhealthy" or "Degraded". Use this option with care.
Parameters
[in]nmidSpecify the message type, satellite and codes to match.
[in]whenThe time of interest to search for data.
[in]xmitHealthThe desired health status of the transmitting satellite.
[out]navDataThe resulting navigation message.
[in]validSpecify whether to search only for valid or invalid messages, or both.
Returns
true if successful. If false, navData will be untouched.

Class for gathering matches in findUser(). It's only used in findUser so it is declared and implemented here alone.

Definition at line 105 of file NavDataFactoryWithStore.cpp.

◆ getAvailableMsgs()

NavMessageIDSet gnsstk::NavDataFactoryWithStore::getAvailableMsgs ( const CommonTime fromTime,
const CommonTime toTime 
) const
overridevirtual

Obtain a set of satellites+message types for which we have data in the given time span.

Parameters
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of NavMessageID objects for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Implements gnsstk::NavDataFactory.

Definition at line 1421 of file NavDataFactoryWithStore.cpp.

◆ getAvailableSats() [1/2]

NavSatelliteIDSet gnsstk::NavDataFactoryWithStore::getAvailableSats ( const CommonTime fromTime,
const CommonTime toTime 
) const
overridevirtual

Obtain a set of satellites for which we have data in the given time span.

Parameters
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of satellites for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Implements gnsstk::NavDataFactory.

Definition at line 1344 of file NavDataFactoryWithStore.cpp.

◆ getAvailableSats() [2/2]

NavSatelliteIDSet gnsstk::NavDataFactoryWithStore::getAvailableSats ( NavMessageType  nmt,
const CommonTime fromTime,
const CommonTime toTime 
) const
overridevirtual

Obtain a set of satellites for which we have data of a specific message type in the given time span.

Parameters
[in]nmtThe navigation message type you're looking for.
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of satellites for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Implements gnsstk::NavDataFactory.

Definition at line 1358 of file NavDataFactoryWithStore.cpp.

◆ getFinalTime()

CommonTime gnsstk::NavDataFactoryWithStore::getFinalTime ( ) const
inlineoverridevirtual

Determine the latest time for which this object can successfully determine the Xvt for any object.

Returns
The initial time, or CommonTime::BEGINNING_OF_TIME if no data is available.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 173 of file NavDataFactoryWithStore.hpp.

◆ getFirstTime()

CommonTime gnsstk::NavDataFactoryWithStore::getFirstTime ( const SatID sat) const

Determine the timestamp of the oldest record in this store for the given satellite.

Note
This should not be confused with getInitialTime(), which is the time of applicability, not the time stamp of the contained data.

Definition at line 1326 of file NavDataFactoryWithStore.cpp.

◆ getIndexSet() [1/2]

std::set< SatID > gnsstk::NavDataFactoryWithStore::getIndexSet ( const CommonTime fromTime,
const CommonTime toTime 
) const

Similar to getAvailableSats() except it only returns the basic subject satellite ID, making no further distinction between codes.

Parameters
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of satellites for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Definition at line 1380 of file NavDataFactoryWithStore.cpp.

◆ getIndexSet() [2/2]

std::set< SatID > gnsstk::NavDataFactoryWithStore::getIndexSet ( NavMessageType  nmt,
const CommonTime fromTime,
const CommonTime toTime 
) const

Similar to getAvailableSats() except it only returns the basic subject satellite ID, making no further distinction between codes.

Parameters
[in]nmtThe navigation message type you're looking for.
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of satellites for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Definition at line 1400 of file NavDataFactoryWithStore.cpp.

◆ getInitialTime()

CommonTime gnsstk::NavDataFactoryWithStore::getInitialTime ( ) const
inlineoverridevirtual

Determine the earliest time for which this object can successfully determine the Xvt for any object.

Returns
The initial time, or CommonTime::END_OF_TIME if no data is available.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 166 of file NavDataFactoryWithStore.hpp.

◆ getLastTime()

CommonTime gnsstk::NavDataFactoryWithStore::getLastTime ( const SatID sat) const

Determine the timestamp of the newest record in this store for the given satellite.

Note
This should not be confused with getFinalTime(), which is the time of applicability, not the time stamp of the contained data.

Definition at line 1335 of file NavDataFactoryWithStore.cpp.

◆ getNavMap()

const NavMap * gnsstk::NavDataFactoryWithStore::getNavMap ( const NavMessageID nmid) const

Get read-only access to the nav data for a specific type/sat.

Parameters
[in]nmidThe nav message ID to obtain the map for.
Returns
The resulting NavMap if available or nullptr if not.

Definition at line 1442 of file NavDataFactoryWithStore.cpp.

◆ getNavMessageMap()

const NavMessageMap& gnsstk::NavDataFactoryWithStore::getNavMessageMap ( ) const
inline

Get read-only access to the nav data map (User priority).

Definition at line 343 of file NavDataFactoryWithStore.hpp.

◆ getNavNearMessageMap()

const NavNearMessageMap& gnsstk::NavDataFactoryWithStore::getNavNearMessageMap ( ) const
inline

Get read-only access to the nav data map (Nearest priority).

Definition at line 346 of file NavDataFactoryWithStore.hpp.

◆ getOffset()

bool gnsstk::NavDataFactoryWithStore::getOffset ( TimeSystem  fromSys,
TimeSystem  toSys,
const CommonTime when,
NavDataPtr offset,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly 
)
overridevirtual

Get the offset, in seconds, to apply to times when converting them from fromSys to toSys.

Precondition
If xmithHealth is set to anything other than "Any", ephemeris data must be loaded in order to obtain satellite health to match.
Parameters
[in]fromSysThe time system to convert from.
[in]toSysThe time system to convert to.
[in]whenThe time being converted, usually in the time system appropriate for a given nav message source. The details of what time system this should be in and any other restrictions will be documented in each leaf class, e.g. GPSLNavTimeOffset.
[out]offsetThe offset when converting fromSys->toSys where when(toSys)=when(fromSys)-offset.
[in]xmitHealthThe desired health status of the transmitting satellite.
[in]validSpecify whether to search only for valid or invalid messages, or both.
Returns
true if an offset is available, false if not.

Implements gnsstk::NavDataFactory.

Definition at line 439 of file NavDataFactoryWithStore.cpp.

◆ getTimeOffsetMap()

const OffsetCvtMap& gnsstk::NavDataFactoryWithStore::getTimeOffsetMap ( ) const
inline

Get read-only access to the time offset map.

Definition at line 349 of file NavDataFactoryWithStore.hpp.

◆ matchHealth()

bool gnsstk::NavDataFactoryWithStore::matchHealth ( NavData ndp,
SVHealth  xmitHealth 
)
protected

Check the SV health status of the transmitting satellite of a navigation message.

Parameters
[in]ndpA pointer to the NavData to verify.
[in]xmitHealthThe desired health status of the transmitting satellite.
Returns
true if the health status of the satellite that transmitted ndp matches xmitHealth.
Todo:
This next statement kind of sort of enforces ephemeris health however it's possible, for example in GPS LNAV to have almanac pages with the transmit and subject satellites the same, making it effectively indistinguishible from ephemeris health. Are there situations where that could yield incorrect results?

Definition at line 1224 of file NavDataFactoryWithStore.cpp.

◆ numSatellites()

size_t gnsstk::NavDataFactoryWithStore::numSatellites ( ) const
virtual

Return the number of distinct signals including PRN, in the data.

Reimplemented in gnsstk::MultiFormatNavDataFactory.

Definition at line 1145 of file NavDataFactoryWithStore.cpp.

◆ numSignals()

size_t gnsstk::NavDataFactoryWithStore::numSignals ( ) const
virtual

Return the number of distinct signals (ignoring PRN) in the data.

Reimplemented in gnsstk::MultiFormatNavDataFactory.

Definition at line 1130 of file NavDataFactoryWithStore.cpp.

◆ size()

size_t gnsstk::NavDataFactoryWithStore::size ( ) const
virtual

Return the number of nav messages in data.

Reimplemented in gnsstk::MultiFormatNavDataFactory.

Definition at line 1005 of file NavDataFactoryWithStore.cpp.

◆ updateInitialFinal()

bool gnsstk::NavDataFactoryWithStore::updateInitialFinal ( const CommonTime begin,
const CommonTime end 
)
protected

Update initialTime and finalTime according to a fit interval or other timestamp. For orbital elements with an actual fit interval, the beginning and end of the fit interval are specified as arguments. For tabular orbital data (e.g. SP3), the time stamp of the data is used for both parameters.

Parameters
[in]beginThe start of the fit interval of the orbital elements being processed.
[in]endThe end of the fit interval of the orbital elements being processed.
Postcondition
initialTime and/or finalTime may be updated.

Definition at line 957 of file NavDataFactoryWithStore.cpp.

◆ validityCheck() [1/2]

bool gnsstk::NavDataFactoryWithStore::validityCheck ( const NavDataPtr ndp,
NavValidityType  valid,
SVHealth  xmitHealth,
const CommonTime when 
)
protected

Performs an appropriate validity check based on the desired validity.

Parameters
[in]ndpThe NavDataPtr object whose validity is to be checked.
[in]validThe desired validity for navigation data.
[in]xmitHealthThe desired health status of the transmitting satellite.
Returns
true if the validity of ndp matches the requested validity described by valid and the health status of the transmitting satellite matches xmitHealth.

Definition at line 1178 of file NavDataFactoryWithStore.cpp.

◆ validityCheck() [2/2]

bool gnsstk::NavDataFactoryWithStore::validityCheck ( const NavMap::iterator &  ti,
NavMap nm,
NavValidityType  valid,
SVHealth  xmitHealth,
const CommonTime when 
)
protected

Performs an appropriate validity check based on the desired validity.

Parameters
[in]tiA container iterator pointing to the nav data to check.
[in]nmThe NavMap that ti is iterating over.
[in]validThe desired validity for navigation data.
[in]xmitHealthThe desired health status of the transmitting satellite.
Returns
true if the validity of the nav data pointed to by ti matches the requested validity described by valid and the health status of the transmitting satellite matches xmitHealth.

Definition at line 1160 of file NavDataFactoryWithStore.cpp.

Friends And Related Function Documentation

◆ MultiFormatNavDataFactory

friend class MultiFormatNavDataFactory
friend

Grant access to MultiFormatNavDataFactory for various functions.

Definition at line 470 of file NavDataFactoryWithStore.hpp.

◆ NavDataFactoryStoreCallback

friend class NavDataFactoryStoreCallback
friend

Grant access to NavDataFactoryStoreCallback to data maps.

Definition at line 472 of file NavDataFactoryWithStore.hpp.

Member Data Documentation

◆ data

NavMessageMap gnsstk::NavDataFactoryWithStore::data
protected

Internal storage of navigation data for User searches.

Definition at line 456 of file NavDataFactoryWithStore.hpp.

◆ finalTime

CommonTime gnsstk::NavDataFactoryWithStore::finalTime
protected

Store the latest applicable orbit time here, by addNavData.

Definition at line 465 of file NavDataFactoryWithStore.hpp.

◆ firstLastMap

std::map<SatID,std::pair<CommonTime,CommonTime> > gnsstk::NavDataFactoryWithStore::firstLastMap
protected

Map subject satellite ID to time stamp pair (oldest,newest).

Definition at line 467 of file NavDataFactoryWithStore.hpp.

◆ initialTime

CommonTime gnsstk::NavDataFactoryWithStore::initialTime
protected

Store the earliest applicable orbit time here, by addNavData.

Definition at line 463 of file NavDataFactoryWithStore.hpp.

◆ nearestData

NavNearMessageMap gnsstk::NavDataFactoryWithStore::nearestData
protected

Internal storage of navigation data for Nearest searches.

Definition at line 458 of file NavDataFactoryWithStore.hpp.

◆ offsetData

OffsetCvtMap gnsstk::NavDataFactoryWithStore::offsetData
protected

Store the time offset data separate from the other nav data because searching is very different.

Definition at line 461 of file NavDataFactoryWithStore.hpp.

◆ touBySig

TOUSigMap gnsstk::NavDataFactoryWithStore::touBySig
private

Each signal's uniquely transmitted time offset.

Definition at line 494 of file NavDataFactoryWithStore.hpp.

◆ touBySV

TOUSatMap gnsstk::NavDataFactoryWithStore::touBySV
private

Each satellite's uniquely transmitted time offset.

Definition at line 493 of file NavDataFactoryWithStore.hpp.


The documentation for this class was generated from the following files:
gnsstk::CarrierBand::Any
@ Any
Used to match any carrier band.
gnsstk::NavType::Any
@ Any
Used to match any nav code.
gnsstk::ObservationType::Any
@ Any
Used to match any observation type.
gnsstk::NavMessageType::Unknown
@ Unknown
Message type is not known or is uninitialized.
gnsstk::SatelliteSystem::Unknown
@ Unknown
gnsstk::XmitAnt::Any
@ Any
When making comparisons in ObsID, matches any enumeration.
gnsstk::TrackingCode::Any
@ Any
Used to match any tracking code.


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