diff --git a/src/drivers/pwm_out_sim/PWMSim.cpp b/src/drivers/pwm_out_sim/PWMSim.cpp index 3aea68c915..4f5c0934f0 100644 --- a/src/drivers/pwm_out_sim/PWMSim.cpp +++ b/src/drivers/pwm_out_sim/PWMSim.cpp @@ -161,9 +161,6 @@ PWMSim::run() _armed_sub = orb_subscribe(ORB_ID(actuator_armed)); - /* advertise the mixed control outputs, insist on the first group output */ - _outputs_pub = orb_advertise(ORB_ID(actuator_outputs), &_actuator_outputs); - update_params(); int params_sub = orb_subscribe(ORB_ID(parameter_update)); @@ -293,9 +290,10 @@ PWMSim::run() orb_publish_auto(ORB_ID(multirotor_motor_limits), &_mixer_status, &motor_limits, &instance, ORB_PRIO_DEFAULT); } - /* and publish for anyone that cares to see */ _actuator_outputs.timestamp = hrt_absolute_time(); - orb_publish(ORB_ID(actuator_outputs), _outputs_pub, &_actuator_outputs); + + _outputs_pub.publish(_actuator_outputs); + // use first valid timestamp_sample for latency tracking for (int i = 0; i < actuator_controls_s::NUM_ACTUATOR_CONTROL_GROUPS; i++) { diff --git a/src/drivers/pwm_out_sim/PWMSim.hpp b/src/drivers/pwm_out_sim/PWMSim.hpp index 81d26e8b63..802f5a450c 100644 --- a/src/drivers/pwm_out_sim/PWMSim.hpp +++ b/src/drivers/pwm_out_sim/PWMSim.hpp @@ -45,6 +45,7 @@ #include #include #include +#include #include #include #include @@ -109,8 +110,8 @@ private: int _armed_sub{-1}; - actuator_outputs_s _actuator_outputs = {}; - orb_advert_t _outputs_pub{nullptr}; + actuator_outputs_s _actuator_outputs {}; + uORB::Publication _outputs_pub{ORB_ID(actuator_outputs)}; orb_advert_t _mixer_status{nullptr}; unsigned _num_outputs{0};