Classes | Public Member Functions | Public Attributes | Static Public Attributes | Private Attributes | Friends | List of all members
gnsstk::GLOCNavAlm Class Reference

Detailed Description

Class containing data elements unique to GLONASS Civil C-Nav almanacs.

Note
Apologies for not thoroughly documenting every little parameter in here, but neither did the GLONASS ICD. In any case, many of them aren't visible to the end user.

Definition at line 61 of file GLOCNavAlm.hpp.

#include <GLOCNavAlm.hpp>

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

Classes

class  Corrected
 Provide methods for computing the corrected Keplerian parameters. More...
 
class  Deltas
 
class  NumberCruncher
 Class to assist in doing all the math to get the XVT. More...
 
class  Perturbations
 
class  Uncorrected
 

Public Member Functions

NavDataPtr clone () const override
 Create a deep copy of this object. More...
 
void dump (std::ostream &s, DumpDetail dl) const override
 
void dumpTerse (std::ostream &s) const
 
void fixFit ()
 
CommonTime getUserTime () const override
 
bool getXvt (const CommonTime &when, Xvt &xvt, const ObsID &=ObsID()) override
 
 GLOCNavAlm ()
 Sets the nav message type, and all other data members to 0. More...
 
bool validate () const override
 
- Public Member Functions inherited from gnsstk::GLOCNavData
 GLOCNavData ()
 Sets the nav message type and all other data members to 0. More...
 
bool validate () const override
 
- Public Member Functions inherited from gnsstk::OrbitData
std::list< std::string > compare (const NavDataPtr &right) const override
 
bool isSameData (const NavDataPtr &right) const override
 
- Public Member Functions inherited from gnsstk::NavData
virtual std::string getClassName () const
 
std::string getDumpTime (DumpDetail dl, const CommonTime &t) const
 
std::string getDumpTimeHdr (DumpDetail dl) const
 
virtual CommonTime getNearTime () const
 
std::string getSignalString () const
 
bool getSVN (const SatID &sat, const gnsstk::CommonTime &when, std::string &svn) const
 
 NavData ()
 Initialize internal data fields. More...
 

Public Attributes

unsigned aoa
 Age of almanac (EA). More...
 
double deltai
 Inclination offset from 64.8 degrees (semicirc). More...
 
double deltaT
 Draconic orbital period offset. More...
 
double deltaTdot
 Draconic orbital period rate. More...
 
double ecc
 Eccentricity at tlambdaA. More...
 
double lambda
 Longitude of first ascending node (semicirc). More...
 
unsigned NA
 Almanac reference time days since leap year. More...
 
unsigned numSVs
 Number of SVs in complete almanac (NS). More...
 
double omega
 Almanac parameter for argument of perigee (semicirc). More...
 
GLOCOrbitType orbitType
 Orbit type. More...
 
GLOCSatType satType
 What satellite j is and what it transmits. More...
 
unsigned statusReg
 Status register (SRA 5.3.2.7). More...
 
double tau
 Time correction from L3OCd to GLONASS. More...
 
double tLambda
 Instant in Moscow time when passing lambda. More...
 
CommonTime Toa
 Reference time for almanac. More...
 
- Public Attributes inherited from gnsstk::GLOCNavData
GLOCNavHeader header
 Common data. More...
 
- Public Attributes inherited from gnsstk::NavData
NavMessageID signal
 Source signal identification for this navigation message data. More...
 
CommonTime timeStamp
 
std::string weekFmt
 
- Public Attributes inherited from gnsstk::NavFit
CommonTime beginFit
 Time at beginning of fit interval. More...
 
CommonTime endFit
 Time at end of fit interval. More...
 

Static Public Attributes

static const GNSSTK_EXPORT double ae = ell.a_km()
 Equatorial radius of Earth in km. More...
 
static const GNSSTK_EXPORT PZ90Ellipsoid ell
 Ellipsoid parameters used by GLONASS. More...
 
static const GNSSTK_EXPORT double GM = ell.gm_km()
 Gravitational constant. More...
 
static const GNSSTK_EXPORT double iav = 64.8
 iap</cp> as defined in ICD-GLONASS-CDMA-L3 section 5.3.2.12 More...
 
static const GNSSTK_EXPORT double J20 = 1082625.75e-9
 Second degree coefficient of normal potential, table 4.1. More...
 
static constexpr GNSSTK_EXPORT double omegaE = 0.7292115e-4
 Earth's rotation rate (rad/s). More...
 
