Skip to content

Commit 4199a0e

Browse files
committed
Add ducy cycle status interface
1 parent 676e9c0 commit 4199a0e

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

vesc_hardware/include/vesc_hardware/vesc_hardware.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ class VescHardware : public hardware_interface::SystemInterface {
189189
std::atomic<double> hw_state_velocity_;
190190
std::atomic<double> hw_avg_id_;
191191
std::atomic<double> hw_avg_iq_;
192+
std::atomic<double> hw_duty_cycle_;
192193

193194
// IMU state storage (atomic for thread-safe access from callback)
194195
std::atomic<double> hw_imu_orientation_x_;

vesc_hardware/src/vesc_hardware.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ constexpr char CUSTOM_HW_IF_SERVO[] = "servo";
4949
// Motor current interface names
5050
constexpr char CUSTOM_HW_IF_AVG_ID[] = "average_id";
5151
constexpr char CUSTOM_HW_IF_AVG_IQ[] = "average_iq";
52+
constexpr char CUSTOM_HW_IF_DUTY_CYCLE[] = "duty_cycle";
5253

5354
// IMU sensor interface names - Quaternion orientation
5455
constexpr char CUSTOM_HW_IF_ORIENTATION_X[] = "orientation.x";
@@ -424,6 +425,10 @@ void VescHardware::populate_state_definitions()
424425
false,
425426
[this]() {return hw_avg_iq_.load(std::memory_order_relaxed);}
426427
};
428+
state_interfaces_[CUSTOM_HW_IF_DUTY_CYCLE] = {
429+
false,
430+
[this]() {return hw_duty_cycle_.load(std::memory_order_relaxed);}
431+
};
427432

428433
// IMU state interfaces - Quaternion orientation
429434
state_interfaces_[CUSTOM_HW_IF_ORIENTATION_X] = {
@@ -544,6 +549,9 @@ void VescHardware::processValuesPacket(
544549
hw_avg_id_.store(values_packet->avg_id(), std::memory_order_relaxed);
545550
hw_avg_iq_.store(values_packet->avg_iq(), std::memory_order_relaxed);
546551

552+
// Store duty cycle
553+
hw_duty_cycle_.store(values_packet->duty_cycle_now(), std::memory_order_relaxed);
554+
547555
// Publish telemetry data
548556
publishVescState(*values_packet);
549557
}

0 commit comments

Comments
 (0)