|
One Motor 0.6.0
RoboMaster全平台一站式电机驱动库
|
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 | |
| CanDriver & | operator= (const CanDriver &)=delete |
| tl::expected< bool, Error > | is_open () |
| tl::expected< void, Error > | open () |
| 打开CAN接口。 | |
| tl::expected< void, Error > | close () |
| 关闭CAN接口。 | |
| tl::expected< void, Error > | send (const CanFrame &frame) |
| 发送一帧CAN数据。 | |
| tl::expected< void, Error > | registerCallback (const std::set< size_t > &can_ids, const CallbackFunc &func) |
| 注册一个回调函数,用于处理特定CAN ID的数据帧。 | |
CAN总线驱动类,封装了底层CAN接口的打开、关闭、发送和接收回调注册等操作。
此类旨在提供一个与平台无关的CAN驱动层。 目前,在Linux平台下,它内部使用 HyCAN 库来实现。 此类不可拷贝或赋值。
| using OneMotor::Can::CanDriver::CallbackFunc = std::function<void(CanFrame&&)> |
CAN帧接收回调函数的类型定义。
| CanFrame&& | 接收到的CAN帧 (右值引用)。 |
|
explicit |
CanDriver 的构造函数。
| device | Zephyr CAN接口设备。 |
| tl::expected< void, Error > OneMotor::Can::CanDriver::close | ( | ) |
关闭CAN接口。
| tl::expected< void, Error > OneMotor::Can::CanDriver::open | ( | ) |
打开CAN接口。
| 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帧时要调用的回调函数。 |
发送一帧CAN数据。
| frame | 要发送的CanFrame对象。 |