diff --git a/.travis.yml b/.travis.yml index 057eed9845..7aad59509a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -130,4 +130,4 @@ notifications: - secure: "QKw73Zel/s3JAbe/7XyO9tPnJwiiGFpYzSjdR8lG3tYFjRdXZnhxG4c+G7bkgkaPTS4Hult33VXE3kcEqOI7+C+eRwRlZhDfL0knQbXVCxjcLjzmUFdoPOwurlgZDw66PFWCi5tZcLKSRo3u4U8ibT4WKi3jm9sDSyOcfBAucMU=" on_pull_requests: false on_success: never # options: [always|never|change] default: always - on_failure: change # options: [always|never|change] default: always + on_failure: never # options: [always|never|change] default: always diff --git a/src/modules/mavlink/mavlink_orb_subscription.cpp b/src/modules/mavlink/mavlink_orb_subscription.cpp index f1747e3a79..5255b16ee9 100644 --- a/src/modules/mavlink/mavlink_orb_subscription.cpp +++ b/src/modules/mavlink/mavlink_orb_subscription.cpp @@ -157,6 +157,15 @@ MavlinkOrbSubscription::is_published() return true; } + // This is a workaround for this issue: + // https://github.com/PX4/Firmware/issues/5438 +#if defined(__PX4_LINUX) || defined(__PX4_QURT) + + if (_fd < 0) { + _fd = orb_subscribe_multi(_topic, _instance); + } + +#else // Telemetry can sustain an initial published check at 10 Hz hrt_abstime now = hrt_absolute_time(); @@ -175,6 +184,8 @@ MavlinkOrbSubscription::is_published() _fd = orb_subscribe_multi(_topic, _instance); } +#endif + bool updated; orb_check(_fd, &updated);