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; }