uavcannode: schedule to run on log_message publications

- this is a precaution to minimize message latency and potential lost messages
This commit is contained in:
Daniel Agar
2022-07-01 09:18:17 -04:00
parent f16ea921c2
commit 7f76761657
2 changed files with 4 additions and 1 deletions
+2
View File
@@ -330,6 +330,8 @@ int UavcanNode::init(uavcan::NodeID node_id, UAVCAN_DRIVER::BusEvent &bus_events
subscriber->init();
}
_log_message_sub.registerCallback();
bus_events.registerSignalCallback(UavcanNode::busevent_signal_trampoline);
int rv = _node.start();
+2 -1
View File
@@ -66,6 +66,7 @@
#include <lib/perf/perf_counter.h>
#include <uORB/Subscription.hpp>
#include <uORB/SubscriptionCallback.hpp>
#include <uORB/SubscriptionInterval.hpp>
#include <uORB/topics/log_message.h>
#include <uORB/topics/parameter_update.h>
@@ -171,7 +172,7 @@ private:
IntrusiveSortedList<UavcanSubscriberBase *> _subscriber_list;
uORB::SubscriptionInterval _parameter_update_sub{ORB_ID(parameter_update), 1_s};
uORB::Subscription _log_message_sub{ORB_ID(log_message)};
uORB::SubscriptionCallbackWorkItem _log_message_sub{this, ORB_ID(log_message)};
UavcanNodeParamManager _param_manager;
uavcan::ParamServer _param_server;