0.4.1
Loading...
Searching...
No Matches
NAV::GPSEphemeris Class Referencefinal

Broadcasted ephemeris message data. More...

Public Member Functions

Corrections calcClockCorrections (const InsTime &recvTime, double dist, const Frequency &freq) const final
 Calculates clock bias and drift of the satellite.
 
double calcSatellitePositionVariance () const final
 Calculates the Variance of the satellite position in [m^2].
 
 GPSEphemeris (const GPSEphemeris &)=default
 Copy constructor.
 
 GPSEphemeris (const InsTime &toc)
 Default Constructor.
 
 GPSEphemeris (const InsTime &toc, const InsTime &toe, const size_t &IODE, const size_t &IODC, const std::array< double, 3 > &a, const double &sqrt_A, const double &e, const double &i_0, const double &Omega_0, const double &omega, const double &M_0, const double &delta_n, const double &Omega_dot, const double &i_dot, const double &Cus, const double &Cuc, const double &Cis, const double &Cic, const double &Crs, const double &Crc, const double &svAccuracy, uint8_t svHealth, uint8_t L2ChannelCodes, bool L2DataFlagPCode, const double &T_GD, const double &fitInterval)
 Constructor.
 
 GPSEphemeris (GPSEphemeris &&)=default
 Move constructor.
 
bool isHealthy () const final
 Checks whether the signal is healthy.
 
GPSEphemerisoperator= (const GPSEphemeris &)=delete
 Copy assignment operator.
 
GPSEphemerisoperator= (GPSEphemeris &&)=delete
 Move assignment operator.
 
 ~GPSEphemeris () final=default
 Destructor.
 
- Public Member Functions inherited from NAV::SatNavData
SatNavDataoperator= (const SatNavData &)=delete
 Copy assignment operator.
 
SatNavDataoperator= (SatNavData &&)=delete
 Move assignment operator.
 
 SatNavData (const SatNavData &)=default
 Copy constructor.
 
 SatNavData (SatNavData &&)=default
 Move constructor.
 
 SatNavData (Type type, const InsTime &refTime)
 Constructor.
 
 ~SatNavData () override=default
 Destructor.
 
- Public Member Functions inherited from NAV::Clock
 Clock ()=default
 Default Constructor.
 
 Clock (Clock &&)=default
 Move constructor.
 
 Clock (const Clock &)=default
 Copy constructor.
 
Clockoperator= (Clock &&)=delete
 Move assignment operator.
 
Clockoperator= (const Clock &)=delete
 Copy assignment operator.
 
virtual ~Clock ()=default
 Destructor.
 
- Public Member Functions inherited from NAV::Orbit
Pos calcSatellitePos (const InsTime &transTime) const
 Calculates position of the satellite at transmission time.
 
PosVel calcSatellitePosVel (const InsTime &transTime) const
 Calculates position and velocity of the satellite at transmission time.
 
PosVelAccel calcSatellitePosVelAccel (const InsTime &transTime) const
 Calculates position, velocity and acceleration of the satellite at transmission time.
 
Orbitoperator= (const Orbit &)=delete
 Copy assignment operator.
 
Orbitoperator= (Orbit &&)=delete
 Move assignment operator.
 
 Orbit ()=default
 Default Constructor.
 
 Orbit (const Orbit &)=default
 Copy constructor.
 
 Orbit (Orbit &&)=default
 Move constructor.
 
virtual ~Orbit ()=default
 Destructor.
 

Data Fields

std::array< double, 3 > a
 
double Cic
 Amplitude of the cosine harmonic correction term to the angle of inclination [rad].
 
double Cis
 Amplitude of the sine harmonic correction term to the angle of inclination [rad].
 
double Crc
 Amplitude of the cosine harmonic correction term to the orbit radius [m].
 
double Crs
 Amplitude of the sine harmonic correction term to the orbit radius [m].
 
double Cuc
 Amplitude of the cosine harmonic correction term to the argument of latitude [rad].
 
double Cus
 Amplitude of the sine harmonic correction term to the argument of latitude [rad].
 
double delta_n
 Mean motion difference from computed value [rad/s].
 
double e
 Eccentricity [-].
 
double fitInterval
 Fit Interval of ephemerides [h].
 
double i_0
 Inclination angle at reference time [rad].
 
double i_dot
 Rate of change of inclination [rad/s].
 
size_t IODC
 Issue of Data, Clock.
 
size_t IODE
 Issue of Data, Ephemeris.
 
uint8_t L2ChannelCodes
 Indicate which code(s) is (are) commanded ON for the in-phase component of the L2 channel.
 
