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

Broadcasted ephemeris message data. More...

Public Member Functions

 BDSEphemeris (BDSEphemeris &&)=default
 Move constructor.
 
 BDSEphemeris (const BDSEphemeris &)=default
 Copy constructor.
 
 BDSEphemeris (const uint16_t &satNum, const InsTime &toc, const InsTime &toe, const size_t &AODE, const size_t &AODC, 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 satH1, double T_GD1, double T_GD2)
 Constructor.
 
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.
 
BDSEphemerisoperator= (BDSEphemeris &&)=delete
 Move assignment operator.
 
BDSEphemerisoperator= (const BDSEphemeris &)=delete
 Copy assignment operator.
 
 ~BDSEphemeris () 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 size_t AODC
 Age of Data, Clock.
 
const size_t AODE
 Age of Data, Ephemeris.
 
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 double i_0
 Inclination angle at reference time [rad].
 
const double i_dot
 Rate of change of inclination [rad/s].
 
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 change of right ascension [rad/s].
 
const uint8_t satH1
 Autonomous Satellite Health flag.
 
const uint16_t satNum
 Number of the satellite.
 
const double sqrt_A
 Square root of the semi-major axis [m^1/2].
 
const double svAccuracy
 SV accuracy [m].
 
const double T_GD1
 Equipment Group Delay Differential. B1/B3 [s].
 
const double T_GD2
 Equipment Group Delay Differential. B2/B3 [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 [5] BDS-SIS-ICD-2.1, ch. 5.2.4, p. 23ff

Definition at line 30 of file BDSEphemeris.hpp.

Constructor & Destructor Documentation

◆ BDSEphemeris() [1/3]

NAV::BDSEphemeris::BDSEphemeris ( const uint16_t & satNum,
const InsTime & toc,
const InsTime & toe,
const size_t & AODE,
const size_t & AODC,
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 satH1,
double T_GD1,
double T_GD2 )

Constructor.

Parameters
[in]satNumNumber of the satellite
[in]tocTime the Clock information is calculated (Time of Clock)
[in]toeTime the Orbit information is calculated (Time of Ephemeris)
[in]AODEAge of Data, Ephemeris
[in]AODCAge 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]satH1Autonomous Satellite Health flag
[in]T_GD1Equipment Group Delay Differential. B1/B3 [s]
[in]T_GD2Equipment Group Delay Differential. B2/B3 [s]

Definition at line 23 of file BDSEphemeris.cpp.

◆ ~BDSEphemeris()

NAV::BDSEphemeris::~BDSEphemeris ( )
finaldefault

Destructor.

◆ BDSEphemeris() [2/3]

NAV::BDSEphemeris::BDSEphemeris ( const BDSEphemeris & )
default

Copy constructor.

◆ BDSEphemeris() [3/3]

NAV::BDSEphemeris::BDSEphemeris ( BDSEphemeris && )
default

Move constructor.

Member Function Documentation

◆ calcClockCorrections()

Clock::Corrections NAV::BDSEphemeris::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 [5] BDS ICD, ch. 5.2.4.10, p. 29ff

Implements NAV::Clock.

Definition at line 98 of file BDSEphemeris.cpp.

◆ calcSatelliteData()

Orbit::PosVelAccel NAV::BDSEphemeris::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 [5] BDS ICD, ch. 5.2.4.12, p. 32ff
See [21] IS-GPS-200 ch. 20.3.3.4.3.1 Table 20-IV p.106-109

Implements NAV::Orbit.

Definition at line 172 of file BDSEphemeris.cpp.

◆ calcSatellitePositionVariance()

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

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

Implements NAV::Orbit.

Definition at line 357 of file BDSEphemeris.cpp.

◆ isHealthy()

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

Checks whether the signal is healthy.

Implements NAV::SatNavData.

Definition at line 352 of file BDSEphemeris.cpp.

◆ operator=() [1/2]

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

Move assignment operator.

◆ operator=() [2/2]

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

Copy assignment operator.

Field Documentation

◆ a

const std::array<double, 3> NAV::BDSEphemeris::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 [5] BDS ICD, ch. 5.2.4.10, p. 29f

Definition at line 94 of file BDSEphemeris.hpp.

◆ AODC

const size_t NAV::BDSEphemeris::AODC

Age of Data, Clock.

Age of data, clock (AODC) is the extrapolated interval of clock correction parameters. It indicates the time difference between the reference epoch of clock correction parameters and the last observation epoch for extrapolating clock correction parameters. AODC is updated at the start of each hour in BDT, and it is 5 bits long with definitions as

AODC Definition
< 25 Age of the satellite clock correction parameters in hours
25 Age of the satellite clock correction parameters is two days
26 Age of the satellite clock correction parameters is three days
27 Age of the satellite clock correction parameters is four days
28 Age of the satellite clock correction parameters is five days
29 Age of the satellite clock correction parameters is six days
30 Age of the satellite clock correction parameters is seven days
31 Age of the satellite clock correction parameters is over seven days
Note
See [5] BDS ICD, ch. 5.2.4.9, Table 5-6, p. 28f

