8#ifndef USEREXTENSIONS_SRC_RMDMOTORCAN_H_
9#define USEREXTENSIONS_SRC_RMDMOTORCAN_H_
21#define RMD_THREAD_MEM 256
22#define RMD_THREAD_PRIO 25
48 uint32_t
getCpr()
override;
56 void sendMsg(std::array<uint8_t,8> &
data,uint8_t len = 8);
static ClassIdentifier info
static bool isCreatable()
const ClassIdentifier getInfo()
Command handlers always have class infos. Works well with ChoosableClass.
static ClassIdentifier info
static bool isCreatable()
const ClassIdentifier getInfo()
Command handlers always have class infos. Works well with ChoosableClass.
bool hasIntegratedEncoder()
const uint32_t angleUpdateMs
bool requestConstantReportEnable
RmdMotorCAN(uint8_t instance)
void sendCmd(uint8_t cmd)
int32_t getPos() override
void sendMsg(std::array< uint8_t, 8 > &data, uint8_t len=8)
uint32_t getCpr() override
uint32_t lastTorqueStatusUpdate_us
void stopMotor() override
void canRxPendCallback(CANPort *port, CAN_rx_msg &msg) override
void turn(int16_t power) override
void saveFlash() override
void updateRequestMode(bool activerequests)
void errorCb(ErrorStatus &errors)
void setPos(int32_t pos) override
const ClassIdentifier getInfo()=0
Command handlers always have class infos. Works well with ChoosableClass.
void setTorque(int16_t torque)
void requestConstantReports(uint8_t cmd, bool enable, uint16_t interval_10ms)
void startMotor() override
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies) override
Encoder * getEncoder() override
EncoderType getEncoderType() override
void restoreFlash() override
uint16_t calibrationWriteErr