19#include <fmt/format.h>
21#include <nlohmann/json.hpp>
22using json = nlohmann::json;
33 GPS = 0x0000'0000'0000'00FF,
34 GAL = 0x0000'0000'0000'FF00,
35 GLO = 0x0000'0000'00FF'0000,
36 BDS = 0x0000'0000'FF00'0000,
37 QZSS = 0x0000'00FF'0000'0000,
39 SBAS = 0x00FF'0000'0000'0000,
105 constexpr explicit operator bool() =
delete;
109 constexpr explicit operator uint64_t()
const {
return uint64_t(
value); }
113 explicit operator std::string()
const;
117 explicit operator char()
const;
142 [[nodiscard]] std::optional<std::string>
getSatelliteInfo(uint16_t satNum)
const;
156 [[nodiscard]]
char toChar()
const;
163 [[nodiscard]] std::vector<SatelliteSystem>
toVector()
const;
166 static std::vector<SatelliteSystem>
GetAll();
379std::ostream&
operator<<(std::ostream& os,
const SatelliteSystem& satSys);
390struct hash<
NAV::SatelliteSystem_>
432#ifndef DOXYGEN_IGNORE
442 template<
typename FormatContext>
443 auto format(
const NAV::SatelliteSystem& satSys, FormatContext& ctx)
const
445 return fmt::formatter<std::string>::format(std::string(satSys), ctx);
nlohmann::json json
json namespace
void to_json(json &j, const Node &node)
Converts the provided node into a json object.
constexpr Frequency_ operator~(Frequency_ rhs)
Allows negating flags of the Frequency enum.
constexpr Frequency_ & operator&=(Frequency_ &lhs, const Frequency_ &rhs)
Allows combining flags of the Frequency enum.
Code operator&(const Code &lhs, const Code &rhs)
void from_json(const json &j, Node &node)
Converts the provided json object into a node object.
constexpr Frequency_ & operator|=(Frequency_ &lhs, const Frequency_ &rhs)
Allows combining flags of the Frequency enum.
constexpr bool operator!=(const Node::Kind &lhs, const Node::Kind &rhs)
Inequal compares Node::Kind values.
constexpr bool operator==(const Node::Kind &lhs, const Node::Kind &rhs)
Equal compares Node::Kind values.
Code operator|(const Code &lhs, const Code &rhs)
std::ostream & operator<<(std::ostream &os, const SatelliteSystem &satSys)
Stream insertion operator overload.
SatelliteSystem_
Satellite System enumeration.
@ GPS
Global Positioning System.
@ QZSS
Quasi-Zenith Satellite System.
@ GLO
Globalnaja nawigazionnaja sputnikowaja sistema (GLONASS)
@ SBAS
Satellite Based Augmentation System.
@ SatSys_None
No Satellite system.
@ IRNSS
Indian Regional Navigation Satellite System.
constexpr SatelliteSystem_ SatSys_All
All Systems.
TimeSystem getTimeSystem() const
Get the Time System of this Satellite System.
char toChar() const
Returns the char representation of the object.
static SatelliteSystem fromEnum(Enum enumeration)
Constructs a new object from continuous enumeration.
static SatelliteSystem fromString(const std::string &typeString)
Construct new object from std::string.
static SatelliteSystem fromChar(char typeChar)
Construct new object from char.
constexpr bool operator<(const SatelliteSystem &rhs) const
Less than comparison (needed for map)
static std::vector< SatelliteSystem > ToVector(SatelliteSystem satSys)
Get a vector representation of the specified Satellite Systems.
constexpr SatelliteSystem & operator=(SatelliteSystem_ v)
Assignment operator from Value type.
constexpr SatelliteSystem()=default
Default Constructor.
static std::vector< uint16_t > GetSatellitesForSatelliteSystem(SatelliteSystem satSys)
Get a list of satellites in the constellation.
std::optional< std::string > getSatelliteInfo(uint16_t satNum) const
Get additional information about the satellite if available.
static TimeSystem GetTimeSystemForSatelliteSystem(SatelliteSystem satSys)
Get the Time System of the specified Satellite System.
static std::vector< SatelliteSystem > GetAll()
Returns a list with all possible satellite systems.
SatelliteSystem(Enum enumeration)
Implicit Constructor from Enum type.
static char ToChar(SatelliteSystem satSys)
Get char representation of the specified Satellite System.
SatelliteSystem_ value
Internal value.
friend constexpr bool operator==(const SatelliteSystem &lhs, const SatelliteSystem &rhs)
Equal compares values.
constexpr SatelliteSystem(SatelliteSystem_ type)
Implicit Constructor from Value type.
static std::optional< std::string > GetSatelliteInfo(SatelliteSystem satSys, uint16_t satNum)
Get additional information about the satellite if available.
std::vector< SatelliteSystem > toVector() const
Get a vector representation of the specified Satellite Systems.
Enum
Satellite System enumeration with continuous range. Not usable as a mask.
@ Enum_GPS
Global Positioning System.
@ Enum_None
No Satellite system.
@ Enum_GLO
Globalnaja nawigazionnaja sputnikowaja sistema (GLONASS)
@ Enum_IRNSS
Indian Regional Navigation Satellite System.
@ Enum_QZSS
Quasi-Zenith Satellite System.
@ Enum_SBAS
Satellite Based Augmentation System.
@ Enum_COUNT
Count variable.
Enum toEnumeration() const
Returns a continuous enumeration of the object.
static Enum ToEnumeration(SatelliteSystem satSys)
Get the continuous enumeration of the specified Satellite System.
std::vector< uint16_t > getSatellites() const
Get a list of satellites in the constellation.
std::size_t operator()(const NAV::SatelliteSystem &satSys) const
Hash function for SatelliteSystem.
std::size_t operator()(const NAV::SatelliteSystem_ &satSys) const
Hash function for SatelliteSystem.