4#include "can_helpers.hpp"
29#ifdef ODRIVE_CAN_MSG_TYPE
50 can_set_signal_raw<uint8_t>(buf,
Opcode, 0, 8,
true);
51 can_set_signal_raw<uint16_t>(buf,
Endpoint_ID, 8, 16,
true);
52 can_set_signal_raw<uint8_t>(buf,
Reserved, 24, 8,
true);
53 can_set_signal_raw<T>(buf,
Value, 32, 32,
true);
60 Opcode = can_get_signal_raw<uint8_t>(buf, 0, 8,
true);
61 Endpoint_ID = can_get_signal_raw<uint16_t>(buf, 8, 16,
true);
62 Reserved = can_get_signal_raw<uint8_t>(buf, 24, 8,
true);
63 Value = can_get_signal_raw<T>(buf, 32, 32,
true);
88 Param<float>{
"spinout_mechanical_power_threshold", 420, -100.0},
89 Param<float>{
"spinout_eletrical_power_threshold", 421, 100.0},
100 Param<float>{
"motor_thermistor.config.r_ref", 352, 10000},
102 Param<float>{
"motor_thermistor.config.beta", 354, 3892},
103 Param<float>{
"motor_thermistor.config.temp_limit_lower", 355, 60},
104 Param<float>{
"motor_thermistor.config.temp_limit_upper", 356, 90},
126 {
Param<float>{
"spinout_mechanical_power_threshold", 420, -100.0},
127 Param<float>{
"spinout_eletrical_power_threshold", 421, 100.0},
138 Param<float>{
"anticogging.calib_coarse_integrator_gain", 311, 1}});
151#ifdef ODRIVE_CAN_MSG_TYPE
172 can_set_signal_raw<uint8_t>(buf,
Action, 0, 8,
true);
179 Action = can_get_signal_raw<uint8_t>(buf, 0, 8,
true);
auto benable_config_param
std::vector< Param< float > > fanticogging_config_params({Param< float >{"spinout_mechanical_power_threshold", 420, -100.0}, Param< float >{"spinout_eletrical_power_threshold", 421, 100.0}, Param< float >{"max_regen_current", 139, 50.0}, Param< float >{"dc_max_negative_current", 143, -50.0}, Param< float >{"pos_gain", 400, 20.0}, Param< float >{"vel_gain", 401, 8.5e-3}, Param< float >{"vel_integrator_gain", 402, 0.0}, Param< float >{"torque_soft_min", 267, -150.0}, Param< float >{"torque_soft_max", 268, 150.0}, Param< float >{"anticogging.max_torque", 305, 0.15}, Param< float >{"anticogging.calib_start_vel", 306, 1}, Param< float >{"anticogging.calib_end_val", 307, 0.15}, Param< float >{"anticogging.calib_coarse_integrator_gain", 311, 1}})
std::vector< Param< float > > fconfig_params({ Param< float >{"spinout_mechanical_power_threshold", 420, -100.0}, Param< float >{"spinout_eletrical_power_threshold", 421, 100.0}, Param< float >{"max_regen_current", 139, 50.0}, Param< float >{"dc_max_negative_current", 143, -50.0}, Param< float >{"pos_gain", 400, 100}, Param< float >{"vel_gain", 401, 12}, Param< float >{"vel_integrator_gain", 402, 0.0}, Param< float >{"torque_soft_min", 267, -10.0}, Param< float >{"torque_soft_max", 268, 10.0}, Param< float >{"calib_scan_dist", 215, 4.0}, Param< float >{"motor_thermistor.config.r_ref", 352, 10000}, Param< float >{"motor_thermistor.config.t_ref", 353, 25}, Param< float >{"motor_thermistor.config.beta", 354, 3892}, Param< float >{"motor_thermistor.config.temp_limit_lower", 355, 60}, Param< float >{"motor_thermistor.config.temp_limit_upper", 356, 90}, Param< float >{"vel_limit", 404, 30.0}, Param< float >{"vel_limit_tolerance", 405, 1.5}, })
std::vector< Param< uint32_t > > bconfig_params({ Param< uint32_t >{"version_msg_rate_ms", 248, 0}, Param< uint32_t >{"iq_msg_rate_ms", 251, 0}, Param< uint32_t >{"bus_voltage_msg_rate_ms", 254, 0}, Param< uint32_t >{"powers_msg_rate_ms", 256, 0}, Param< uint32_t >{"gpio7_mode", 159, 3}, Param< uint32_t >{"motor_thermistor.config.enabled", 357, 0}, Param< uint32_t >{"can.temperature_msg_rate_ms", 253, 100}, Param< uint32_t >{"enable_vel_limit", 393, 1}, Param< uint32_t >{"enable_torque_mode_vel_limit", 394, 1}, })
std::vector< Param< uint32_t > > banticogging_config_params({Param< uint32_t >{"circular_setpoints", 408, true}, Param< uint32_t >{"offset_valid", 466, true}})
: The Struct to contain feedback from the ODrive
Get_Encoder_Estimates_msg_t last_feedback
bool received_temperature
uint32_t last_heartbeat_time
Get_Temperature_msg_t last_temperature
Heartbeat_msg_t last_heartbeat
Structure for storing information about parameters.
Structure for setting ODrive Parameters Endpoint_ids can be found at the following link: https://odri...
void decode_msg(const TBoard::TCanIntf::TMsg &msg)
Set_Param_msg_t(const TBoard::TCanIntf::TMsg &msg)
static const uint8_t msg_length
static const uint8_t cmd_id
void encode_buf(uint8_t *buf) const
Encoders data to the buffer to send over CAN.
constexpr Set_Param_msg_t()=default
void encode_msg(TBoard::TCanIntf::TMsg &msg)
void decode_buf(const uint8_t *buf)
Decoders data from the buffer and saves to struct message.
Message struct for reboooting Odrive.
static const uint8_t cmd_id
void decode_msg(const TBoard::TCanIntf::TMsg &msg)
void encode_buf(uint8_t *buf) const
Encoders data to the buffer to send over CAN.
static const uint8_t msg_length
Set_Reboot_msg_t(const TBoard::TCanIntf::TMsg &msg)
void decode_buf(const uint8_t *buf)
Decoders data from the buffer and saves to struct message.
void encode_msg(TBoard::TCanIntf::TMsg &msg)
constexpr Set_Reboot_msg_t()=default