8#ifndef USEREXTENSIONS_SRC_VESCCAN_H_
9#define USEREXTENSIONS_SRC_VESCCAN_H_
21#define VESC_THREAD_MEM 512
22#define VESC_THREAD_PRIO 25
23#define BUFFER_RX_SIZE 64
25#define FW_MIN_RELEASE ((5 << 16) | (3 << 8) | 51)
58 offbcanid,
vesccanid,
canspd,
errorflags,
vescstate,
voltage,
encrate,
pos,
torque,
forcePosRead,
useEncoder,
offset
62 uint16_t
canId = ADR_VESC1_CANID;
63 uint16_t
data = ADR_VESC1_DATA;
93 uint32_t
getCpr()
override;
104 return "VESC CAN interface";
@ VESC_STATE_INCOMPATIBLE
@ CAN_PACKET_FILL_RX_BUFFER
@ CAN_PACKET_PROCESS_RX_BUFFER
@ CAN_PACKET_SET_CURRENT_REL
@ CAN_PACKET_POLL_ROTOR_POS
@ CAN_PACKET_PROCESS_SHORT_BUFFER
@ CAN_PACKET_FILL_RX_BUFFER_LONG
@ COMM_GET_VALUES_SELECTIVE
CommandHandler(const char *clsname, uint16_t clsid, uint8_t instance=0)
const ClassIdentifier getInfo()
static bool isCreatable()
static bool isCreatable()
const ClassIdentifier getInfo()
float buffer_get_float16(const uint8_t *buffer, float scale, int32_t *index)
uint8_t buffer_rx[BUFFER_RX_SIZE]
bool motorReady() override
void decodeEncoderPosition(float newPos)
volatile uint8_t vescErrorFlag
int32_t getPos() override
void buffer_append_int32(uint8_t *buffer, int32_t number, int32_t *index)
void setTorque(float torque)
int32_t buffer_get_int32(const uint8_t *buffer, int32_t *index)
uint32_t getCpr() override
virtual std::string getHelpstring()
void askPositionEncoder()
VescFlashAddrs flashAddrs
void stopMotor() override
volatile uint32_t encCount
volatile uint32_t lastVescResponse
void decode_buffer(uint8_t *buffer, uint8_t len)
void turn(int16_t power) override
int16_t buffer_get_int16(const uint8_t *buffer, int32_t *index)
uint32_t buffer_get_uint32(const uint8_t *buffer, int32_t *index)
float buffer_get_float32(const uint8_t *buffer, float scale, int32_t *index)
float getPos_f() override
void buffer_append_uint32(uint8_t *buffer, uint32_t number, int32_t *index)
void sendMsg(uint8_t cmd, uint8_t *buffer, uint8_t len)
bool isFirmwareCompatible()
static bool crcTableInitialized
static const uint16_t crcpoly
void saveFlash() override
bool hasIntegratedEncoder() override
static std::array< uint16_t, 256 > crc16_tab
void startMotor() override
void restoreFlash() override
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
void setPos(int32_t pos) override
void buffer_append_float32(uint8_t *buffer, float number, float scale, int32_t *index)
Encoder * getEncoder() override
EncoderType getEncoderType() override
volatile uint32_t encStartPeriod
void canRxPendCallback(CANPort *port, CAN_rx_msg &msg) override
void setAddress(uint8_t address)