Definition at line 86 of file BDSEphemeris.hpp.

◆ AODE

const size_t NAV::BDSEphemeris::AODE

Age of Data, Ephemeris.

Age of data, ephemeris (AODE) is the extrapolated interval of ephemeris parameters. It indicates the time difference between the reference epoch of ephemeris parameters and the last observation epoch for extrapolating ephemeris parameters. AODE is updated at the start of each hour in BDT, and it is 5 bits long with definitions as follows:

AODE Definition
< 25 Age of the satellite ephemeris parameters in hours
25 Age of the satellite ephemeris parameters is two days
26 Age of the satellite ephemeris parameters is three days
27 Age of the satellite ephemeris parameters is four days
28 Age of the satellite ephemeris parameters is five days
29 Age of the satellite ephemeris parameters is six days
30 Age of the satellite ephemeris parameters is seven days
31 Age of the satellite ephemeris parameters is over seven days
Note
See [5] BDS ICD, ch. 5.2.4.11, Table 5-8, p. 31f

Definition at line 66 of file BDSEphemeris.hpp.

◆ Cic

const double NAV::BDSEphemeris::Cic

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

Definition at line 113 of file BDSEphemeris.hpp.

◆ Cis

const double NAV::BDSEphemeris::Cis

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

Definition at line 112 of file BDSEphemeris.hpp.

◆ Crc

const double NAV::BDSEphemeris::Crc

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

Definition at line 115 of file BDSEphemeris.hpp.

◆ Crs

const double NAV::BDSEphemeris::Crs

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

Definition at line 114 of file BDSEphemeris.hpp.

◆ Cuc

const double NAV::BDSEphemeris::Cuc

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

Definition at line 111 of file BDSEphemeris.hpp.

◆ Cus

const double NAV::BDSEphemeris::Cus

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

Definition at line 110 of file BDSEphemeris.hpp.

◆ delta_n

const double NAV::BDSEphemeris::delta_n

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

Definition at line 107 of file BDSEphemeris.hpp.

◆ e

const double NAV::BDSEphemeris::e

Eccentricity [-].

Definition at line 99 of file BDSEphemeris.hpp.

◆ i_0

const double NAV::BDSEphemeris::i_0

Inclination angle at reference time [rad].

Definition at line 100 of file BDSEphemeris.hpp.

◆ i_dot

const double NAV::BDSEphemeris::i_dot

Rate of change of inclination [rad/s].

Definition at line 109 of file BDSEphemeris.hpp.

◆ M_0

const double NAV::BDSEphemeris::M_0

Mean anomaly at reference time [rad].

Definition at line 103 of file BDSEphemeris.hpp.

◆ omega

const double NAV::BDSEphemeris::omega

Argument of perigee [rad].

Definition at line 102 of file BDSEphemeris.hpp.

◆ Omega_0

const double NAV::BDSEphemeris::Omega_0

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

Definition at line 101 of file BDSEphemeris.hpp.

◆ Omega_dot

const double NAV::BDSEphemeris::Omega_dot

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

Definition at line 108 of file BDSEphemeris.hpp.

◆ satH1

const uint8_t NAV::BDSEphemeris::satH1

Autonomous Satellite Health flag.

0 = broadcasting satellite is good 1 = broadcasting satellite is not good

Note
See [5] BDS ICD, ch. 5.2.4.6, p. 25

Definition at line 132 of file BDSEphemeris.hpp.

◆ satNum

const uint16_t NAV::BDSEphemeris::satNum

Number of the satellite.

Definition at line 38 of file BDSEphemeris.hpp.

◆ sqrt_A

const double NAV::BDSEphemeris::sqrt_A

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

Definition at line 98 of file BDSEphemeris.hpp.

◆ svAccuracy

const double NAV::BDSEphemeris::svAccuracy

SV accuracy [m].

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

Note
See [5] BDS ICD, ch. 5.2.4.5, p. 24

Definition at line 124 of file BDSEphemeris.hpp.

◆ T_GD1

const double NAV::BDSEphemeris::T_GD1

Equipment Group Delay Differential. B1/B3 [s].

Note
See [5] BDS ICD, ch. 5.2.4.8, p. 28

Definition at line 136 of file BDSEphemeris.hpp.

◆ T_GD2

const double NAV::BDSEphemeris::T_GD2

Equipment Group Delay Differential. B2/B3 [s].

Note
See [5] BDS ICD, ch. 5.2.4.8, p. 28

Definition at line 140 of file BDSEphemeris.hpp.

◆ toc

const InsTime NAV::BDSEphemeris::toc

Time of Clock.

Definition at line 43 of file BDSEphemeris.hpp.

◆ toe

const InsTime NAV::BDSEphemeris::toe

Time of Ephemeris.

Definition at line 46 of file BDSEphemeris.hpp.


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