49 auto iter = std::ranges::find_if(
m_navigationData, [&satNavData](
const std::shared_ptr<SatNavData>& navData) {
50 return navData->refTime == satNavData->refTime;
58 iter = std::ranges::find_if(
m_navigationData, [&satNavData](
const std::shared_ptr<SatNavData>& navData) {
59 return navData->refTime > satNavData->refTime;
75 auto prevDiff = std::numeric_limits<long double>::max();
81 auto diff = std::abs(((*riter)->refTime - time).count());
Calculations and data related to satellite orbit, clock, ...
Frequency definition for different satellite systems.
The class is responsible for all time-related tasks.
Orbit::PosVelAccel calcSatellitePosVelAccel(const InsTime &transTime) const
Calculates position, velocity and acceleration of the satellite at transmission time.
const std::vector< std::shared_ptr< SatNavData > > & getNavigationData() const
Get the navigation data list.
double calcSatellitePositionVariance(const InsTime &recvTime) const
Calculates the Variance of the satellite position in [m].
void addSatNavData(const std::shared_ptr< SatNavData > &satNavData)
Adds the provided data into the internal time sorted list.
Orbit::Pos calcSatellitePos(const InsTime &transTime) const
Calculates position of the satellite at transmission time.
Clock::Corrections calcClockCorrections(const InsTime &recvTime, double dist, const Frequency &freq) const
Calculates clock bias and drift of the satellite.
bool isHealthy(const InsTime &recvTime) const
Checks whether the signal is healthy.
std::vector< std::shared_ptr< SatNavData > > m_navigationData
Time sorted list of orbit and clock information of the satellite.
std::shared_ptr< SatNavData > searchNavigationData(const InsTime &time) const
Searches the closest navigation data to the given time.
Orbit::PosVel calcSatellitePosVel(const InsTime &transTime) const
Calculates position and velocity of the satellite at transmission time.
Satellite clock corrections.
Satellite Position, Velocity and Acceleration.
Satellite Position and Velocity.