INSTINCT Code Coverage Report


Directory: src/
File: util/Vendor/VectorNav/VectorNavTypes.cpp
Date: 2025-11-25 23:34:18
Exec Total Coverage
Lines: 35 747 4.7%
Functions: 3 4 75.0%
Branches: 14 980 1.4%

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 "VectorNavTypes.hpp"
10 #include "Navigation/GNSS/Core/SatelliteSystem.hpp"
11 #include "util/Logger.hpp"
12
13 204 NAV::SatelliteSystem NAV::vendor::vectornav::toSatelliteSystem(NAV::vendor::vectornav::SatSys sys)
14 {
15 204 SatelliteSystem satSys = SatSys_None;
16
3/8
✓ Branch 0 taken 130 times.
✓ Branch 1 taken 34 times.
✓ Branch 2 taken 40 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
204 switch (sys)
17 {
18 130 case vendor::vectornav::SatSys::GPS:
19 130 satSys = GPS;
20 130 break;
21 34 case vendor::vectornav::SatSys::SBAS:
22 34 satSys = SBAS;
23 34 break;
24 40 case vendor::vectornav::SatSys::Galileo:
25 40 satSys = GAL;
26 40 break;
27 ✗ case vendor::vectornav::SatSys::BeiDou:
28 ✗ satSys = BDS;
29 ✗ break;
30 ✗ case vendor::vectornav::SatSys::IMES:
31 LOG_TRACE("VectorNav SatInfoElement satellite system '{}' is not supported yet. Skipping measurement.", sys);
32 ✗ break;
33 ✗ case vendor::vectornav::SatSys::QZSS:
34 ✗ satSys = QZSS;
35 ✗ break;
36 ✗ case vendor::vectornav::SatSys::GLONASS:
37 ✗ satSys = GLO;
38 ✗ break;
39 ✗ default: // IRNSS not in vectorNav
40 LOG_TRACE("VectorNav SatInfoElement satellite system '{}' is not supported yet. Skipping measurement.", sys);
41 ✗ break;
42 }
43 204 return satSys;
44 }
45
46 204 NAV::vendor::vectornav::SatSys NAV::vendor::vectornav::fromSatelliteSystem(NAV::SatelliteSystem sys)
47 {
48
3/8
✓ Branch 1 taken 130 times.
✓ Branch 2 taken 40 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 34 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
204 switch (sys.toEnumeration())
49 {
50 130 case SatelliteSystem::Enum_GPS:
51 130 return vendor::vectornav::SatSys::GPS;
52 40 case SatelliteSystem::Enum_GAL:
53 40 return vendor::vectornav::SatSys::Galileo;
54 ✗ case SatelliteSystem::Enum_GLO:
55 ✗ return vendor::vectornav::SatSys::GLONASS;
56 ✗ case SatelliteSystem::Enum_BDS:
57 ✗ return vendor::vectornav::SatSys::BeiDou;
58 ✗ case SatelliteSystem::Enum_QZSS:
59 ✗ return vendor::vectornav::SatSys::QZSS;
60 34 case SatelliteSystem::Enum_SBAS:
61 34 return vendor::vectornav::SatSys::SBAS;
62 ✗ case SatelliteSystem::Enum_IRNSS:
63 case SatelliteSystem::Enum_COUNT:
64 case SatelliteSystem::Enum_None:
65 LOG_TRACE("'{}' is not supported in the VectorNav satellite systems. Defaulting to GPS.", sys);
66 ✗ return vendor::vectornav::SatSys::GPS;
67 }
68 ✗ return vendor::vectornav::SatSys::GPS;
69 }
70
71 85 [[nodiscard]] NAV::Code NAV::vendor::vectornav::RawMeas::SatRawElement::toCode() const
72 {
73
2/8
✓ Branch 0 taken 66 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 19 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
85 switch (sys)
74 {
75 66 case SatSys::GPS:
76
1/6
✗ Branch 0 not taken.
✓ Branch 1 taken 66 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
66 switch (freq)
77 {
78 ✗ case Freq::RxChannel:
79 ✗ return Code::None;
80 66 case Freq::L1:
81
1/16
✗ Branch 0 not taken.
✓ Branch 1 taken 66 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
66 switch (chan)
82 {
83 ✗ case Chan::P_Code:
84 ✗ return Code::G1P;
85 66 case Chan::CA_Code:
86
1/2
✓ Branch 1 taken 66 times.
✗ Branch 2 not taken.
66 return Code::G1C;
87 ✗ case Chan::SemiCodeless:
88 ✗ return Code::G1W;
89 ✗ case Chan::Y_Code:
90 ✗ return Code::G1Y;
91 ✗ case Chan::M_Code:
92 ✗ return Code::G1M;
93 ✗ case Chan::Codeless:
94 ✗ return Code::G1N;
95 ✗ case Chan::A_Chan:
96 ✗ return Code::None;
97 ✗ case Chan::B_Chan:
98 ✗ return Code::None;
99 ✗ case Chan::I_Chan:
100 ✗ return Code::None;
101 ✗ case Chan::Q_Chan:
102 ✗ return Code::None;
103 ✗ case Chan::M_Chan:
104 ✗ return Code::G1M;
105 ✗ case Chan::L_Chan:
106 ✗ return Code::G1L;
107 ✗ case Chan::BC_Chan:
108 ✗ return Code::G1X;
109 ✗ case Chan::Z_Tracking:
110 ✗ return Code::G1W;
111 ✗ case Chan::ABC:
112 ✗ return Code::None;
113 }
114 ✗ break;
115 ✗ case Freq::L2:
116 ✗ switch (chan)
117 {
118 ✗ case Chan::P_Code:
119 ✗ return Code::G2P;
120 ✗ case Chan::CA_Code:
121 ✗ return Code::G2C;
122 ✗ case Chan::SemiCodeless:
123 ✗ return Code::G2D;
124 ✗ case Chan::Y_Code:
125 ✗ return Code::G2Y;
126 ✗ case Chan::M_Code:
127 ✗ return Code::G2M;
128 ✗ case Chan::Codeless:
129 ✗ return Code::G2N;
130 ✗ case Chan::A_Chan:
131 ✗ return Code::None;
132 ✗ case Chan::B_Chan:
133 ✗ return Code::None;
134 ✗ case Chan::I_Chan:
135 ✗ return Code::None;
136 ✗ case Chan::Q_Chan:
137 ✗ return Code::None;
138 ✗ case Chan::M_Chan:
139 ✗ return Code::G2M;
140 ✗ case Chan::L_Chan:
141 ✗ return Code::G2L;
142 ✗ case Chan::BC_Chan:
143 ✗ return Code::G2X;
144 ✗ case Chan::Z_Tracking:
145 ✗ return Code::G2W;
146 ✗ case Chan::ABC:
147 ✗ return Code::None;
148 }
149 ✗ break;
150 ✗ case Freq::L5:
151 ✗ switch (chan)
152 {
153 ✗ case Chan::P_Code:
154 ✗ return Code::None;
155 ✗ case Chan::CA_Code:
156 ✗ return Code::None;
157 ✗ case Chan::SemiCodeless:
158 ✗ return Code::None;
159 ✗ case Chan::Y_Code:
160 ✗ return Code::None;
161 ✗ case Chan::M_Code:
162 ✗ return Code::None;
163 ✗ case Chan::Codeless:
164 ✗ return Code::None;
165 ✗ case Chan::A_Chan:
166 ✗ return Code::None;
167 ✗ case Chan::B_Chan:
168 ✗ return Code::None;
169 ✗ case Chan::I_Chan:
170 ✗ return Code::G5I;
171 ✗ case Chan::Q_Chan:
172 ✗ return Code::G5Q;
173 ✗ case Chan::M_Chan:
174 ✗ return Code::None;
175 ✗ case Chan::L_Chan:
176 ✗ return Code::None;
177 ✗ case Chan::BC_Chan:
178 ✗ return Code::G5X;
179 ✗ case Chan::Z_Tracking:
180 ✗ return Code::None;
181 ✗ case Chan::ABC:
182 ✗ return Code::None;
183 }
184 ✗ break;
185 ✗ case Freq::E6:
186 case Freq::E5b:
187 case Freq::E5a:
188 ✗ return Code::None;
189 } // GPS-freq
190 ✗ break;
191 ✗ case SatSys::SBAS:
192 ✗ switch (freq)
193 {
194 ✗ case Freq::RxChannel:
195 ✗ return Code::None;
196 ✗ case Freq::L1:
197 ✗ switch (chan)
198 {
199 ✗ case Chan::P_Code:
200 ✗ return Code::None;
201 ✗ case Chan::CA_Code:
202 ✗ return Code::S1C;
203 ✗ case Chan::SemiCodeless:
204 ✗ return Code::None;
205 ✗ case Chan::Y_Code:
206 ✗ return Code::None;
207 ✗ case Chan::M_Code:
208 ✗ return Code::None;
209 ✗ case Chan::Codeless:
210 ✗ return Code::None;
211 ✗ case Chan::A_Chan:
212 ✗ return Code::None;
213 ✗ case Chan::B_Chan:
214 ✗ return Code::None;
215 ✗ case Chan::I_Chan:
216 ✗ return Code::None;
217 ✗ case Chan::Q_Chan:
218 ✗ return Code::None;
219 ✗ case Chan::M_Chan:
220 ✗ return Code::None;
221 ✗ case Chan::L_Chan:
222 ✗ return Code::None;
223 ✗ case Chan::BC_Chan:
224 ✗ return Code::None;
225 ✗ case Chan::Z_Tracking:
226 ✗ return Code::None;
227 ✗ case Chan::ABC:
228 ✗ return Code::None;
229 }
230 ✗ break;
231 ✗ case Freq::L2:
232 ✗ return Code::None;
233 ✗ case Freq::L5:
234 ✗ switch (chan)
235 {
236 ✗ case Chan::P_Code:
237 ✗ return Code::None;
238 ✗ case Chan::CA_Code:
239 ✗ return Code::None;
240 ✗ case Chan::SemiCodeless:
241 ✗ return Code::None;
242 ✗ case Chan::Y_Code:
243 ✗ return Code::None;
244 ✗ case Chan::M_Code:
245 ✗ return Code::None;
246 ✗ case Chan::Codeless:
247 ✗ return Code::None;
248 ✗ case Chan::A_Chan:
249 ✗ return Code::None;
250 ✗ case Chan::B_Chan:
251 ✗ return Code::None;
252 ✗ case Chan::I_Chan:
253 ✗ return Code::S5I;
254 ✗ case Chan::Q_Chan:
255 ✗ return Code::S5Q;
256 ✗ case Chan::M_Chan:
257 ✗ return Code::None;
258 ✗ case Chan::L_Chan:
259 ✗ return Code::None;
260 ✗ case Chan::BC_Chan:
261 ✗ return Code::None;
262 ✗ case Chan::Z_Tracking:
263 ✗ return Code::None;
264 ✗ case Chan::ABC:
265 ✗ return Code::None;
266 }
267 ✗ break;
268 ✗ case Freq::E6:
269 case Freq::E5b:
270 case Freq::E5a:
271 ✗ return Code::None;
272 } // SBAS-freq
273 ✗ break;
274 19 case SatSys::Galileo:
275
1/8
✗ Branch 0 not taken.
✓ Branch 1 taken 19 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
19 switch (freq)
276 {
277 ✗ case Freq::RxChannel:
278 ✗ return Code::None;
279 19 case Freq::L1:
280
1/16
✗ Branch 0 not taken.
✓ Branch 1 taken 19 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
19 switch (chan)
281 {
282 ✗ case Chan::P_Code:
283 ✗ return Code::None;
284 19 case Chan::CA_Code:
285
1/2
✓ Branch 1 taken 19 times.
✗ Branch 2 not taken.
19 return Code::E1C;
286 ✗ case Chan::SemiCodeless:
287 ✗ return Code::None;
288 ✗ case Chan::Y_Code:
289 ✗ return Code::None;
290 ✗ case Chan::M_Code:
291 ✗ return Code::None;
292 ✗ case Chan::Codeless:
293 ✗ return Code::None;
294 ✗ case Chan::A_Chan:
295 ✗ return Code::E1A;
296 ✗ case Chan::B_Chan:
297 ✗ return Code::E1B;
298 ✗ case Chan::I_Chan:
299 ✗ return Code::None;
300 ✗ case Chan::Q_Chan:
301 ✗ return Code::None;
302 ✗ case Chan::M_Chan:
303 ✗ return Code::None;
304 ✗ case Chan::L_Chan:
305 ✗ return Code::None;
306 ✗ case Chan::BC_Chan:
307 ✗ return Code::E1X;
308 ✗ case Chan::Z_Tracking:
309 ✗ return Code::E1Z;
310 ✗ case Chan::ABC:
311 ✗ return Code::None;
312 }
313 ✗ break;
314 ✗ case Freq::L2:
315 ✗ return Code::None;
316 ✗ case Freq::L5:
317 ✗ switch (chan)
318 {
319 ✗ case Chan::P_Code:
320 ✗ return Code::None;
321 ✗ case Chan::CA_Code:
322 ✗ return Code::None;
323 ✗ case Chan::SemiCodeless:
324 ✗ return Code::None;
325 ✗ case Chan::Y_Code:
326 ✗ return Code::None;
327 ✗ case Chan::M_Code:
328 ✗ return Code::None;
329 ✗ case Chan::Codeless:
330 ✗ return Code::None;
331 ✗ case Chan::A_Chan:
332 ✗ return Code::None;
333 ✗ case Chan::B_Chan:
334 ✗ return Code::None;
335 ✗ case Chan::I_Chan:
336 ✗ return Code::E5I;
337 ✗ case Chan::Q_Chan:
338 ✗ return Code::E5Q;
339 ✗ case Chan::M_Chan:
340 ✗ return Code::None;
341 ✗ case Chan::L_Chan:
342 ✗ return Code::None;
343 ✗ case Chan::BC_Chan:
344 ✗ return Code::E5X;
345 ✗ case Chan::Z_Tracking:
346 ✗ return Code::None;
347 ✗ case Chan::ABC:
348 ✗ return Code::None;
349 }
350 ✗ break;
351 ✗ case Freq::E6:
352 ✗ switch (chan)
353 {
354 ✗ case Chan::P_Code:
355 ✗ return Code::None;
356 ✗ case Chan::CA_Code:
357 ✗ return Code::E6C;
358 ✗ case Chan::SemiCodeless:
359 ✗ return Code::None;
360 ✗ case Chan::Y_Code:
361 ✗ return Code::None;
362 ✗ case Chan::M_Code:
363 ✗ return Code::None;
364 ✗ case Chan::Codeless:
365 ✗ return Code::None;
366 ✗ case Chan::A_Chan:
367 ✗ return Code::E6A;
368 ✗ case Chan::B_Chan:
369 ✗ return Code::E6B;
370 ✗ case Chan::I_Chan:
371 ✗ return Code::None;
372 ✗ case Chan::Q_Chan:
373 ✗ return Code::None;
374 ✗ case Chan::M_Chan:
375 ✗ return Code::None;
376 ✗ case Chan::L_Chan:
377 ✗ return Code::None;
378 ✗ case Chan::BC_Chan:
379 ✗ return Code::E6X;
380 ✗ case Chan::Z_Tracking:
381 ✗ return Code::None;
382 ✗ case Chan::ABC:
383 ✗ return Code::E6Z;
384 }
385 ✗ break;
386 ✗ case Freq::E5b:
387 ✗ switch (chan)
388 {
389 ✗ case Chan::P_Code:
390 ✗ return Code::None;
391 ✗ case Chan::CA_Code:
392 ✗ return Code::None;
393 ✗ case Chan::SemiCodeless:
394 ✗ return Code::None;
395 ✗ case Chan::Y_Code:
396 ✗ return Code::None;
397 ✗ case Chan::M_Code:
398 ✗ return Code::None;
399 ✗ case Chan::Codeless:
400 ✗ return Code::None;
401 ✗ case Chan::A_Chan:
402 ✗ return Code::None;
403 ✗ case Chan::B_Chan:
404 ✗ return Code::None;
405 ✗ case Chan::I_Chan:
406 ✗ return Code::E7I;
407 ✗ case Chan::Q_Chan:
408 ✗ return Code::E7Q;
409 ✗ case Chan::M_Chan:
410 ✗ return Code::None;
411 ✗ case Chan::L_Chan:
412 ✗ return Code::None;
413 ✗ case Chan::BC_Chan:
414 ✗ return Code::E7X;
415 ✗ case Chan::Z_Tracking:
416 ✗ return Code::None;
417 ✗ case Chan::ABC:
418 ✗ return Code::None;
419 }
420 ✗ break;
421 ✗ case Freq::E5a:
422 ✗ switch (chan)
423 {
424 ✗ case Chan::P_Code:
425 ✗ return Code::None;
426 ✗ case Chan::CA_Code:
427 ✗ return Code::None;
428 ✗ case Chan::SemiCodeless:
429 ✗ return Code::None;
430 ✗ case Chan::Y_Code:
431 ✗ return Code::None;
432 ✗ case Chan::M_Code:
433 ✗ return Code::None;
434 ✗ case Chan::Codeless:
435 ✗ return Code::None;
436 ✗ case Chan::A_Chan:
437 ✗ return Code::None;
438 ✗ case Chan::B_Chan:
439 ✗ return Code::None;
440 ✗ case Chan::I_Chan:
441 ✗ return Code::E8I;
442 ✗ case Chan::Q_Chan:
443 ✗ return Code::E8Q;
444 ✗ case Chan::M_Chan:
445 ✗ return Code::None;
446 ✗ case Chan::L_Chan:
447 ✗ return Code::None;
448 ✗ case Chan::BC_Chan:
449 ✗ return Code::E8X;
450 ✗ case Chan::Z_Tracking:
451 ✗ return Code::None;
452 ✗ case Chan::ABC:
453 ✗ return Code::None;
454 }
455 ✗ break;
456 } // GAL-freq
457 ✗ break;
458 ✗ case SatSys::BeiDou:
459 ✗ switch (freq)
460 {
461 ✗ case Freq::RxChannel:
462 ✗ return Code::None;
463 ✗ case Freq::L1:
464 ✗ switch (chan)
465 {
466 ✗ case Chan::P_Code:
467 ✗ return Code::B1P;
468 ✗ case Chan::CA_Code:
469 ✗ return Code::None;
470 ✗ case Chan::SemiCodeless:
471 ✗ return Code::None;
472 ✗ case Chan::Y_Code:
473 ✗ return Code::None;
474 ✗ case Chan::M_Code:
475 ✗ return Code::None;
476 ✗ case Chan::Codeless:
477 ✗ return Code::None;
478 ✗ case Chan::A_Chan:
479 ✗ return Code::None;
480 ✗ case Chan::B_Chan:
481 ✗ return Code::None;
482 ✗ case Chan::I_Chan:
483 ✗ return Code::None;
484 ✗ case Chan::Q_Chan:
485 ✗ return Code::None;
486 ✗ case Chan::M_Chan:
487 ✗ return Code::None;
488 ✗ case Chan::L_Chan:
489 ✗ return Code::None;
490 ✗ case Chan::BC_Chan:
491 ✗ return Code::None;
492 ✗ case Chan::Z_Tracking:
493 ✗ return Code::None;
494 ✗ case Chan::ABC:
495 ✗ return Code::None;
496 }
497 ✗ break;
498 ✗ case Freq::L2:
499 ✗ return Code::None;
500 ✗ case Freq::L5:
501 ✗ return Code::None;
502 ✗ case Freq::E6:
503 ✗ switch (chan)
504 {
505 ✗ case Chan::P_Code:
506 ✗ return Code::None;
507 ✗ case Chan::CA_Code:
508 ✗ return Code::None;
509 ✗ case Chan::SemiCodeless:
510 ✗ return Code::None;
511 ✗ case Chan::Y_Code:
512 ✗ return Code::None;
513 ✗ case Chan::M_Code:
514 ✗ return Code::None;
515 ✗ case Chan::Codeless:
516 ✗ return Code::None;
517 ✗ case Chan::A_Chan:
518 ✗ return Code::B6A;
519 ✗ case Chan::B_Chan:
520 ✗ return Code::None;
521 ✗ case Chan::I_Chan:
522 ✗ return Code::B6I;
523 ✗ case Chan::Q_Chan:
524 ✗ return Code::B6Q;
525 ✗ case Chan::M_Chan:
526 ✗ return Code::None;
527 ✗ case Chan::L_Chan:
528 ✗ return Code::None;
529 ✗ case Chan::BC_Chan:
530 ✗ return Code::B6X;
531 ✗ case Chan::Z_Tracking:
532 ✗ return Code::None;
533 ✗ case Chan::ABC:
534 ✗ return Code::None;
535 }
536 ✗ break;
537 ✗ case Freq::E5b:
538 ✗ switch (chan)
539 {
540 ✗ case Chan::P_Code:
541 ✗ return Code::B8P;
542 ✗ case Chan::CA_Code:
543 ✗ return Code::None;
544 ✗ case Chan::SemiCodeless:
545 ✗ return Code::None;
546 ✗ case Chan::Y_Code:
547 ✗ return Code::None;
548 ✗ case Chan::M_Code:
549 ✗ return Code::None;
550 ✗ case Chan::Codeless:
551 ✗ return Code::None;
552 ✗ case Chan::A_Chan:
553 ✗ return Code::None;
554 ✗ case Chan::B_Chan:
555 ✗ return Code::None;
556 ✗ case Chan::I_Chan:
557 ✗ return Code::None;
558 ✗ case Chan::Q_Chan:
559 ✗ return Code::None;
560 ✗ case Chan::M_Chan:
561 ✗ return Code::None;
562 ✗ case Chan::L_Chan:
563 ✗ return Code::None;
564 ✗ case Chan::BC_Chan:
565 ✗ return Code::B8X;
566 ✗ case Chan::Z_Tracking:
567 ✗ return Code::None;
568 ✗ case Chan::ABC:
569 ✗ return Code::None;
570 }
571 ✗ break;
572 ✗ case Freq::E5a:
573 ✗ return Code::None;
574 } // BDS-freq
575 ✗ break;
576 ✗ case SatSys::IMES:
577 ✗ return Code::None;
578 ✗ case SatSys::QZSS:
579 ✗ switch (freq)
580 {
581 ✗ case Freq::RxChannel:
582 ✗ return Code::None;
583 ✗ case Freq::L1:
584 ✗ switch (chan)
585 {
586 ✗ case Chan::P_Code:
587 ✗ return Code::None;
588 ✗ case Chan::CA_Code:
589 ✗ return Code::J1C;
590 ✗ case Chan::SemiCodeless:
591 ✗ return Code::None;
592 ✗ case Chan::Y_Code:
593 ✗ return Code::None;
594 ✗ case Chan::M_Code:
595 ✗ return Code::None;
596 ✗ case Chan::Codeless:
597 ✗ return Code::None;
598 ✗ case Chan::A_Chan:
599 ✗ return Code::None;
600 ✗ case Chan::B_Chan:
601 ✗ return Code::None;
602 ✗ case Chan::I_Chan:
603 ✗ return Code::None;
604 ✗ case Chan::Q_Chan:
605 ✗ return Code::None;
606 ✗ case Chan::M_Chan:
607 ✗ return Code::None;
608 ✗ case Chan::L_Chan:
609 ✗ return Code::J1L;
610 ✗ case Chan::BC_Chan:
611 ✗ return Code::J1X;
612 ✗ case Chan::Z_Tracking:
613 ✗ return Code::J1Z;
614 ✗ case Chan::ABC:
615 ✗ return Code::None;
616 }
617 ✗ break;
618 ✗ case Freq::L2:
619 ✗ switch (chan)
620 {
621 ✗ case Chan::P_Code:
622 ✗ return Code::None;
623 ✗ case Chan::CA_Code:
624 ✗ return Code::None;
625 ✗ case Chan::SemiCodeless:
626 ✗ return Code::None;
627 ✗ case Chan::Y_Code:
628 ✗ return Code::None;
629 ✗ case Chan::M_Code:
630 ✗ return Code::None;
631 ✗ case Chan::Codeless:
632 ✗ return Code::None;
633 ✗ case Chan::A_Chan:
634 ✗ return Code::None;
635 ✗ case Chan::B_Chan:
636 ✗ return Code::None;
637 ✗ case Chan::I_Chan:
638 ✗ return Code::None;
639 ✗ case Chan::Q_Chan:
640 ✗ return Code::None;
641 ✗ case Chan::M_Chan:
642 ✗ return Code::None;
643 ✗ case Chan::L_Chan:
644 ✗ return Code::J2L;
645 ✗ case Chan::BC_Chan:
646 ✗ return Code::J2X;
647 ✗ case Chan::Z_Tracking:
648 ✗ return Code::None;
649 ✗ case Chan::ABC:
650 ✗ return Code::None;
651 }
652 ✗ break;
653 ✗ case Freq::L5:
654 ✗ switch (chan)
655 {
656 ✗ case Chan::P_Code:
657 ✗ return Code::None;
658 ✗ case Chan::CA_Code:
659 ✗ return Code::None;
660 ✗ case Chan::SemiCodeless:
661 ✗ return Code::None;
662 ✗ case Chan::Y_Code:
663 ✗ return Code::None;
664 ✗ case Chan::M_Code:
665 ✗ return Code::None;
666 ✗ case Chan::Codeless:
667 ✗ return Code::None;
668 ✗ case Chan::A_Chan:
669 ✗ return Code::None;
670 ✗ case Chan::B_Chan:
671 ✗ return Code::None;
672 ✗ case Chan::I_Chan:
673 ✗ return Code::J5I;
674 ✗ case Chan::Q_Chan:
675 ✗ return Code::J5Q;
676 ✗ case Chan::M_Chan:
677 ✗ return Code::None;
678 ✗ case Chan::L_Chan:
679 ✗ return Code::None;
680 ✗ case Chan::BC_Chan:
681 ✗ return Code::J5X;
682 ✗ case Chan::Z_Tracking:
683 ✗ return Code::None;
684 ✗ case Chan::ABC:
685 ✗ return Code::None;
686 }
687 ✗ break;
688 ✗ case Freq::E6:
689 ✗ switch (chan)
690 {
691 ✗ case Chan::P_Code:
692 ✗ return Code::None;
693 ✗ case Chan::CA_Code:
694 ✗ return Code::None;
695 ✗ case Chan::SemiCodeless:
696 ✗ return Code::None;
697 ✗ case Chan::Y_Code:
698 ✗ return Code::None;
699 ✗ case Chan::M_Code:
700 ✗ return Code::None;
701 ✗ case Chan::Codeless:
702 ✗ return Code::None;
703 ✗ case Chan::A_Chan:
704 ✗ return Code::None;
705 ✗ case Chan::B_Chan:
706 ✗ return Code::None;
707 ✗ case Chan::I_Chan:
708 ✗ return Code::None;
709 ✗ case Chan::Q_Chan:
710 ✗ return Code::None;
711 ✗ case Chan::M_Chan:
712 ✗ return Code::None;
713 ✗ case Chan::L_Chan:
714 ✗ return Code::J6L;
715 ✗ case Chan::BC_Chan:
716 ✗ return Code::J6X;
717 ✗ case Chan::Z_Tracking:
718 ✗ return Code::None;
719 ✗ case Chan::ABC:
720 ✗ return Code::None;
721 }
722 ✗ break;
723 ✗ case Freq::E5b:
724 case Freq::E5a:
725 ✗ return Code::None;
726 } // QZSS-freq
727 ✗ break;
728 ✗ case SatSys::GLONASS:
729 ✗ switch (freq)
730 {
731 ✗ case Freq::RxChannel:
732 ✗ return Code::None;
733 ✗ case Freq::L1:
734 ✗ switch (chan)
735 {
736 ✗ case Chan::P_Code:
737 ✗ return Code::R1P;
738 ✗ case Chan::CA_Code:
739 ✗ return Code::R1C;
740 ✗ case Chan::SemiCodeless:
741 ✗ return Code::None;
742 ✗ case Chan::Y_Code:
743 ✗ return Code::None;
744 ✗ case Chan::M_Code:
745 ✗ return Code::None;
746 ✗ case Chan::Codeless:
747 ✗ return Code::None;
748 ✗ case Chan::A_Chan:
749 ✗ return Code::None;
750 ✗ case Chan::B_Chan:
751 ✗ return Code::None;
752 ✗ case Chan::I_Chan:
753 ✗ return Code::None;
754 ✗ case Chan::Q_Chan:
755 ✗ return Code::None;
756 ✗ case Chan::M_Chan:
757 ✗ return Code::None;
758 ✗ case Chan::L_Chan:
759 ✗ return Code::None;
760 ✗ case Chan::BC_Chan:
761 ✗ return Code::None;
762 ✗ case Chan::Z_Tracking:
763 ✗ return Code::None;
764 ✗ case Chan::ABC:
765 ✗ return Code::None;
766 }
767 ✗ break;
768 ✗ case Freq::L2:
769 ✗ switch (chan)
770 {
771 ✗ case Chan::P_Code:
772 ✗ return Code::R2P;
773 ✗ case Chan::CA_Code:
774 ✗ return Code::R2C;
775 ✗ case Chan::SemiCodeless:
776 ✗ return Code::None;
777 ✗ case Chan::Y_Code:
778 ✗ return Code::None;
779 ✗ case Chan::M_Code:
780 ✗ return Code::None;
781 ✗ case Chan::Codeless:
782 ✗ return Code::None;
783 ✗ case Chan::A_Chan:
784 ✗ return Code::None;
785 ✗ case Chan::B_Chan:
786 ✗ return Code::None;
787 ✗ case Chan::I_Chan:
788 ✗ return Code::None;
789 ✗ case Chan::Q_Chan:
790 ✗ return Code::None;
791 ✗ case Chan::M_Chan:
792 ✗ return Code::None;
793 ✗ case Chan::L_Chan:
794 ✗ return Code::None;
795 ✗ case Chan::BC_Chan:
796 ✗ return Code::None;
797 ✗ case Chan::Z_Tracking:
798 ✗ return Code::None;
799 ✗ case Chan::ABC:
800 ✗ return Code::None;
801 }
802 ✗ break;
803 ✗ case Freq::L5:
804 case Freq::E6:
805 case Freq::E5b:
806 case Freq::E5a:
807 ✗ return Code::None;
808 } // GLO-freq
809 ✗ break;
810 }
811 ✗ return Code::None;
812 }
813
814 ✗ std::ostream& NAV::vendor::vectornav::operator<<(std::ostream& os, const NAV::vendor::vectornav::SatSys& satSys)
815 {
816 ✗ switch (satSys)
817 {
818 ✗ case SatSys::GPS:
819 ✗ os << "GPS";
820 ✗ break;
821 ✗ case SatSys::SBAS:
822 ✗ os << "SBAS";
823 ✗ break;
824 ✗ case SatSys::Galileo:
825 ✗ os << "Galileo";
826 ✗ break;
827 ✗ case SatSys::BeiDou:
828 ✗ os << "BeiDou";
829 ✗ break;
830 ✗ case SatSys::IMES:
831 ✗ os << "IMES";
832 ✗ break;
833 ✗ case SatSys::QZSS:
834 ✗ os << "QZSS";
835 ✗ break;
836 ✗ case SatSys::GLONASS:
837 ✗ os << "GLONASS";
838 ✗ break;
839 }
840 ✗ return os;
841 }
842