![]() |
0.4.1
|
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. | |
GPSEphemeris & | operator= (const GPSEphemeris &)=delete |
Copy assignment operator. | |
GPSEphemeris & | operator= (GPSEphemeris &&)=delete |
Move assignment operator. | |
~GPSEphemeris () final=default | |
Destructor. | |
![]() | |
SatNavData & | operator= (const SatNavData &)=delete |
Copy assignment operator. | |
SatNavData & | operator= (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. | |
![]() | |
Clock ()=default | |
Default Constructor. | |
Clock (Clock &&)=default | |
Move constructor. | |
Clock (const Clock &)=default | |
Copy constructor. | |
Clock & | operator= (Clock &&)=delete |
Move assignment operator. | |
Clock & | operator= (const Clock &)=delete |
Copy assignment operator. | |
virtual | ~Clock ()=default |
Destructor. | |
![]() | |
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. | |
Orbit & | operator= (const Orbit &)=delete |
Copy assignment operator. | |
Orbit & | operator= (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. | |
![]() | |
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 | |
![]() | |
enum | Type : uint8_t { GPSEphemeris , GalileoEphemeris , GLONASSEphemeris , BeiDouEphemeris , QZSSEphemeris , IRNSSEphemeris , SBASEphemeris } |
Child type. More... | |
![]() | |
enum | Calc : uint8_t { Calc_None , Calc_Position , Calc_Velocity , Calc_Acceleration } |
Calculation flags. More... | |
Broadcasted ephemeris message data.
Definition at line 27 of file GPSEphemeris.hpp.
|
explicit |
Default Constructor.
Definition at line 19 of file GPSEphemeris.cpp.
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.
[in] | toc | Time the Clock information is calculated (Time of Clock) |
[in] | toe | Time the Orbit information is calculated (Time of Ephemeris) |
[in] | IODE | Issue of Data, Ephemeris |
[in] | IODC | Issue of Data, Clock |
[in] | a | Polynomial coefficients for clock correction (a0 bias [s], a1 drift [s/s], a2 drift rate (aging) [s/s^2]) |
[in] | sqrt_A | Square root of the semi-major axis [m^1/2] |
[in] | e | Eccentricity [-] |
[in] | i_0 | Inclination angle at reference time [rad] |
[in] | Omega_0 | Longitude of the ascending node at reference time [rad] |
[in] | omega | Argument of perigee [rad] |
[in] | M_0 | Mean anomaly at reference time [rad] |
[in] | delta_n | Mean motion difference from computed value [rad/s] |
[in] | Omega_dot | Rate of change of right ascension [rad/s] |
[in] | i_dot | Rate of change of inclination [rad/s] |
[in] | Cus | Amplitude of the sine harmonic correction term to the argument of latitude [rad] |
[in] | Cuc | Amplitude of the cosine harmonic correction term to the argument of latitude [rad] |
[in] | Cis | Amplitude of the sine harmonic correction term to the angle of inclination [rad] |
[in] | Cic | Amplitude of the cosine harmonic correction term to the angle of inclination [rad] |
[in] | Crs | Amplitude of the sine harmonic correction term to the orbit radius [m] |
[in] | Crc | Amplitude of the cosine harmonic correction term to the orbit radius [m] |
[in] | svAccuracy | SV accuracy [m] |
[in] | svHealth | Signal Health |
[in] | L2ChannelCodes | Indicate which code(s) is (are) commanded ON for the in-phase component of the L2 channel |
[in] | L2DataFlagPCode | Data Flag for L2 P-Code |
[in] | T_GD | Estimated Group Delay Differential. L1 and L2 correction term [s] |
[in] | fitInterval | Fit Interval of ephemerides [h] |
Definition at line 22 of file GPSEphemeris.cpp.
|
finaldefault |
Destructor.
|
default |
Copy constructor.
|
default |
Move constructor.
|
nodiscardfinalvirtual |
Calculates clock bias and drift of the satellite.
[in] | recvTime | Receive time of the signal |
[in] | dist | Distance between receiver and satellite (normally the pseudorange) [m] |
[in] | freq | Signal Frequency |
Implements NAV::Clock.
Definition at line 101 of file GPSEphemeris.cpp.
|
nodiscardfinalprivatevirtual |
Calculates position, velocity and acceleration of the satellite at transmission time.
[in] | transTime | Transmit time of the signal |
[in] | calc | Flags which determine what should be calculated and returned |
Implements NAV::Orbit.
Definition at line 177 of file GPSEphemeris.cpp.
|
nodiscardfinalvirtual |
Calculates the Variance of the satellite position in [m^2].
Implements NAV::Orbit.
Definition at line 322 of file GPSEphemeris.cpp.
|
nodiscardfinalvirtual |
Checks whether the signal is healthy.
Implements NAV::SatNavData.
Definition at line 317 of file GPSEphemeris.cpp.
|
delete |
Copy assignment operator.
|
delete |
Move assignment operator.
std::array<double, 3> NAV::GPSEphemeris::a |
Polynomial coefficients for clock correction
Definition at line 64 of file GPSEphemeris.hpp.
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.
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.
double NAV::GPSEphemeris::Crc |
Amplitude of the cosine harmonic correction term to the orbit radius [m].
Definition at line 85 of file GPSEphemeris.hpp.
double NAV::GPSEphemeris::Crs |
Amplitude of the sine harmonic correction term to the orbit radius [m].
Definition at line 84 of file GPSEphemeris.hpp.
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.
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.
double NAV::GPSEphemeris::delta_n |
Mean motion difference from computed value [rad/s].
Definition at line 77 of file GPSEphemeris.hpp.
double NAV::GPSEphemeris::e |
Eccentricity [-].
Definition at line 69 of file GPSEphemeris.hpp.
double NAV::GPSEphemeris::fitInterval |
Fit Interval of ephemerides [h].
Definition at line 131 of file GPSEphemeris.hpp.
double NAV::GPSEphemeris::i_0 |
Inclination angle at reference time [rad].
Definition at line 70 of file GPSEphemeris.hpp.
double NAV::GPSEphemeris::i_dot |
Rate of change of inclination [rad/s].
Definition at line 79 of file GPSEphemeris.hpp.
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.
Definition at line 56 of file GPSEphemeris.hpp.
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
Definition at line 47 of file GPSEphemeris.hpp.
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.
Definition at line 115 of file GPSEphemeris.hpp.
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.
Definition at line 123 of file GPSEphemeris.hpp.
double NAV::GPSEphemeris::M_0 |
Mean anomaly at reference time [rad].
Definition at line 73 of file GPSEphemeris.hpp.
double NAV::GPSEphemeris::omega |
Argument of perigee [rad].
Definition at line 72 of file GPSEphemeris.hpp.
double NAV::GPSEphemeris::Omega_0 |
Longitude of the ascending node at reference time [rad].
Definition at line 71 of file GPSEphemeris.hpp.
double NAV::GPSEphemeris::Omega_dot |
Rate of change of right ascension [rad/s].
Definition at line 78 of file GPSEphemeris.hpp.
double NAV::GPSEphemeris::sqrt_A |
Square root of the semi-major axis [m^1/2].
Definition at line 68 of file GPSEphemeris.hpp.
double NAV::GPSEphemeris::svAccuracy |
SV accuracy [m].
Derived from an URA index of the SV for the standard positioning service user.
Definition at line 94 of file GPSEphemeris.hpp.
uint8_t NAV::GPSEphemeris::svHealth |
SV health.
0 = all LNAV data are OK 1 = some or all LNAV data are bad
Definition at line 103 of file GPSEphemeris.hpp.
double NAV::GPSEphemeris::T_GD |
Estimated Group Delay Differential. L1 and L2 correction term [s].
Definition at line 127 of file GPSEphemeris.hpp.
InsTime NAV::GPSEphemeris::toc |
Time of Clock.
Definition at line 37 of file GPSEphemeris.hpp.
InsTime NAV::GPSEphemeris::toe |
Time of Ephemeris.
Definition at line 40 of file GPSEphemeris.hpp.