| RMVL 2.4.0 Robotic Manipulation and Vision Library

载入中...
搜索中...
未找到
类 | Public 成员函数 | 所有成员列表
rm::async::SerialPort类 参考
数据 IO 与通信模块 » 串口通信

异步串行接口通信库，仅支持读写字符串 更多...

`#include <rmvl/io/serial.hpp>`

类 rm::async::SerialPort 继承关系图:
rm::async::SerialPort 的协作图:

## 类
class | SerialReadAwaiter
| 串口读等待器 更多...
class | SerialWriteAwaiter
| 串口写等待器 更多...

## Public 成员函数
| SerialPort (IOContext &io_context, std::string_view device, BaudRate baud_rate)
| 构造新串口对象
SerialReadAwaiter | read ()
| 异步读取串口数据
template<typename Tp>
SerialPort & | operator>> (Tp &)=delete
SerialWriteAwaiter | write (std::string_view data)
| 异步写入串口数据
template<typename Tp>
SerialPort & | operator<< (const Tp &)=delete
Public 成员函数 继承自 rm::SerialPort
| 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
| 串口是否打开

## 额外继承的成员函数
Protected 成员函数 继承自 rm::SerialPort
long int | fdwrite (const void *data, size_t len)
| 写入数据（基于文件描述符）
long int | fdread (void *data, size_t len)
| 读取数据（基于文件描述符）
Protected 属性 继承自 rm::SerialPort
FileDescriptor | _fd {INVALID_FD}
| 文件描述符（文件句柄）
bool | _is_open {}
| 串口打开标志位
std::string | _device
| 设备名
BaudRate | _baud_rate
| 波特率
SerialReadMode | _read_mode
| 同步读取模式

## 详细描述

异步串行接口通信库，仅支持读写字符串

## 构造及析构函数说明

## ◆ SerialPort()

rm::async::SerialPort::SerialPort | ( | IOContext & | io_context,
|  | std::string_view | device,
|  | BaudRate | baud_rate )

构造新串口对象

参数

  [in] | io_context | 异步 I/O 执行上下文
  [in] | device | 设备名
  [in] | baud_rate | 波特率

函数调用图:

## 成员函数说明

## ◆ operator<<()

template<typename Tp>

SerialPort & rm::async::SerialPort::operator<< | ( | const Tp & |  | ) |
| delete

函数调用图:

## ◆ operator>>()

template<typename Tp>

SerialPort & rm::async::SerialPort::operator>> | ( | Tp & |  | ) |
| delete

函数调用图:

## ◆ read()

SerialReadAwaiter rm::async::SerialPort::read | ( |  | ) |
| inline

异步读取串口数据

// 使用示例
std::string str = co_await serial.read();
rm::str
定义 str.hpp:19

返回
  读取到的字符串数据

函数调用图:

## ◆ write()

SerialWriteAwaiter rm::async::SerialPort::write | ( | std::string_view | data | ) |
| inline

异步写入串口数据

参数

  [in] | data | 待写入的数据

返回
  是否写入成功
  // 使用示例
  bool success = co_await serial.write("12345");

函数调用图: