From e0a97933476acea3fa414e8da840b87398a3637d Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Tue, 29 Nov 2016 00:49:57 -0500 Subject: [PATCH] mavlink doesn't have already published message - if the land detector started before the mavlink module it won't have a valid message vehicle_land_detected message until published again --- src/modules/mavlink/mavlink_orb_subscription.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/modules/mavlink/mavlink_orb_subscription.cpp b/src/modules/mavlink/mavlink_orb_subscription.cpp index 235e35a8a6..68f6066cfe 100644 --- a/src/modules/mavlink/mavlink_orb_subscription.cpp +++ b/src/modules/mavlink/mavlink_orb_subscription.cpp @@ -39,13 +39,15 @@ * @author Lorenz Meier */ +#include "mavlink_orb_subscription.h" + #include #include #include -#include #include -#include "mavlink_orb_subscription.h" +#include +#include MavlinkOrbSubscription::MavlinkOrbSubscription(const orb_id_t topic, int instance) : next(nullptr), @@ -195,6 +197,14 @@ MavlinkOrbSubscription::is_published() _published = true; } + // topic may have been last published before we subscribed + uint64_t time_topic = 0; + if (!_published && orb_stat(_fd, &time_topic) == PX4_OK) { + if (time_topic != 0) { + _published = true; + } + } + return _published; }