One Motor 0.5.1
RoboMaster全平台一站式电机驱动库
载入中...
搜索中...
未找到
OneMotor::Can::CanDriver类 参考

CAN总线驱动类,封装了底层CAN接口的打开、关闭、发送和接收回调注册等操作。 更多...

#include <CanDriver.hpp>

Public 类型

using CallbackFunc = std::function<void(CanFrame&&)>
 CAN帧接收回调函数的类型定义。
 
using Result = std::expected<void, std::string>
 操作结果的类型定义。
 

Public 成员函数

 CanDriver (std::string interface_name)
 CanDriver 的构造函数。
 
 ~CanDriver ()
 CanDriver 的析构函数。
 
 CanDriver (const CanDriver &)=delete
 
CanDriveroperator= (const CanDriver &)=delete
 
Result open ()
 打开CAN接口。
 
Result close ()
 关闭CAN接口。
 
Result send (const CanFrame &frame)
 发送一帧CAN数据。
 
Result registerCallback (const std::set< size_t > &can_ids, const CallbackFunc &func)
 注册一个回调函数,用于处理特定CAN ID的数据帧。
 

详细描述

CAN总线驱动类,封装了底层CAN接口的打开、关闭、发送和接收回调注册等操作。

此类旨在提供一个与平台无关的CAN驱动层。 目前,在Linux平台下,它内部使用 HyCAN 库来实现。 此类不可拷贝或赋值。

成员类型定义说明

◆ CallbackFunc

using OneMotor::Can::CanDriver::CallbackFunc = std::function<void(CanFrame&&)>

CAN帧接收回调函数的类型定义。

参数
CanFrame&&接收到的CAN帧 (右值引用)。

◆ Result

using OneMotor::Can::CanDriver::Result = std::expected<void, std::string>

操作结果的类型定义。

  • std::expected<void, std::string>: 如果操作成功,包含 void;如果失败,包含一个描述错误的字符串。

构造及析构函数说明

◆ CanDriver()

OneMotor::Can::CanDriver::CanDriver ( std::string interface_name)
explicit

CanDriver 的构造函数。

参数
interface_nameCAN接口的名称 (例如 "can0")。

成员函数说明

◆ close()

CanDriver::Result OneMotor::Can::CanDriver::close ( )

关闭CAN接口。

返回
Result 操作结果。

◆ open()

CanDriver::Result OneMotor::Can::CanDriver::open ( )

打开CAN接口。

返回
Result 操作结果。

◆ registerCallback()

CanDriver::Result OneMotor::Can::CanDriver::registerCallback ( const std::set< size_t > & can_ids,
const CallbackFunc & func )

注册一个回调函数,用于处理特定CAN ID的数据帧。

参数
can_ids一个包含需要监听的CAN ID的集合。
func当接收到指定ID的CAN帧时要调用的回调函数。
返回
Result 操作结果。

◆ send()

CanDriver::Result OneMotor::Can::CanDriver::send ( const CanFrame & frame)

发送一帧CAN数据。

参数
frame要发送的CanFrame对象。
返回
Result 操作结果。

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