mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-12 15:25:34 +08:00
Issue #97 Read aircraft velocity and rotation from SimConnect
This commit is contained in:
committed by
Mat Sutcliffe
parent
23eb283c19
commit
bdacb59b61
@@ -130,6 +130,12 @@ namespace BlackSimPlugin::FsxCommon
|
|||||||
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "GENERAL ENG COMBUSTION:2", "Bool");
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "GENERAL ENG COMBUSTION:2", "Bool");
|
||||||
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "GENERAL ENG COMBUSTION:3", "Bool");
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "GENERAL ENG COMBUSTION:3", "Bool");
|
||||||
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "GENERAL ENG COMBUSTION:4", "Bool");
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "GENERAL ENG COMBUSTION:4", "Bool");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "VELOCITY WORLD X", "Feet per second");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "VELOCITY WORLD Y", "Feet per second");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "VELOCITY WORLD Z", "Feet per second");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "ROTATION VELOCITY BODY X", "Radians per second");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "ROTATION VELOCITY BODY Y", "Radians per second");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "ROTATION VELOCITY BODY Z", "Radians per second");
|
||||||
|
|
||||||
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraftTitle, "TITLE", nullptr, SIMCONNECT_DATATYPE_STRING256);
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraftTitle, "TITLE", nullptr, SIMCONNECT_DATATYPE_STRING256);
|
||||||
if (isFailure(hr))
|
if (isFailure(hr))
|
||||||
|
|||||||
@@ -70,6 +70,13 @@ namespace BlackSimPlugin::FsxCommon
|
|||||||
double engine3Combustion; //!< Engine 3 combustion flag
|
double engine3Combustion; //!< Engine 3 combustion flag
|
||||||
double engine4Combustion; //!< Engine 4 combustion flag
|
double engine4Combustion; //!< Engine 4 combustion flag
|
||||||
// 38
|
// 38
|
||||||
|
double velocityWorldX; //!< Velocity World X
|
||||||
|
double velocityWorldY; //!< Velocity World Y
|
||||||
|
double velocityWorldZ; //!< Velocity World Z
|
||||||
|
double rotationVelocityBodyX; //!< Rotation Velocity Body X
|
||||||
|
double rotationVelocityBodyY; //!< Rotation Velocity Body Y
|
||||||
|
double rotationVelocityBodyZ; //!< Rotation Velocity Body Z
|
||||||
|
// 44
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Data struct of aircraft position
|
//! Data struct of aircraft position
|
||||||
|
|||||||
@@ -683,6 +683,15 @@ namespace BlackSimPlugin::FsxCommon
|
|||||||
// it is duplicated in parts
|
// it is duplicated in parts
|
||||||
aircraftSituation.setOnGround(dtb(simulatorOwnAircraft.simOnGround) ? CAircraftSituation::OnGround : CAircraftSituation::NotOnGround, CAircraftSituation::OutOnGroundOwnAircraft);
|
aircraftSituation.setOnGround(dtb(simulatorOwnAircraft.simOnGround) ? CAircraftSituation::OnGround : CAircraftSituation::NotOnGround, CAircraftSituation::OutOnGroundOwnAircraft);
|
||||||
|
|
||||||
|
CAircraftVelocity aircraftVelocity(simulatorOwnAircraft.velocityWorldX,
|
||||||
|
simulatorOwnAircraft.velocityWorldY,
|
||||||
|
simulatorOwnAircraft.velocityWorldZ, CSpeedUnit::ft_s(),
|
||||||
|
simulatorOwnAircraft.rotationVelocityBodyX,
|
||||||
|
simulatorOwnAircraft.rotationVelocityBodyZ,
|
||||||
|
simulatorOwnAircraft.rotationVelocityBodyY,
|
||||||
|
CAngleUnit::rad(), CTimeUnit::s());
|
||||||
|
aircraftSituation.setVelocity(aircraftVelocity);
|
||||||
|
|
||||||
const CAircraftLights lights(dtb(simulatorOwnAircraft.lightStrobe), dtb(simulatorOwnAircraft.lightLanding), dtb(simulatorOwnAircraft.lightTaxi),
|
const CAircraftLights lights(dtb(simulatorOwnAircraft.lightStrobe), dtb(simulatorOwnAircraft.lightLanding), dtb(simulatorOwnAircraft.lightTaxi),
|
||||||
dtb(simulatorOwnAircraft.lightBeacon), dtb(simulatorOwnAircraft.lightNav), dtb(simulatorOwnAircraft.lightLogo));
|
dtb(simulatorOwnAircraft.lightBeacon), dtb(simulatorOwnAircraft.lightNav), dtb(simulatorOwnAircraft.lightLogo));
|
||||||
|
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ namespace BlackSimPlugin::FsxCommon
|
|||||||
{
|
{
|
||||||
case CSimConnectDefinitions::RequestOwnAircraft:
|
case CSimConnectDefinitions::RequestOwnAircraft:
|
||||||
{
|
{
|
||||||
static_assert(sizeof(DataDefinitionOwnAircraft) == 38 * sizeof(double), "DataDefinitionOwnAircraft has an incorrect size.");
|
static_assert(sizeof(DataDefinitionOwnAircraft) == 44 * sizeof(double), "DataDefinitionOwnAircraft has an incorrect size.");
|
||||||
const DataDefinitionOwnAircraft *ownAircaft = reinterpret_cast<const DataDefinitionOwnAircraft *>(&pObjData->dwData);
|
const DataDefinitionOwnAircraft *ownAircaft = reinterpret_cast<const DataDefinitionOwnAircraft *>(&pObjData->dwData);
|
||||||
simulatorFsxP3D->updateOwnAircraftFromSimulator(*ownAircaft);
|
simulatorFsxP3D->updateOwnAircraftFromSimulator(*ownAircaft);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user