From 05e0480bb438b0e127c42251e6712bbb981e79cd Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Tue, 31 Jul 2018 10:56:48 +0200 Subject: [PATCH] Move XPlane gnd flag handling from parts to situation ref T276 --- .../simulator/xplane/simulatorxplane.cpp | 2 +- .../simulator/xplane/xswiftbustrafficproxy.cpp | 5 ++--- .../simulator/xplane/xswiftbustrafficproxy.h | 2 +- .../org.swift_project.xswiftbus.traffic.xml | 2 +- src/xswiftbus/traffic.cpp | 18 ++++++++---------- src/xswiftbus/traffic.h | 5 ++--- 6 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/plugins/simulator/xplane/simulatorxplane.cpp b/src/plugins/simulator/xplane/simulatorxplane.cpp index 77079415c..44fb42942 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.cpp +++ b/src/plugins/simulator/xplane/simulatorxplane.cpp @@ -787,6 +787,7 @@ namespace BlackSimPlugin planesPositions.pitches.push_back(interpolatedSituation.getPitch().value(CAngleUnit::deg())); planesPositions.rolls.push_back(interpolatedSituation.getBank().value(CAngleUnit::deg())); planesPositions.headings.push_back(interpolatedSituation.getHeading().value(CAngleUnit::deg())); + planesPositions.onGrounds.push_back(interpolatedSituation.getOnGround() == CAircraftSituation::OnGround); } } else @@ -816,7 +817,6 @@ namespace BlackSimPlugin planesSurfaces.strobeLights.push_back(parts.getLights().isStrobeOn()); planesSurfaces.navLights.push_back(parts.getLights().isNavOn()); planesSurfaces.lightPatterns.push_back(0); - planesSurfaces.onGrounds.push_back(parts.isOnGround()); } } diff --git a/src/plugins/simulator/xplane/xswiftbustrafficproxy.cpp b/src/plugins/simulator/xplane/xswiftbustrafficproxy.cpp index 6142bbc45..c2ddaea1d 100644 --- a/src/plugins/simulator/xplane/xswiftbustrafficproxy.cpp +++ b/src/plugins/simulator/xplane/xswiftbustrafficproxy.cpp @@ -101,7 +101,7 @@ namespace BlackSimPlugin m_dbusInterface->callDBus(QLatin1String("setPlanesPositions"), planesPositions.callsigns, planesPositions.latitudes, planesPositions.longitudes, planesPositions.altitudes, planesPositions.pitches, planesPositions.rolls, - planesPositions.headings); + planesPositions.headings, planesPositions.onGrounds); } void CXSwiftBusTrafficProxy::setPlanesSurfaces(const PlanesSurfaces &planesSurfaces) @@ -112,8 +112,7 @@ namespace BlackSimPlugin planesSurfaces.wingSweeps, planesSurfaces.thrusts, planesSurfaces.elevators, planesSurfaces.rudders, planesSurfaces.ailerons, planesSurfaces.landLights, planesSurfaces.beaconLights, planesSurfaces.strobeLights, - planesSurfaces.navLights, planesSurfaces.lightPatterns, - planesSurfaces.onGrounds); + planesSurfaces.navLights, planesSurfaces.lightPatterns); } void CXSwiftBusTrafficProxy::setPlaneTransponder(const QString &callsign, int code, bool modeC, bool ident) diff --git a/src/plugins/simulator/xplane/xswiftbustrafficproxy.h b/src/plugins/simulator/xplane/xswiftbustrafficproxy.h index 13351c28e..94108c1d3 100644 --- a/src/plugins/simulator/xplane/xswiftbustrafficproxy.h +++ b/src/plugins/simulator/xplane/xswiftbustrafficproxy.h @@ -60,6 +60,7 @@ namespace BlackSimPlugin QList pitches; //!< List of pitches QList rolls; //!< List of rolls QList headings; //!< List of headings + QList onGrounds; //!< List of onGrounds }; //! Planes surfaces @@ -84,7 +85,6 @@ namespace BlackSimPlugin QList strobeLights; //!< List of strobeLights QList navLights; //!< List of navLights QList lightPatterns; //!< List of lightPatterns - QList onGrounds; //!< List of onGrounds }; /*! diff --git a/src/xswiftbus/org.swift_project.xswiftbus.traffic.xml b/src/xswiftbus/org.swift_project.xswiftbus.traffic.xml index 9bfbd95a7..4bcb89c87 100644 --- a/src/xswiftbus/org.swift_project.xswiftbus.traffic.xml +++ b/src/xswiftbus/org.swift_project.xswiftbus.traffic.xml @@ -44,6 +44,7 @@ R"( + @@ -62,7 +63,6 @@ R"( - diff --git a/src/xswiftbus/traffic.cpp b/src/xswiftbus/traffic.cpp index 36c8189e7..40311ff1d 100644 --- a/src/xswiftbus/traffic.cpp +++ b/src/xswiftbus/traffic.cpp @@ -318,8 +318,10 @@ namespace XSwiftBus } void CTraffic::setPlanesPositions(const std::vector &callsigns, std::vector latitudes, std::vector longitudes, std::vector altitudes, - std::vector pitches, std::vector rolles, std::vector headings) + std::vector pitches, std::vector rolles, std::vector headings, const std::vector &onGrounds) { + (void)onGrounds; + for (size_t i = 0; i < callsigns.size(); i++) { auto planeIt = m_planesByCallsign.find(callsigns.at(i)); @@ -339,11 +341,8 @@ namespace XSwiftBus void CTraffic::setPlanesSurfaces(const std::vector &callsign, const std::vector &gear, const std::vector &flap, const std::vector &spoilers, const std::vector &speedBrakes, const std::vector &slats, const std::vector &wingSweeps, const std::vector &thrusts, const std::vector &elevators, const std::vector &rudders, const std::vector &ailerons, const std::vector &landLights, - const std::vector &beaconLights, const std::vector &strobeLights, const std::vector &navLights, const std::vector &lightPatterns, - const std::vector &onGrounds) + const std::vector &beaconLights, const std::vector &strobeLights, const std::vector &navLights, const std::vector &lightPatterns) { - (void)onGrounds; - for (size_t i = 0; i < callsign.size(); i++) { auto planeIt = m_planesByCallsign.find(callsign.at(i)); @@ -586,6 +585,7 @@ namespace XSwiftBus std::vector pitches; std::vector rolls; std::vector headings; + std::vector onGrounds; message.beginArgumentRead(); message.getArgument(callsigns); message.getArgument(latitudes); @@ -594,9 +594,10 @@ namespace XSwiftBus message.getArgument(pitches); message.getArgument(rolls); message.getArgument(headings); + message.getArgument(onGrounds); queueDBusCall([ = ]() { - setPlanesPositions(callsigns, latitudes, longitudes, altitudes, pitches, rolls, headings); + setPlanesPositions(callsigns, latitudes, longitudes, altitudes, pitches, rolls, headings, onGrounds); }); } else if (message.getMethodName() == "setPlanesSurfaces") @@ -618,7 +619,6 @@ namespace XSwiftBus std::vector strobeLights; std::vector navLights; std::vector lightPatterns; - std::vector onGrounds; message.beginArgumentRead(); message.getArgument(callsigns); message.getArgument(gears); @@ -636,12 +636,10 @@ namespace XSwiftBus message.getArgument(strobeLights); message.getArgument(navLights); message.getArgument(lightPatterns); - message.getArgument(onGrounds); queueDBusCall([ = ]() { setPlanesSurfaces(callsigns, gears, flaps, spoilers, speedBrakes, slats, wingSweeps, thrusts, elevators, - rudders, ailerons, landLights, beaconLights, strobeLights, navLights, lightPatterns, - onGrounds); + rudders, ailerons, landLights, beaconLights, strobeLights, navLights, lightPatterns); }); } else if (message.getMethodName() == "setPlaneTransponder") diff --git a/src/xswiftbus/traffic.h b/src/xswiftbus/traffic.h index 4cf6039b5..e52af449b 100644 --- a/src/xswiftbus/traffic.h +++ b/src/xswiftbus/traffic.h @@ -97,14 +97,13 @@ namespace XSwiftBus //! Set the position of multiple traffic aircrafts void setPlanesPositions(const std::vector &callsigns, std::vector latitudes, std::vector longitudes, std::vector altitudes, - std::vector pitches, std::vector rolls, std::vector headings); + std::vector pitches, std::vector rolls, std::vector headings, const std::vector &onGrounds); //! Set the flight control surfaces and lights of multiple traffic aircrafts void setPlanesSurfaces(const std::vector &callsigns, const std::vector &gears, const std::vector &flaps, const std::vector &spoilers, const std::vector &speedBrakes, const std::vector &slats, const std::vector &wingSweeps, const std::vector &thrusts, const std::vector &elevators, const std::vector &rudders, const std::vector &ailerons, const std::vector &landLights, - const std::vector &beaconLights, const std::vector &strobeLights, const std::vector &navLights, const std::vector &lightPatterns, - const std::vector &onGrounds); + const std::vector &beaconLights, const std::vector &strobeLights, const std::vector &navLights, const std::vector &lightPatterns); //! Set the transponder of a traffic aircraft void setPlaneTransponder(const std::string &callsign, int code, bool modeC, bool ident);