0.4.1
Loading...
Searching...
No Matches
NAV::QZSSEphemeris 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].
 
bool isHealthy () const final
 Checks whether the signal is healthy.
 
QZSSEphemerisoperator= (const QZSSEphemeris &)=delete
 Copy assignment operator.
 
QZSSEphemerisoperator= (QZSSEphemeris &&)=delete
 Move assignment operator.
 
 QZSSEphemeris (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, bool fitIntervalFlag)
 Constructor.
 
 QZSSEphemeris (const QZSSEphemeris &)=default
 Copy Constructor.
 
 QZSSEphemeris (QZSSEphemeris &&)=default
 Move Constructor.
 
 ~QZSSEphemeris () 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

const std::array< double, 3 > a
 
const double Cic
 Amplitude of the cosine harmonic correction term to the angle of inclination [rad].
 
const double Cis
 Amplitude of the sine harmonic correction term to the angle of inclination [rad].
 
const double Crc
 Amplitude of the cosine harmonic correction term to the orbit radius [m].
 
const double Crs
 Amplitude of the sine harmonic correction term to the orbit radius [m].
 
const double Cuc
 Amplitude of the cosine harmonic correction term to the argument of latitude [rad].
 
const double Cus
 Amplitude of the sine harmonic correction term to the argument of latitude [rad].
 
const double delta_n
 Mean motion difference from computed value [rad/s].
 
const double e
 Eccentricity [-].
 
const bool fitIntervalFlag
 Fit Interval period of the ephemeris.
 
const double i_0
 Inclination angle at reference time [rad].
 
const double i_dot
 Rate of inclination angle [rad/s].
 
const size_t IODC
 Issue of Data, Clock.
 
const size_t IODE
 Issue of Data, Ephemeris.
 
const uint8_t L2ChannelCodes
 Indicate which code(s) is (are) commanded ON for the in-phase component of the L2 channel.
 
const bool L2DataFlagPCode
 Data Flag for L2 P-Code.
 
const double M_0
 Mean anomaly at reference time [rad].
 
const double omega
 Argument of perigee [rad].
 
const double Omega_0
 Longitude of the ascending node at reference time [rad].
 
const double Omega_dot
 Rate of right ascension [rad/s].
 
const double sqrt_A
 Square root of the semi-major axis [m^1/2].
 
const double svAccuracy
 SV accuracy [m].
 
const std::bitset< 6 > svHealth
 SV health.
 
const double T_GD
 Group delay between SV clock and L1C/A [s].
 
const InsTime toc
 Time of Clock.
 
const 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 [22] IS QZSS, Table 4.1.2-4, p.46 and Table 4.1.2-7, p.49

Definition at line 28 of file QZSSEphemeris.hpp.

Constructor & Destructor Documentation

◆ QZSSEphemeris() [1/3]

NAV::QZSSEphemeris::QZSSEphemeris ( 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,
bool fitIntervalFlag )

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]svHealthSV 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 (fixed to '1')
[in]T_GDGroup delay between SV clock and L1C/A [s]
[in]fitIntervalFlagFit Interval period of the ephemeris

Definition at line 19 of file QZSSEphemeris.cpp.

◆ ~QZSSEphemeris()

NAV::QZSSEphemeris::~QZSSEphemeris ( )
finaldefault

Destructor.

◆ QZSSEphemeris() [2/3]

NAV::QZSSEphemeris::QZSSEphemeris ( const QZSSEphemeris & )
default

Copy Constructor.

◆ QZSSEphemeris() [3/3]

NAV::QZSSEphemeris::QZSSEphemeris ( QZSSEphemeris && )
default

Move Constructor.

Member Function Documentation

◆ calcClockCorrections()

Clock::Corrections NAV::QZSSEphemeris::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
Note
See [22] IS QZSS, ch. 5.5.2, p.130

Implements NAV::Clock.

Definition at line 97 of file QZSSEphemeris.cpp.

◆ calcSatelliteData()

Orbit::PosVelAccel NAV::QZSSEphemeris::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 [22] IS QZSS, ch. 5.6.1.2, p.133 ff.
See [21] IS-GPS-200 ch. 20.3.3.4.3.1 Table 20-IV p.106-109

Implements NAV::Orbit.

Definition at line 171 of file QZSSEphemeris.cpp.

◆ calcSatellitePositionVariance()

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

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

Implements NAV::Orbit.

Definition at line 316 of file QZSSEphemeris.cpp.

◆ isHealthy()

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

Checks whether the signal is healthy.

Implements NAV::SatNavData.

Definition at line 311 of file QZSSEphemeris.cpp.

◆ operator=() [1/2]

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

Copy assignment operator.

◆ operator=() [2/2]

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

Move assignment operator.

Field Documentation

◆ a

const std::array<double, 3> NAV::QZSSEphemeris::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 [22] IS QZSS, ch. 5.5.1, p.130

Definition at line 72 of file QZSSEphemeris.hpp.

◆ Cic

const double NAV::QZSSEphemeris::Cic

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

Definition at line 91 of file QZSSEphemeris.hpp.

◆ Cis

const double NAV::QZSSEphemeris::Cis

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

Definition at line 90 of file QZSSEphemeris.hpp.

◆ Crc

const double NAV::QZSSEphemeris::Crc

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

Definition at line 93 of file QZSSEphemeris.hpp.

◆ Crs

const double NAV::QZSSEphemeris::Crs

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

