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

同步模式串行接口通信库 更多...

#include <rmvl/io/serial.hpp>

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

Public 成员函数

 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 成员函数

long int fdwrite (const void *data, size_t len)
 写入数据(基于文件描述符)
long int fdread (void *data, size_t len)
 读取数据(基于文件描述符)

Protected 属性

FileDescriptor _fd {INVALID_FD}
 文件描述符(文件句柄)
bool _is_open {}
 串口打开标志位
std::string _device
 设备名
BaudRate _baud_rate
 波特率
SerialReadMode _read_mode
 同步读取模式

详细描述

同步模式串行接口通信库

构造及析构函数说明

◆ SerialPort()

rm::SerialPort::SerialPort ( std::string_view device,
BaudRate baud_rate,
SerialReadMode read_mode = {} )
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

不带头尾标志的数据读取,从串口读取字符串

参数
[out]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

不带头尾标志的数据读取,从串口读取数据到聚合体中

模板参数
Tp读取到聚合体的类型
参数
[out]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

从串口读取数据到聚合体中

注解
每次读取后会清空缓冲区
模板参数
Tp读取到聚合体的类型
参数
[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

数据写入串口

注解
每次写入前会清空缓冲区
模板参数
Tp写入聚合体的类型
参数
[in]data要写入的聚合体
返回
是否写入成功
函数调用图:

◆ write() [2/2]

bool rm::SerialPort::write ( std::string_view data)
inline
Python:
rm.SerialPort.write(data) -> res

写入字符串到串口

参数
[in]data待写入的字符串
返回
是否写入成功
函数调用图:

类成员变量说明

◆ _baud_rate

BaudRate rm::SerialPort::_baud_rate
protected

波特率

◆ _device

std::string rm::SerialPort::_device
protected

设备名

◆ _fd

FileDescriptor rm::SerialPort::_fd {INVALID_FD}
protected

文件描述符(文件句柄)

◆ _is_open

bool rm::SerialPort::_is_open {}
protected

串口打开标志位

◆ _read_mode

SerialReadMode rm::SerialPort::_read_mode
protected

同步读取模式


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