0.5.1
Loading...
Searching...
No Matches
UartSensor.cpp
Go to the documentation of this file.
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
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
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 case 10:
76 return BAUDRATE_2000000;
77 break;
78 default:
79 return BAUDRATE_FASTEST;
80 }
81}
82
84{
85 switch (baud)
86 {
88 return 0;
89 case BAUDRATE_9600:
90 return 1;
91 case BAUDRATE_19200:
92 return 2;
93 case BAUDRATE_38400:
94 return 3;
95 case BAUDRATE_57600:
96 return 4;
97 case BAUDRATE_115200:
98 return 5;
99 case BAUDRATE_128000:
100 return 6;
101 case BAUDRATE_230400:
102 return 7;
103 case BAUDRATE_460800:
104 return 8;
105 case BAUDRATE_921600:
106 return 9;
107 case BAUDRATE_2000000:
108 return 10;
109 }
110 return 0;
111}
nlohmann::json json
json namespace
Utility class for logging to console and file.
#define LOG_TRACE
Detailled info to trace the execution of the program. Should not be called on functions which receive...
Definition Logger.hpp:65
Abstract Uart Sensor Class.
static int baudrate2Selection(Baudrate baud)
Returns the guiSelection for the given baudrate.
int _selectedBaudrate
Baudrate for the sensor.
Baudrate
Available Baudrates.
@ BAUDRATE_115200
Baudrate with 115200 symbols per second [Baud].
@ BAUDRATE_57600
Baudrate with 57600 symbols per second [Baud].
@ BAUDRATE_230400
Baudrate with 230400 symbols per second [Baud].
@ BAUDRATE_FASTEST
Fastest possible Baudrate will be automatically chosen.
@ BAUDRATE_128000
Baudrate with 128000 symbols per second [Baud].
@ BAUDRATE_38400
Baudrate with 38400 symbols per second [Baud].
@ BAUDRATE_9600
Baudrate with 9600 symbols per second [Baud].
@ BAUDRATE_2000000
Baudrate with 2000000 symbols per second [Baud].
@ BAUDRATE_19200
Baudrate with 19200 symbols per second [Baud].
@ BAUDRATE_921600
Baudrate with 921600 symbols per second [Baud].
@ BAUDRATE_460800
Baudrate with 460800 symbols per second [Baud].
std::string _sensorPort
void restore(const json &j)
Restores the node from a json object.
Baudrate sensorBaudrate() const
Returns the Baudrate for the element Selected by the GUI.
json save() const
Saves the node into a json object.