Skip to content

Commit 8822d34

Browse files
committed
add option to register callbacks for torque estimates messages
1 parent 9aeced2 commit 8822d34

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/ODriveCAN.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,13 @@ void ODriveCAN::onReceive(uint32_t id, uint8_t length, const uint8_t* data) {
155155
feedback_callback_(estimates, feedback_user_data_);
156156
break;
157157
}
158+
case Get_Torques_msg_t::cmd_id: {
159+
Get_Torques_msg_t estimates;
160+
estimates.decode_buf(data);
161+
if (torques_callback_)
162+
torques_callback_(estimates, feedback_user_data_);
163+
break;
164+
}
158165
case Heartbeat_msg_t::cmd_id: {
159166
Heartbeat_msg_t status;
160167
status.decode_buf(data);

src/ODriveCAN.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,14 @@ class ODriveCAN {
213213
axis_state_callback_ = callback;
214214
axis_state_user_data_ = user_data;
215215
}
216+
217+
/**
218+
* @brief Registers a callback for ODrive torques feedback processing.
219+
*/
220+
void onTorques(void (*callback)(Get_Torques_msg_t& feedback, void* user_data), void* user_data = nullptr) {
221+
torques_callback_ = callback;
222+
feedback_user_data_ = user_data;
223+
}
216224

217225
/**
218226
* @brief Processes received CAN messages for the ODrive.
@@ -325,4 +333,5 @@ class ODriveCAN {
325333

326334
void (*axis_state_callback_)(Heartbeat_msg_t& feedback, void* user_data) = nullptr;
327335
void (*feedback_callback_)(Get_Encoder_Estimates_msg_t& feedback, void* user_data) = nullptr;
336+
void (*torques_callback_)(Get_Torques_msg_t& feedback, void* user_data) = nullptr;
328337
};

0 commit comments

Comments
 (0)