Public Member Functions | Protected Attributes | List of all members
gnss_info::OrbitalDataManager Class Reference

Manager of multiple providers of satellite orbital data. More...

#include <orbital_data_manager.h>

Public Member Functions

void addProvider (const std::shared_ptr< OrbitalDataProvider > &provider)
 Add the given provider to this manager and make its data available. More...
 
virtual gnss_info_msgs::DOP computeDOP (const std::unordered_map< uint32_t, gnss_info_msgs::SatelliteSkyPosition > &skyView) const
 Compute Dilution of Precision for the given sky view. More...
 
cras::expected< gnss_info_msgs::SatellitesPositions, std::string > getPositions (const ros::Time &time, const gnss_info_msgs::SatellitesList &satellites)
 Compute ECEF positions of the satellites at the given time. More...
 
virtual cras::expected< gnss_info_msgs::SatellitesPositions, std::string > getPositions (const ros::Time &time, const gnss_info_msgs::SatellitesList &satellites, const cras::optional< bool > &precise)
 Compute ECEF positions of the satellites at the given time. More...
 
cras::expected< gnss_info_msgs::SkyView, std::string > getSkyView (const geographic_msgs::GeoPoint &position, const gnss_info_msgs::SatellitesPositions &positions, double elevationMaskDeg)
 Compute sky view (azimuths, elevations and distances) of satellites from the given receiver position. More...
 
virtual cras::expected< gnss_info_msgs::SkyView, std::string > getSkyView (const geographic_msgs::GeoPoint &position, const gnss_info_msgs::SatellitesPositions &positions, double elevationMaskDeg, const cras::optional< bool > &precise)
 Compute sky view (azimuths, elevations and distances) of satellites from the given receiver position. More...
 
bool load (const ros::Time &startTime, const ros::Time &endTime)
 Load (and possibly download) data for the given time interval. More...
 
virtual bool load (const ros::Time &startTime, const ros::Time &endTime, const cras::optional< bool > &precise)
 Load (and possibly download) data for the given time interval. More...
 
bool load (const ros::Time &time)
 Load (and possibly download) data for the given time instant. More...
 
virtual bool load (const ros::Time &time, const cras::optional< bool > &precise)
 Load (and possibly download) data for the given time instant. More...
 
 OrbitalDataManager ()
 
virtual ~OrbitalDataManager ()
 

Protected Attributes

std::unique_ptr< OrbitalDataManagerPrivatedata
 Private implementation details (PIMPL). More...
 

Detailed Description

Manager of multiple providers of satellite orbital data.

Definition at line 27 of file orbital_data_manager.h.

Constructor & Destructor Documentation

◆ OrbitalDataManager()

gnss_info::OrbitalDataManager::OrbitalDataManager ( )

Definition at line 62 of file orbital_data_manager.cpp.

◆ ~OrbitalDataManager()

gnss_info::OrbitalDataManager::~OrbitalDataManager ( )
virtualdefault

Member Function Documentation

◆ addProvider()

void gnss_info::OrbitalDataManager::addProvider ( const std::shared_ptr< OrbitalDataProvider > &  provider)

Add the given provider to this manager and make its data available.

Parameters
[in]providerThe provider to add.

Definition at line 226 of file orbital_data_manager.cpp.

◆ computeDOP()

gnss_info_msgs::DOP gnss_info::OrbitalDataManager::computeDOP ( const std::unordered_map< uint32_t, gnss_info_msgs::SatelliteSkyPosition > &  skyView) const
virtual

Compute Dilution of Precision for the given sky view.

Parameters
[in]skyViewThe sky view to compute DOP for.
Returns
The dilution of precision for the given sky view.

Definition at line 189 of file orbital_data_manager.cpp.

◆ getPositions() [1/2]

cras::expected< gnss_info_msgs::SatellitesPositions, std::string > gnss_info::OrbitalDataManager::getPositions ( const ros::Time time,
const gnss_info_msgs::SatellitesList &  satellites 
)

Compute ECEF positions of the satellites at the given time.

Parameters
[in]timeThe time to get positions for.
[in]satellitesThe satellites to get positions for.
Returns
ECEF positions of the satellites, or an error string.

