From 0a99c82ddc6c1efb3b2ebd0c0f070f1252e2d6ef Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 21 Jan 2017 20:22:45 +0100 Subject: [PATCH] refs #865, FSX: added altitude above ground and CG for own aircraft --- src/plugins/simulator/fsx/simconnectdatadefinition.cpp | 2 ++ src/plugins/simulator/fsx/simconnectdatadefinition.h | 4 +++- src/plugins/simulator/fsx/simulatorfsxsimconnectproc.cpp | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/plugins/simulator/fsx/simconnectdatadefinition.cpp b/src/plugins/simulator/fsx/simconnectdatadefinition.cpp index a0b935347..3502cfa75 100644 --- a/src/plugins/simulator/fsx/simconnectdatadefinition.cpp +++ b/src/plugins/simulator/fsx/simconnectdatadefinition.cpp @@ -35,6 +35,8 @@ namespace BlackSimPlugin hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "PLANE LATITUDE", "Degrees"); hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "PLANE LONGITUDE", "Degrees"); hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "PLANE ALTITUDE", "Feet"); + hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "PLANE ALT ABOVE GROUND", "Feet"); + hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "STATIC CG TO GROUND", "Feet"); hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "PLANE HEADING DEGREES TRUE", "Degrees"); hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "PLANE PITCH DEGREES", "Degrees"); hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "PLANE BANK DEGREES", "Degrees"); diff --git a/src/plugins/simulator/fsx/simconnectdatadefinition.h b/src/plugins/simulator/fsx/simconnectdatadefinition.h index aca141d61..0ae493ca4 100644 --- a/src/plugins/simulator/fsx/simconnectdatadefinition.h +++ b/src/plugins/simulator/fsx/simconnectdatadefinition.h @@ -34,6 +34,8 @@ namespace BlackSimPlugin double latitude; //!< Latitude (deg) double longitude; //!< Longitude (deg) double altitude; //!< Altitude (ft) + double altitudeAboveGround; //!< Altitude above ground (ft) + double cgToGround; //!< Static CG to ground (ft) double trueHeading; //!< True heading (deg) double pitch; //!< Pitch (deg) double bank; //!< Bank (deg) @@ -99,7 +101,7 @@ namespace BlackSimPlugin double longitude; //!< Longitude (deg) double altitude; //!< Altitude (ft) double elevation; //!< Elevation (ft) - double cgToGround; //!< CG to ground (ft) + double cgToGround; //!< Static CG to ground (ft) //! Above ground ft double aboveGround() const { return altitude - elevation; } diff --git a/src/plugins/simulator/fsx/simulatorfsxsimconnectproc.cpp b/src/plugins/simulator/fsx/simulatorfsxsimconnectproc.cpp index 21b3b9d6b..1a0e572f3 100644 --- a/src/plugins/simulator/fsx/simulatorfsxsimconnectproc.cpp +++ b/src/plugins/simulator/fsx/simulatorfsxsimconnectproc.cpp @@ -185,7 +185,7 @@ namespace BlackSimPlugin { case CSimConnectDefinitions::RequestOwnAircraft: { - static_assert(sizeof(DataDefinitionOwnAircraft) == 28 * sizeof(double), "DataDefinitionOwnAircraft has an incorrect size."); + static_assert(sizeof(DataDefinitionOwnAircraft) == 30 * sizeof(double), "DataDefinitionOwnAircraft has an incorrect size."); const DataDefinitionOwnAircraft *ownAircaft = (DataDefinitionOwnAircraft *)&pObjData->dwData; simulatorFsx->updateOwnAircraftFromSimulator(*ownAircaft); break; @@ -245,7 +245,7 @@ namespace BlackSimPlugin if (!pFacilityAirport) { break; } const QString icao(pFacilityAirport->Icao); if (icao.isEmpty()) { continue; } // airfield without ICAO code - if (!CAirportIcaoCode::isValidIcaoDesignator(icao)) { continue; } // tiny airfields in SIM + if (!CAirportIcaoCode::isValidIcaoDesignator(icao)) { continue; } // tiny airfields in simulator const CCoordinateGeodetic pos(pFacilityAirport->Latitude, pFacilityAirport->Longitude, pFacilityAirport->Altitude); CAirport airport(CAirportIcaoCode(icao), pos); const CLength d = airport.calculcateAndUpdateRelativeDistanceAndBearing(posAircraft);