0.4.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
76 default:
77 return BAUDRATE_FASTEST;
78 }
79}
80
82{
83 switch (baud)
84 {
86 return 0;
87 case BAUDRATE_9600:
88 return 1;
89 case BAUDRATE_19200:
90 return 2;
91 case BAUDRATE_38400:
92 return 3;
93 case BAUDRATE_57600:
94 return 4;
95 case BAUDRATE_115200:
96 return 5;
97 case BAUDRATE_128000:
98 return 6;
99 case BAUDRATE_230400:
100 return 7;
101 case BAUDRATE_460800:
102 return 8;
103 case BAUDRATE_921600:
104 return 9;
105 }
106 return 0;
107}
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_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.