One Motor 0.5.1
RoboMaster全平台一站式电机驱动库
|
M3508电机的抽象基类,提供通用接口和基础功能。 更多...
#include <M3508Base.hpp>
Public 成员函数 | |
virtual | ~M3508Base () |
虚析构函数。 | |
M3508Status | getStatus () noexcept |
获取电机当前的状态。 | |
Result | disable () noexcept |
禁用电机。 | |
Result | enable () noexcept |
启用电机。 | |
Result | shutdown () noexcept |
关闭电机。 | |
Protected 成员函数 | |
M3508Base (Can::CanDriver &driver) | |
基类构造函数。 | |
virtual void | disabled_func_ (Can::CanFrame &&frame)=0 |
纯虚函数,由派生类实现在“禁用”状态下的CAN帧处理逻辑。 | |
virtual void | enabled_func_ (Can::CanFrame &&frame)=0 |
纯虚函数,由派生类实现在“启用”状态下的CAN帧处理逻辑。 | |
静态 Protected 成员函数 | |
static void | shutdown_func_ (Can::CanFrame &&frame) |
“关闭”状态下的回调函数,不做任何事情。 | |
Protected 属性 | |
Can::CanDriver & | driver_ |
CAN总线驱动的引用 | |
Util::SpinLock | status_lock_ |
用于保护状态访问的自旋锁 | |
M3508Status | status_ |
电机的状态信息 | |
静态 Protected 属性 | |
static constexpr uint16_t | canId_ = id + 0x200 |
电机的CAN ID (标准ID范围 0x201-0x208) | |
M3508电机的抽象基类,提供通用接口和基础功能。
id | 电机的ID (1-8)。这决定了它在CAN总线上的地址以及在MotorManager中的位置。 |
此基类处理与 MotorManager
的交互(注册/注销), 并定义了启用(enable)、禁用(disable)、关闭(shutdown)电机和获取状态的公共接口。 具体的控制逻辑(例如,在启用状态下如何处理CAN反馈)由派生类通过重写纯虚函数 enabled_func_
和 disabled_func_
来实现。
|
virtual |
虚析构函数。
确保在对象销毁时,能正确地从MotorManager中注销电机。
|
explicitprotected |
基类构造函数。
driver | 电机连接的CAN总线驱动实例。 |
在构造时会自动向MotorManager注册该电机。
|
noexcept |
禁用电机。
电机将停止主动控制,但仍会接收和更新状态。控制器输出将被忽略。
|
protectedpure virtual |
纯虚函数,由派生类实现在“禁用”状态下的CAN帧处理逻辑。
frame | 接收到的CAN帧。 |
|
noexcept |
启用电机。
电机将根据设定的模式和目标值开始主动控制。
|
protectedpure virtual |
纯虚函数,由派生类实现在“启用”状态下的CAN帧处理逻辑。
frame | 接收到的CAN帧。 |
|
noexcept |
|
noexcept |
关闭电机。
电机将完全停止响应,不进行任何处理。
|
inlinestaticprotected |
“关闭”状态下的回调函数,不做任何事情。
frame | 接收到的CAN帧 (未使用)。 |