1 #ifndef __IO__SERIAL__HPP__
2 #define __IO__SERIAL__HPP__
5 #include <marnav/io/device.hpp>
11 /// This class is an abstraction for termios based serial
14 /// Since this is termios based, it is platform dependent.
15 class serial
: public device
32 enum class databits
{ bit_5
, bit_6
, bit_7
, bit_8
};
34 enum class stopbits
{ bit_1
, bit_2
};
36 enum class parity
{ none
, even
, odd
, mark
};
41 serial(const std::string
& dev
, baud b
, databits d
, stopbits s
, parity p
);
42 serial(const serial
&) = delete;
43 serial(serial
&&) noexcept
= default;
44 serial
& operator=(const serial
&) noexcept
= delete;
45 serial
& operator=(serial
&&) = default;
47 virtual void open() override
;
48 virtual void close() override
;
49 virtual int read(char * buffer
, uint32_t size
) override
;
50 virtual int write(const char * buffer
, uint32_t size
) override
;
53 int fd
; ///< File descriptor for serial device communication.