17#include <fmt/format.h>
28 G01 = 0x0000'0000'0000'0001,
29 G02 = 0x0000'0000'0000'0002,
30 G05 = 0x0000'0000'0000'0004,
31 E01 = 0x0000'0000'0000'0100,
32 E05 = 0x0000'0000'0000'0200,
33 E06 = 0x0000'0000'0000'0400,
34 E07 = 0x0000'0000'0000'0800,
35 E08 = 0x0000'0000'0000'1000,
36 R01 = 0x0000'0000'0001'0000,
37 R02 = 0x0000'0000'0002'0000,
38 R03 = 0x0000'0000'0004'0000,
39 R04 = 0x0000'0000'0008'0000,
40 R06 = 0x0000'0000'0010'0000,
41 B01 = 0x0000'0000'0100'0000,
42 B02 = 0x0000'0000'0200'0000,
43 B05 = 0x0000'0000'0400'0000,
44 B06 = 0x0000'0000'0800'0000,
45 B07 = 0x0000'0000'1000'0000,
46 B08 = 0x0000'0000'2000'0000,
47 J01 = 0x0000'0001'0000'0000,
48 J02 = 0x0000'0002'0000'0000,
49 J05 = 0x0000'0004'0000'0000,
50 J06 = 0x0000'0008'0000'0000,
51 I05 = 0x0000'0100'0000'0000,
52 I09 = 0x0000'0200'0000'0000,
53 S01 = 0x0001'0000'0000'0000,
54 S05 = 0x0002'0000'0000'0000,
135 constexpr explicit operator Frequency_()
const {
return value; }
137 constexpr explicit operator bool() =
delete;
141 constexpr explicit operator uint64_t()
const {
return uint64_t(value); }
145 explicit operator std::string()
const;
183 constexpr static std::array<Frequency, 27>
GetAll()
225 return Frequency_(uint64_t(lhs) | uint64_t(rhs));
295 return Frequency_(uint64_t(lhs) & uint64_t(rhs));
414 return Frequency_(uint64_t(lhs) & uint64_t(rhs));
422 return Frequency_(uint64_t(lhs) & uint64_t(rhs));
440 return Frequency_(uint64_t(lhs) & uint64_t(rhs));
448 return Frequency_(uint64_t(lhs) & uint64_t(rhs));
466 return Frequency_(uint64_t(lhs) & uint64_t(rhs));
474 return Frequency_(uint64_t(lhs) & uint64_t(rhs));
492 return Frequency_(uint64_t(lhs) & uint64_t(rhs));
500 return Frequency_(uint64_t(lhs) & uint64_t(rhs));
539struct hash<NAV::Frequency_>
624#ifndef DOXYGEN_IGNORE
628struct fmt::formatter<NAV::
Frequency> : fmt::formatter<std::string>
634 template<
typename FormatContext>
637 return fmt::formatter<std::string>::format(std::string(freq), ctx);
Code operator|(const Code::Enum &lhs, const Code::Enum &rhs)
Allows combining flags of the Code enum.
Code operator&(const Code::Enum &lhs, const Code::Enum &rhs)
Allows combining flags of the Code enum.
nlohmann::json json
json namespace
Definition FlowManager.hpp:21
constexpr Frequency_ Freq_All
All Frequencies.
Definition Frequency.hpp:513
Frequency_
Enumerate for GNSS frequencies.
Definition Frequency.hpp:26
@ E07
Galileo E5b (1207.14 MHz).
Definition Frequency.hpp:34
@ R03
GLONASS, "G3" (1202.025 MHz).
Definition Frequency.hpp:38
@ J01
QZSS L1 (1575.42 MHz).
Definition Frequency.hpp:47
@ B02
Beidou B1-2 (1561.098 MHz).
Definition Frequency.hpp:42
@ S01
SBAS L1 (1575.42 MHz).
Definition Frequency.hpp:53
@ E06
Galileo E6 (1278.75 MHz).
Definition Frequency.hpp:33
@ Freq_None
None.
Definition Frequency.hpp:27
@ I09
IRNSS S (2492.028 MHz).
Definition Frequency.hpp:52
@ B05
Beidou B2a (1176.45 MHz).
Definition Frequency.hpp:43
@ I05
IRNSS L5 (1176.45 MHz).
Definition Frequency.hpp:51
@ R02
GLONASS, "G2" (1246 MHz).
Definition Frequency.hpp:37
@ B08
Beidou B2 (B2a + B2b) (1191.795MHz).
Definition Frequency.hpp:46
@ R06
GLONASS, "G2a" (1248.06 MHz).
Definition Frequency.hpp:40
@ E01
Galileo, "E1" (1575.42 MHz).
Definition Frequency.hpp:31
@ B06
Beidou B3 (1268.52 MHz).
Definition Frequency.hpp:44
@ E05
Galileo E5a (1176.45 MHz).
Definition Frequency.hpp:32
@ S05
SBAS L5 (1176.45 MHz).
Definition Frequency.hpp:54
@ G02
GPS L2 (1227.6 MHz).
Definition Frequency.hpp:29
@ R01
GLONASS, "G1" (1602 MHZ).
Definition Frequency.hpp:36
@ G01
GPS L1 (1575.42 MHz).
Definition Frequency.hpp:28
@ B01
Beidou B1 (1575.42 MHz).
Definition Frequency.hpp:41
@ J05
QZSS L5 (1176.45 MHz).
Definition Frequency.hpp:49
@ J02
QZSS L2 (1227.6 MHz).
Definition Frequency.hpp:48
@ B07
Beidou B2b (1207.14 MHz).
Definition Frequency.hpp:45
@ R04
GLONASS, "G1a" (1600.995 MHZ).
Definition Frequency.hpp:39
@ E08
Galileo E5 (E5a + E5b) (1191.795MHz).
Definition Frequency.hpp:35
@ J06
QZSS L6 / LEX (1278.75 MHz).
Definition Frequency.hpp:50
@ G05
GPS L5 (1176.45 MHz).
Definition Frequency.hpp:30
bool ShowFrequencySelector(const char *label, Frequency &frequency, bool singleSelect=false)
Shows a ComboBox to select GNSS frequencies.
constexpr Frequency_ operator~(Frequency_ rhs)
Allows negating flags of the Frequency enum.
Definition Frequency.hpp:362
constexpr Frequency_ & operator&=(Frequency_ &lhs, const Frequency_ &rhs)
Allows combining flags of the Frequency enum.
Definition Frequency.hpp:326
std::ostream & operator<<(std::ostream &os, const NAV::Frequency &obj)
Stream insertion operator overload.
constexpr Frequency_ & operator|=(Frequency_ &lhs, const Frequency_ &rhs)
Allows combining flags of the Frequency enum.
Definition Frequency.hpp:256
SatelliteSystem_
Satellite System enumeration.
Definition SatelliteSystem.hpp:30
Frequency definition for different satellite systems.
Definition Frequency.hpp:59
constexpr Frequency & operator=(Frequency_ v)
Assignment operator from Value type.
Definition Frequency.hpp:121
static constexpr std::array< Frequency, 27 > GetAll()
Returns a list with all possible frequencies.
Definition Frequency.hpp:183
SatelliteSystem getSatSys() const
Get the satellite system for which this frequency is defined.
Definition Frequency.hpp:152
static Frequency fromString(const std::string &typeString)
Construct new object from std::string.
constexpr Frequency(Frequency_ type)
Implicit Constructor from Value type.
Definition Frequency.hpp:100
Frequency getL1() const
Returns the L1 Frequency for each constellation.
Definition Frequency.hpp:174
static Enum ToEnumeration(Frequency freq)
Get the continuous enumeration of the specified frequency.
Enum toEnumeration() const
Returns a continuous enumeration of the object.
static Frequency GetL1(Frequency freq)
Returns the L1 Frequency for each constellation.
Enum
Satellite System enumeration with continuous range. Not usable as a mask.
Definition Frequency.hpp:63
@ Enum_R02
GLONASS, "G2" (1246 MHz).
Definition Frequency.hpp:73
@ Enum_R03
GLONASS, "G3" (1202.025 MHz).
Definition Frequency.hpp:74
@ Enum_None
No Frequency.
Definition Frequency.hpp:92
@ Enum_B08
Beidou B2 (B2a + B2b) (1191.795MHz).
Definition Frequency.hpp:82
@ Enum_J05
QZSS L5 (1176.45 MHz).
Definition Frequency.hpp:85
@ Enum_COUNT
Count variable.
Definition Frequency.hpp:91
@ Enum_E08
Galileo E5 (E5a + E5b) (1191.795MHz).
Definition Frequency.hpp:71
@ Enum_E01
Galileo, "E1" (1575.42 MHz).
Definition Frequency.hpp:67
@ Enum_B05
Beidou B2a (1176.45 MHz).
Definition Frequency.hpp:79
@ Enum_B07
Beidou B2b (1207.14 MHz).
Definition Frequency.hpp:81
@ Enum_R06
GLONASS, "G2a" (1248.06 MHz).
Definition Frequency.hpp:76
@ Enum_R01
GLONASS, "G1" (1602 MHZ).
Definition Frequency.hpp:72
@ Enum_R04
GLONASS, "G1a" (1600.995 MHZ).
Definition Frequency.hpp:75
@ Enum_S01
SBAS L1 (1575.42 MHz).
Definition Frequency.hpp:89
@ Enum_G05
GPS L5 (1176.45 MHz).
Definition Frequency.hpp:66
@ Enum_E07
Galileo E5b (1207.14 MHz).
Definition Frequency.hpp:70
@ Enum_G02
GPS L2 (1227.6 MHz).
Definition Frequency.hpp:65
@ Enum_G01
GPS L1 (1575.42 MHz).
Definition Frequency.hpp:64
@ Enum_I05
IRNSS L5 (1176.45 MHz).
Definition Frequency.hpp:87
@ Enum_I09
IRNSS S (2492.028 MHz).
Definition Frequency.hpp:88
@ Enum_S05
SBAS L5 (1176.45 MHz).
Definition Frequency.hpp:90
@ Enum_B02
Beidou B1-2 (1561.098 MHz).
Definition Frequency.hpp:78
@ Enum_J02
QZSS L2 (1227.6 MHz).
Definition Frequency.hpp:84
@ Enum_J06
QZSS L6 / LEX (1278.75 MHz).
Definition Frequency.hpp:86
@ Enum_E05
Galileo E5a (1176.45 MHz).
Definition Frequency.hpp:68
@ Enum_E06
Galileo E6 (1278.75 MHz).
Definition Frequency.hpp:69
@ Enum_J01
QZSS L1 (1575.42 MHz).
Definition Frequency.hpp:83
@ Enum_B06
Beidou B3 (1268.52 MHz).
Definition Frequency.hpp:80
@ Enum_B01
Beidou B1 (1575.42 MHz).
Definition Frequency.hpp:77
Frequency(Enum enumeration)
Implicit Constructor from Enum type.
Definition Frequency.hpp:106
static Frequency fromEnum(Enum enumeration)
Constructs a new object from continuous enumeration.
static SatelliteSystem GetSatelliteSystemForFrequency(Frequency freq)
Get the Time System of the specified Frequency.
static double GetFrequency(Frequency freq, int8_t num)
Get the frequency in [Hz].
friend constexpr bool operator==(const Frequency &lhs, const Frequency &rhs)
Equal compares values.
Definition Frequency.hpp:378
constexpr Frequency()=default
Default Constructor.
double getFrequency(int8_t num) const
Get the frequency in [Hz].
Definition Frequency.hpp:164
size_t count() const
Counts the amount of frequencies contained.
constexpr bool operator<(const Frequency &rhs) const
Less than comparison (needed for map)
Definition Frequency.hpp:132
bool operator==(const ImVec4 &lhs, const ImVec4 &rhs)
Equal comparison operator.
bool operator!=(const ImVec4 &lhs, const ImVec4 &rhs)
Unequal comparison operator.
Satellite System type.
Definition SatelliteSystem.hpp:43
std::size_t operator()(const NAV::Frequency &f) const
Hash function for Frequency.
Definition Frequency.hpp:617
std::size_t operator()(const NAV::Frequency_ &f) const
Hash function for Frequency.
Definition Frequency.hpp:544