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

Detailed Description

Filter GPS subframes using a voting algorithm across a single epoch. This may be used for a single receiver where multiple codes can be compared against each other, or across multiple receivers (with or without multiple codes).

Attention
Processing depth = 2 epochs.
Examples
navfilterex-pseudo-inherit.cpp.

Definition at line 57 of file LNavCrossSourceFilter.hpp.

#include <LNavCrossSourceFilter.hpp>

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

Public Member Functions

virtual std::string filterName () const noexcept
 Return the filter name. More...
 
virtual void finalize (NavMsgList &msgBitsOut)
 
 LNavCrossSourceFilter ()
 
virtual unsigned processingDepth () const noexcept
 Internally stores 1 epoch's worth of subframe data. More...
 
virtual void validate (NavMsgList &msgBitsIn, NavMsgList &msgBitsOut)
 
- Public Member Functions inherited from gnsstk::NavFilter
virtual void dumpRejected (std::ostream &out) const
 Debug support. More...
 
 NavFilter ()
 
virtual std::string reasonTerse () const noexcept
 
virtual std::vector< std::string > reasonVerbose () const noexcept
 

Protected Types

typedef std::map< uint32_t, SubframeMapNavMap
 Map from PRN to SubframeMap. More...
 
typedef std::map< LNavFilterData *, NavMsgList, LNavMsgSortSubframeMap
 Map from subframe data to source list. More...
 

Protected Member Functions

void examineSubframes (NavMsgList &msgBitsOut)
 
- Protected Member Functions inherited from gnsstk::NavFilter
void accept (const NavMsgList &valid, NavMsgList &msgBitsOut)
 
void accept (NavFilterKey *data, NavMsgList &msgBitsOut)
 
void reject (const NavMsgList &invalid)
 
void reject (NavFilterKey *data)
 

Protected Attributes

gnsstk::CommonTime currentTime
 Most recent time. More...
 
NavMap groupedNav
 Nav subframes grouped by prn and unique nav bits. More...
 

Additional Inherited Members

- Public Types inherited from gnsstk::NavFilter
typedef std::list< NavFilterKey * > NavMsgList
 
- Public Attributes inherited from gnsstk::NavFilter
NavMsgList rejected
 

Member Typedef Documentation

◆ NavMap

typedef std::map<uint32_t, SubframeMap> gnsstk::LNavCrossSourceFilter::NavMap
protected

Map from PRN to SubframeMap.

Definition at line 93 of file LNavCrossSourceFilter.hpp.

◆ SubframeMap

Map from subframe data to source list.

Definition at line 91 of file LNavCrossSourceFilter.hpp.

Constructor & Destructor Documentation

◆ LNavCrossSourceFilter()

gnsstk::LNavCrossSourceFilter::LNavCrossSourceFilter ( )

Definition at line 44 of file LNavCrossSourceFilter.cpp.

Member Function Documentation

◆ examineSubframes()

void gnsstk::LNavCrossSourceFilter::examineSubframes ( NavMsgList msgBitsOut)
protected

Filter by vote.

Note
Bare minimum for producing output is 2 out of 3 matching subframes. If there are no matching subframes, or fewer than 3 subframes are present in groupedNav, no output will be produced.
Parameters
[out]msgBitsOutNav messages passing the voting algorithm are stored here.

Definition at line 76 of file LNavCrossSourceFilter.cpp.

◆ filterName()

virtual std::string gnsstk::LNavCrossSourceFilter::filterName ( ) const
inlinevirtualnoexcept

Return the filter name.

Implements gnsstk::NavFilter.

Definition at line 86 of file LNavCrossSourceFilter.hpp.

◆ finalize()

void gnsstk::LNavCrossSourceFilter::finalize ( NavMsgList msgBitsOut)
virtual

Flush the remaining contents of groupedNav.

Parameters
[out]msgBitsOutAny remaining valid (by vote) nav messages are stored here on return.

Implements gnsstk::NavFilter.

Definition at line 68 of file LNavCrossSourceFilter.cpp.

◆ processingDepth()

virtual unsigned gnsstk::LNavCrossSourceFilter::processingDepth ( ) const
inlinevirtualnoexcept

Internally stores 1 epoch's worth of subframe data.

Implements gnsstk::NavFilter.

Definition at line 82 of file LNavCrossSourceFilter.hpp.

◆ validate()

void gnsstk::LNavCrossSourceFilter::validate ( NavMsgList msgBitsIn,
NavMsgList msgBitsOut 
)
virtual

Add LNAV messages to the voting collection (groupedNav).

Precondition
NavFilterKey::timeStamp is set to either the HOW time of the subframe, or the time of transmission of the subframe.
NavFilterKey::prn is set
LNavFilterData::sf is set
Parameters
[in,out]msgBitsInA list of LNavFilterData* objects containing GPS legacy navigation messages (id 2).
[out]msgBitsOutThe messages successfully passing the filter. The contents of msgBitsOut will always be one epoch behind msgBitsIn (meaning data from prevous, but not current calls to validate will be here).

Implements gnsstk::NavFilter.

Definition at line 49 of file LNavCrossSourceFilter.cpp.

Member Data Documentation

◆ currentTime

gnsstk::CommonTime gnsstk::LNavCrossSourceFilter::currentTime
protected

Most recent time.

Definition at line 98 of file LNavCrossSourceFilter.hpp.

◆ groupedNav

NavMap gnsstk::LNavCrossSourceFilter::groupedNav
protected

Nav subframes grouped by prn and unique nav bits.

Definition at line 96 of file LNavCrossSourceFilter.hpp.


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


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