One Motor 0.5.1
RoboMaster全平台一站式电机驱动库
|
防止电机驱动器在运行结束时输出过高电流的保护类 更多...
#include <MotorGuard.hpp>
Public 类型 | |
using | ExitFrameData = std::optional<std::array<uint8_t, 16>> |
定义电机退出时发送的帧数据 | |
using | DriverPair = std::pair<std::string, ExitFrameData> |
定义驱动器名称和退出帧数据的配对 | |
Public 成员函数 | |
void | guard (const std::vector< DriverPair > &driver_set) |
启动对指定CAN总线的监控 | |
MotorGuard (MotorGuard &)=delete | |
MotorGuard & | operator= (const MotorGuard &)=delete |
静态 Public 成员函数 | |
static MotorGuard & | getInstance () |
获取MotorGuard的单例实例 | |
防止电机驱动器在运行结束时输出过高电流的保护类
MotorGuard实现了一种看门狗机制,用于监控CAN总线上的电机控制帧。 如果在指定时间内没有检测到ID为0x200的控制帧,它会触发一个熔断操作, 发送预设的CAN帧来将电机电流设置为安全值或零,从而防止电机失控。
using OneMotor::Motor::DJI::MotorGuard::ExitFrameData = std::optional<std::array<uint8_t, 16>> |
定义电机退出时发送的帧数据
这是一个16字节数组的可选类型。如果提供了数据,当看门狗超时时, 这些数据将被分成两个CAN帧(ID 0x200和0x1FF)发送出去。
|
static |
获取MotorGuard的单例实例
void OneMotor::Motor::DJI::MotorGuard::guard | ( | const std::vector< DriverPair > & | driver_set | ) |
启动对指定CAN总线的监控
driver_set | 一个包含驱动器名称和可选退出帧数据的向量 |