Definition at line 102 of file orbital_data_manager.cpp.

◆ getPositions() [2/2]

cras::expected< gnss_info_msgs::SatellitesPositions, std::string > gnss_info::OrbitalDataManager::getPositions ( const ros::Time time,
const gnss_info_msgs::SatellitesList &  satellites,
const cras::optional< bool > &  precise 
)
virtual

Compute ECEF positions of the satellites at the given time.

Parameters
[in]timeThe time to get positions for.
[in]satellitesThe satellites to get positions for.
[in]preciseIf set, selects whether precise or approximate positions should be computed.
Returns
ECEF positions of the satellites, or an error string.

Definition at line 108 of file orbital_data_manager.cpp.

◆ getSkyView() [1/2]

cras::expected< gnss_info_msgs::SkyView, std::string > gnss_info::OrbitalDataManager::getSkyView ( const geographic_msgs::GeoPoint &  position,
const gnss_info_msgs::SatellitesPositions &  positions,
double  elevationMaskDeg 
)

Compute sky view (azimuths, elevations and distances) of satellites from the given receiver position.

Parameters
[in]positionGeographic position of the receiver.
[in]positionsECEF positions of the satellites.
[in]elevationMaskDegMinimum elevation of satellites to return (in degrees).
Returns
Sky view corresponding to the given configuration, or an error string.

Definition at line 144 of file orbital_data_manager.cpp.

◆ getSkyView() [2/2]

cras::expected< gnss_info_msgs::SkyView, std::string > gnss_info::OrbitalDataManager::getSkyView ( const geographic_msgs::GeoPoint &  position,
const gnss_info_msgs::SatellitesPositions &  positions,
double  elevationMaskDeg,
const cras::optional< bool > &  precise 
)
virtual

Compute sky view (azimuths, elevations and distances) of satellites from the given receiver position.

Parameters
[in]positionGeographic position of the receiver.
[in]positionsECEF positions of the satellites.
[in]elevationMaskDegMinimum elevation of satellites to return (in degrees).
[in]preciseIf set, selects whether precise or approximate positions should be computed.
Returns
Sky view corresponding to the given configuration, or an error string.

Definition at line 151 of file orbital_data_manager.cpp.

◆ load() [1/4]

bool gnss_info::OrbitalDataManager::load ( const ros::Time startTime,
const ros::Time endTime 
)

Load (and possibly download) data for the given time interval.

Parameters
[in]startTimeEarliest time to load.
[in]endTimeLatest time to load.
Returns
Whether the loading succeeded.

Definition at line 84 of file orbital_data_manager.cpp.

◆ load() [2/4]

bool gnss_info::OrbitalDataManager::load ( const ros::Time startTime,
const ros::Time endTime,
const cras::optional< bool > &  precise 
)
virtual

Load (and possibly download) data for the given time interval.

Parameters
[in]startTimeEarliest time to load.
[in]endTimeLatest time to load.
[in]preciseIf set, selects whether precise or approximate data should be loaded.
Returns
Whether the loading succeeded.

Definition at line 89 of file orbital_data_manager.cpp.

◆ load() [3/4]

bool gnss_info::OrbitalDataManager::load ( const ros::Time time)

Load (and possibly download) data for the given time instant.

Parameters
[in]timeThe time instant to load for.
Returns
Whether the loading succeeded.

Definition at line 68 of file orbital_data_manager.cpp.

◆ load() [4/4]

bool gnss_info::OrbitalDataManager::load ( const ros::Time time,
const cras::optional< bool > &  precise 
)
virtual

Load (and possibly download) data for the given time instant.

Parameters
[in]timeThe time instant to load for.
[in]preciseIf set, selects whether precise or approximate data should be loaded.
Returns
Whether the loading succeeded.

Definition at line 73 of file orbital_data_manager.cpp.

Member Data Documentation

◆ data

std::unique_ptr<OrbitalDataManagerPrivate> gnss_info::OrbitalDataManager::data
protected

Private implementation details (PIMPL).

Definition at line 122 of file orbital_data_manager.h.


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


gnss_info
Author(s): Martin Pecka
autogenerated on Fri Nov 24 2023 03:50:35