bool L2DataFlagPCode
 Data Flag for L2 P-Code.
 
double M_0
 Mean anomaly at reference time [rad].
 
double omega
 Argument of perigee [rad].
 
double Omega_0
 Longitude of the ascending node at reference time [rad].
 
double Omega_dot
 Rate of change of right ascension [rad/s].
 
double sqrt_A
 Square root of the semi-major axis [m^1/2].
 
double svAccuracy
 SV accuracy [m].
 
uint8_t svHealth
 SV health.
 
double T_GD
 Estimated Group Delay Differential. L1 and L2 correction term [s].
 
InsTime toc
 Time of Clock.
 
InsTime toe
 Time of Ephemeris.
 
- Data Fields inherited from NAV::SatNavData
InsTime refTime
 Reference time of the information.
 
const Type type
 Child type (for down-casting)
 

Private Member Functions

PosVelAccel calcSatelliteData (const InsTime &transTime, Orbit::Calc calc) const final
 Calculates position, velocity and acceleration of the satellite at transmission time.
 

Additional Inherited Members

- Public Types inherited from NAV::SatNavData
enum  Type : uint8_t {
  GPSEphemeris ,
  GalileoEphemeris ,
  GLONASSEphemeris ,
  BeiDouEphemeris ,
  QZSSEphemeris ,
  IRNSSEphemeris ,
  SBASEphemeris
}
 Child type. More...
 
- Protected Types inherited from NAV::Orbit
enum  Calc : uint8_t {
  Calc_None ,
  Calc_Position ,
  Calc_Velocity ,
  Calc_Acceleration
}
 Calculation flags. More...
 

Detailed Description

Broadcasted ephemeris message data.

Note
See [21] IS-GPS-200M, Table 20-III, p. 105
Description of the GPS satellite orbits

Definition at line 27 of file GPSEphemeris.hpp.

Constructor & Destructor Documentation

◆ GPSEphemeris() [1/4]

NAV::GPSEphemeris::GPSEphemeris ( const InsTime & toc)
explicit

Default Constructor.

Parameters
[in]tocTime the Clock information is calculated (Time of Clock)

Definition at line 19 of file GPSEphemeris.cpp.

◆ GPSEphemeris() [2/4]

NAV::GPSEphemeris::GPSEphemeris ( const InsTime & toc,
const InsTime & toe,
const size_t & IODE,
const size_t & IODC,
const std::array< double, 3 > & a,
const double & sqrt_A,
const double & e,
const double & i_0,
const double & Omega_0,
const double & omega,
const double & M_0,
const double & delta_n,
const double & Omega_dot,
const double & i_dot,
const double & Cus,
const double & Cuc,
const double & Cis,
const double & Cic,
const double & Crs,
const double & Crc,
const double & svAccuracy,
uint8_t svHealth,
uint8_t L2ChannelCodes,
bool L2DataFlagPCode,
const double & T_GD,
const double & fitInterval )

Constructor.

Parameters
[in]tocTime the Clock information is calculated (Time of Clock)
[in]toeTime the Orbit information is calculated (Time of Ephemeris)
[in]IODEIssue of Data, Ephemeris
[in]IODCIssue of Data, Clock
[in]aPolynomial coefficients for clock correction (a0 bias [s], a1 drift [s/s], a2 drift rate (aging) [s/s^2])
[in]sqrt_ASquare root of the semi-major axis [m^1/2]
[in]eEccentricity [-]
[in]i_0Inclination angle at reference time [rad]
[in]Omega_0Longitude of the ascending node at reference time [rad]
[in]omegaArgument of perigee [rad]
[in]M_0Mean anomaly at reference time [rad]
[in]delta_nMean motion difference from computed value [rad/s]
[in]Omega_dotRate of change of right ascension [rad/s]
[in]i_dotRate of change of inclination [rad/s]
[in]CusAmplitude of the sine harmonic correction term to the argument of latitude [rad]
[in]CucAmplitude of the cosine harmonic correction term to the argument of latitude [rad]
[in]CisAmplitude of the sine harmonic correction term to the angle of inclination [rad]
[in]CicAmplitude of the cosine harmonic correction term to the angle of inclination [rad]
[in]CrsAmplitude of the sine harmonic correction term to the orbit radius [m]
[in]CrcAmplitude of the cosine harmonic correction term to the orbit radius [m]
[in]svAccuracySV accuracy [m]
[in]svHealthSignal Health
[in]L2ChannelCodesIndicate which code(s) is (are) commanded ON for the in-phase component of the L2 channel
[in]L2DataFlagPCodeData Flag for L2 P-Code
[in]T_GDEstimated Group Delay Differential. L1 and L2 correction term [s]
[in]fitIntervalFit Interval of ephemerides [h]

