Use "GEAR HANDLE POSITION" instead of single gear positions

refs #224
This commit is contained in:
Roland Winklmeier
2014-04-27 18:45:31 +02:00
committed by Roland Winklmeier
parent 7c890c51d8
commit e42cbbe834
3 changed files with 17 additions and 29 deletions

View File

@@ -19,7 +19,7 @@ namespace BlackSimPlugin
HRESULT hr = S_OK; HRESULT hr = S_OK;
hr = initOwnAircraft(hSimConnect); hr = initOwnAircraft(hSimConnect);
hr = initRemoteAircraftSituation(hSimConnect); hr = initRemoteAircraftSituation(hSimConnect);
hr = initAircraftConfiguration(hSimConnect); hr = initGearHandlePosition(hSimConnect);
return hr; return hr;
} }
@@ -50,14 +50,10 @@ namespace BlackSimPlugin
return hr; return hr;
} }
HRESULT CSimConnectDataDefinition::initAircraftConfiguration(const HANDLE hSimConnect) HRESULT CSimConnectDataDefinition::initGearHandlePosition(const HANDLE hSimConnect)
{ {
HRESULT hr = S_OK; HRESULT hr = S_OK;
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, "GEAR CENTER POSITION", "Percent Over 100"); hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataDefinitionGearHandlePosition, "GEAR HANDLE POSITION", "BOOL", SIMCONNECT_DATATYPE_INT32);
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, "GEAR LEFT POSITION", "Percent Over 100");
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, "GEAR RIGHT POSITION", "Percent Over 100");
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, "GEAR TAIL POSITION", "Percent Over 100");
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, "GEAR AUX POSITION", "Percent Over 100");
return hr; return hr;
} }
} }

View File

@@ -6,6 +6,8 @@
#ifndef BLACKSIMPLUGIN_FSX_SIMCONNECT_DATADEFINITION_H #ifndef BLACKSIMPLUGIN_FSX_SIMCONNECT_DATADEFINITION_H
#define BLACKSIMPLUGIN_FSX_SIMCONNECT_DATADEFINITION_H #define BLACKSIMPLUGIN_FSX_SIMCONNECT_DATADEFINITION_H
#include <QtGlobal>
#ifndef NOMINMAX #ifndef NOMINMAX
#define NOMINMAX #define NOMINMAX
#endif #endif
@@ -41,13 +43,9 @@ namespace BlackSimPlugin
}; };
//! \brief Data struct of aircraft position //! \brief Data struct of aircraft position
struct DataDefinitionAircraftConfiguration struct DataDefinitionGearHandlePosition
{ {
double gearCenter; //!< Gear center qint32 gearHandlePosition; //!< Bool, 1 if gear handle is applied otherwise 0
double gearLeft; //!< Gear left
double gearRight; //!< Gear right
double gearTail; //!< Gear tail
double gearAux; //!< Gear aux
}; };
//! \brief Handles SimConnect data definitions //! \brief Handles SimConnect data definitions
@@ -59,7 +57,7 @@ namespace BlackSimPlugin
enum DataDefiniton { enum DataDefiniton {
DataOwnAircraft, DataOwnAircraft,
DataDefinitionRemoteAircraftSituation, DataDefinitionRemoteAircraftSituation,
DataAircraftConfiguration DataDefinitionGearHandlePosition
}; };
//! \brief SimConnect request ID's //! \brief SimConnect request ID's
@@ -96,7 +94,7 @@ namespace BlackSimPlugin
* \param hSimConnect * \param hSimConnect
* \return * \return
*/ */
static HRESULT initAircraftConfiguration(const HANDLE hSimConnect); static HRESULT initGearHandlePosition(const HANDLE hSimConnect);
}; };
} }
} }

View File

@@ -293,13 +293,10 @@ namespace BlackSimPlugin
SimConnect_TransmitClientEvent(m_hSimConnect, objectID, EVENT_FREEZEATT, 1, SimConnect_TransmitClientEvent(m_hSimConnect, objectID, EVENT_FREEZEATT, 1,
SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY); SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
DataDefinitionAircraftConfiguration configuration; DataDefinitionGearHandlePosition gearHandle;
configuration.gearCenter = 100.0; gearHandle.gearHandlePosition = 1;
configuration.gearLeft = 100.0;
configuration.gearRight = 100.0; SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataDefinitionGearHandlePosition, objectID, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(gearHandle), &gearHandle);
configuration.gearTail = 100.0;
configuration.gearAux = 100.0;
SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, objectID, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(DataDefinitionAircraftConfiguration), &configuration);
SimConnectObject simObject; SimConnectObject simObject;
foreach(simObject, m_simConnectObjects) foreach(simObject, m_simConnectObjects)
@@ -364,19 +361,16 @@ namespace BlackSimPlugin
DataDefinitionRemoteAircraftSituation ddAircraftSituation; DataDefinitionRemoteAircraftSituation ddAircraftSituation;
ddAircraftSituation.position = position; ddAircraftSituation.position = position;
DataDefinitionAircraftConfiguration configuration;
configuration.gearCenter = 100.0; DataDefinitionGearHandlePosition gearHandle;
configuration.gearLeft = 100.0; gearHandle.gearHandlePosition = 1;
configuration.gearRight = 100.0;
configuration.gearTail = 100.0;
configuration.gearAux = 100.0;
if (simObj.m_objectId != 0) if (simObj.m_objectId != 0)
{ {
SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataDefinitionRemoteAircraftSituation, simObj.m_objectId, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(ddAircraftSituation), &ddAircraftSituation); SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataDefinitionRemoteAircraftSituation, simObj.m_objectId, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(ddAircraftSituation), &ddAircraftSituation);
// With the following SimConnect call all aircrafts loose their red tag. No idea why though. // With the following SimConnect call all aircrafts loose their red tag. No idea why though.
SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, simObj.m_objectId, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(DataDefinitionAircraftConfiguration), &configuration); SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataDefinitionGearHandlePosition, simObj.m_objectId, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(gearHandle), &gearHandle);
} }
} }
} }