Line | Branch | Exec | Source |
---|---|---|---|
1 | // This file is part of INSTINCT, the INS Toolkit for Integrated | ||
2 | // Navigation Concepts and Training by the Institute of Navigation of | ||
3 | // the University of Stuttgart, Germany. | ||
4 | // | ||
5 | // This Source Code Form is subject to the terms of the Mozilla Public | ||
6 | // License, v. 2.0. If a copy of the MPL was not distributed with this | ||
7 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. | ||
8 | |||
9 | #include "Frequency.hpp" | ||
10 | |||
11 | #include <algorithm> | ||
12 | #include <cmath> | ||
13 | #include <imgui.h> | ||
14 | #include <imgui_internal.h> | ||
15 | |||
16 | #include "util/Assert.h" | ||
17 | #include "util/Logger.hpp" | ||
18 | |||
19 | namespace NAV | ||
20 | { | ||
21 | |||
22 | 402709 | Frequency Frequency::fromString(const std::string& typeString) | |
23 | { | ||
24 |
7/8✓ Branch 1 taken 402701 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 402701 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 14287 times.
✓ Branch 8 taken 388414 times.
✓ Branch 9 taken 14295 times.
✓ Branch 10 taken 388414 times.
|
402709 | if (typeString == "B1" || typeString == "B01" || typeString == "C01") { return B01; } |
25 |
7/8✓ Branch 1 taken 388406 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 388406 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5824 times.
✓ Branch 8 taken 382582 times.
✓ Branch 9 taken 5832 times.
✓ Branch 10 taken 382582 times.
|
388414 | if (typeString == "B2" || typeString == "B08" || typeString == "C08") { return B08; } |
26 |
7/8✓ Branch 1 taken 382574 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 382574 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 15288 times.
✓ Branch 8 taken 367286 times.
✓ Branch 9 taken 15296 times.
✓ Branch 10 taken 367286 times.
|
382582 | if (typeString == "B3" || typeString == "B06" || typeString == "C06") { return B06; } |
27 |
7/8✓ Branch 1 taken 367278 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 367278 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 15834 times.
✓ Branch 8 taken 351444 times.
✓ Branch 9 taken 15842 times.
✓ Branch 10 taken 351444 times.
|
367286 | if (typeString == "B1-2" || typeString == "B02" || typeString == "C02") { return B02; } |
28 |
7/8✓ Branch 1 taken 351436 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 351436 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 7280 times.
✓ Branch 8 taken 344156 times.
✓ Branch 9 taken 7288 times.
✓ Branch 10 taken 344156 times.
|
351444 | if (typeString == "B2a" || typeString == "B05" || typeString == "C05") { return B05; } |
29 |
7/8✓ Branch 1 taken 344148 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 344148 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 15470 times.
✓ Branch 8 taken 328678 times.
✓ Branch 9 taken 15478 times.
✓ Branch 10 taken 328678 times.
|
344156 | if (typeString == "B2b" || typeString == "B07" || typeString == "C07") { return B07; } |
30 |
6/6✓ Branch 1 taken 328670 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 13468 times.
✓ Branch 5 taken 315202 times.
✓ Branch 6 taken 13476 times.
✓ Branch 7 taken 315202 times.
|
328678 | if (typeString == "E1" || typeString == "E01") { return E01; } |
31 |
6/6✓ Branch 1 taken 315194 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 13104 times.
✓ Branch 5 taken 302090 times.
✓ Branch 6 taken 13112 times.
✓ Branch 7 taken 302090 times.
|
315202 | if (typeString == "E5a" || typeString == "E05") { return E05; } |
32 |
6/6✓ Branch 1 taken 302082 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 12012 times.
✓ Branch 5 taken 290070 times.
✓ Branch 6 taken 12020 times.
✓ Branch 7 taken 290070 times.
|
302090 | if (typeString == "E6" || typeString == "E06") { return E06; } |
33 |
6/6✓ Branch 1 taken 290062 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 12467 times.
✓ Branch 5 taken 277595 times.
✓ Branch 6 taken 12475 times.
✓ Branch 7 taken 277595 times.
|
290070 | if (typeString == "E5b" || typeString == "E07") { return E07; } |
34 |
6/6✓ Branch 1 taken 277587 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 11739 times.
✓ Branch 5 taken 265848 times.
✓ Branch 6 taken 11747 times.
✓ Branch 7 taken 265848 times.
|
277595 | if (typeString == "E5" || typeString == "E08") { return E08; } |
35 |
6/6✓ Branch 1 taken 265840 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 50414 times.
✓ Branch 5 taken 215426 times.
✓ Branch 6 taken 50422 times.
✓ Branch 7 taken 215426 times.
|
265848 | if (typeString == "L1" || typeString == "G01") { return G01; } |
36 |
6/6✓ Branch 1 taken 215418 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 49595 times.
✓ Branch 5 taken 165823 times.
✓ Branch 6 taken 49603 times.
✓ Branch 7 taken 165823 times.
|
215426 | if (typeString == "L2" || typeString == "G02") { return G02; } |
37 |
6/6✓ Branch 1 taken 165815 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 10829 times.
✓ Branch 5 taken 154986 times.
✓ Branch 6 taken 10837 times.
✓ Branch 7 taken 154986 times.
|
165823 | if (typeString == "L5" || typeString == "G05") { return G05; } |
38 |
6/6✓ Branch 1 taken 154978 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 9100 times.
✓ Branch 5 taken 145878 times.
✓ Branch 6 taken 9108 times.
✓ Branch 7 taken 145878 times.
|
154986 | if (typeString == "I5" || typeString == "I05") { return I05; } |
39 |
6/6✓ Branch 1 taken 145870 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 819 times.
✓ Branch 5 taken 145051 times.
✓ Branch 6 taken 827 times.
✓ Branch 7 taken 145051 times.
|
145878 | if (typeString == "IS" || typeString == "I09") { return I09; } |
40 |
6/6✓ Branch 1 taken 145043 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 10738 times.
✓ Branch 5 taken 134305 times.
✓ Branch 6 taken 10746 times.
✓ Branch 7 taken 134305 times.
|
145051 | if (typeString == "Q1" || typeString == "J01") { return J01; } |
41 |
6/6✓ Branch 1 taken 134297 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 10738 times.
✓ Branch 5 taken 123559 times.
✓ Branch 6 taken 10746 times.
✓ Branch 7 taken 123559 times.
|
134305 | if (typeString == "Q2" || typeString == "J02") { return J02; } |
42 |
6/6✓ Branch 1 taken 123551 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 10374 times.
✓ Branch 5 taken 113177 times.
✓ Branch 6 taken 10382 times.
✓ Branch 7 taken 113177 times.
|
123559 | if (typeString == "Q5" || typeString == "J05") { return J05; } |
43 |
7/8✓ Branch 1 taken 113169 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 113169 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8554 times.
✓ Branch 8 taken 104615 times.
✓ Branch 9 taken 8562 times.
✓ Branch 10 taken 104615 times.
|
113177 | if (typeString == "Q6" || typeString == "QLEX" || typeString == "J06") { return J06; } |
44 |
6/6✓ Branch 1 taken 104607 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 37856 times.
✓ Branch 5 taken 66751 times.
✓ Branch 6 taken 37864 times.
✓ Branch 7 taken 66751 times.
|
104615 | if (typeString == "G1" || typeString == "R01") { return R01; } |
45 |
6/6✓ Branch 1 taken 66743 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 37674 times.
✓ Branch 5 taken 29069 times.
✓ Branch 6 taken 37682 times.
✓ Branch 7 taken 29069 times.
|
66751 | if (typeString == "G2" || typeString == "R02") { return R02; } |
46 |
6/6✓ Branch 1 taken 29061 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 546 times.
✓ Branch 5 taken 28515 times.
✓ Branch 6 taken 554 times.
✓ Branch 7 taken 28515 times.
|
29069 | if (typeString == "G3" || typeString == "R03") { return R03; } |
47 |
6/6✓ Branch 1 taken 28507 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 4186 times.
✓ Branch 5 taken 24321 times.
✓ Branch 6 taken 4194 times.
✓ Branch 7 taken 24321 times.
|
28515 | if (typeString == "G1a" || typeString == "R04") { return R04; } |
48 |
6/6✓ Branch 1 taken 24313 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 4186 times.
✓ Branch 5 taken 20127 times.
✓ Branch 6 taken 4194 times.
✓ Branch 7 taken 20127 times.
|
24321 | if (typeString == "G2a" || typeString == "R06") { return R06; } |
49 |
6/6✓ Branch 1 taken 20119 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 10192 times.
✓ Branch 5 taken 9927 times.
✓ Branch 6 taken 10200 times.
✓ Branch 7 taken 9927 times.
|
20127 | if (typeString == "S1" || typeString == "S01") { return S01; } |
50 |
4/6✓ Branch 1 taken 9919 times.
✓ Branch 2 taken 8 times.
✓ Branch 4 taken 9919 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 9927 times.
✗ Branch 7 not taken.
|
9927 | if (typeString == "S5" || typeString == "S05") { return S05; } |
51 | |||
52 | ✗ | return Freq_None; | |
53 | } | ||
54 | |||
55 | ✗ | Frequency Frequency::fromEnum(Frequency::Enum enumeration) | |
56 | { | ||
57 | ✗ | switch (enumeration) | |
58 | { | ||
59 | ✗ | case Frequency::Enum_G01: | |
60 | ✗ | return G01; | |
61 | ✗ | case Frequency::Enum_G02: | |
62 | ✗ | return G02; | |
63 | ✗ | case Frequency::Enum_G05: | |
64 | ✗ | return G05; | |
65 | ✗ | case Frequency::Enum_E01: | |
66 | ✗ | return E01; | |
67 | ✗ | case Frequency::Enum_E05: | |
68 | ✗ | return E05; | |
69 | ✗ | case Frequency::Enum_E06: | |
70 | ✗ | return E06; | |
71 | ✗ | case Frequency::Enum_E07: | |
72 | ✗ | return E07; | |
73 | ✗ | case Frequency::Enum_E08: | |
74 | ✗ | return E08; | |
75 | ✗ | case Frequency::Enum_R01: | |
76 | ✗ | return R01; | |
77 | ✗ | case Frequency::Enum_R02: | |
78 | ✗ | return R02; | |
79 | ✗ | case Frequency::Enum_R03: | |
80 | ✗ | return R03; | |
81 | ✗ | case Frequency::Enum_R04: | |
82 | ✗ | return R04; | |
83 | ✗ | case Frequency::Enum_R06: | |
84 | ✗ | return R06; | |
85 | ✗ | case Frequency::Enum_B01: | |
86 | ✗ | return B01; | |
87 | ✗ | case Frequency::Enum_B02: | |
88 | ✗ | return B02; | |
89 | ✗ | case Frequency::Enum_B05: | |
90 | ✗ | return B05; | |
91 | ✗ | case Frequency::Enum_B06: | |
92 | ✗ | return B06; | |
93 | ✗ | case Frequency::Enum_B07: | |
94 | ✗ | return B07; | |
95 | ✗ | case Frequency::Enum_B08: | |
96 | ✗ | return B08; | |
97 | ✗ | case Frequency::Enum_J01: | |
98 | ✗ | return J01; | |
99 | ✗ | case Frequency::Enum_J02: | |
100 | ✗ | return J02; | |
101 | ✗ | case Frequency::Enum_J05: | |
102 | ✗ | return J05; | |
103 | ✗ | case Frequency::Enum_J06: | |
104 | ✗ | return J06; | |
105 | ✗ | case Frequency::Enum_I05: | |
106 | ✗ | return I05; | |
107 | ✗ | case Frequency::Enum_I09: | |
108 | ✗ | return I09; | |
109 | ✗ | case Frequency::Enum_S01: | |
110 | ✗ | return S01; | |
111 | ✗ | case Frequency::Enum_S05: | |
112 | ✗ | return S05; | |
113 | ✗ | case Frequency::Enum_COUNT: | |
114 | case Frequency::Enum_None: | ||
115 | ✗ | return Freq_None; | |
116 | } | ||
117 | ✗ | return Freq_None; | |
118 | } | ||
119 | |||
120 | 173432 | Frequency::operator std::string() const | |
121 | { | ||
122 |
1/2✓ Branch 1 taken 173450 times.
✗ Branch 2 not taken.
|
173432 | const std::string filler = " | "; |
123 | 173450 | std::string str; | |
124 |
2/2✓ Branch 1 taken 59054 times.
✓ Branch 2 taken 114407 times.
|
173457 | if (value & G01) |
125 | { | ||
126 |
6/14✓ Branch 1 taken 3 times.
✓ Branch 2 taken 59053 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 59060 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 59058 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 59056 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 59057 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
177164 | str += (!str.empty() ? filler : "") + "L1"; |
127 | } | ||
128 |
2/2✓ Branch 1 taken 29542 times.
✓ Branch 2 taken 143924 times.
|
173464 | if (value & G02) |
129 | { | ||
130 |
8/14✓ Branch 1 taken 29241 times.
✓ Branch 2 taken 296 times.
✓ Branch 4 taken 29242 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 298 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 29541 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 29541 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 299 times.
✓ Branch 18 taken 29242 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
30137 | str += (!str.empty() ? filler : "") + "L2"; |
131 | } | ||
132 |
2/2✓ Branch 1 taken 17268 times.
✓ Branch 2 taken 156194 times.
|
173465 | if (value & G05) |
133 | { | ||
134 |
8/14✓ Branch 1 taken 17165 times.
✓ Branch 2 taken 103 times.
✓ Branch 4 taken 17166 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 102 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 17268 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 17268 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 103 times.
✓ Branch 18 taken 17166 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
17474 | str += (!str.empty() ? filler : "") + "L5"; |
135 | } | ||
136 |
2/2✓ Branch 1 taken 49877 times.
✓ Branch 2 taken 123589 times.
|
173463 | if (value & E01) |
137 | { | ||
138 |
6/14✓ Branch 1 taken 1 times.
✓ Branch 2 taken 49875 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 49876 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 49877 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 49877 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 49877 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
149629 | str += (!str.empty() ? filler : "") + "E1"; |
139 | } | ||
140 |
2/2✓ Branch 1 taken 16492 times.
✓ Branch 2 taken 156979 times.
|
173466 | if (value & E05) |
141 | { | ||
142 |
8/14✓ Branch 1 taken 16377 times.
✓ Branch 2 taken 115 times.
✓ Branch 4 taken 16376 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 116 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 16493 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 16493 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 116 times.
✓ Branch 18 taken 16376 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
16723 | str += (!str.empty() ? filler : "") + "E5a"; |
143 | } | ||
144 |
2/2✓ Branch 1 taken 89 times.
✓ Branch 2 taken 173375 times.
|
173471 | if (value & E06) |
145 | { | ||
146 |
8/14✓ Branch 1 taken 8 times.
✓ Branch 2 taken 81 times.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 81 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 89 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 89 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 81 times.
✓ Branch 18 taken 8 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
251 | str += (!str.empty() ? filler : "") + "E6"; |
147 | } | ||
148 |
2/2✓ Branch 1 taken 29128 times.
✓ Branch 2 taken 144339 times.
|
173464 | if (value & E07) |
149 | { | ||
150 |
8/14✓ Branch 1 taken 28956 times.
✓ Branch 2 taken 171 times.
✓ Branch 4 taken 28956 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 172 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 29128 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 29126 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 171 times.
✓ Branch 18 taken 28956 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
29470 | str += (!str.empty() ? filler : "") + "E5b"; |
151 | } | ||
152 |
2/2✓ Branch 1 taken 1793 times.
✓ Branch 2 taken 171671 times.
|
173466 | if (value & E08) |
153 | { | ||
154 |
8/14✓ Branch 1 taken 1716 times.
✓ Branch 2 taken 77 times.
✓ Branch 4 taken 1716 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 76 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1792 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1792 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 76 times.
✓ Branch 18 taken 1716 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
1946 | str += (!str.empty() ? filler : "") + "E5"; |
155 | } | ||
156 |
2/2✓ Branch 1 taken 34244 times.
✓ Branch 2 taken 139217 times.
|
173463 | if (value & R01) |
157 | { | ||
158 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 34243 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 34243 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 34244 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 34243 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 34244 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
102731 | str += (!str.empty() ? filler : "") + "G1"; |
159 | } | ||
160 |
2/2✓ Branch 1 taken 30746 times.
✓ Branch 2 taken 142707 times.
|
173461 | if (value & R02) |
161 | { | ||
162 |
8/14✓ Branch 1 taken 29786 times.
✓ Branch 2 taken 960 times.
✓ Branch 4 taken 29786 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 960 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 30748 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 30748 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 962 times.
✓ Branch 18 taken 29786 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
32668 | str += (!str.empty() ? filler : "") + "G2"; |
163 | } | ||
164 |
2/2✓ Branch 1 taken 89 times.
✓ Branch 2 taken 173366 times.
|
173455 | if (value & R03) |
165 | { | ||
166 |
8/14✓ Branch 1 taken 8 times.
✓ Branch 2 taken 81 times.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 81 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 89 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 89 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 81 times.
✓ Branch 18 taken 8 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
251 | str += (!str.empty() ? filler : "") + "G3"; |
167 | } | ||
168 |
2/2✓ Branch 1 taken 61 times.
✓ Branch 2 taken 173403 times.
|
173455 | if (value & R04) |
169 | { | ||
170 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 61 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 61 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 61 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 61 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 61 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
183 | str += (!str.empty() ? filler : "") + "G1a"; |
171 | } | ||
172 |
2/2✓ Branch 1 taken 21 times.
✓ Branch 2 taken 173441 times.
|
173464 | if (value & R06) |
173 | { | ||
174 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 21 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 21 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 21 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 21 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 21 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
63 | str += (!str.empty() ? filler : "") + "G2a"; |
175 | } | ||
176 |
2/2✓ Branch 1 taken 2859 times.
✓ Branch 2 taken 170605 times.
|
173462 | if (value & B01) |
177 | { | ||
178 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 2859 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 2859 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2859 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2859 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 2859 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
8577 | str += (!str.empty() ? filler : "") + "B1"; |
179 | } | ||
180 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 2 taken 173457 times.
|
173464 | if (value & B08) |
181 | { | ||
182 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
3 | str += (!str.empty() ? filler : "") + "B2"; |
183 | } | ||
184 |
2/2✓ Branch 1 taken 1041 times.
✓ Branch 2 taken 172417 times.
|
173458 | if (value & B06) |
185 | { | ||
186 |
8/14✓ Branch 1 taken 690 times.
✓ Branch 2 taken 351 times.
✓ Branch 4 taken 690 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 351 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1041 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1041 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 351 times.
✓ Branch 18 taken 690 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
1743 | str += (!str.empty() ? filler : "") + "B3"; |
187 | } | ||
188 |
2/2✓ Branch 1 taken 25260 times.
✓ Branch 2 taken 148203 times.
|
173458 | if (value & B02) |
189 | { | ||
190 |
8/14✓ Branch 1 taken 3116 times.
✓ Branch 2 taken 22144 times.
✓ Branch 4 taken 3116 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 22143 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 25260 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 25260 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 22143 times.
✓ Branch 18 taken 3116 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
69547 | str += (!str.empty() ? filler : "") + "B1-2"; |
191 | } | ||
192 |
2/2✓ Branch 1 taken 2859 times.
✓ Branch 2 taken 170602 times.
|
173462 | if (value & B05) |
193 | { | ||
194 |
8/14✓ Branch 1 taken 2810 times.
✓ Branch 2 taken 49 times.
✓ Branch 4 taken 2810 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 49 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2859 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2859 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 49 times.
✓ Branch 18 taken 2810 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
2957 | str += (!str.empty() ? filler : "") + "B2a"; |
195 | } | ||
196 |
2/2✓ Branch 1 taken 3281 times.
✓ Branch 2 taken 170181 times.
|
173461 | if (value & B07) |
197 | { | ||
198 |
8/14✓ Branch 1 taken 3124 times.
✓ Branch 2 taken 157 times.
✓ Branch 4 taken 3124 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 156 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 3281 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 3281 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 157 times.
✓ Branch 18 taken 3124 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
3595 | str += (!str.empty() ? filler : "") + "B2b"; |
199 | } | ||
200 |
2/2✓ Branch 1 taken 971 times.
✓ Branch 2 taken 172490 times.
|
173462 | if (value & J01) |
201 | { | ||
202 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 972 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 971 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 970 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 972 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 973 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
2916 | str += (!str.empty() ? filler : "") + "Q1"; |
203 | } | ||
204 |
2/2✓ Branch 1 taken 429 times.
✓ Branch 2 taken 173032 times.
|
173463 | if (value & J02) |
205 | { | ||
206 |
8/14✓ Branch 1 taken 396 times.
✓ Branch 2 taken 33 times.
✓ Branch 4 taken 396 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 33 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 429 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 429 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 33 times.
✓ Branch 18 taken 396 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
495 | str += (!str.empty() ? filler : "") + "Q2"; |
207 | } | ||
208 |
2/2✓ Branch 1 taken 881 times.
✓ Branch 2 taken 172583 times.
|
173461 | if (value & J05) |
209 | { | ||
210 |
8/14✓ Branch 1 taken 760 times.
✓ Branch 2 taken 121 times.
✓ Branch 4 taken 760 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 121 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 881 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 881 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 121 times.
✓ Branch 18 taken 760 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
1123 | str += (!str.empty() ? filler : "") + "Q5"; |
211 | } | ||
212 |
2/2✓ Branch 1 taken 21 times.
✓ Branch 2 taken 173445 times.
|
173464 | if (value & J06) |
213 | { | ||
214 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 21 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 21 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 21 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 21 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 21 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
63 | str += (!str.empty() ? filler : "") + "Q6"; |
215 | } | ||
216 |
2/2✓ Branch 1 taken 431 times.
✓ Branch 2 taken 173038 times.
|
173466 | if (value & I05) |
217 | { | ||
218 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 431 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 431 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 431 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 431 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 431 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
1293 | str += (!str.empty() ? filler : "") + "I5"; |
219 | } | ||
220 |
2/2✓ Branch 1 taken 2 times.
✓ Branch 2 taken 173462 times.
|
173469 | if (value & I09) |
221 | { | ||
222 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
6 | str += (!str.empty() ? filler : "") + "IS"; |
223 | } | ||
224 |
2/2✓ Branch 1 taken 1151 times.
✓ Branch 2 taken 172313 times.
|
173464 | if (value & S01) |
225 | { | ||
226 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 1151 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 1151 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1151 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1151 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 1151 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
3453 | str += (!str.empty() ? filler : "") + "S1"; |
227 | } | ||
228 |
2/2✓ Branch 1 taken 1115 times.
✓ Branch 2 taken 172338 times.
|
173464 | if (value & S05) |
229 | { | ||
230 |
8/14✓ Branch 1 taken 1082 times.
✓ Branch 2 taken 33 times.
✓ Branch 4 taken 1082 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 33 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1115 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1115 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 33 times.
✓ Branch 18 taken 1082 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
1181 | str += (!str.empty() ? filler : "") + "S5"; |
231 | } | ||
232 | |||
233 |
1/2✓ Branch 1 taken 173459 times.
✗ Branch 2 not taken.
|
173453 | if (!str.empty()) |
234 | { | ||
235 | 173459 | return str; | |
236 | } | ||
237 | ✗ | return "None"; | |
238 | 173462 | } | |
239 | |||
240 | 4049621 | SatelliteSystem Frequency::GetSatelliteSystemForFrequency(Frequency freq) | |
241 | { | ||
242 | 4049621 | SatelliteSystem retVal = SatSys_None; | |
243 |
3/4✓ Branch 1 taken 4049134 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 28300176 times.
✓ Branch 9 taken 4030135 times.
|
32333281 | for (auto satSys : SatelliteSystem::GetAll()) |
244 | { | ||
245 |
2/2✓ Branch 1 taken 4050152 times.
✓ Branch 2 taken 24233612 times.
|
28298334 | if (freq & satSys) { retVal |= satSys; } |
246 | 4030135 | } | |
247 | 4048235 | return retVal; | |
248 | } | ||
249 | |||
250 | 289990 | double Frequency::GetFrequency(Frequency freq, int8_t num) | |
251 | { | ||
252 |
9/29✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 5610 times.
✓ Branch 8 taken 1586 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 752 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 170965 times.
✓ Branch 13 taken 85406 times.
✓ Branch 14 taken 24871 times.
✓ Branch 15 taken 100 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 600 times.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 100 times.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
289990 | switch (Frequency_(freq)) |
253 | { | ||
254 | ✗ | case B01: // Beidou B1 (1575.42 MHz) | |
255 | ✗ | return 1575.42e6; | |
256 | ✗ | case B02: // Beidou B1-2 (1561.098 MHz) | |
257 | ✗ | return 1561.098e6; | |
258 | ✗ | case B05: // Beidou B2a (1176.45 MHz) | |
259 | ✗ | return 1176.45e6; | |
260 | ✗ | case B06: // Beidou B3 (1268.52 MHz) | |
261 | ✗ | return 1268.52e6; | |
262 | ✗ | case B07: // Beidou B2b (1207.14 MHz) | |
263 | ✗ | return 1207.14e6; | |
264 | ✗ | case B08: // Beidou B2 (B2a + B2b) (1191.795 MHz) | |
265 | ✗ | return 1191.795e6; | |
266 | 5610 | case E01: // Galileo, "E1" (1575.42 MHz) | |
267 | 5610 | return 1575.42e6; | |
268 | 1586 | case E05: // Galileo E5a (1176.45 MHz) | |
269 | 1586 | return 1176.45e6; | |
270 | ✗ | case E06: // Galileo E6 (1278.75 MHz) | |
271 | ✗ | return 1278.75e6; | |
272 | 752 | case E07: // Galileo E5b (1207.14 MHz) | |
273 | 752 | return 1207.14e6; | |
274 | ✗ | case E08: // Galileo E5 (E5a + E5b) (1191.795 MHz) | |
275 | ✗ | return 1191.795e6; | |
276 | 170965 | case G01: // GPS L1 (1575.42 MHz) | |
277 | 170965 | return 1575.42e6; | |
278 | 85406 | case G02: // GPS L2 (1227.6 MHz) | |
279 | 85406 | return 1227.6e6; | |
280 | 24871 | case G05: // GPS L5 (1176.45 MHz) | |
281 | 24871 | return 1176.45e6; | |
282 | 100 | case I05: // IRNSS L5 (1176.45 MHz) | |
283 | 100 | return 1176.45e6; | |
284 | ✗ | case I09: // IRNSS S (2492.028 MHz) | |
285 | ✗ | return 2492.028e6; | |
286 | 600 | case J01: // QZSS L1 (1575.42 MHz) | |
287 | 600 | return 1575.42e6; | |
288 | ✗ | case J02: // QZSS L2 (1227.6 MHz) | |
289 | ✗ | return 1227.6e6; | |
290 | ✗ | case J05: // QZSS L5 (1176.45 MHz) | |
291 | ✗ | return 1176.45e6; | |
292 | ✗ | case J06: // QZSS L6 / LEX (1278.75 MHz) | |
293 | ✗ | return 1278.75e6; | |
294 | ✗ | case R01: // GLONASS, "G1" (1602 MHZ) | |
295 | ✗ | INS_ASSERT_USER_ERROR(num >= -7 && num <= 6, "GLONASS G1 frequency numbers have to be in the range [-7, +6] (all satellites launched after 2005)"); | |
296 | ✗ | return (1602.0 + num * 9.0 / 16.0) * 1e6; | |
297 | ✗ | case R02: // GLONASS, "G2" (1246 MHz) | |
298 | ✗ | INS_ASSERT_USER_ERROR(num >= -7 && num <= 6, "GLONASS G1 frequency numbers have to be in the range [-7, +6] (all satellites launched after 2005)"); | |
299 | ✗ | return (1246.0 + num * 7.0 / 16.0) * 1e6; | |
300 | ✗ | case R03: // GLONASS, "G3" (1202.025 MHz) | |
301 | ✗ | return 1202.025e6; | |
302 | ✗ | case R04: // GLONASS, "G1a" (1600.995 MHZ) | |
303 | ✗ | return 1600.995e6; | |
304 | ✗ | case R06: // GLONASS, "G2a" (1248.06 MHz) | |
305 | ✗ | return 1248.06e6; | |
306 | 100 | case S01: // SBAS L1 (1575.42 MHz) | |
307 | 100 | return 1575.42e6; | |
308 | ✗ | case S05: // SBAS L5 (1176.45 MHz) | |
309 | ✗ | return 1176.45e6; | |
310 | ✗ | case Freq_None: | |
311 | ✗ | return std::nan(""); | |
312 | } | ||
313 | |||
314 | ✗ | return std::nan(""); | |
315 | } | ||
316 | |||
317 | 41798 | Frequency Frequency::GetL1(Frequency freq) | |
318 | { | ||
319 |
1/9✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 41798 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
|
41798 | switch (Frequency_(freq)) |
320 | { | ||
321 | ✗ | case B01: // Beidou B1 (1575.42 MHz) | |
322 | case B02: // Beidou B1-2 (1561.098 MHz) | ||
323 | case B05: // Beidou B2a (1176.45 MHz) | ||
324 | case B06: // Beidou B3 (1268.52 MHz) | ||
325 | case B07: // Beidou B2b (1207.14 MHz) | ||
326 | case B08: // Beidou B2 (B2a + B2b) (1191.795 MHz) | ||
327 | ✗ | return B01; | |
328 | ✗ | case E01: // Galileo, "E1" (1575.42 MHz) | |
329 | case E05: // Galileo E5a (1176.45 MHz) | ||
330 | case E06: // Galileo E6 (1278.75 MHz) | ||
331 | case E07: // Galileo E5b (1207.14 MHz) | ||
332 | case E08: // Galileo E5 (E5a + E5b) (1191.795 MHz) | ||
333 | ✗ | return E01; | |
334 | 41798 | case G01: // GPS L1 (1575.42 MHz) | |
335 | case G02: // GPS L2 (1227.6 MHz) | ||
336 | case G05: // GPS L5 (1176.45 MHz) | ||
337 | 41798 | return G01; | |
338 | ✗ | case I05: // IRNSS L5 (1176.45 MHz) | |
339 | case I09: // IRNSS S (2492.028 MHz) | ||
340 | ✗ | return I05; | |
341 | ✗ | case J01: // QZSS L1 (1575.42 MHz) | |
342 | case J02: // QZSS L2 (1227.6 MHz) | ||
343 | case J05: // QZSS L5 (1176.45 MHz) | ||
344 | case J06: // QZSS L6 / LEX (1278.75 MHz) | ||
345 | ✗ | return J01; | |
346 | ✗ | case R01: // GLONASS, "G1" (1602 MHZ) | |
347 | case R02: // GLONASS, "G2" (1246 MHz) | ||
348 | case R03: // GLONASS, "G3" (1202.025 MHz) | ||
349 | case R04: // GLONASS, "G1a" (1600.995 MHZ) | ||
350 | case R06: // GLONASS, "G2a" (1248.06 MHz) | ||
351 | ✗ | return R01; | |
352 | ✗ | case S01: // SBAS L1 (1575.42 MHz) | |
353 | case S05: // SBAS L5 (1176.45 MHz) | ||
354 | ✗ | return S01; | |
355 | ✗ | case Freq_None: | |
356 | ✗ | return Freq_None; | |
357 | } | ||
358 | |||
359 | ✗ | return Freq_None; | |
360 | } | ||
361 | |||
362 | ✗ | size_t Frequency::count() const | |
363 | { | ||
364 | ✗ | size_t num = 0; | |
365 | ✗ | if (value & G01) { num += 1; } | |
366 | ✗ | if (value & G02) { num += 1; } | |
367 | ✗ | if (value & G05) { num += 1; } | |
368 | ✗ | if (value & E01) { num += 1; } | |
369 | ✗ | if (value & E05) { num += 1; } | |
370 | ✗ | if (value & E06) { num += 1; } | |
371 | ✗ | if (value & E07) { num += 1; } | |
372 | ✗ | if (value & E08) { num += 1; } | |
373 | ✗ | if (value & R01) { num += 1; } | |
374 | ✗ | if (value & R02) { num += 1; } | |
375 | ✗ | if (value & R03) { num += 1; } | |
376 | ✗ | if (value & R04) { num += 1; } | |
377 | ✗ | if (value & R06) { num += 1; } | |
378 | ✗ | if (value & B01) { num += 1; } | |
379 | ✗ | if (value & B02) { num += 1; } | |
380 | ✗ | if (value & B05) { num += 1; } | |
381 | ✗ | if (value & B06) { num += 1; } | |
382 | ✗ | if (value & B07) { num += 1; } | |
383 | ✗ | if (value & B08) { num += 1; } | |
384 | ✗ | if (value & J01) { num += 1; } | |
385 | ✗ | if (value & J02) { num += 1; } | |
386 | ✗ | if (value & J05) { num += 1; } | |
387 | ✗ | if (value & J06) { num += 1; } | |
388 | ✗ | if (value & I05) { num += 1; } | |
389 | ✗ | if (value & I09) { num += 1; } | |
390 | ✗ | if (value & S01) { num += 1; } | |
391 | ✗ | if (value & S05) { num += 1; } | |
392 | |||
393 | ✗ | return num; | |
394 | } | ||
395 | |||
396 | ✗ | Frequency::Enum Frequency::ToEnumeration(Frequency freq) | |
397 | { | ||
398 | ✗ | switch (Frequency_(freq)) | |
399 | { | ||
400 | ✗ | case Freq_None: | |
401 | ✗ | return Enum_None; | |
402 | ✗ | case G01: | |
403 | ✗ | return Enum_G01; | |
404 | ✗ | case G02: | |
405 | ✗ | return Enum_G02; | |
406 | ✗ | case G05: | |
407 | ✗ | return Enum_G05; | |
408 | ✗ | case E01: | |
409 | ✗ | return Enum_E01; | |
410 | ✗ | case E05: | |
411 | ✗ | return Enum_E05; | |
412 | ✗ | case E06: | |
413 | ✗ | return Enum_E06; | |
414 | ✗ | case E07: | |
415 | ✗ | return Enum_E07; | |
416 | ✗ | case E08: | |
417 | ✗ | return Enum_E08; | |
418 | ✗ | case R01: | |
419 | ✗ | return Enum_R01; | |
420 | ✗ | case R02: | |
421 | ✗ | return Enum_R02; | |
422 | ✗ | case R03: | |
423 | ✗ | return Enum_R03; | |
424 | ✗ | case R04: | |
425 | ✗ | return Enum_R04; | |
426 | ✗ | case R06: | |
427 | ✗ | return Enum_R06; | |
428 | ✗ | case B01: | |
429 | ✗ | return Enum_B01; | |
430 | ✗ | case B02: | |
431 | ✗ | return Enum_B02; | |
432 | ✗ | case B05: | |
433 | ✗ | return Enum_B05; | |
434 | ✗ | case B06: | |
435 | ✗ | return Enum_B06; | |
436 | ✗ | case B07: | |
437 | ✗ | return Enum_B07; | |
438 | ✗ | case B08: | |
439 | ✗ | return Enum_B08; | |
440 | ✗ | case J01: | |
441 | ✗ | return Enum_J01; | |
442 | ✗ | case J02: | |
443 | ✗ | return Enum_J02; | |
444 | ✗ | case J05: | |
445 | ✗ | return Enum_J05; | |
446 | ✗ | case J06: | |
447 | ✗ | return Enum_J06; | |
448 | ✗ | case I05: | |
449 | ✗ | return Enum_I05; | |
450 | ✗ | case I09: | |
451 | ✗ | return Enum_I09; | |
452 | ✗ | case S01: | |
453 | ✗ | return Enum_S01; | |
454 | ✗ | case S05: | |
455 | ✗ | return Enum_S05; | |
456 | } | ||
457 | ✗ | return Enum_None; | |
458 | } | ||
459 | |||
460 | ✗ | Frequency::Enum Frequency::toEnumeration() const | |
461 | { | ||
462 | ✗ | return ToEnumeration(*this); | |
463 | } | ||
464 | |||
465 | 1872 | std::vector<Frequency> Frequency::ToVector(Frequency freq) | |
466 | { | ||
467 | 1872 | std::vector<Frequency> v; | |
468 |
2/2✓ Branch 0 taken 50544 times.
✓ Branch 1 taken 1872 times.
|
52416 | for (const Frequency& f : GetAll()) |
469 | { | ||
470 |
3/4✓ Branch 1 taken 3744 times.
✓ Branch 2 taken 46800 times.
✓ Branch 4 taken 3744 times.
✗ Branch 5 not taken.
|
50544 | if (f.value & freq.value) { v.push_back(f); } |
471 | } | ||
472 | 1872 | return v; | |
473 | ✗ | } | |
474 | |||
475 | 1872 | std::vector<Frequency> Frequency::toVector() const | |
476 | { | ||
477 |
1/2✓ Branch 2 taken 1872 times.
✗ Branch 3 not taken.
|
1872 | return ToVector(value); |
478 | } | ||
479 | |||
480 | ✗ | bool Frequency::IsFirstFrequency(const Frequency& freq, const Frequency& filter) | |
481 | { | ||
482 | ✗ | return freq.isFirstFrequency(filter); | |
483 | } | ||
484 | |||
485 | 2178 | bool Frequency::isFirstFrequency(const Frequency& filter) const | |
486 | { | ||
487 |
1/2✓ Branch 1 taken 2178 times.
✗ Branch 2 not taken.
|
2178 | Frequency_ f = filter & getSatSys(); |
488 | 2178 | f = Frequency_(f ^ value); | |
489 | |||
490 |
2/2✓ Branch 0 taken 306 times.
✓ Branch 1 taken 1872 times.
|
2178 | if (f == Freq_None) { return true; } |
491 | |||
492 |
1/2✓ Branch 2 taken 1872 times.
✗ Branch 3 not taken.
|
1872 | auto frequencies = Frequency(f).toVector(); |
493 |
1/2✓ Branch 1 taken 1872 times.
✗ Branch 2 not taken.
|
1872 | return std::ranges::all_of(frequencies, |
494 | 4368 | [&](const Frequency& freq) { return value < Frequency_(freq); }); | |
495 | 1872 | } | |
496 | |||
497 | ✗ | void to_json(json& j, const Frequency& data) | |
498 | { | ||
499 | ✗ | j = std::string(data); | |
500 | ✗ | } | |
501 | 216 | void from_json(const json& j, Frequency& data) | |
502 | { | ||
503 |
2/4✓ Branch 1 taken 216 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 216 times.
✗ Branch 5 not taken.
|
216 | data = Frequency::fromString(j.get<std::string>()); |
504 | 216 | } | |
505 | |||
506 | ✗ | bool ShowFrequencySelector(const char* label, Frequency& frequency, bool singleSelect) | |
507 | { | ||
508 | ✗ | bool valueChanged = false; | |
509 | ✗ | if (ImGui::BeginCombo(label, std::string(frequency).c_str(), ImGuiComboFlags_HeightLargest)) | |
510 | { | ||
511 | ✗ | if (ImGui::BeginTable(fmt::format("{} Table", label).c_str(), 7, ImGuiTableFlags_BordersInnerV)) | |
512 | { | ||
513 | ✗ | for (uint64_t satSys = 0xFF; satSys < 0xFFUL << (7 * 8); satSys = satSys << 8UL) | |
514 | { | ||
515 | ✗ | ImGui::TableSetupColumn(std::string(SatelliteSystem(SatelliteSystem_(satSys))).c_str()); | |
516 | } | ||
517 | ✗ | ImGui::TableHeadersRow(); | |
518 | ✗ | for (uint64_t f = 0; f < 8; f++) | |
519 | { | ||
520 | ✗ | ImGui::TableNextRow(); | |
521 | ✗ | for (int c = 0; c < 7; c++) | |
522 | { | ||
523 | ✗ | uint64_t flag = (1UL << (f + static_cast<uint64_t>(c) * 8)); | |
524 | ✗ | auto text = std::string(Frequency(Frequency_(flag))); | |
525 | ✗ | if (text == "None") | |
526 | { | ||
527 | ✗ | continue; | |
528 | } | ||
529 | ✗ | ImGui::TableSetColumnIndex(c); | |
530 | ✗ | if (c >= 5) | |
531 | { | ||
532 | ✗ | ImGui::BeginDisabled(); | |
533 | } | ||
534 | ✗ | if (singleSelect) | |
535 | { | ||
536 | ✗ | bool selected = flag & Frequency_(frequency); | |
537 | ✗ | if (ImGui::Checkbox(text.c_str(), &selected) && frequency != Frequency_(flag)) | |
538 | { | ||
539 | ✗ | frequency = Frequency_(flag); | |
540 | ✗ | valueChanged = true; | |
541 | } | ||
542 | } | ||
543 | else | ||
544 | { | ||
545 | ✗ | ImU64 value = Frequency_(frequency); | |
546 | ✗ | if (ImGui::CheckboxFlags(text.c_str(), &value, flag)) | |
547 | { | ||
548 | ✗ | frequency = Frequency_(value); | |
549 | ✗ | valueChanged = true; | |
550 | } | ||
551 | } | ||
552 | ✗ | if (c >= 5) | |
553 | { | ||
554 | ✗ | ImGui::EndDisabled(); | |
555 | } | ||
556 | ✗ | } | |
557 | } | ||
558 | ✗ | ImGui::EndTable(); | |
559 | } | ||
560 | ✗ | ImGui::EndCombo(); | |
561 | } | ||
562 | ✗ | return valueChanged; | |
563 | } | ||
564 | |||
565 | } // namespace NAV | ||
566 | |||
567 | ✗ | std::ostream& operator<<(std::ostream& os, const NAV::Frequency& obj) | |
568 | { | ||
569 | ✗ | return os << fmt::format("{}", obj); | |
570 | } | ||
571 |