dimval 0.2.0
Modern C++23 header-only library of dimensional values (units, measures, ranges)
Loading...
Searching...
No Matches
gnss.hpp
Go to the documentation of this file.
1#pragma once
2
5
6#include <dimval/define.hpp>
9#include <dimval/units/rf.hpp>
10#include <dimval/units/si.hpp>
11
13 ::dimval::Degree,
14 "latitude",
15 "Latitude",
16 ::comms::Icons::mdi::latitude,
17 ::comms::Colors::mui::teal[400],
18 static constexpr int default_precision = 6;)
19
20DIMVAL_DEFINE_MEASURE(Longitude,
21 ::dimval::Degree,
22 "longitude",
23 "Longitude",
24 ::comms::Icons::mdi::longitude,
25 ::comms::Colors::mui::teal[400],
26 static constexpr int default_precision = 6;)
27
29 ::dimval::Meter,
30 "altitude",
31 "Altitude",
32 ::comms::Icons::mdi::image_filter_hdr,
33 ::comms::Colors::mui::teal[400],
34 static constexpr int default_precision = 2;)
35
36DIMVAL_DEFINE_MEASURE(GeoidSeparation,
37 ::dimval::Meter,
38 "geoid_separation",
39 "Geoid Separation",
40 ::comms::Icons::mdi::image_filter_hdr,
41 ::comms::Colors::mui::teal[400],
42 static constexpr int default_precision = 2;)
43
44DIMVAL_DEFINE_MEASURE(GroundSpeed,
45 ::dimval::MeterPerSecond,
46 "ground_speed",
47 "Ground Speed",
48 ::comms::Icons::mdi::speedometer,
49 ::comms::Colors::mui::light_green[400])
50
51DIMVAL_DEFINE_MEASURE(VerticalSpeed,
52 ::dimval::MeterPerSecond,
53 "vertical_speed",
54 "Vertical Speed",
55 ::comms::Icons::mdi::speedometer,
56 ::comms::Colors::mui::light_green[500])
57
58DIMVAL_DEFINE_MEASURE(CourseOverGround,
59 ::dimval::Degree,
60 "course_over_ground",
61 "Course Over Ground",
62 ::comms::Icons::mdi::compass,
63 ::comms::Colors::mui::deep_purple[400])
64
66 ::dimval::Degree,
67 "heading",
68 "Heading",
69 ::comms::Icons::mdi::compass,
70 ::comms::Colors::mui::deep_purple[400])
71
72DIMVAL_DEFINE_MEASURE(PositionAccuracy,
73 ::dimval::Meter,
74 "position_accuracy",
75 "Position Accuracy",
76 ::comms::Icons::mdi::crosshairs_gps,
77 ::comms::Colors::mui::teal[500],
78 static constexpr int default_precision = 2;)
79
80DIMVAL_DEFINE_MEASURE(HorizontalAccuracy,
81 ::dimval::Meter,
82 "horizontal_accuracy",
83 "Horizontal Accuracy",
84 ::comms::Icons::mdi::crosshairs_gps,
85 ::comms::Colors::mui::teal[500],
86 static constexpr int default_precision = 2;)
87
88DIMVAL_DEFINE_MEASURE(VerticalAccuracy,
89 ::dimval::Meter,
90 "vertical_accuracy",
91 "Vertical Accuracy",
92 ::comms::Icons::mdi::crosshairs_gps,
93 ::comms::Colors::mui::teal[500],
94 static constexpr int default_precision = 2;)
95
96DIMVAL_DEFINE_MEASURE(TimeAccuracy,
97 ::dimval::Second,
98 "time_accuracy",
99 "Time Accuracy",
100 ::comms::Icons::mdi::clock_check_outline,
101 ::comms::Colors::mui::blue[400])
102
103DIMVAL_DEFINE_MEASURE(DilutionOfPrecision,
104 ::dimval::Percent,
105 "dop",
106 "Dilution of Precision",
107 ::comms::Icons::mdi::crosshairs_question,
108 ::comms::Colors::mui::red[400],
109 static constexpr int default_precision = 2;)
110
112 ::dimval::Percent,
113 "hdop",
114 "Horizontal Dilution of Precision",
115 ::comms::Icons::mdi::crosshairs_question,
116 ::comms::Colors::mui::red[400],
117 static constexpr int default_precision = 2;)
118
120 ::dimval::Percent,
121 "vdop",
122 "Vertical Dilution of Precision",
123 ::comms::Icons::mdi::crosshairs_question,
124 ::comms::Colors::mui::red[400],
125 static constexpr int default_precision = 2;)
126
128 ::dimval::Percent,
129 "pdop",
130 "Position Dilution of Precision",
131 ::comms::Icons::mdi::crosshairs_question,
132 ::comms::Colors::mui::red[400],
133 static constexpr int default_precision = 2;)
134
136 ::dimval::Percent,
137 "tdop",
138 "Time Dilution of Precision",
139 ::comms::Icons::mdi::crosshairs_question,
140 ::comms::Colors::mui::red[400],
141 static constexpr int default_precision = 2;)
142
143DIMVAL_DEFINE_MEASURE(CarrierToNoiseDensity,
144 ::dimval::Decibel,
145 "cn0",
146 "Carrier-to-Noise Density",
147 ::comms::Icons::mdi::satellite_variant,
148 ::comms::Colors::mui::green[400])
149
150DIMVAL_DEFINE_MEASURE(Pseudorange,
151 ::dimval::Meter,
152 "pseudorange",
153 "Pseudorange",
154 ::comms::Icons::mdi::satellite_variant,
155 ::comms::Colors::mui::teal[500],
156 static constexpr int default_precision = 2;)
157
158DIMVAL_DEFINE_MEASURE(CarrierPhase,
159 ::dimval::PhaseRadian,
160 "carrier_phase",
161 "Carrier Phase",
162 ::comms::Icons::mdi::satellite_variant,
163 ::comms::Colors::mui::deep_purple[500])
Macros that expand into a CRTP unit/measure struct and a runtime auto-registration for it.
#define DIMVAL_DEFINE_MEASURE(Tag, BaseUnit, Id, Name, Icon, Color,...)
Define a measure struct in ::dimval and auto-register its descriptor.
Definition define.hpp:102
Dimensionless units.
Practical / accepted units that mostly carry their own kind: clock drift, rotational frequency,...
RF / SDR units — logarithmic ratios (dB family + Neper), phase angle alternates, spectral density uni...
Canonical SI units (base + derived) and accepted/practical alts.