From cc887ea0f84d037393959a314ad58b5328a45a1f Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sun, 5 Apr 2020 03:40:49 +0200 Subject: [PATCH] Ref T778, also update sim.data if elevation did change Use ISimulator::isEqualLastSent in equalPbhVectorAltitudeElevation --- src/blackcore/simulator.cpp | 3 ++- src/blackmisc/aviation/aircraftsituation.cpp | 7 +++++++ src/blackmisc/aviation/aircraftsituation.h | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/blackcore/simulator.cpp b/src/blackcore/simulator.cpp index e6106ea6f..8e7a5ba31 100644 --- a/src/blackcore/simulator.cpp +++ b/src/blackcore/simulator.cpp @@ -656,7 +656,8 @@ namespace BlackCore Q_ASSERT_X(compare.hasCallsign(), Q_FUNC_INFO, "Need callsign"); if (!m_lastSentSituations.contains(compare.getCallsign())) { return false; } if (compare.isNull()) { return false; } - return compare.equalPbhVectorAltitude(m_lastSentSituations.value(compare.getCallsign())); + return compare.equalPbhVectorAltitudeElevation(m_lastSentSituations.value(compare.getCallsign())); + // return compare.equalPbhVectorAltitude(m_lastSentSituations.value(compare.getCallsign())); } bool ISimulator::isEqualLastSent(const CAircraftParts &compare, const CCallsign &callsign) const diff --git a/src/blackmisc/aviation/aircraftsituation.cpp b/src/blackmisc/aviation/aircraftsituation.cpp index 966e641df..340e224a3 100644 --- a/src/blackmisc/aviation/aircraftsituation.cpp +++ b/src/blackmisc/aviation/aircraftsituation.cpp @@ -467,6 +467,13 @@ namespace BlackMisc return c == 0; } + bool CAircraftSituation::equalPbhVectorAltitudeElevation(const CAircraftSituation &other) const + { + if (!this->equalPbhVectorAltitude(other)) { return false; } + const int c = this->getGroundElevation().compare(other.getGroundElevation()); + return c == 0; + } + void CAircraftSituation::setNull() { m_position.setNull(); diff --git a/src/blackmisc/aviation/aircraftsituation.h b/src/blackmisc/aviation/aircraftsituation.h index 178537300..1958d0db2 100644 --- a/src/blackmisc/aviation/aircraftsituation.h +++ b/src/blackmisc/aviation/aircraftsituation.h @@ -190,6 +190,10 @@ namespace BlackMisc //! \sa Geo::ICoordinateGeodetic::equalNormalVectorDouble bool equalPbhVectorAltitude(const CAircraftSituation &other) const; + //! Equal PBH and vecto, plus altitude/elevation + //! \sa Geo::ICoordinateGeodetic::equalNormalVectorDouble + bool equalPbhVectorAltitudeElevation(const CAircraftSituation &other) const; + //! Set to null void setNull();