mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 01:05:34 +08:00
Ref T180, renaming for request remote aircraft data
This commit is contained in:
@@ -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<CSimConnectDefinitions *>(nullptr)).error("SimConnect error: initRemoteAircraftSimData %1") << hr;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<SIMCONNECT_OBJECT_ID>(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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user