From dda897a573df153237c8e702f520e301a616551f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tuomas=20J=C3=A4rvinen?= Date: Mon, 20 May 2024 18:11:06 +0200 Subject: [PATCH] Register MAVSDK::Telemetry::Position type for Qt Without this application can't get position events in Qt5 based systems. Type: Improvement --- src/autopilot.pro | 4 ++-- src/az_drone_controller.cpp | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/autopilot.pro b/src/autopilot.pro index a67bd28..740fe94 100644 --- a/src/autopilot.pro +++ b/src/autopilot.pro @@ -1,8 +1,8 @@ QT = core -CONFIG += c++17 cmdline +CONFIG += cmdline # Reduce compiler warnings from the ArduPilot headers -QMAKE_CXXFLAGS += -Wno-address-of-packed-member +QMAKE_CXXFLAGS += -Wno-address-of-packed-member -std=gnu++1z # MAVSDK pkg-config file is garbage. Add dependency manually QMAKE_RPATHDIR += /usr/local/lib diff --git a/src/az_drone_controller.cpp b/src/az_drone_controller.cpp index 98f47e7..62e25dc 100644 --- a/src/az_drone_controller.cpp +++ b/src/az_drone_controller.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include @@ -74,6 +75,7 @@ bool AzDroneController::stateTelemetryModule(void) // Subscripe to position updates. Updated comes from different MAVSDK thread. Send position // as signal to this class (Qt::QueuedConnection) so that it's handled in the main thread. + qRegisterMetaType("Telemetry::Position"); connect(this, &AzDroneController::newPosition, this, &AzDroneController::newPositionSlot, Qt::QueuedConnection); mTelemetry->subscribe_position([this](Telemetry::Position position) { emit newPosition(position); });