Definition at line 92 of file QZSSEphemeris.hpp.

◆ Cuc

const double NAV::QZSSEphemeris::Cuc

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

Definition at line 89 of file QZSSEphemeris.hpp.

◆ Cus

const double NAV::QZSSEphemeris::Cus

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

Definition at line 88 of file QZSSEphemeris.hpp.

◆ delta_n

const double NAV::QZSSEphemeris::delta_n

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

Definition at line 85 of file QZSSEphemeris.hpp.

◆ e

const double NAV::QZSSEphemeris::e

Eccentricity [-].

Definition at line 77 of file QZSSEphemeris.hpp.

◆ fitIntervalFlag

const bool NAV::QZSSEphemeris::fitIntervalFlag

Fit Interval period of the ephemeris.

"0": 2 hours "1": Greater than 2 hours

For QZSS always fixed to "0", since fit interval period of the ephemeris is 2 hours (see Table 4.1.1-2.).

Note
See [22] IS QZSS, ch. 4.1.2.4, p.50

Definition at line 160 of file QZSSEphemeris.hpp.

◆ i_0

const double NAV::QZSSEphemeris::i_0

Inclination angle at reference time [rad].

Definition at line 78 of file QZSSEphemeris.hpp.

◆ i_dot

const double NAV::QZSSEphemeris::i_dot

Rate of inclination angle [rad/s].

Definition at line 87 of file QZSSEphemeris.hpp.

◆ IODC

const size_t NAV::QZSSEphemeris::IODC

Issue of Data, Clock.

Users can detect the update of SV clock parameter by IODC

2 MSBs (most significant bit) of IODC indicate fit intervals:

| 2 MSBs of IODC(binary) | Fit intervals(minutes)

| 00 | 15 | 01 | 30 | 10 | 60

| 11 | 120

Note
See [22] IS QZSS, ch. 4.1.2.3, p.48

Definition at line 64 of file QZSSEphemeris.hpp.

◆ IODE

const size_t NAV::QZSSEphemeris::IODE

Issue of Data, Ephemeris.

Users can detect the update of the ephemeris parameter by IODE

Note
See [22] IS QZSS, ch. 4.1.2.4, p.50

Definition at line 48 of file QZSSEphemeris.hpp.

◆ L2ChannelCodes

const uint8_t NAV::QZSSEphemeris::L2ChannelCodes

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

Fixed to '2'.

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

Definition at line 139 of file QZSSEphemeris.hpp.

◆ L2DataFlagPCode

const bool NAV::QZSSEphemeris::L2DataFlagPCode

Data Flag for L2 P-Code.

Fixed to '1' since QZSS does not track L2P.

Note
See [22] IS QZSS, ch. 4.1.2.3, p.48

Definition at line 146 of file QZSSEphemeris.hpp.

◆ M_0

const double NAV::QZSSEphemeris::M_0

Mean anomaly at reference time [rad].

Definition at line 81 of file QZSSEphemeris.hpp.

◆ omega

const double NAV::QZSSEphemeris::omega

Argument of perigee [rad].

Definition at line 80 of file QZSSEphemeris.hpp.

◆ Omega_0

const double NAV::QZSSEphemeris::Omega_0

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

Definition at line 79 of file QZSSEphemeris.hpp.

◆ Omega_dot

const double NAV::QZSSEphemeris::Omega_dot

Rate of right ascension [rad/s].

Definition at line 86 of file QZSSEphemeris.hpp.

◆ sqrt_A

const double NAV::QZSSEphemeris::sqrt_A

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

Definition at line 76 of file QZSSEphemeris.hpp.

◆ svAccuracy

const double NAV::QZSSEphemeris::svAccuracy

SV accuracy [m].

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

Note
See [22] IS QZSS, ch. 4.1.2.3, p.47
See [22] IS QZSS, ch. 5.4.3, p.125 ff.
See [21] GPS ICD, ch. 20.3.3.3.1.3, p.92ff

Definition at line 104 of file QZSSEphemeris.hpp.

◆ svHealth

const std::bitset<6> NAV::QZSSEphemeris::svHealth

SV health.

This consists of the 1MSB health and the 5LSBs health

1-bit Health

Bit Location | Name | Target Signal

1st bit (MSB) | L1 Health | L1C/A or L1C/B

5-bit Health

Bit Location | Name | Target Signal

1st bit (MSB) | L1C/A Health | L1C/A 2nd bit | L2 Health | L2C 3rd bit | L5 Health | L5 4th bit | L1C Health | L1C

5th bit (LSB) | L1C/B Health | L1C/B

The 5-bit health parameter is defined differently from GPS. For details, see [22] IS QZSS, ch. 4.1.2.7, p.61

Note
See [22] IS QZSS, ch. 4.1.2.3, p.47

Definition at line 131 of file QZSSEphemeris.hpp.

◆ T_GD

const double NAV::QZSSEphemeris::T_GD

Group delay between SV clock and L1C/A [s].

Note
See [22] IS QZSS, ch. 5.8, p.141 ff.

Definition at line 150 of file QZSSEphemeris.hpp.

◆ toc

const InsTime NAV::QZSSEphemeris::toc

Time of Clock.

Definition at line 38 of file QZSSEphemeris.hpp.

◆ toe

const InsTime NAV::QZSSEphemeris::toe

Time of Ephemeris.

Definition at line 41 of file QZSSEphemeris.hpp.


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