diff --git a/src/drivers/rpi_rc_in/rpi_rc_in.cpp b/src/drivers/rpi_rc_in/rpi_rc_in.cpp index da3e33aa94..d565bac27d 100644 --- a/src/drivers/rpi_rc_in/rpi_rc_in.cpp +++ b/src/drivers/rpi_rc_in/rpi_rc_in.cpp @@ -125,13 +125,7 @@ void RcInput::_measure(void) _data.rc_lost = false; _data.input_source = input_rc_s::RC_INPUT_SOURCE_PX4IO_PPM; - if (nullptr == _rcinput_pub) { - int instance; - _rcinput_pub = orb_advertise_multi(ORB_ID(input_rc), &_data, &instance, ORB_PRIO_DEFAULT); - - } else { - orb_publish(ORB_ID(input_rc), _rcinput_pub, &_data); - } + _rcinput_pub.publish(_data); } static void rpi_rc_in::usage(const char *reason) diff --git a/src/drivers/rpi_rc_in/rpi_rc_in.h b/src/drivers/rpi_rc_in/rpi_rc_in.h index b8e1d553ae..127a46dc22 100644 --- a/src/drivers/rpi_rc_in/rpi_rc_in.h +++ b/src/drivers/rpi_rc_in/rpi_rc_in.h @@ -54,7 +54,7 @@ #include -#include +#include #include #define RCINPUT_MEASURE_INTERVAL_US 20000 @@ -87,9 +87,9 @@ private: bool _should_exit = false; bool _is_running = false; - orb_advert_t _rcinput_pub = nullptr; + uORB::PublicationMulti _rcinput_pub{ORB_ID(input_rc)}; int _channels = 8; //D8R-II plus - struct input_rc_s _data = {}; + input_rc_s _data{}; int *_mem = nullptr; key_t _key = 4096; ///< shared memory key (matches the ppmdecode program's key)