From 7f76761657bafd8b955e6b559932e750c5391975 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Thu, 30 Jun 2022 16:49:13 -0400 Subject: [PATCH] uavcannode: schedule to run on log_message publications - this is a precaution to minimize message latency and potential lost messages --- src/drivers/uavcannode/UavcanNode.cpp | 2 ++ src/drivers/uavcannode/UavcanNode.hpp | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/drivers/uavcannode/UavcanNode.cpp b/src/drivers/uavcannode/UavcanNode.cpp index 3006954df2..a70058e885 100644 --- a/src/drivers/uavcannode/UavcanNode.cpp +++ b/src/drivers/uavcannode/UavcanNode.cpp @@ -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(); diff --git a/src/drivers/uavcannode/UavcanNode.hpp b/src/drivers/uavcannode/UavcanNode.hpp index 06d44bc2a2..e6452445fb 100644 --- a/src/drivers/uavcannode/UavcanNode.hpp +++ b/src/drivers/uavcannode/UavcanNode.hpp @@ -66,6 +66,7 @@ #include #include +#include #include #include #include @@ -171,7 +172,7 @@ private: IntrusiveSortedList _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;