Definition at line 22 of file GPSEphemeris.cpp.

◆ ~GPSEphemeris()

NAV::GPSEphemeris::~GPSEphemeris ( )
finaldefault

Destructor.

◆ GPSEphemeris() [3/4]

NAV::GPSEphemeris::GPSEphemeris ( const GPSEphemeris & )
default

Copy constructor.

◆ GPSEphemeris() [4/4]

NAV::GPSEphemeris::GPSEphemeris ( GPSEphemeris && )
default

Move constructor.

Member Function Documentation

◆ calcClockCorrections()

Clock::Corrections NAV::GPSEphemeris::calcClockCorrections ( const InsTime & recvTime,
double dist,
const Frequency & freq ) const
nodiscardfinalvirtual

Calculates clock bias and drift of the satellite.

Parameters
[in]recvTimeReceive time of the signal
[in]distDistance between receiver and satellite (normally the pseudorange) [m]
[in]freqSignal Frequency

Implements NAV::Clock.

Definition at line 101 of file GPSEphemeris.cpp.

◆ calcSatelliteData()

Orbit::PosVelAccel NAV::GPSEphemeris::calcSatelliteData ( const InsTime & transTime,
Orbit::Calc calc ) const
nodiscardfinalprivatevirtual

Calculates position, velocity and acceleration of the satellite at transmission time.

Parameters
[in]transTimeTransmit time of the signal
[in]calcFlags which determine what should be calculated and returned
Note
See [21] IS-GPS-200 ch. 20.3.3.4.3.1 Table 20-IV p.106-109

Implements NAV::Orbit.

Definition at line 177 of file GPSEphemeris.cpp.

◆ calcSatellitePositionVariance()

double NAV::GPSEphemeris::calcSatellitePositionVariance ( ) const
nodiscardfinalvirtual

Calculates the Variance of the satellite position in [m^2].

Implements NAV::Orbit.

Definition at line 322 of file GPSEphemeris.cpp.

◆ isHealthy()

bool NAV::GPSEphemeris::isHealthy ( ) const
nodiscardfinalvirtual

Checks whether the signal is healthy.

Implements NAV::SatNavData.

Definition at line 317 of file GPSEphemeris.cpp.

◆ operator=() [1/2]

GPSEphemeris & NAV::GPSEphemeris::operator= ( const GPSEphemeris & )
delete

Copy assignment operator.

◆ operator=() [2/2]

GPSEphemeris & NAV::GPSEphemeris::operator= ( GPSEphemeris && )
delete

Move assignment operator.

Field Documentation

◆ a

std::array<double, 3> NAV::GPSEphemeris::a

Polynomial coefficients for clock correction

  • a(0) bias [s]
  • a(1) drift [s/s]
  • a(2) drift rate (aging) [s/s^2]
Note
See [21] GPS ICD, ch. 20.3.3.3.1.8, p.95

Definition at line 64 of file GPSEphemeris.hpp.

◆ Cic

double NAV::GPSEphemeris::Cic

Amplitude of the cosine harmonic correction term to the angle of inclination [rad].

Definition at line 83 of file GPSEphemeris.hpp.

◆ Cis

double NAV::GPSEphemeris::Cis

Amplitude of the sine harmonic correction term to the angle of inclination [rad].

Definition at line 82 of file GPSEphemeris.hpp.

◆ Crc

double NAV::GPSEphemeris::Crc

Amplitude of the cosine harmonic correction term to the orbit radius [m].

Definition at line 85 of file GPSEphemeris.hpp.

◆ Crs

double NAV::GPSEphemeris::Crs

Amplitude of the sine harmonic correction term to the orbit radius [m].

Definition at line 84 of file GPSEphemeris.hpp.

◆ Cuc

double NAV::GPSEphemeris::Cuc

Amplitude of the cosine harmonic correction term to the argument of latitude [rad].

Definition at line 81 of file GPSEphemeris.hpp.

◆ Cus

double NAV::GPSEphemeris::Cus

Amplitude of the sine harmonic correction term to the argument of latitude [rad].

Definition at line 80 of file GPSEphemeris.hpp.

◆ delta_n

double NAV::GPSEphemeris::delta_n

Mean motion difference from computed value [rad/s].

Definition at line 77 of file GPSEphemeris.hpp.

◆ e

double NAV::GPSEphemeris::e

Eccentricity [-].

Definition at line 69 of file GPSEphemeris.hpp.

◆ fitInterval

