Common
common packages for kyubic
 
Loading...
Searching...
No Matches
serial.hpp
Go to the documentation of this file.
1
10#ifndef _SERIAL_HPP
11#define _SERIAL_HPP
12
13#include <termios.h>
14
15#include <chrono>
16#include <string>
17
22namespace serial
23{
24
28class Serial
29{
30public:
37 explicit Serial(const char * portname, const int baudrate);
38
42 ~Serial();
43
51 void write(const uint8_t * buffer, const size_t len);
52
59 ssize_t read(uint8_t * buf, const size_t len);
60
70 ssize_t read(
71 uint8_t * buf, const size_t len,
72 const std::chrono::duration<long, std::ratio<1, 1000>> timeout);
73
84 ssize_t read_until(
85 uint8_t * buf, const size_t len, const char end_char,
86 std::chrono::duration<long, std::ratio<1, 1000>> timeout);
87
94 void setConfig(const int _baudrate);
95
101 void setTermios();
102
108 void getTermios();
109
113 void flush();
114
115 int fd;
116
117private:
118 struct termios tty;
119};
120
124class SerialException : public std::exception
125{
126public:
131 explicit SerialException(const std::string & msg) : _msg(msg) {}
132
137 const char * what() const noexcept { return _msg.c_str(); }
138
139private:
141 std::string _msg;
142};
143
144} // namespace serial
145
146#endif
exception for serial class
Definition: serial.hpp:125
const char * what() const noexcept
return error messages
Definition: serial.hpp:137
SerialException(const std::string &msg)
generate of exception instance containing error messages
Definition: serial.hpp:131
serial communication class
Definition: serial.hpp:29
~Serial()
port closing
Definition: serial.cpp:37
int fd
Definition: serial.hpp:115
void getTermios()
get termios settings
Definition: serial.cpp:111
void flush()
flush buffer
Definition: serial.cpp:209
void setTermios()
set termios settings
Definition: serial.cpp:119
ssize_t read(uint8_t *buf, const size_t len)
read data via serial communication
Definition: serial.cpp:136
void write(const uint8_t *buffer, const size_t len)
write data via serial communication
Definition: serial.cpp:127
void setConfig(const int _baudrate)
configure serial communication settings
Definition: serial.cpp:39
ssize_t read_until(uint8_t *buf, const size_t len, const char end_char, std::chrono::duration< long, std::ratio< 1, 1000 > > timeout)
read data until a terminating character is received, with timeout
Definition: serial.cpp:176
For serial communication.