One Motor 0.5.1
RoboMaster全平台一站式电机驱动库
载入中...
搜索中...
未找到
CanDriver.hpp
浏览该文件的文档.
1
7#ifndef CANDRIVER_HPP
8#define CANDRIVER_HPP
9
10#include <string>
11#include <functional>
12#include <set>
13#include <expected>
14#include "CanFrame.hpp"
15
16#ifdef ONE_MOTOR_LINUX
17#include <HyCAN/Interface/Interface.hpp>
18#endif
19
20
21namespace OneMotor::Can
22{
32 {
33 public:
38 using CallbackFunc = std::function<void(CanFrame&&)>;
39
45 using Result = std::expected<void, std::string>;
46
51 explicit CanDriver(std::string interface_name);
52
57
58 CanDriver(const CanDriver&) = delete;
59 CanDriver& operator=(const CanDriver&) = delete;
60
65 Result open();
66
71 Result close();
72
78 Result send(const CanFrame& frame);
79
86 Result registerCallback(const std::set<size_t>& can_ids, const CallbackFunc& func);
87
88 private:
89 std::string interface_name;
90#ifdef ONE_MOTOR_LINUX
91 HyCAN::Interface interface;
92#endif
93 };
94}
95
96
97#endif //CANDRIVER_HPP
定义了与平台无关的CAN帧结构体。
Result close()
关闭CAN接口。
定义 L_CanDriver.cpp:20
~CanDriver()
CanDriver 的析构函数。
Result open()
打开CAN接口。
定义 L_CanDriver.cpp:15
std::function< void(CanFrame &&)> CallbackFunc
CAN帧接收回调函数的类型定义。
定义 CanDriver.hpp:38
std::expected< void, std::string > Result
操作结果的类型定义。
定义 CanDriver.hpp:45
Result send(const CanFrame &frame)
发送一帧CAN数据。
定义 L_CanDriver.cpp:25
Result registerCallback(const std::set< size_t > &can_ids, const CallbackFunc &func)
注册一个回调函数,用于处理特定CAN ID的数据帧。
定义 L_CanDriver.cpp:30
CanDriver(std::string interface_name)
CanDriver 的构造函数。
定义 L_CanDriver.cpp:8
一个与平台无关的CAN帧结构体。
定义 CanFrame.hpp:35