double NAV::GPSEphemeris::fitInterval

Fit Interval of ephemerides [h].

Note
See [21] GPS ICD, ch. 20.3.3.4.1, p.102

Definition at line 131 of file GPSEphemeris.hpp.

◆ i_0

double NAV::GPSEphemeris::i_0

Inclination angle at reference time [rad].

Definition at line 70 of file GPSEphemeris.hpp.

◆ i_dot

double NAV::GPSEphemeris::i_dot

Rate of change of inclination [rad/s].

Definition at line 79 of file GPSEphemeris.hpp.

◆ IODC

size_t NAV::GPSEphemeris::IODC

Issue of Data, Clock.

Indicates the issue number of the data set and thereby provides the user with a convenient means of detecting any change in the subframe 1 core CEI data. Constraints on the IODC as well as the relationship between the IODC and the IODE (issue of data, ephemeris) terms are defined in [21] GPS ICD, ch. 20.3.4.4.

Note
See [21] GPS ICD, ch. 20.3.3.3.1.5, p.95

Definition at line 56 of file GPSEphemeris.hpp.

◆ IODE

size_t NAV::GPSEphemeris::IODE

Issue of Data, Ephemeris.

Provides the user with a convenient means for detecting any change in the ephemeris representation parameters

Note
See [21] GPS ICD, ch. 20.3.3.4.1, p.102

Definition at line 47 of file GPSEphemeris.hpp.

◆ L2ChannelCodes

uint8_t NAV::GPSEphemeris::L2ChannelCodes

Indicate which code(s) is (are) commanded ON for the in-phase component of the L2 channel.

00 = Invalid, 01 = P-code ON, 10 = C/A-code ON, 11 = Invalid.

These bits provide no indication of which code(s), if any, may be commanded ON for the quadrature component of the L2 channel.

Note
See [21] GPS ICD, ch. 20.3.3.3.1.2, p. 92

Definition at line 115 of file GPSEphemeris.hpp.

◆ L2DataFlagPCode

bool NAV::GPSEphemeris::L2DataFlagPCode

Data Flag for L2 P-Code.

1 indicates that the LNAV data stream was commanded OFF on the P-code of the in-phase component of the L2 channel. This bit provides no indication of whether LNAV data is or is not present on any code modulated on the quadrature component of the L2 channel.

Note
See [21] GPS ICD, ch. 20.3.3.3.1.6, p. 95

Definition at line 123 of file GPSEphemeris.hpp.

◆ M_0

double NAV::GPSEphemeris::M_0

Mean anomaly at reference time [rad].

Definition at line 73 of file GPSEphemeris.hpp.

◆ omega

double NAV::GPSEphemeris::omega

Argument of perigee [rad].

Definition at line 72 of file GPSEphemeris.hpp.

◆ Omega_0

double NAV::GPSEphemeris::Omega_0

Longitude of the ascending node at reference time [rad].

Definition at line 71 of file GPSEphemeris.hpp.

◆ Omega_dot

double NAV::GPSEphemeris::Omega_dot

Rate of change of right ascension [rad/s].

Definition at line 78 of file GPSEphemeris.hpp.

◆ sqrt_A

double NAV::GPSEphemeris::sqrt_A

Square root of the semi-major axis [m^1/2].

Definition at line 68 of file GPSEphemeris.hpp.

◆ svAccuracy

double NAV::GPSEphemeris::svAccuracy

SV accuracy [m].

Derived from an URA index of the SV for the standard positioning service user.

Note
See [21] GPS ICD, ch. 20.3.3.3.1.3, p.92ff

Definition at line 94 of file GPSEphemeris.hpp.

◆ svHealth

uint8_t NAV::GPSEphemeris::svHealth

SV health.

0 = all LNAV data are OK 1 = some or all LNAV data are bad

Note
See [21] GPS ICD, ch. 20.3.3.3.1.4, p. 94
See [21] GPS ICD, ch. 20.3.3.5.1.3, p. 117ff

Definition at line 103 of file GPSEphemeris.hpp.

◆ T_GD

double NAV::GPSEphemeris::T_GD

Estimated Group Delay Differential. L1 and L2 correction term [s].

Note
See [21] GPS ICD, ch. 20.3.3.3.1.7, p. 95

Definition at line 127 of file GPSEphemeris.hpp.

◆ toc

InsTime NAV::GPSEphemeris::toc

Time of Clock.

Definition at line 37 of file GPSEphemeris.hpp.

◆ toe

InsTime NAV::GPSEphemeris::toe

Time of Ephemeris.

Definition at line 40 of file GPSEphemeris.hpp.


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