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

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

#include <CanDriver.hpp>

Public 类型

using CallbackFunc = std::function<void(CanFrame&&)>
 CAN帧接收回调函数的类型定义。
 

Public 成员函数

 CanDriver (const device *device)
 CanDriver 的构造函数。
 
 ~CanDriver ()
 CanDriver 的析构函数。
 
 CanDriver (const CanDriver &)=delete
 
CanDriveroperator= (const CanDriver &)=delete
 
tl::expected< bool, Erroris_open ()
 
tl::expected< void, Erroropen ()
 打开CAN接口。
 
tl::expected< void, Errorclose ()
 关闭CAN接口。
 
tl::expected< void, Errorsend (const CanFrame &frame)
 发送一帧CAN数据。
 
tl::expected< void, ErrorregisterCallback (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帧 (右值引用)。

构造及析构函数说明

◆ CanDriver()

OneMotor::Can::CanDriver::CanDriver ( const device * device)
explicit

CanDriver 的构造函数。

参数
deviceZephyr CAN接口设备。

成员函数说明

◆ close()

tl::expected< void, Error > OneMotor::Can::CanDriver::close ( )

关闭CAN接口。

返回
操作结果。

◆ open()

tl::expected< void, Error > OneMotor::Can::CanDriver::open ( )

打开CAN接口。

返回
操作结果。

◆ registerCallback()

tl::expected< void, Error > OneMotor::Can::CanDriver::registerCallback ( const std::set< size_t > & can_ids,
const CallbackFunc & func )

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

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

◆ send()

tl::expected< void, Error > OneMotor::Can::CanDriver::send ( const CanFrame & frame)

发送一帧CAN数据。

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

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