Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
SerialPortSettings.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_MODEL_COMMS_SERIALPORTSETTINGS_HPP_
2#define IV_SRC_MODEL_COMMS_SERIALPORTSETTINGS_HPP_
3
4#include "core/types.hpp"
6
7#include <termios.h>
8
10{
11
12enum class eBaudRate : speed_t
13{
14 BR0 = B0,
15 BR50 = B50,
16 BR75 = B75,
17 BR110 = B110,
18 BR134 = B134,
19 BR150 = B150,
20 BR200 = B200,
21 BR300 = B300,
22 BR600 = B600,
23 BR1200 = B1200,
24 BR1800 = B1800,
25 BR2400 = B2400,
26 BR4800 = B4800,
27 BR9600 = B9600,
28 BR19200 = B19200,
29 BR38400 = B38400,
30 BR57600 = B57600,
31 BR115200 = B115200,
32 BR230400 = B230400,
33#ifdef __linux__
34 BR460800 = B460800,
35 BR500000 = B500000,
36 BR576000 = B576000,
37 BR921600 = B921600,
38 BR1000000 = B1000000,
39 BR1152000 = B1152000,
40 BR1500000 = B1500000,
41#if __MAX_BAUD > B2000000
42 BR2000000 = B2000000,
43 BR2500000 = B2500000,
44 BR3000000 = B3000000,
45 BR3500000 = B3500000,
46 BR4000000 = B4000000,
47#endif
48#endif
49 First = BR0,
50 Last = BR4000000
51};
52
53enum class eDataBits : tcflag_t
54{
55 DB5 = CS5,
56 DB6 = CS6,
57 DB7 = CS7,
58 DB8 = CS8,
59 First = DB5,
60 Last = DB8
61};
62
63enum class eParity : tcflag_t
64{
65 None = 0,
66 Odd = PARENB | PARODD,
67 Even = PARENB,
68 Mark = PARENB | PARODD | CMSPAR,
69 Space = PARENB | CMSPAR,
70 First = None,
71 Last = Even
72};
73
74enum class eStopBits : tcflag_t
75{
76 SB1 = 1,
77 SB2 = 2,
78 First = SB1,
79 Last = SB2
80};
81
82enum class eFlowControl : tcflag_t
83{
84 None = 0,
85 Hardware = 1,
86 Software = 2,
87 First = None,
89};
90
92{
94 PortSettings(std::string portName, iv::model::comms::serial::eBaudRate baudRate,
97 iv::types::pollTime pollTime);
99 PortSettings(PortSettings &&other) noexcept;
101
102 PortSettings &operator=(const PortSettings &other);
103 PortSettings &operator=(PortSettings &&other) noexcept;
104
105 bool load(const iv::file::xml::node &node);
106 bool save(iv::file::xml::node &node) const;
107
108 std::string _portName;
115
116 struct Keys
117 {
118 static constexpr std::string_view serialPortName {"PortName"};
119 static constexpr std::string_view serialBaudRate {"BaudRate"};
120 static constexpr std::string_view serialDataBits {"DataBits"};
121 static constexpr std::string_view serialParity {"Parity"};
122 static constexpr std::string_view serialStopBits {"StopBits"};
123 static constexpr std::string_view serialFlowControl {"FlowControl"};
124 static constexpr std::string_view serialPollTime {"PollTime"};
125 };
126
128 {
129 static constexpr std::string string {};
130 };
131};
132
133}// namespace iv::model::comms::serial
134
135#endif//IV_SRC_MODEL_COMMS_SERIALPORTSETTINGS_HPP_
Definition xmlFile.hpp:15
Definition SerialPortSettings.cpp:9
eFlowControl
Definition SerialPortSettings.hpp:83
eBaudRate
Definition SerialPortSettings.hpp:13
eParity
Definition SerialPortSettings.hpp:64
eStopBits
Definition SerialPortSettings.hpp:75
eDataBits
Definition SerialPortSettings.hpp:54
std::chrono::milliseconds pollTime
Definition types.hpp:44
Definition SerialPortSettings.hpp:128
Definition SerialPortSettings.hpp:117
static constexpr std::string_view serialStopBits
Definition SerialPortSettings.hpp:122
static constexpr std::string_view serialParity
Definition SerialPortSettings.hpp:121
static constexpr std::string_view serialPortName
Definition SerialPortSettings.hpp:118
static constexpr std::string_view serialPollTime
Definition SerialPortSettings.hpp:124
static constexpr std::string_view serialFlowControl
Definition SerialPortSettings.hpp:123
static constexpr std::string_view serialDataBits
Definition SerialPortSettings.hpp:120
static constexpr std::string_view serialBaudRate
Definition SerialPortSettings.hpp:119
Definition SerialPortSettings.hpp:92
iv::types::pollTime _pollTime
Definition SerialPortSettings.hpp:114
PortSettings()
Definition SerialPortSettings.cpp:10
iv::model::comms::serial::eDataBits _dataBits
Definition SerialPortSettings.hpp:110
bool save(iv::file::xml::node &node) const
Definition SerialPortSettings.cpp:97
PortSettings(const PortSettings &other)
std::string _portName
Definition SerialPortSettings.hpp:108
PortSettings & operator=(const PortSettings &other)
Definition SerialPortSettings.cpp:38
iv::model::comms::serial::eParity _parity
Definition SerialPortSettings.hpp:111
bool load(const iv::file::xml::node &node)
Definition SerialPortSettings.cpp:70
iv::model::comms::serial::eStopBits _stopBits
Definition SerialPortSettings.hpp:112
iv::model::comms::serial::eBaudRate _baudRate
Definition SerialPortSettings.hpp:109
iv::model::comms::serial::eFlowControl _flowControl
Definition SerialPortSettings.hpp:113