igs_satellite_metadata.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 
12 #include <gnss_info_msgs/SatelliteInfo.h>
13 
14 #include <ros/duration.h>
15 #include <ros/time.h>
16 
17 namespace gnss_info
18 {
19 
20 struct IGSSatelliteMetadataPrivate;
21 
33 {
34 public:
36  virtual ~IGSSatelliteMetadata();
37 
45  void setMetadataURL(const std::string& url);
46 
54  void setCacheFile(const std::string& file);
55 
61  void setCacheValidity(const ros::WallDuration& validity);
62 
68  bool load();
69 
79  std::unordered_map<uint32_t, gnss_info_msgs::SatelliteInfo> getSatellites(
80  const ros::Time& time, bool onlyActive = true, const std::unordered_set<std::string>& onlyConstellations = {},
81  const std::unordered_set<std::string>& onlySignals = {});
82 
91  cras::optional<gnss_info_msgs::SatelliteInfo> getSatellite(const uint32_t& satcatID, const ros::Time& time);
92 
102  cras::optional<gnss_info_msgs::SatelliteInfo> getSatelliteByPRN(const std::string& prn, const ros::Time& time);
103 
115  cras::optional<gnss_info_msgs::SatelliteInfo> getSatelliteByPRN(
116  int32_t prn, const std::string& constellation, const ros::Time& time);
117 
118 protected:
119  std::unique_ptr<IGSSatelliteMetadataPrivate> data;
120 };
121 
122 }
optional.hpp
gnss_info::IGSSatelliteMetadata::data
std::unique_ptr< IGSSatelliteMetadataPrivate > data
Private implementation details (PIMPL).
Definition: igs_satellite_metadata.h:119
file
page HOWTO subpage DoxygenGuide Documenting Your Code page DoxygenGuide Documenting Your Code todo Flesh out this document section doctips Tips for Documenting When defining make sure that the prototype is identical between the cpp and hpp file
gnss_info::IGSSatelliteMetadata::setMetadataURL
void setMetadataURL(const std::string &url)
Set the URL from which IGS metadata are downloaded.
Definition: igs_satellite_metadata.cpp:526
gnss_info::IGSSatelliteMetadata
Wrapper around IGS satellite catalog which contains information about all public GNSS satellites.
Definition: igs_satellite_metadata.h:32
gnss_info::IGSSatelliteMetadata::setCacheValidity
void setCacheValidity(const ros::WallDuration &validity)
Set validity period of the cached IGS metadata.
Definition: igs_satellite_metadata.cpp:536
gnss_info::IGSSatelliteMetadata::~IGSSatelliteMetadata
virtual ~IGSSatelliteMetadata()
gnss_info::IGSSatelliteMetadata::IGSSatelliteMetadata
IGSSatelliteMetadata()
Definition: igs_satellite_metadata.cpp:514
duration.h
gnss_info::IGSSatelliteMetadata::getSatellites
std::unordered_map< uint32_t, gnss_info_msgs::SatelliteInfo > getSatellites(const ros::Time &time, bool onlyActive=true, const std::unordered_set< std::string > &onlyConstellations={}, const std::unordered_set< std::string > &onlySignals={})
Get all known satellites operating at the given time. If load() was not called or returned false,...
Definition: igs_satellite_metadata.cpp:601
time
time
gnss_info::IGSSatelliteMetadata::getSatelliteByPRN
cras::optional< gnss_info_msgs::SatelliteInfo > getSatelliteByPRN(const std::string &prn, const ros::Time &time)
Get metadata of a satellite at the given time.
Definition: igs_satellite_metadata.cpp:699
gnss_info
Definition: cache.h:15
gnss_info::IGSSatelliteMetadata::setCacheFile
void setCacheFile(const std::string &file)
Set the cache file into which the IGS metadata are downloaded.
Definition: igs_satellite_metadata.cpp:531
gnss_info::IGSSatelliteMetadata::load
bool load()
Load (and possibly also download) the data.
Definition: igs_satellite_metadata.cpp:541
ros::Time
gnss_info::IGSSatelliteMetadata::getSatellite
cras::optional< gnss_info_msgs::SatelliteInfo > getSatellite(const uint32_t &satcatID, const ros::Time &time)
Get metadata of a satellite at the given time.
Definition: igs_satellite_metadata.cpp:636
ros::WallDuration


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