RMVL  2.4.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
rm::async::SerialPort类 参考

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

#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>
SerialPortoperator>> (Tp &)=delete
SerialWriteAwaiter write (std::string_view data)
 异步写入串口数据
template<typename Tp>
SerialPortoperator<< (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>>>
SerialPortoperator>> (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>>>
SerialPortoperator<< (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();
定义 str.hpp:19
返回
读取到的字符串数据
函数调用图:

◆ write()

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

异步写入串口数据

参数
[in]data待写入的数据
返回
是否写入成功
// 使用示例
bool success = co_await serial.write("12345");
函数调用图:

该类的文档由以下文件生成: