| 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 | 414306 | Frequency Frequency::fromString(const std::string& typeString) | |
| 23 | { | ||
| 24 |
7/8✓ Branch 1 taken 414296 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 414296 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 14694 times.
✓ Branch 8 taken 399602 times.
✓ Branch 9 taken 14704 times.
✓ Branch 10 taken 399602 times.
|
414306 | if (typeString == "B1" || typeString == "B01" || typeString == "C01") { return B01; } |
| 25 |
7/8✓ Branch 1 taken 399592 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 399592 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 6045 times.
✓ Branch 8 taken 393547 times.
✓ Branch 9 taken 6055 times.
✓ Branch 10 taken 393547 times.
|
399602 | if (typeString == "B2" || typeString == "B08" || typeString == "C08") { return B08; } |
| 26 |
7/8✓ Branch 1 taken 393537 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 393537 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 15717 times.
✓ Branch 8 taken 377820 times.
✓ Branch 9 taken 15727 times.
✓ Branch 10 taken 377820 times.
|
393547 | if (typeString == "B3" || typeString == "B06" || typeString == "C06") { return B06; } |
| 27 |
7/8✓ Branch 1 taken 377810 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 377810 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 16275 times.
✓ Branch 8 taken 361535 times.
✓ Branch 9 taken 16285 times.
✓ Branch 10 taken 361535 times.
|
377820 | if (typeString == "B1-2" || typeString == "B02" || typeString == "C02") { return B02; } |
| 28 |
7/8✓ Branch 1 taken 361525 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 361525 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 7533 times.
✓ Branch 8 taken 353992 times.
✓ Branch 9 taken 7543 times.
✓ Branch 10 taken 353992 times.
|
361535 | if (typeString == "B2a" || typeString == "B05" || typeString == "C05") { return B05; } |
| 29 |
7/8✓ Branch 1 taken 353982 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 353982 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 15903 times.
✓ Branch 8 taken 338079 times.
✓ Branch 9 taken 15913 times.
✓ Branch 10 taken 338079 times.
|
353992 | if (typeString == "B2b" || typeString == "B07" || typeString == "C07") { return B07; } |
| 30 |
6/6✓ Branch 1 taken 338069 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 13857 times.
✓ Branch 5 taken 324212 times.
✓ Branch 6 taken 13867 times.
✓ Branch 7 taken 324212 times.
|
338079 | if (typeString == "E1" || typeString == "E01") { return E01; } |
| 31 |
6/6✓ Branch 1 taken 324202 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 13485 times.
✓ Branch 5 taken 310717 times.
✓ Branch 6 taken 13495 times.
✓ Branch 7 taken 310717 times.
|
324212 | if (typeString == "E5a" || typeString == "E05") { return E05; } |
| 32 |
6/6✓ Branch 1 taken 310707 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 12369 times.
✓ Branch 5 taken 298338 times.
✓ Branch 6 taken 12379 times.
✓ Branch 7 taken 298338 times.
|
310717 | if (typeString == "E6" || typeString == "E06") { return E06; } |
| 33 |
6/6✓ Branch 1 taken 298328 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 12834 times.
✓ Branch 5 taken 285494 times.
✓ Branch 6 taken 12844 times.
✓ Branch 7 taken 285494 times.
|
298338 | if (typeString == "E5b" || typeString == "E07") { return E07; } |
| 34 |
6/6✓ Branch 1 taken 285484 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 12090 times.
✓ Branch 5 taken 273394 times.
✓ Branch 6 taken 12100 times.
✓ Branch 7 taken 273394 times.
|
285494 | if (typeString == "E5" || typeString == "E08") { return E08; } |
| 35 |
6/6✓ Branch 1 taken 273384 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 51708 times.
✓ Branch 5 taken 221676 times.
✓ Branch 6 taken 51718 times.
✓ Branch 7 taken 221676 times.
|
273394 | if (typeString == "L1" || typeString == "G01") { return G01; } |
| 36 |
6/6✓ Branch 1 taken 221666 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 50871 times.
✓ Branch 5 taken 170795 times.
✓ Branch 6 taken 50881 times.
✓ Branch 7 taken 170795 times.
|
221676 | if (typeString == "L2" || typeString == "G02") { return G02; } |
| 37 |
6/6✓ Branch 1 taken 170785 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 11160 times.
✓ Branch 5 taken 159625 times.
✓ Branch 6 taken 11170 times.
✓ Branch 7 taken 159625 times.
|
170795 | if (typeString == "L5" || typeString == "G05") { return G05; } |
| 38 |
6/6✓ Branch 1 taken 159615 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 9393 times.
✓ Branch 5 taken 150222 times.
✓ Branch 6 taken 9403 times.
✓ Branch 7 taken 150222 times.
|
159625 | if (typeString == "I5" || typeString == "I05") { return I05; } |
| 39 |
6/6✓ Branch 1 taken 150212 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 837 times.
✓ Branch 5 taken 149375 times.
✓ Branch 6 taken 847 times.
✓ Branch 7 taken 149375 times.
|
150222 | if (typeString == "IS" || typeString == "I09") { return I09; } |
| 40 |
6/6✓ Branch 1 taken 149365 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 11067 times.
✓ Branch 5 taken 138298 times.
✓ Branch 6 taken 11077 times.
✓ Branch 7 taken 138298 times.
|
149375 | if (typeString == "Q1" || typeString == "J01") { return J01; } |
| 41 |
6/6✓ Branch 1 taken 138288 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 11067 times.
✓ Branch 5 taken 127221 times.
✓ Branch 6 taken 11077 times.
✓ Branch 7 taken 127221 times.
|
138298 | if (typeString == "Q2" || typeString == "J02") { return J02; } |
| 42 |
6/6✓ Branch 1 taken 127211 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 10695 times.
✓ Branch 5 taken 116516 times.
✓ Branch 6 taken 10705 times.
✓ Branch 7 taken 116516 times.
|
127221 | if (typeString == "Q5" || typeString == "J05") { return J05; } |
| 43 |
7/8✓ Branch 1 taken 116506 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 116506 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8835 times.
✓ Branch 8 taken 107671 times.
✓ Branch 9 taken 8845 times.
✓ Branch 10 taken 107671 times.
|
116516 | if (typeString == "Q6" || typeString == "QLEX" || typeString == "J06") { return J06; } |
| 44 |
6/6✓ Branch 1 taken 107661 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 38874 times.
✓ Branch 5 taken 68787 times.
✓ Branch 6 taken 38884 times.
✓ Branch 7 taken 68787 times.
|
107671 | if (typeString == "G1" || typeString == "R01") { return R01; } |
| 45 |
6/6✓ Branch 1 taken 68777 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 38688 times.
✓ Branch 5 taken 30089 times.
✓ Branch 6 taken 38698 times.
✓ Branch 7 taken 30089 times.
|
68787 | if (typeString == "G2" || typeString == "R02") { return R02; } |
| 46 |
6/6✓ Branch 1 taken 30079 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 558 times.
✓ Branch 5 taken 29521 times.
✓ Branch 6 taken 568 times.
✓ Branch 7 taken 29521 times.
|
30089 | if (typeString == "G3" || typeString == "R03") { return R03; } |
| 47 |
6/6✓ Branch 1 taken 29511 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 4371 times.
✓ Branch 5 taken 25140 times.
✓ Branch 6 taken 4381 times.
✓ Branch 7 taken 25140 times.
|
29521 | if (typeString == "G1a" || typeString == "R04") { return R04; } |
| 48 |
6/6✓ Branch 1 taken 25130 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 4371 times.
✓ Branch 5 taken 20759 times.
✓ Branch 6 taken 4381 times.
✓ Branch 7 taken 20759 times.
|
25140 | if (typeString == "G2a" || typeString == "R06") { return R06; } |
| 49 |
6/6✓ Branch 1 taken 20749 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 10509 times.
✓ Branch 5 taken 10240 times.
✓ Branch 6 taken 10519 times.
✓ Branch 7 taken 10240 times.
|
20759 | if (typeString == "S1" || typeString == "S01") { return S01; } |
| 50 |
4/6✓ Branch 1 taken 10230 times.
✓ Branch 2 taken 10 times.
✓ Branch 4 taken 10230 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 10240 times.
✗ Branch 7 not taken.
|
10240 | 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 | 227619 | Frequency::operator std::string() const | |
| 121 | { | ||
| 122 |
1/2✓ Branch 1 taken 227626 times.
✗ Branch 2 not taken.
|
227619 | const std::string filler = " | "; |
| 123 | 227626 | std::string str; | |
| 124 |
2/2✓ Branch 1 taken 59054 times.
✓ Branch 2 taken 168572 times.
|
227626 | if (value & G01) |
| 125 | { | ||
| 126 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 59054 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 59055 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 59051 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 59054 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 59053 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
177161 | str += (!str.empty() ? filler : "") + "L1"; |
| 127 | } | ||
| 128 |
2/2✓ Branch 1 taken 40357 times.
✓ Branch 2 taken 187271 times.
|
227625 | if (value & G02) |
| 129 | { | ||
| 130 |
8/14✓ Branch 1 taken 29241 times.
✓ Branch 2 taken 11115 times.
✓ Branch 4 taken 29242 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 11114 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 40355 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 40356 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 11115 times.
✓ Branch 18 taken 29242 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
62587 | str += (!str.empty() ? filler : "") + "L2"; |
| 131 | } | ||
| 132 |
2/2✓ Branch 1 taken 28091 times.
✓ Branch 2 taken 199531 times.
|
227628 | if (value & G05) |
| 133 | { | ||
| 134 |
8/14✓ Branch 1 taken 17166 times.
✓ Branch 2 taken 10925 times.
✓ Branch 4 taken 17166 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10925 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 28091 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 28091 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 10925 times.
✓ Branch 18 taken 17166 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
49941 | str += (!str.empty() ? filler : "") + "L5"; |
| 135 | } | ||
| 136 |
2/2✓ Branch 1 taken 49894 times.
✓ Branch 2 taken 177731 times.
|
227622 | if (value & E01) |
| 137 | { | ||
| 138 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 49892 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 49894 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 49894 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 49894 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 49894 times.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
149680 | str += (!str.empty() ? filler : "") + "E1"; |
| 139 | } | ||
| 140 |
2/2✓ Branch 1 taken 27327 times.
✓ Branch 2 taken 200300 times.
|
227625 | if (value & E05) |
| 141 | { | ||
| 142 |
8/14✓ Branch 1 taken 16376 times.
✓ Branch 2 taken 10951 times.
✓ Branch 4 taken 16376 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10951 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 27327 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 27327 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 10951 times.
✓ Branch 18 taken 16376 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
49229 | str += (!str.empty() ? filler : "") + "E5a"; |
| 143 | } | ||
| 144 |
2/2✓ Branch 1 taken 89 times.
✓ Branch 2 taken 227536 times.
|
227627 | 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 39962 times.
✓ Branch 2 taken 187663 times.
|
227625 | if (value & E07) |
| 149 | { | ||
| 150 |
8/14✓ Branch 1 taken 28956 times.
✓ Branch 2 taken 11006 times.
✓ Branch 4 taken 28956 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 11006 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 39962 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 39962 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 11006 times.
✓ Branch 18 taken 28956 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
61974 | str += (!str.empty() ? filler : "") + "E5b"; |
| 151 | } | ||
| 152 |
2/2✓ Branch 1 taken 12627 times.
✓ Branch 2 taken 214998 times.
|
227625 | if (value & E08) |
| 153 | { | ||
| 154 |
8/14✓ Branch 1 taken 1716 times.
✓ Branch 2 taken 10911 times.
✓ Branch 4 taken 1716 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10911 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 12627 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 12627 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 10911 times.
✓ Branch 18 taken 1716 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
34449 | str += (!str.empty() ? filler : "") + "E5"; |
| 155 | } | ||
| 156 |
2/2✓ Branch 1 taken 34244 times.
✓ Branch 2 taken 193382 times.
|
227625 | 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 34244 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 34244 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 34244 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 30747 times.
✓ Branch 2 taken 196878 times.
|
227626 | 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 962 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.
|
32669 | str += (!str.empty() ? filler : "") + "G2"; |
| 163 | } | ||
| 164 |
2/2✓ Branch 1 taken 89 times.
✓ Branch 2 taken 227531 times.
|
227626 | 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 227559 times.
|
227620 | 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 227601 times.
|
227620 | 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 224766 times.
|
227622 | 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 227621 times.
|
227625 | 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 226584 times.
|
227622 | 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 25259 times.
✓ Branch 2 taken 202366 times.
|
227625 | if (value & B02) |
| 189 | { | ||
| 190 |
8/14✓ Branch 1 taken 3116 times.
✓ Branch 2 taken 22142 times.
✓ Branch 4 taken 3116 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 22143 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 25259 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 25258 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 22142 times.
✓ Branch 18 taken 3116 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
69543 | str += (!str.empty() ? filler : "") + "B1-2"; |
| 191 | } | ||
| 192 |
2/2✓ Branch 1 taken 2859 times.
✓ Branch 2 taken 224765 times.
|
227624 | 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 224342 times.
|
227624 | 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 157 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 973 times.
✓ Branch 2 taken 226653 times.
|
227623 | if (value & J01) |
| 201 | { | ||
| 202 |
5/14✗ Branch 1 not taken.
✓ Branch 2 taken 973 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 7 taken 972 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 973 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.
|
2919 | str += (!str.empty() ? filler : "") + "Q1"; |
| 203 | } | ||
| 204 |
2/2✓ Branch 1 taken 429 times.
✓ Branch 2 taken 227195 times.
|
227626 | 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 226742 times.
|
227624 | 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 227603 times.
|
227623 | 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 227194 times.
|
227624 | 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 227622 times.
|
227625 | 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 226472 times.
|
227624 | 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 226511 times.
|
227623 | 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 227624 times.
✗ Branch 2 not taken.
|
227626 | if (!str.empty()) |
| 234 | { | ||
| 235 | 227624 | return str; | |
| 236 | } | ||
| 237 | ✗ | return "None"; | |
| 238 | 227618 | } | |
| 239 | |||
| 240 | 12258409 | SatelliteSystem Frequency::GetSatelliteSystemForFrequency(Frequency freq) | |
| 241 | { | ||
| 242 | 12258409 | SatelliteSystem retVal = SatSys_None; | |
| 243 |
3/4✓ Branch 1 taken 12258303 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 85757248 times.
✓ Branch 9 taken 12236482 times.
|
97998506 | for (auto satSys : SatelliteSystem::GetAll()) |
| 244 | { | ||
| 245 |
2/2✓ Branch 1 taken 12259933 times.
✓ Branch 2 taken 73480448 times.
|
85757673 | if (freq & satSys) { retVal |= satSys; } |
| 246 | 12236482 | } | |
| 247 | 12256991 | return retVal; | |
| 248 | } | ||
| 249 | |||
| 250 | 2068384 | double Frequency::GetFrequency(Frequency freq, int8_t num) | |
| 251 | { | ||
| 252 |
10/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 490921 times.
✓ Branch 8 taken 181001 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 180170 times.
✓ Branch 11 taken 179416 times.
✓ Branch 12 taken 556419 times.
✓ Branch 13 taken 307674 times.
✓ Branch 14 taken 172080 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.
|
2068384 | 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 | 490921 | case E01: // Galileo, "E1" (1575.42 MHz) | |
| 267 | 490921 | return 1575.42e6; | |
| 268 | 181001 | case E05: // Galileo E5a (1176.45 MHz) | |
| 269 | 181001 | return 1176.45e6; | |
| 270 | ✗ | case E06: // Galileo E6 (1278.75 MHz) | |
| 271 | ✗ | return 1278.75e6; | |
| 272 | 180170 | case E07: // Galileo E5b (1207.14 MHz) | |
| 273 | 180170 | return 1207.14e6; | |
| 274 | 179416 | case E08: // Galileo E5 (E5a + E5b) (1191.795 MHz) | |
| 275 | 179416 | return 1191.795e6; | |
| 276 | 556419 | case G01: // GPS L1 (1575.42 MHz) | |
| 277 | 556419 | return 1575.42e6; | |
| 278 | 307674 | case G02: // GPS L2 (1227.6 MHz) | |
| 279 | 307674 | return 1227.6e6; | |
| 280 | 172080 | case G05: // GPS L5 (1176.45 MHz) | |
| 281 | 172080 | 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 | 104891 | Frequency Frequency::GetL1(Frequency freq) | |
| 318 | { | ||
| 319 |
2/9✗ Branch 1 not taken.
✓ Branch 2 taken 36304 times.
✓ Branch 3 taken 68587 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.
|
104891 | 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 | 36304 | 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 | 36304 | return E01; | |
| 334 | 68587 | case G01: // GPS L1 (1575.42 MHz) | |
| 335 | case G02: // GPS L2 (1227.6 MHz) | ||
| 336 | case G05: // GPS L5 (1176.45 MHz) | ||
| 337 | 68587 | 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 | 11800 | std::vector<Frequency> Frequency::ToVector(Frequency freq) | |
| 466 | { | ||
| 467 | 11800 | std::vector<Frequency> v; | |
| 468 |
2/2✓ Branch 0 taken 318600 times.
✓ Branch 1 taken 11800 times.
|
330400 | for (const Frequency& f : GetAll()) |
| 469 | { | ||
| 470 |
3/4✓ Branch 1 taken 29604 times.
✓ Branch 2 taken 288996 times.
✓ Branch 4 taken 29604 times.
✗ Branch 5 not taken.
|
318600 | if (f.value & freq.value) { v.push_back(f); } |
| 471 | } | ||
| 472 | 11800 | return v; | |
| 473 | ✗ | } | |
| 474 | |||
| 475 | 11800 | std::vector<Frequency> Frequency::toVector() const | |
| 476 | { | ||
| 477 |
1/2✓ Branch 2 taken 11800 times.
✗ Branch 3 not taken.
|
11800 | return ToVector(value); |
| 478 | } | ||
| 479 | |||
| 480 | ✗ | bool Frequency::IsFirstFrequency(const Frequency& freq, const Frequency& filter) | |
| 481 | { | ||
| 482 | ✗ | return freq.isFirstFrequency(filter); | |
| 483 | } | ||
| 484 | |||
| 485 | 12106 | bool Frequency::isFirstFrequency(const Frequency& filter) const | |
| 486 | { | ||
| 487 |
1/2✓ Branch 1 taken 12106 times.
✗ Branch 2 not taken.
|
12106 | Frequency_ f = filter & getSatSys(); |
| 488 | 12106 | f = Frequency_(f ^ value); | |
| 489 | |||
| 490 |
2/2✓ Branch 0 taken 306 times.
✓ Branch 1 taken 11800 times.
|
12106 | if (f == Freq_None) { return true; } |
| 491 | |||
| 492 |
1/2✓ Branch 2 taken 11800 times.
✗ Branch 3 not taken.
|
11800 | auto frequencies = Frequency(f).toVector(); |
| 493 |
1/2✓ Branch 1 taken 11800 times.
✗ Branch 2 not taken.
|
11800 | return std::ranges::all_of(frequencies, |
| 494 | 28534 | [&](const Frequency& freq) { return value < Frequency_(freq); }); | |
| 495 | 11800 | } | |
| 496 | |||
| 497 | ✗ | void to_json(json& j, const Frequency& data) | |
| 498 | { | ||
| 499 | ✗ | j = std::string(data); | |
| 500 | ✗ | } | |
| 501 | 270 | void from_json(const json& j, Frequency& data) | |
| 502 | { | ||
| 503 |
2/4✓ Branch 1 taken 270 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 270 times.
✗ Branch 5 not taken.
|
270 | data = Frequency::fromString(j.get<std::string>()); |
| 504 | 270 | } | |
| 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 < static_cast<uint64_t>(0xFF) << (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 = (static_cast<uint64_t>(1) << (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 |