One Motor 0.5.1
RoboMaster全平台一站式电机驱动库
|
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 | |
CanDriver & | operator= (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
库来实现。 此类不可拷贝或赋值。
using OneMotor::Can::CanDriver::CallbackFunc = std::function<void(CanFrame&&)> |
CAN帧接收回调函数的类型定义。
CanFrame&& | 接收到的CAN帧 (右值引用)。 |
using OneMotor::Can::CanDriver::Result = std::expected<void, std::string> |
操作结果的类型定义。
std::expected<void, std::string>
: 如果操作成功,包含 void
;如果失败,包含一个描述错误的字符串。
|
explicit |
CanDriver 的构造函数。
interface_name | CAN接口的名称 (例如 "can0")。 |
CanDriver::Result OneMotor::Can::CanDriver::close | ( | ) |
关闭CAN接口。
CanDriver::Result OneMotor::Can::CanDriver::open | ( | ) |
打开CAN接口。
CanDriver::Result OneMotor::Can::CanDriver::registerCallback | ( | const std::set< size_t > & | can_ids, |
const CallbackFunc & | func ) |
CanDriver::Result OneMotor::Can::CanDriver::send | ( | const CanFrame & | frame | ) |