introduce uORB::PublicationQueued and transition most orb_advertise_queue usage

This commit is contained in:
Daniel Agar
2019-08-04 10:08:09 -04:00
parent 839787568c
commit e69398c09f
62 changed files with 421 additions and 674 deletions
@@ -1111,14 +1111,8 @@ void IridiumSBD::publish_iridium_status()
// publish the status if it changed
if (need_to_publish) {
if (_iridiumsbd_status_pub == nullptr) {
_iridiumsbd_status_pub = orb_advertise(ORB_ID(iridiumsbd_status), &_status);
} else {
orb_publish(ORB_ID(iridiumsbd_status), _iridiumsbd_status_pub, &_status);
}
_iridiumsbd_status_pub.publish(_status);
}
}
void IridiumSBD::publish_subsystem_status()
@@ -1134,12 +1128,7 @@ void IridiumSBD::publish_subsystem_status()
_info.enabled = enabled;
_info.ok = ok;
if (_subsystem_pub == nullptr) {
_subsystem_pub = orb_advertise_queue(ORB_ID(subsystem_info), &_info, subsystem_info_s::ORB_QUEUE_LENGTH);
} else {
orb_publish(ORB_ID(subsystem_info), _subsystem_pub, &_info);
}
_subsystem_pub.publish(_info);
}
}
@@ -39,7 +39,8 @@
#include <lib/cdev/CDev.hpp>
#include <drivers/drv_hrt.h>
#include <uORB/uORB.h>
#include <uORB/Publication.hpp>
#include <uORB/PublicationQueued.hpp>
#include <uORB/topics/iridiumsbd_status.h>
#include <uORB/topics/subsystem_info.h>
@@ -304,8 +305,8 @@ private:
bool _writing_mavlink_packet = false;
uint16_t _packet_length = 0;
orb_advert_t _iridiumsbd_status_pub = nullptr;
orb_advert_t _subsystem_pub = nullptr;
uORB::Publication<iridiumsbd_status_s> _iridiumsbd_status_pub{ORB_ID(iridiumsbd_status)};
uORB::PublicationQueued<subsystem_info_s> _subsystem_pub{ORB_ID(subsystem_info)};
bool _test_pending = false;
char _test_command[32];