mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 11:55:35 +08:00
committed by
Roland Winklmeier
parent
7c890c51d8
commit
e42cbbe834
@@ -19,7 +19,7 @@ namespace BlackSimPlugin
|
||||
HRESULT hr = S_OK;
|
||||
hr = initOwnAircraft(hSimConnect);
|
||||
hr = initRemoteAircraftSituation(hSimConnect);
|
||||
hr = initAircraftConfiguration(hSimConnect);
|
||||
hr = initGearHandlePosition(hSimConnect);
|
||||
return hr;
|
||||
}
|
||||
|
||||
@@ -50,14 +50,10 @@ namespace BlackSimPlugin
|
||||
return hr;
|
||||
}
|
||||
|
||||
HRESULT CSimConnectDataDefinition::initAircraftConfiguration(const HANDLE hSimConnect)
|
||||
HRESULT CSimConnectDataDefinition::initGearHandlePosition(const HANDLE hSimConnect)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, "GEAR CENTER POSITION", "Percent Over 100");
|
||||
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");
|
||||
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataDefinitionGearHandlePosition, "GEAR HANDLE POSITION", "BOOL", SIMCONNECT_DATATYPE_INT32);
|
||||
return hr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#ifndef BLACKSIMPLUGIN_FSX_SIMCONNECT_DATADEFINITION_H
|
||||
#define BLACKSIMPLUGIN_FSX_SIMCONNECT_DATADEFINITION_H
|
||||
|
||||
#include <QtGlobal>
|
||||
|
||||
#ifndef NOMINMAX
|
||||
#define NOMINMAX
|
||||
#endif
|
||||
@@ -41,13 +43,9 @@ namespace BlackSimPlugin
|
||||
};
|
||||
|
||||
//! \brief Data struct of aircraft position
|
||||
struct DataDefinitionAircraftConfiguration
|
||||
struct DataDefinitionGearHandlePosition
|
||||
{
|
||||
double gearCenter; //!< Gear center
|
||||
double gearLeft; //!< Gear left
|
||||
double gearRight; //!< Gear right
|
||||
double gearTail; //!< Gear tail
|
||||
double gearAux; //!< Gear aux
|
||||
qint32 gearHandlePosition; //!< Bool, 1 if gear handle is applied otherwise 0
|
||||
};
|
||||
|
||||
//! \brief Handles SimConnect data definitions
|
||||
@@ -59,7 +57,7 @@ namespace BlackSimPlugin
|
||||
enum DataDefiniton {
|
||||
DataOwnAircraft,
|
||||
DataDefinitionRemoteAircraftSituation,
|
||||
DataAircraftConfiguration
|
||||
DataDefinitionGearHandlePosition
|
||||
};
|
||||
|
||||
//! \brief SimConnect request ID's
|
||||
@@ -96,7 +94,7 @@ namespace BlackSimPlugin
|
||||
* \param hSimConnect
|
||||
* \return
|
||||
*/
|
||||
static HRESULT initAircraftConfiguration(const HANDLE hSimConnect);
|
||||
static HRESULT initGearHandlePosition(const HANDLE hSimConnect);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -293,13 +293,10 @@ namespace BlackSimPlugin
|
||||
SimConnect_TransmitClientEvent(m_hSimConnect, objectID, EVENT_FREEZEATT, 1,
|
||||
SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
|
||||
|
||||
DataDefinitionAircraftConfiguration configuration;
|
||||
configuration.gearCenter = 100.0;
|
||||
configuration.gearLeft = 100.0;
|
||||
configuration.gearRight = 100.0;
|
||||
configuration.gearTail = 100.0;
|
||||
configuration.gearAux = 100.0;
|
||||
SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataAircraftConfiguration, objectID, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(DataDefinitionAircraftConfiguration), &configuration);
|
||||
DataDefinitionGearHandlePosition gearHandle;
|
||||
gearHandle.gearHandlePosition = 1;
|
||||
|
||||
SimConnect_SetDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::DataDefinitionGearHandlePosition, objectID, SIMCONNECT_DATA_SET_FLAG_DEFAULT, 0, sizeof(gearHandle), &gearHandle);
|
||||
|
||||
SimConnectObject simObject;
|
||||
foreach(simObject, m_simConnectObjects)
|
||||
@@ -364,19 +361,16 @@ namespace BlackSimPlugin
|
||||
|
||||
DataDefinitionRemoteAircraftSituation ddAircraftSituation;
|
||||
ddAircraftSituation.position = position;
|
||||
DataDefinitionAircraftConfiguration configuration;
|
||||
configuration.gearCenter = 100.0;
|
||||
configuration.gearLeft = 100.0;
|
||||
configuration.gearRight = 100.0;
|
||||
configuration.gearTail = 100.0;
|
||||
configuration.gearAux = 100.0;
|
||||
|
||||
DataDefinitionGearHandlePosition gearHandle;
|
||||
gearHandle.gearHandlePosition = 1;
|
||||
|
||||
if (simObj.m_objectId != 0)
|
||||
{
|
||||
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.
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user