From 2d66fd470a69d4facaca61d8dff739c13dac8fa4 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 28 Apr 2018 19:54:02 +0200 Subject: [PATCH] Ref T261, a global altitude offset can be enabled for testing --- src/blackmisc/aviation/aircraftsituation.cpp | 8 ++++++++ src/blackmisc/aviation/aircraftsituation.h | 3 +++ src/blackmisc/simulation/remoteaircraftprovider.cpp | 11 +++++++++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/blackmisc/aviation/aircraftsituation.cpp b/src/blackmisc/aviation/aircraftsituation.cpp index 1173bd28e..9f6b9e06e 100644 --- a/src/blackmisc/aviation/aircraftsituation.cpp +++ b/src/blackmisc/aviation/aircraftsituation.cpp @@ -617,6 +617,14 @@ namespace BlackMisc return altCor; } + CAltitude CAircraftSituation::addAltitudeOffset(const CLength &offset) + { + if (offset.isNull()) { return this->getAltitude(); } + const CAltitude alt = this->getAltitude().withOffset(offset); + this->setAltitude(alt); + return alt; + } + void CAircraftSituation::setPressureAltitude(const CAltitude &altitude) { Q_ASSERT(altitude.getAltitudeType() == CAltitude::PressureAltitude); diff --git a/src/blackmisc/aviation/aircraftsituation.h b/src/blackmisc/aviation/aircraftsituation.h index 7a09e2e48..720513b73 100644 --- a/src/blackmisc/aviation/aircraftsituation.h +++ b/src/blackmisc/aviation/aircraftsituation.h @@ -293,6 +293,9 @@ namespace BlackMisc //! Set altitude void setAltitude(const CAltitude &altitude) { m_position.setGeodeticHeight(altitude); } + //! Add offset + CAltitude addAltitudeOffset(const PhysicalQuantities::CLength &offset); + //! Get pressure altitude const CAltitude &getPressureAltitude() const { return m_pressureAltitude; } diff --git a/src/blackmisc/simulation/remoteaircraftprovider.cpp b/src/blackmisc/simulation/remoteaircraftprovider.cpp index c3d618309..929874e02 100644 --- a/src/blackmisc/simulation/remoteaircraftprovider.cpp +++ b/src/blackmisc/simulation/remoteaircraftprovider.cpp @@ -480,10 +480,17 @@ namespace BlackMisc bool CRemoteAircraftProvider::testAddAltitudeOffsetToSituation(CAircraftSituation &situation) const { - if (!this->hasTestAltitudeOffset(situation.getCallsign())) { return false; } - const CCallsign cs(situation.getCallsign()); + // for global offset testing set "true" + constexpr bool globalOffsetTest = false; + const CCallsign cs(situation.getCallsign()); + if (!globalOffsetTest && !this->hasTestAltitudeOffset(cs)) { return false; } CLength os; + if (globalOffsetTest) + { + os = CLength(100, CLengthUnit::ft()); + } + else { QReadLocker l(&m_lockSituations); os = m_testOffset.value(cs);