nav_library_orbital_data_provider.h
Go to the documentation of this file.
1 // SPDX-License-Identifier: BSD-3-Clause
2 // SPDX-FileCopyrightText: Czech Technical University in Prague
3 
4 #pragma once
5 
6 #include <memory>
7 #include <string>
8 #include <unordered_map>
9 #include <unordered_set>
10 #include <utility>
11 
15 #include <ros/ros.h>
16 
17 
18 namespace gnss_info
19 {
20 
21 struct NavLibraryOrbitalDataProviderPrivate;
22 
27 {
28 public:
31 
36  virtual void addDataSource(const std::shared_ptr<NavLibraryDataSource>& source);
37 
38  std::string getName() const override;
39  bool isPrecise() const override;
40  bool isApproximate() const override;
41 
42  std::pair<ros::Time, ros::Time> getTimeRange() const override;
43  std::unordered_set<std::string> getConstellations() const override;
44 
45  bool load(const ros::Time& time, const cras::optional<bool>& precise) override;
46  bool load(const ros::Time& startTime, const ros::Time& endTime, const cras::optional<bool>& precise) override;
47 
48  cras::expected<std::unordered_map<uint32_t, gnss_info_msgs::SatellitePosition>, std::string> getECEFPositions(
49  const ros::Time& time, const std::unordered_map<uint32_t, gnss_info_msgs::SatelliteInfo>& satellites) override;
50 
51  cras::expected<std::unordered_map<uint32_t, gnss_info_msgs::SatelliteSkyPosition>, std::string> getSkyView(
52  const geographic_msgs::GeoPoint& position,
53  const std::unordered_map<uint32_t, gnss_info_msgs::SatellitePosition>& positions,
54  double elevationMaskDeg) override;
55 
56 private:
57  std::unique_ptr<NavLibraryOrbitalDataProviderPrivate> data;
58 };
59 
60 }
gnss_info::NavLibraryOrbitalDataProvider::getName
std::string getName() const override
Get human-readable name of the provider.
Definition: nav_library_orbital_data_provider.cpp:244
gnss_info::NavLibraryOrbitalDataProvider::getECEFPositions
cras::expected< std::unordered_map< uint32_t, gnss_info_msgs::SatellitePosition >, std::string > getECEFPositions(const ros::Time &time, const std::unordered_map< uint32_t, gnss_info_msgs::SatelliteInfo > &satellites) override
Compute ECEF positions of the satellites at the given time.
Definition: nav_library_orbital_data_provider.cpp:123
ros.h
gnss_info::NavLibraryOrbitalDataProvider::load
bool load(const ros::Time &time, const cras::optional< bool > &precise) override
Load data for the given time instant.
Definition: nav_library_orbital_data_provider.cpp:91
gnss_info::NavLibraryOrbitalDataProvider
GNSS satellite orbits provider based on gnsstk::NavLibrary with multi-format data source.
Definition: nav_library_orbital_data_provider.h:26
gnss_info::NavLibraryOrbitalDataProvider::~NavLibraryOrbitalDataProvider
~NavLibraryOrbitalDataProvider() override
gnss_info::NavLibraryOrbitalDataProvider::addDataSource
virtual void addDataSource(const std::shared_ptr< NavLibraryDataSource > &source)
Add data source.
Definition: nav_library_orbital_data_provider.cpp:59
gnss_info::NavLibraryOrbitalDataProvider::getSkyView
cras::expected< std::unordered_map< uint32_t, gnss_info_msgs::SatelliteSkyPosition >, std::string > getSkyView(const geographic_msgs::GeoPoint &position, const std::unordered_map< uint32_t, gnss_info_msgs::SatellitePosition > &positions, double elevationMaskDeg) override
Compute sky view (azimuths, elevations and distances) of satellites from the given receiver position.
Definition: nav_library_orbital_data_provider.cpp:204
time
time
nav_library_data_source.h
gnss_info
Definition: cache.h:15
gnss_info::NavLibraryOrbitalDataProvider::getConstellations
std::unordered_set< std::string > getConstellations() const override
Get the constellations handled by this provider.
Definition: nav_library_orbital_data_provider.cpp:86
gnss_info::NavLibraryOrbitalDataProvider::getTimeRange
std::pair< ros::Time, ros::Time > getTimeRange() const override
Get the time range in which this provider can provide information.
Definition: nav_library_orbital_data_provider.cpp:81
expected.hpp
orbital_data_provider.h
ros::Time
gnss_info::OrbitalDataProvider
Generic interface for various providers of GNSS satellite orbital data.
Definition: orbital_data_provider.h:25
gnss_info::NavLibraryOrbitalDataProvider::isApproximate
bool isApproximate() const override
Return whether this provider works with approximate orbit data.
Definition: nav_library_orbital_data_provider.cpp:238
gnss_info::NavLibraryOrbitalDataProvider::data
std::unique_ptr< NavLibraryOrbitalDataProviderPrivate > data
Private implementation data (PIMPL).
Definition: nav_library_orbital_data_provider.h:57
gnss_info::NavLibraryOrbitalDataProvider::NavLibraryOrbitalDataProvider
NavLibraryOrbitalDataProvider()
Definition: nav_library_orbital_data_provider.cpp:51
gnss_info::NavLibraryOrbitalDataProvider::isPrecise
bool isPrecise() const override
Return whether this provider works with precise orbit data.
Definition: nav_library_orbital_data_provider.cpp:232


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