From d61814f8e93c818e4afe13ae4c7291f36774bab1 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Mon, 29 Apr 2019 23:53:37 +0200 Subject: [PATCH] FG: Add version number check --- .../simulator/flightgear/fgswiftbusserviceproxy.cpp | 5 +++++ src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h | 3 +++ src/plugins/simulator/flightgear/simulatorflightgear.cpp | 7 +++++++ 3 files changed, 15 insertions(+) diff --git a/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.cpp b/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.cpp index 51bead363..3654b4d47 100644 --- a/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.cpp +++ b/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.cpp @@ -38,6 +38,11 @@ namespace BlackSimPlugin } } + QString CFGSwiftBusServiceProxy::getVersionNumber() + { + return m_dbusInterface->callDBusRet(QLatin1String("getVersionNumber")); + } + void CFGSwiftBusServiceProxy::getOwnAircraftSituationData(FlightgearData *o_flightgearData) { QPointer myself(this); diff --git a/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h b/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h index 216b1f124..a787d22b4 100644 --- a/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h +++ b/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h @@ -97,6 +97,9 @@ namespace BlackSimPlugin void airportsInRangeUpdated(const QStringList &icaoCodes, const QStringList &names, const QList &lats, const QList &lons, const QList &alts); public slots: + //! Get Flightgear version number + QString getVersionNumber(); + //! Get own aircraft situation data void getOwnAircraftSituationData(FlightgearData *o_flightgearData); diff --git a/src/plugins/simulator/flightgear/simulatorflightgear.cpp b/src/plugins/simulator/flightgear/simulatorflightgear.cpp index 5954a6332..911bb63ac 100644 --- a/src/plugins/simulator/flightgear/simulatorflightgear.cpp +++ b/src/plugins/simulator/flightgear/simulatorflightgear.cpp @@ -955,6 +955,13 @@ namespace BlackSimPlugin bool result = service.isValid() && traffic.isValid(); if (! result) { return; } + QString flightgearVersion = service.getVersionNumber(); + QString flightgearVersionMinimum = "2019.2.0"; + + if(flightgearVersion < flightgearVersionMinimum){ + CLogMessage(this).error(u"You are using Flightgear %1. This version of swift is only compatible with Flightgear %2 or newer. Consider upgrading!") << flightgearVersion << flightgearVersionMinimum; + return; + } if (!traffic.initialize()) { CLogMessage(this).error(u"Connection to FGSwiftBus successful, but could not initialize FGSwiftBus.");