Skip to content

Commit a902334

Browse files
Your NameBrechtSerckx
authored andcommitted
Callback for Get_Temperature
1 parent 81307bd commit a902334

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

src/ODriveCAN.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,13 @@ void ODriveCAN::onReceive(uint32_t id, uint8_t length, const uint8_t* data) {
171171
Serial.println(F("missing callback"));
172172
break;
173173
}
174+
case Get_Temperature_msg_t::cmd_id: {
175+
Get_Temperature_msg_t temperature;
176+
temperature.decode_buf(data);
177+
if (temperature_callback_)
178+
temperature_callback_(temperature, temperature_user_data_);
179+
break;
180+
}
174181
default: {
175182
if (requested_msg_id_ == REQUEST_PENDING)
176183
return;

src/ODriveCAN.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,14 @@ class ODriveCAN {
222222
torques_user_data_ = user_data;
223223
}
224224

225+
/**
226+
* @brief Registers a callback for ODrive temperature feedback.
227+
*/
228+
void onTemperature(void (*callback)(Get_Temperature_msg_t& feedback, void* user_data), void* user_data = nullptr) {
229+
temperature_callback_ = callback;
230+
temperature_user_data_ = user_data;
231+
}
232+
225233
/**
226234
* @brief Processes received CAN messages for the ODrive.
227235
*/
@@ -332,8 +340,10 @@ class ODriveCAN {
332340
void* axis_state_user_data_;
333341
void* feedback_user_data_;
334342
void* torques_user_data_;
343+
void* temperature_user_data_;
335344

336345
void (*axis_state_callback_)(Heartbeat_msg_t& feedback, void* user_data) = nullptr;
337346
void (*feedback_callback_)(Get_Encoder_Estimates_msg_t& feedback, void* user_data) = nullptr;
338347
void (*torques_callback_)(Get_Torques_msg_t& feedback, void* user_data) = nullptr;
348+
void (*temperature_callback_)(Get_Temperature_msg_t& feedback, void* user_data) = nullptr;
339349
};

0 commit comments

Comments
 (0)