static const GNSSTK_EXPORT double Tav = 40544.0
 Tav</cp> as defined in ICD-GLONASS-CDMA-L3 section 5.3.2.15. More...
 
- Static Public Attributes inherited from gnsstk::NavData
static const GNSSTK_EXPORT std::string dumpTimeFmt
 Time format used for the dump method (Full). More...
 
static const GNSSTK_EXPORT std::string dumpTimeFmtBrief
 Time format used for the dump method (Brief). More...
 
static GNSSTK_EXPORT gnsstk::SatMetaDataStoresatMetaDataStore = nullptr
 Set this to a valid store to get PRN->SVN translations in dump(). More...
 

Private Attributes

NumberCruncher math
 Retain as much computed data as possible. More...
 

Friends

class ::GLOCNavAlm_T
 

Additional Inherited Members

- Static Public Member Functions inherited from gnsstk::NavData
static gnsstk::SatMetaDataStoregetSatMetaDataStore ()
 Accessor for python. More...
 
static void setSatMetaDataStore (gnsstk::SatMetaDataStore *smds)
 Accessor for python. More...
 
- Protected Attributes inherited from gnsstk::NavData
double msgLenSec
 

Constructor & Destructor Documentation

◆ GLOCNavAlm()

gnsstk::GLOCNavAlm::GLOCNavAlm ( )

Sets the nav message type, and all other data members to 0.

Definition at line 62 of file GLOCNavAlm.cpp.

Member Function Documentation

◆ clone()

NavDataPtr gnsstk::GLOCNavAlm::clone ( ) const
inlineoverridevirtual

Create a deep copy of this object.

Implements gnsstk::NavData.

Definition at line 82 of file GLOCNavAlm.hpp.

◆ dump()

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

Print the contents of this NavData object in a (usually) human-readable format.

Parameters
[in,out]sThe stream to write the data to.
[in]dlThe level of detail the output should contain.

Reimplemented from gnsstk::NavData.

Definition at line 125 of file GLOCNavAlm.cpp.

◆ dumpTerse()

void gnsstk::GLOCNavAlm::dumpTerse ( std::ostream &  s) const

Dump contents in terse format (DumpDetail==Terse)

Parameters
[in,out]sThe stream to write the data to.

Definition at line 216 of file GLOCNavAlm.cpp.

◆ fixFit()

void gnsstk::GLOCNavAlm::fixFit ( )

Fill the beginFit and endFit values for this object.

Precondition
timeStamp must be set.
Todo:
get a better end fit interval than this.

Definition at line 110 of file GLOCNavAlm.cpp.

◆ getUserTime()

CommonTime gnsstk::GLOCNavAlm::getUserTime ( ) const
overridevirtual

Returns the time when the navigation message would have first been available to the user equipment, i.e. the time at which the final bit of a given broadcast navigation message is received. This is used by NavDataFactoryWithStore::find() in User mode.

Returns
most recent transmit time + 6s.

Reimplemented from gnsstk::NavData.

Definition at line 103 of file GLOCNavAlm.cpp.

◆ getXvt()

bool gnsstk::GLOCNavAlm::getXvt ( const CommonTime when,
Xvt xvt,
const ObsID oid = ObsID() 
)
overridevirtual

Compute the satellites position and velocity at a time.

Parameters
[in]whenThe time at which to compute the xvt.
[out]xvtThe resulting computed position/velocity.
[in]oidValue is ignored - GLONASS does not have distinct transmitters.
Returns
true if successful, false if required nav data was unavailable.
Todo:
Add some sanity checks later.

Implements gnsstk::OrbitData.

Definition at line 92 of file GLOCNavAlm.cpp.

◆ validate()

bool gnsstk::GLOCNavAlm::validate ( ) const
overridevirtual

Checks the contents of this message against known validity rules as defined in the appropriate ICD.

Returns
true if this message is valid according to ICD criteria.
Todo:
implement some checking.

Implements gnsstk::NavData.

Definition at line 84 of file GLOCNavAlm.cpp.

Friends And Related Function Documentation

◆ ::GLOCNavAlm_T

friend class ::GLOCNavAlm_T
friend

Definition at line 392 of file GLOCNavAlm.hpp.

Member Data Documentation

◆ ae

const double gnsstk::GLOCNavAlm::ae = ell.a_km()
static

Equatorial radius of Earth in km.

Definition at line 69 of file GLOCNavAlm.hpp.

◆ aoa

unsigned gnsstk::GLOCNavAlm::aoa

