INSTINCT Code Coverage Report


Directory: src/
File: Nodes/DataProvider/Protocol/UartSensor.cpp
Date: 2025-02-07 16:54:41
Exec Total Coverage
Lines: 8 61 13.1%
Functions: 1 4 25.0%
Branches: 3 36 8.3%

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 "UartSensor.hpp"
10
11 #include "util/Logger.hpp"
12
13 [[nodiscard]] json NAV::UartSensor::save() const
14 {
15 LOG_TRACE("called");
16
17 json j;
18
19 j["sensorPort"] = _sensorPort;
20 j["sensorBaudrate"] = static_cast<size_t>(sensorBaudrate());
21
22 return j;
23 }
24
25 void NAV::UartSensor::restore(json const& j)
26 {
27 LOG_TRACE("called");
28
29 if (j.contains("sensorPort"))
30 {
31 j.at("sensorPort").get_to(_sensorPort);
32 }
33 if (j.contains("sensorBaudrate"))
34 {
35 size_t baudrate = 0;
36 j.at("sensorBaudrate").get_to(baudrate);
37 _selectedBaudrate = baudrate2Selection(static_cast<Baudrate>(baudrate));
38 }
39 }
40
41 NAV::UartSensor::Baudrate NAV::UartSensor::sensorBaudrate() const
42 {
43 switch (_selectedBaudrate)
44 {
45 case 0:
46 return BAUDRATE_FASTEST;
47 break;
48 case 1:
49 return BAUDRATE_9600;
50 break;
51 case 2:
52 return BAUDRATE_19200;
53 break;
54 case 3:
55 return BAUDRATE_38400;
56 break;
57 case 4:
58 return BAUDRATE_57600;
59 break;
60 case 5:
61 return BAUDRATE_115200;
62 break;
63 case 6:
64 return BAUDRATE_128000;
65 break;
66 case 7:
67 return BAUDRATE_230400;
68 break;
69 case 8:
70 return BAUDRATE_460800;
71 break;
72 case 9:
73 return BAUDRATE_921600;
74 break;
75
76 default:
77 return BAUDRATE_FASTEST;
78 }
79 }
80
81 448 int NAV::UartSensor::baudrate2Selection(Baudrate baud)
82 {
83
3/11
✗ Branch 0 not taken.
✓ Branch 1 taken 224 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 112 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 112 times.
✗ Branch 10 not taken.
448 switch (baud)
84 {
85 case BAUDRATE_FASTEST:
86 return 0;
87 224 case BAUDRATE_9600:
88 224 return 1;
89 case BAUDRATE_19200:
90 return 2;
91 case BAUDRATE_38400:
92 return 3;
93 case BAUDRATE_57600:
94 return 4;
95 112 case BAUDRATE_115200:
96 112 return 5;
97 case BAUDRATE_128000:
98 return 6;
99 case BAUDRATE_230400:
100 return 7;
101 case BAUDRATE_460800:
102 return 8;
103 112 case BAUDRATE_921600:
104 112 return 9;
105 }
106 return 0;
107 }
108