diff --git a/src/drivers/roboclaw/RoboClaw.cpp b/src/drivers/roboclaw/RoboClaw.cpp index 94a9828334..b2bcd1906b 100644 --- a/src/drivers/roboclaw/RoboClaw.cpp +++ b/src/drivers/roboclaw/RoboClaw.cpp @@ -228,14 +228,7 @@ void RoboClaw::taskMain() _wheelEncoderMsg[i].encoder_position = _encoderCounts[i]; _wheelEncoderMsg[i].speed = _motorSpeeds[i]; - if (_wheelEncodersAdv[i] == nullptr) { - int instance; - _wheelEncodersAdv[i] = orb_advertise_multi(ORB_ID(wheel_encoders), &_wheelEncoderMsg[i], - &instance, ORB_PRIO_DEFAULT); - - } else { - orb_publish(ORB_ID(wheel_encoders), _wheelEncodersAdv[i], &_wheelEncoderMsg[i]); - } + _wheelEncodersAdv[i].publish(_wheelEncoderMsg[i]); } } else { diff --git a/src/drivers/roboclaw/RoboClaw.hpp b/src/drivers/roboclaw/RoboClaw.hpp index b5d75069bb..0a92d07f39 100644 --- a/src/drivers/roboclaw/RoboClaw.hpp +++ b/src/drivers/roboclaw/RoboClaw.hpp @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -204,7 +205,7 @@ private: int _paramSub{-1}; parameter_update_s _paramUpdate; - orb_advert_t _wheelEncodersAdv[2] {nullptr, nullptr}; + uORB::PublicationMulti _wheelEncodersAdv[2] { ORB_ID(wheel_encoders), ORB_ID(wheel_encoders)}; wheel_encoders_s _wheelEncoderMsg[2]; uint32_t _lastEncoderCount[2] {0, 0};