From fd4ac747385e0a1bdd30929341576348fde74312 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 9 Nov 2017 19:54:00 +0100 Subject: [PATCH] Ref T180, renaming for request remote aircraft data --- .../fsxcommon/simconnectdatadefinition.cpp | 12 ++++++------ .../fsxcommon/simconnectdatadefinition.h | 4 ++-- .../simulator/fsxcommon/simulatorfsxcommon.cpp | 16 +++++++++------- .../simulator/fsxcommon/simulatorfsxcommon.h | 4 ++-- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/plugins/simulator/fsxcommon/simconnectdatadefinition.cpp b/src/plugins/simulator/fsxcommon/simconnectdatadefinition.cpp index 689c10356..322cb4b14 100644 --- a/src/plugins/simulator/fsxcommon/simconnectdatadefinition.cpp +++ b/src/plugins/simulator/fsxcommon/simconnectdatadefinition.cpp @@ -77,7 +77,7 @@ namespace BlackSimPlugin { HRESULT hr = S_OK; // Position - hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftPosition, "Initial Position", NULL, SIMCONNECT_DATATYPE_INITPOSITION); + hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftSetPosition, "Initial Position", NULL, SIMCONNECT_DATATYPE_INITPOSITION); // Hint: "Bool" and "Percent .." are units name // default data type is SIMCONNECT_DATATYPE_FLOAT64 -> double @@ -119,11 +119,11 @@ namespace BlackSimPlugin HRESULT CSimConnectDefinitions::initRemoteAircraftSimData(const HANDLE hSimConnect) { HRESULT hr = S_OK; - hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftSimData, "PLANE LATITUDE", "degrees"); - hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftSimData, "PLANE LONGITUDE", "degrees"); - hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftSimData, "PLANE ALTITUDE", "Feet"); - hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftSimData, "GROUND ALTITUDE", "Feet"); - hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftSimData, "STATIC CG TO GROUND", "Feet"); + hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftGetPosition, "PLANE LATITUDE", "degrees"); + hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftGetPosition, "PLANE LONGITUDE", "degrees"); + hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftGetPosition, "PLANE ALTITUDE", "Feet"); + hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftGetPosition, "GROUND ALTITUDE", "Feet"); + hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftGetPosition, "STATIC CG TO GROUND", "Feet"); if (hr != S_OK) { CLogMessage(static_cast(nullptr)).error("SimConnect error: initRemoteAircraftSimData %1") << hr; diff --git a/src/plugins/simulator/fsxcommon/simconnectdatadefinition.h b/src/plugins/simulator/fsxcommon/simconnectdatadefinition.h index c511e45b5..536452c39 100644 --- a/src/plugins/simulator/fsxcommon/simconnectdatadefinition.h +++ b/src/plugins/simulator/fsxcommon/simconnectdatadefinition.h @@ -179,8 +179,8 @@ namespace BlackSimPlugin DataOwnAircraftTitle, DataRemoteAircraftLights, DataRemoteAircraftParts, - DataRemoteAircraftPosition, - DataRemoteAircraftSimData, + DataRemoteAircraftSetPosition, //!< the position which will be set + DataRemoteAircraftGetPosition, //!< get position to evaluate altitude / AGL DataSimEnvironment, DataClientAreaSb, //!< whole SB area DataClientAreaSbIdent, //!< ident single value diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp index 6a609d8be..b8c53c6bd 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp @@ -456,7 +456,7 @@ namespace BlackSimPlugin // switch to fast updates if (simObject.getSimDataPeriod() != SIMCONNECT_PERIOD_VISUAL_FRAME) { - this->requestDataForSimObject(simObject, SIMCONNECT_PERIOD_VISUAL_FRAME); + this->requestPositionDataForSimObject(simObject, SIMCONNECT_PERIOD_VISUAL_FRAME); } } else @@ -464,7 +464,7 @@ namespace BlackSimPlugin // switch to slow updates if (simObject.getSimDataPeriod() != SIMCONNECT_PERIOD_SECOND) { - this->requestDataForSimObject(simObject, SIMCONNECT_PERIOD_SECOND); + this->requestPositionDataForSimObject(simObject, SIMCONNECT_PERIOD_SECOND); } } @@ -575,7 +575,7 @@ namespace BlackSimPlugin } // request data on object - this->requestDataForSimObject(simObject); + this->requestPositionDataForSimObject(simObject); this->requestLightsForSimObject(simObject); this->removeFromAddPendingAndAddAgainAircraft(callsign); // no longer try to add @@ -1105,7 +1105,7 @@ namespace BlackSimPlugin // update situation SIMCONNECT_DATA_INITPOSITION position = this->aircraftSituationToFsxPosition(interpolatedSituation); HRESULT hr = S_OK; - hr += SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDefinitions::DataRemoteAircraftPosition, + hr += SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDefinitions::DataRemoteAircraftSetPosition, static_cast(simObject.getObjectId()), 0, 0, sizeof(SIMCONNECT_DATA_INITPOSITION), &position); if (hr == S_OK) @@ -1417,15 +1417,17 @@ namespace BlackSimPlugin SimConnect_WeatherSetObservation(m_hSimConnect, 0, qPrintable(metar)); } - bool CSimulatorFsxCommon::requestDataForSimObject(const CSimConnectObject &simObject, SIMCONNECT_PERIOD period) + bool CSimulatorFsxCommon::requestPositionDataForSimObject(const CSimConnectObject &simObject, SIMCONNECT_PERIOD period) { if (!simObject.hasValidRequestAndObjectId()) { return false; } + if (simObject.isPendingRemoved()) { return false; } + if (!m_hSimConnect) { return false; } if (simObject.getSimDataPeriod() == period) { return true; } // already queried like this // always request, not only when something has changed const HRESULT result = SimConnect_RequestDataOnSimObject( m_hSimConnect, simObject.getRequestId() + RequestSimDataOffset, - CSimConnectDefinitions::DataRemoteAircraftSimData, + CSimConnectDefinitions::DataRemoteAircraftGetPosition, simObject.getObjectId(), period); if (result == S_OK && m_simConnectObjects.contains(simObject.getCallsign())) @@ -1434,7 +1436,7 @@ namespace BlackSimPlugin m_simConnectObjects[simObject.getCallsign()].setSimDataPeriod(period); return true; } - CLogMessage(this).error("Cannot request sim data on object '%1'") << simObject.getObjectId(); + CLogMessage(this).error("Cannot request simulator data on object '%1'") << simObject.getObjectId(); return false; } diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h index 699abba7e..197a51d1a 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h @@ -296,8 +296,8 @@ namespace BlackSimPlugin //! Sync time with user's computer void synchronizeTime(const BlackMisc::PhysicalQuantities::CTime &zuluTimeSim, const BlackMisc::PhysicalQuantities::CTime &localTimeSim); - //! Request data for a simObject (aka remote aircraft) - bool requestDataForSimObject(const CSimConnectObject &simObject, SIMCONNECT_PERIOD period = SIMCONNECT_PERIOD_SECOND); + //! Request data for a CSimConnectObject (aka remote aircraft) + bool requestPositionDataForSimObject(const CSimConnectObject &simObject, SIMCONNECT_PERIOD period = SIMCONNECT_PERIOD_SECOND); //! Request lights for a CSimConnectObject bool requestLightsForSimObject(const CSimConnectObject &simObject);