Sane C++ Libraries
C++ Platform Abstraction Libraries
Loading...
Searching...
No Matches
SerialPort.h
1// Copyright (c) Stefano Cristiano
2// SPDX-License-Identifier: MIT
3#pragma once
4
5#include "../Foundation/Compiler.h"
6#ifndef SC_EXPORT_LIBRARY_SERIAL_PORT
7#define SC_EXPORT_LIBRARY_SERIAL_PORT 0
8#endif
9#define SC_SERIAL_PORT_EXPORT SC_COMPILER_LIBRARY_EXPORT(SC_EXPORT_LIBRARY_SERIAL_PORT)
10
11#include "../File/File.h"
12
13namespace SC
14{
15
18
21
23struct SC_SERIAL_PORT_EXPORT SerialSettings
24{
25 enum class DataBits : uint8_t
26 {
27 Bits5 = 5,
28 Bits6 = 6,
29 Bits7 = 7,
30 Bits8 = 8,
31 };
32
33 enum class Parity : uint8_t
34 {
35 None = 0,
36 Odd,
37 Even,
38 };
39
40 enum class StopBits : uint8_t
41 {
42 One = 1,
43 Two = 2,
44 };
45
46 enum class FlowControl : uint8_t
47 {
48 None = 0,
49 Software,
50 Hardware,
51 };
52
53 uint32_t baudRate = 9600;
54 DataBits dataBits = DataBits::Bits8;
55 Parity parity = Parity::None;
56 StopBits stopBits = StopBits::One;
57 FlowControl flowControl = FlowControl::None;
58};
59
61struct SC_SERIAL_PORT_EXPORT SerialOpenOptions
62{
63 bool blocking = true;
64 bool inheritable = false;
65 bool exclusive = false;
66
67 SerialSettings settings;
68};
69
72struct SC_SERIAL_PORT_EXPORT SerialDescriptor : public FileDescriptor
73{
79
84
89};
90
92} // namespace SC
unsigned char uint8_t
Platform independent (1) byte unsigned int.
Definition PrimitiveTypes.h:27
unsigned int uint32_t
Platform independent (4) bytes unsigned int.
Definition PrimitiveTypes.h:29
[UniqueHandleDeclaration2Snippet]
Definition File.h:128
An ascii string used as boolean result. SC_TRY macro forwards errors to caller.
Definition Result.h:13
Native serial port descriptor with configuration support.
Definition SerialPort.h:73
Result open(StringSpan path, const SerialOpenOptions &options=SerialOpenOptions())
Opens a serial port and applies the requested settings.
Result setSettings(const SerialSettings &settings)
Applies settings to an already opened serial descriptor.
Result getSettings(SerialSettings &settings) const
Reads current settings from an opened serial descriptor.
Open options for a serial descriptor.
Definition SerialPort.h:62
Serial port settings.
Definition SerialPort.h:24
An read-only view over a string (to avoid including Strings library when parsing is not needed).
Definition StringSpan.h:37