同步模式串行接口通信库
更多...
#include <rmvl/io/serial.hpp>
|
| | SerialPort (std::string_view device, BaudRate baud_rate, SerialReadMode read_mode={}) |
| | 构造新串口对象
|
| template<typename Tp, typename Enable = std::enable_if_t<std::is_aggregate_v<Tp>>> |
| bool | read (uint8_t head_flag, uint8_t tail_flag, Tp &data) |
| | 从串口读取数据到聚合体中
|
| template<typename Tp, typename Enable = std::enable_if_t<std::is_aggregate_v<Tp>>> |
| bool | read (Tp &data) |
| | 不带头尾标志的数据读取,从串口读取数据到聚合体中
|
| bool | read (std::string &data) |
| | 不带头尾标志的数据读取,从串口读取字符串
|
| template<typename Tp, typename Enable = std::enable_if_t<std::is_aggregate_v<Tp> || std::is_same_v<Tp, std::string>>> |
| SerialPort & | operator>> (Tp &data) |
| template<typename Tp, typename Enable = std::enable_if_t<std::is_aggregate_v<Tp>>> |
| bool | write (const Tp &data) |
| | 数据写入串口
|
| bool | write (std::string_view data) |
| | 写入字符串到串口
|
| template<typename Tp, typename Enable = std::enable_if_t<std::is_aggregate_v<Tp> || std::is_same_v<Tp, std::string_view>>> |
| SerialPort & | operator<< (const Tp &data) |
| bool | isOpened () const |
| | 串口是否打开
|
|
| long int | fdwrite (const void *data, size_t len) |
| | 写入数据(基于文件描述符)
|
| long int | fdread (void *data, size_t len) |
| | 读取数据(基于文件描述符)
|
◆ SerialPort()
| Python: |
|---|
| rm.SerialPort( | device, baud_rate[, read_mode] | ) -> | <SerialPort object> |
构造新串口对象
- 参数
-
| [in] | device | 设备名 |
| [in] | baud_rate | 波特率 |
| [in] | read_mode | 读取模式 |
◆ fdread()
| long int rm::SerialPort::fdread |
( |
void * | data, |
|
|
size_t | len ) |
|
protected |
◆ fdwrite()
| long int rm::SerialPort::fdwrite |
( |
const void * | data, |
|
|
size_t | len ) |
|
protected |
◆ isOpened()
| bool rm::SerialPort::isOpened |
( |
| ) |
const |
|
inline |
◆ operator<<()
template<typename Tp, typename Enable = std::enable_if_t<std::is_aggregate_v<Tp> || std::is_same_v<Tp, std::string_view>>>
| SerialPort & rm::SerialPort::operator<< |
( |
const Tp & | data | ) |
|
|
inline |
◆ operator>>()
template<typename Tp, typename Enable = std::enable_if_t<std::is_aggregate_v<Tp> || std::is_same_v<Tp, std::string>>>
| SerialPort & rm::SerialPort::operator>> |
( |
Tp & | data | ) |
|
|
inline |
◆ read() [1/3]
| bool rm::SerialPort::read |
( |
std::string & | data | ) |
|
| Python: |
|---|
| rm.SerialPort.read( | | ) -> | res, data |
不带头尾标志的数据读取,从串口读取字符串
- 参数
-
- 返回
- 是否读取成功
◆ read() [2/3]
template<typename Tp, typename Enable = std::enable_if_t<std::is_aggregate_v<Tp>>>
| bool rm::SerialPort::read |
( |
Tp & | data | ) |
|
|
inline |
| Python: |
|---|
| rm.SerialPort.read( | | ) -> | res, data |
不带头尾标志的数据读取,从串口读取数据到聚合体中
- 模板参数
-
- 参数
-
- 返回
- 是否读取成功
◆ read() [3/3]
template<typename Tp, typename Enable = std::enable_if_t<std::is_aggregate_v<Tp>>>
| bool rm::SerialPort::read |
( |
uint8_t | head_flag, |
|
|
uint8_t | tail_flag, |
|
|
Tp & | data ) |
|
inline |
| Python: |
|---|
| rm.SerialPort.read( | | ) -> | res, data |
从串口读取数据到聚合体中
- 注解
- 每次读取后会清空缓冲区
- 模板参数
-
- 参数
-
| [in] | head_flag | 头帧 |
| [in] | tail_flag | 尾帧 |
| [out] | data | 读取的聚合体数据 |
- 返回
- 是否读取成功
◆ write() [1/2]
template<typename Tp, typename Enable = std::enable_if_t<std::is_aggregate_v<Tp>>>
| bool rm::SerialPort::write |
( |
const Tp & | data | ) |
|
|
inline |
| Python: |
|---|
| rm.SerialPort.write( | data | ) -> | res |
数据写入串口
- 注解
- 每次写入前会清空缓冲区
- 模板参数
-
- 参数
-
- 返回
- 是否写入成功
◆ write() [2/2]
| bool rm::SerialPort::write |
( |
std::string_view | data | ) |
|
|
inline |
| Python: |
|---|
| rm.SerialPort.write( | data | ) -> | res |
◆ _baud_rate
◆ _device
| std::string rm::SerialPort::_device |
|
protected |
◆ _fd
◆ _is_open
| bool rm::SerialPort::_is_open {} |
|
protected |
◆ _read_mode
该类的文档由以下文件生成: