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 |