Age of almanac (EA).

Definition at line 132 of file GLOCNavAlm.hpp.

◆ deltai

double gnsstk::GLOCNavAlm::deltai

Inclination offset from 64.8 degrees (semicirc).

Definition at line 139 of file GLOCNavAlm.hpp.

◆ deltaT

double gnsstk::GLOCNavAlm::deltaT

Draconic orbital period offset.

Definition at line 142 of file GLOCNavAlm.hpp.

◆ deltaTdot

double gnsstk::GLOCNavAlm::deltaTdot

Draconic orbital period rate.

Definition at line 143 of file GLOCNavAlm.hpp.

◆ ecc

double gnsstk::GLOCNavAlm::ecc

Eccentricity at tlambdaA.

Definition at line 140 of file GLOCNavAlm.hpp.

◆ ell

const PZ90Ellipsoid gnsstk::GLOCNavAlm::ell
static

Ellipsoid parameters used by GLONASS.

Definition at line 65 of file GLOCNavAlm.hpp.

◆ GM

const double gnsstk::GLOCNavAlm::GM = ell.gm_km()
static

Gravitational constant.

Definition at line 67 of file GLOCNavAlm.hpp.

◆ iav

const double gnsstk::GLOCNavAlm::iav = 64.8
static

iap</cp> as defined in ICD-GLONASS-CDMA-L3 section 5.3.2.12

Todo:
These constants are defined in the individual ICDs for each signal. They're currently taken from the L3 ICD as I don't have any L1 or L2 data. As such, they may need to change to signal-dependent in the future.

Definition at line 73 of file GLOCNavAlm.hpp.

◆ J20

const double gnsstk::GLOCNavAlm::J20 = 1082625.75e-9
static

Second degree coefficient of normal potential, table 4.1.

Definition at line 77 of file GLOCNavAlm.hpp.

◆ lambda

double gnsstk::GLOCNavAlm::lambda

Longitude of first ascending node (semicirc).

Definition at line 137 of file GLOCNavAlm.hpp.

◆ math

NumberCruncher gnsstk::GLOCNavAlm::math
private

Retain as much computed data as possible.

Definition at line 389 of file GLOCNavAlm.hpp.

◆ NA

unsigned gnsstk::GLOCNavAlm::NA

Almanac reference time days since leap year.

Definition at line 133 of file GLOCNavAlm.hpp.

◆ numSVs

unsigned gnsstk::GLOCNavAlm::numSVs

Number of SVs in complete almanac (NS).

Definition at line 131 of file GLOCNavAlm.hpp.

◆ omega

double gnsstk::GLOCNavAlm::omega

Almanac parameter for argument of perigee (semicirc).

Definition at line 141 of file GLOCNavAlm.hpp.

◆ omegaE

constexpr GNSSTK_EXPORT double gnsstk::GLOCNavAlm::omegaE = 0.7292115e-4
staticconstexpr

Earth's rotation rate (rad/s).

Definition at line 71 of file GLOCNavAlm.hpp.

◆ orbitType

GLOCOrbitType gnsstk::GLOCNavAlm::orbitType

Orbit type.

Definition at line 130 of file GLOCNavAlm.hpp.

◆ satType

GLOCSatType gnsstk::GLOCNavAlm::satType

What satellite j is and what it transmits.

Definition at line 135 of file GLOCNavAlm.hpp.

◆ statusReg

unsigned gnsstk::GLOCNavAlm::statusReg

Status register (SRA 5.3.2.7).

Definition at line 134 of file GLOCNavAlm.hpp.

◆ tau

double gnsstk::GLOCNavAlm::tau

Time correction from L3OCd to GLONASS.

Definition at line 136 of file GLOCNavAlm.hpp.

◆ Tav

const double gnsstk::GLOCNavAlm::Tav = 40544.0
static

Tav</cp> as defined in ICD-GLONASS-CDMA-L3 section 5.3.2.15.

Definition at line 75 of file GLOCNavAlm.hpp.

◆ tLambda

double gnsstk::GLOCNavAlm::tLambda

Instant in Moscow time when passing lambda.

Definition at line 138 of file GLOCNavAlm.hpp.

◆ Toa

CommonTime gnsstk::GLOCNavAlm::Toa

Reference time for almanac.

Note
the data members are being left in units of semi-circles rather than converting to radians as typical, so that the math in the ICD matches the math in the code.

Definition at line 129 of file GLOCNavAlm.hpp.


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


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