mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-05-03 16:25:54 +08:00
Ref T609, set send/receive COM1/2 from P3D/FSK
This commit is contained in:
@@ -87,6 +87,8 @@ namespace BlackSimPlugin
|
|||||||
|
|
||||||
HRESULT CSimConnectDefinitions::initOwnAircraft(const HANDLE hSimConnect)
|
HRESULT CSimConnectDefinitions::initOwnAircraft(const HANDLE hSimConnect)
|
||||||
{
|
{
|
||||||
|
// FSX vars: https://docs.microsoft.com/en-us/previous-versions/microsoft-esp/cc526981(v%3dmsdn.10)
|
||||||
|
// all the VARS here should be FSX/P3D
|
||||||
HRESULT hr = s_ok();
|
HRESULT hr = s_ok();
|
||||||
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "PLANE LATITUDE", "Degrees");
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "PLANE LATITUDE", "Degrees");
|
||||||
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "PLANE LONGITUDE", "Degrees");
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "PLANE LONGITUDE", "Degrees");
|
||||||
@@ -111,6 +113,13 @@ namespace BlackSimPlugin
|
|||||||
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM ACTIVE FREQUENCY:2", "MHz");
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM ACTIVE FREQUENCY:2", "MHz");
|
||||||
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM STANDBY FREQUENCY:1", "MHz");
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM STANDBY FREQUENCY:1", "MHz");
|
||||||
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM STANDBY FREQUENCY:2", "MHz");
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM STANDBY FREQUENCY:2", "MHz");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM TRANSMIT:1", "Bool");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM TRANSMIT:2", "Bool");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM RECEIVE ALL", "Bool");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM TEST:1", "Bool");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM TEST:2", "Bool");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM STATUS:1", "Enum");
|
||||||
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "COM STATUS:2", "Enum");
|
||||||
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "FLAPS HANDLE PERCENT", "Percent Over 100");
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "FLAPS HANDLE PERCENT", "Percent Over 100");
|
||||||
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "SPOILERS HANDLE POSITION", "Percent Over 100");
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "SPOILERS HANDLE POSITION", "Percent Over 100");
|
||||||
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "GEAR HANDLE POSITION", "Bool");
|
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataOwnAircraft, "GEAR HANDLE POSITION", "Bool");
|
||||||
|
|||||||
@@ -53,18 +53,25 @@ namespace BlackSimPlugin
|
|||||||
double com1ActiveMHz; //!< COM1 active frequency
|
double com1ActiveMHz; //!< COM1 active frequency
|
||||||
double com2ActiveMHz; //!< COM2 active frequency
|
double com2ActiveMHz; //!< COM2 active frequency
|
||||||
double com1StandbyMHz; //!< COM1 standby frequency
|
double com1StandbyMHz; //!< COM1 standby frequency
|
||||||
double com2StandbyMHz; //!< COM1 standby frequency
|
double com2StandbyMHz; //!< COM2 standby frequency
|
||||||
// 23
|
double comTransmit1; //!< COM1 transmit, means also receiving
|
||||||
|
double comTransmit2; //!< COM2 transmit, means also receiving
|
||||||
|
double comReceiveAll; //!< all COMs receiving, or COM:x transmitting or receiving
|
||||||
|
double comTest1; //!< COM1 test
|
||||||
|
double comTest2; //!< COM2 test
|
||||||
|
double comStatus1; //!< COM1 status
|
||||||
|
double comStatus2; //!< COM2 status
|
||||||
|
// 30
|
||||||
double flapsHandlePosition; //!< Flaps handle position in percent
|
double flapsHandlePosition; //!< Flaps handle position in percent
|
||||||
double spoilersHandlePosition; //!< Spoilers out? (flag)
|
double spoilersHandlePosition; //!< Spoilers out? (flag)
|
||||||
double gearHandlePosition; //!< Gear handle position (flag)
|
double gearHandlePosition; //!< Gear handle position (flag)
|
||||||
// 26
|
// 33
|
||||||
double numberOfEngines; //!< Number of engines
|
double numberOfEngines; //!< Number of engines
|
||||||
double engine1Combustion; //!< Engine 1 combustion flag
|
double engine1Combustion; //!< Engine 1 combustion flag
|
||||||
double engine2Combustion; //!< Engine 2 combustion flag
|
double engine2Combustion; //!< Engine 2 combustion flag
|
||||||
double engine3Combustion; //!< Engine 3 combustion flag
|
double engine3Combustion; //!< Engine 3 combustion flag
|
||||||
double engine4Combustion; //!< Engine 4 combustion flag
|
double engine4Combustion; //!< Engine 4 combustion flag
|
||||||
//31
|
// 38
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Data struct of aircraft position
|
//! Data struct of aircraft position
|
||||||
|
|||||||
@@ -659,16 +659,32 @@ namespace BlackSimPlugin
|
|||||||
CComSystem com1(myAircraft.getCom1System()); // set defaults
|
CComSystem com1(myAircraft.getCom1System()); // set defaults
|
||||||
CComSystem com2(myAircraft.getCom2System());
|
CComSystem com2(myAircraft.getCom2System());
|
||||||
|
|
||||||
// updates
|
// updates: https://www.fsdeveloper.com/forum/threads/com-unit-receiving-status-com-transmit-x-com-test-1-and-volume.445187/
|
||||||
|
// COM: If you're set to transmit on a unit, you WILL receive that unit.
|
||||||
|
// Otherwise if you're NOT set to transmit on a unit, then it will only receive if COM RECEIVE ALL is true.
|
||||||
|
// There is no control of COM volume.
|
||||||
com1.setFrequencyActive(CFrequency(simulatorOwnAircraft.com1ActiveMHz, CFrequencyUnit::MHz()));
|
com1.setFrequencyActive(CFrequency(simulatorOwnAircraft.com1ActiveMHz, CFrequencyUnit::MHz()));
|
||||||
com1.setFrequencyStandby(CFrequency(simulatorOwnAircraft.com1StandbyMHz, CFrequencyUnit::MHz()));
|
com1.setFrequencyStandby(CFrequency(simulatorOwnAircraft.com1StandbyMHz, CFrequencyUnit::MHz()));
|
||||||
|
const bool comReceiveAll = dtb(simulatorOwnAircraft.comReceiveAll);
|
||||||
|
const bool com1Test = dtb(simulatorOwnAircraft.comTest1);
|
||||||
|
const bool com1Transmit = dtb(simulatorOwnAircraft.comTransmit1);
|
||||||
|
const int com1Status = qRound(simulatorOwnAircraft.comStatus1); // Radio status flag : -1 =Invalid 0 = OK 1 = Does not exist 2 = No electricity 3 = Failed
|
||||||
|
com1.setSendEnabled(com1Status == 0 && com1Transmit);
|
||||||
|
com1.setReceiveEnabled(com1Status == 0 && (comReceiveAll || com1Transmit));
|
||||||
const bool changedCom1 = myAircraft.getCom1System() != com1;
|
const bool changedCom1 = myAircraft.getCom1System() != com1;
|
||||||
m_simCom1 = com1;
|
m_simCom1 = com1;
|
||||||
|
Q_UNUSED(com1Test);
|
||||||
|
|
||||||
com2.setFrequencyActive(CFrequency(simulatorOwnAircraft.com2ActiveMHz, CFrequencyUnit::MHz()));
|
com2.setFrequencyActive(CFrequency(simulatorOwnAircraft.com2ActiveMHz, CFrequencyUnit::MHz()));
|
||||||
com2.setFrequencyStandby(CFrequency(simulatorOwnAircraft.com2StandbyMHz, CFrequencyUnit::MHz()));
|
com2.setFrequencyStandby(CFrequency(simulatorOwnAircraft.com2StandbyMHz, CFrequencyUnit::MHz()));
|
||||||
|
const bool com2Test = dtb(simulatorOwnAircraft.comTest2);
|
||||||
|
const bool com2Transmit = dtb(simulatorOwnAircraft.comTransmit2);
|
||||||
|
const int com2Status = qRound(simulatorOwnAircraft.comStatus2); // Radio status flag : -1 =Invalid 0 = OK 1 = Does not exist 2 = No electricity 3 = Failed
|
||||||
|
com2.setSendEnabled(com2Status == 0 && com2Transmit);
|
||||||
|
com2.setReceiveEnabled(com2Status == 0 && (comReceiveAll || com2Transmit));
|
||||||
const bool changedCom2 = myAircraft.getCom2System() != com2;
|
const bool changedCom2 = myAircraft.getCom2System() != com2;
|
||||||
m_simCom2 = com2;
|
m_simCom2 = com2;
|
||||||
|
Q_UNUSED(com2Test);
|
||||||
|
|
||||||
CTransponder transponder(myAircraft.getTransponder());
|
CTransponder transponder(myAircraft.getTransponder());
|
||||||
transponder.setTransponderCode(qRound(simulatorOwnAircraft.transponderCode));
|
transponder.setTransponderCode(qRound(simulatorOwnAircraft.transponderCode));
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ namespace BlackSimPlugin
|
|||||||
{
|
{
|
||||||
case CSimConnectDefinitions::RequestOwnAircraft:
|
case CSimConnectDefinitions::RequestOwnAircraft:
|
||||||
{
|
{
|
||||||
static_assert(sizeof(DataDefinitionOwnAircraft) == 31 * sizeof(double), "DataDefinitionOwnAircraft has an incorrect size.");
|
static_assert(sizeof(DataDefinitionOwnAircraft) == 38 * 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