Skip to content

Commit 394babc

Browse files
Your NameBrechtSerckx
authored andcommitted
Callback for Get_Iq
1 parent 830184a commit 394babc

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
@@ -185,6 +185,13 @@ void ODriveCAN::onReceive(uint32_t id, uint8_t length, const uint8_t* data) {
185185
busVI_callback_(bus_vi, busVI_user_data_);
186186
break;
187187
}
188+
case Get_Iq_msg_t::cmd_id: {
189+
Get_Iq_msg_t iq;
190+
iq.decode_buf(data);
191+
if (currents_callback_)
192+
currents_callback_(iq, currents_user_data_);
193+
break;
194+
}
188195
default: {
189196
if (requested_msg_id_ == REQUEST_PENDING)
190197
return;

src/ODriveCAN.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,14 @@ class ODriveCAN {
239239
busVI_user_data_ = user_data;
240240
}
241241

242+
/**
243+
* @brief Registers a callback for ODrive currents feedback.
244+
*/
245+
void onCurrents(void (*callback)(Get_Iq_msg_t& feedback, void* user_data), void* user_data = nullptr) {
246+
currents_callback_ = callback;
247+
currents_user_data_ = user_data;
248+
}
249+
242250
/**
243251
* @brief Processes received CAN messages for the ODrive.
244252
*/
@@ -351,10 +359,12 @@ class ODriveCAN {
351359
void* torques_user_data_;
352360
void* temperature_user_data_;
353361
void* busVI_user_data_;
362+
void* currents_user_data_;
354363

355364
void (*axis_state_callback_)(Heartbeat_msg_t& feedback, void* user_data) = nullptr;
356365
void (*feedback_callback_)(Get_Encoder_Estimates_msg_t& feedback, void* user_data) = nullptr;
357366
void (*torques_callback_)(Get_Torques_msg_t& feedback, void* user_data) = nullptr;
358367
void (*temperature_callback_)(Get_Temperature_msg_t& feedback, void* user_data) = nullptr;
359368
void (*busVI_callback_)(Get_Bus_Voltage_Current_msg_t& feedback, void* user_data) = nullptr;
369+
void (*currents_callback_)(Get_Iq_msg_t& feedback, void* user_data) = nullptr;
360370
};

0 commit comments

Comments
 (0)