mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 04:25:35 +08:00
Setup SimConnect data structure and requests for user
aircraft title refs #235
This commit is contained in:
@@ -39,6 +39,7 @@ namespace BlackSimPlugin
|
|||||||
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataOwnAircraft, "COM ACTIVE FREQUENCY:2", "MHz");
|
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataOwnAircraft, "COM ACTIVE FREQUENCY:2", "MHz");
|
||||||
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataOwnAircraft, "COM STANDBY FREQUENCY:1", "MHz");
|
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataOwnAircraft, "COM STANDBY FREQUENCY:1", "MHz");
|
||||||
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataOwnAircraft, "COM STANDBY FREQUENCY:2", "MHz");
|
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataOwnAircraft, "COM STANDBY FREQUENCY:2", "MHz");
|
||||||
|
hr = SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDataDefinition::DataOwnAircraftTitle, "TITLE", NULL, SIMCONNECT_DATATYPE_STRING256);
|
||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,12 @@ namespace BlackSimPlugin
|
|||||||
double com2StandbyMHz; //!< COM1 standby frequency
|
double com2StandbyMHz; //!< COM1 standby frequency
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//! Data struct of aircraft position
|
||||||
|
struct DataDefinitionOwnAircraftModel
|
||||||
|
{
|
||||||
|
char title[256]; //!< Aircraft model string
|
||||||
|
};
|
||||||
|
|
||||||
//! Data struct of aircraft position
|
//! Data struct of aircraft position
|
||||||
struct DataDefinitionRemoteAircraftSituation
|
struct DataDefinitionRemoteAircraftSituation
|
||||||
{
|
{
|
||||||
@@ -59,6 +65,7 @@ namespace BlackSimPlugin
|
|||||||
enum DataDefiniton
|
enum DataDefiniton
|
||||||
{
|
{
|
||||||
DataOwnAircraft,
|
DataOwnAircraft,
|
||||||
|
DataOwnAircraftTitle,
|
||||||
DataDefinitionRemoteAircraftSituation,
|
DataDefinitionRemoteAircraftSituation,
|
||||||
DataDefinitionGearHandlePosition
|
DataDefinitionGearHandlePosition
|
||||||
};
|
};
|
||||||
@@ -66,8 +73,9 @@ namespace BlackSimPlugin
|
|||||||
//! SimConnect request IDs
|
//! SimConnect request IDs
|
||||||
enum Requests
|
enum Requests
|
||||||
{
|
{
|
||||||
RequestOwnAircraft = 1000,
|
RequestOwnAircraft,
|
||||||
RequestRemoveAircraft = 2000
|
RequestRemoveAircraft,
|
||||||
|
RequestOwnAircraftTitle
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Constructor
|
//! Constructor
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ using namespace BlackMisc;
|
|||||||
using namespace BlackMisc::Aviation;
|
using namespace BlackMisc::Aviation;
|
||||||
using namespace BlackMisc::PhysicalQuantities;
|
using namespace BlackMisc::PhysicalQuantities;
|
||||||
using namespace BlackMisc::Geo;
|
using namespace BlackMisc::Geo;
|
||||||
|
using namespace BlackMisc::Network;
|
||||||
using namespace BlackSim;
|
using namespace BlackSim;
|
||||||
using namespace BlackSim::FsCommon;
|
using namespace BlackSim::FsCommon;
|
||||||
using namespace BlackSim::Fsx;
|
using namespace BlackSim::Fsx;
|
||||||
@@ -337,6 +338,11 @@ namespace BlackSimPlugin
|
|||||||
ownAircaft = (DataDefinitionOwnAircraft *)&pObjData->dwData;
|
ownAircaft = (DataDefinitionOwnAircraft *)&pObjData->dwData;
|
||||||
simulatorFsx->updateOwnAircraftFromSim(*ownAircaft);
|
simulatorFsx->updateOwnAircraftFromSim(*ownAircaft);
|
||||||
break;
|
break;
|
||||||
|
case CSimConnectDataDefinition::RequestOwnAircraftTitle:
|
||||||
|
DataDefinitionOwnAircraftModel *dataDefinitionModel = (DataDefinitionOwnAircraftModel *) &pObjData->dwData;
|
||||||
|
CAircraftModel model;
|
||||||
|
model.setQueriedModelString(dataDefinitionModel->title);
|
||||||
|
simulatorFsx->setAircraftModel(model);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -350,6 +356,13 @@ namespace BlackSimPlugin
|
|||||||
SimConnect_RequestDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::RequestOwnAircraft,
|
SimConnect_RequestDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::RequestOwnAircraft,
|
||||||
CSimConnectDataDefinition::DataOwnAircraft,
|
CSimConnectDataDefinition::DataOwnAircraft,
|
||||||
SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME);
|
SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME);
|
||||||
|
|
||||||
|
|
||||||
|
SimConnect_RequestDataOnSimObject(m_hSimConnect, CSimConnectDataDefinition::RequestOwnAircraftTitle,
|
||||||
|
CSimConnectDataDefinition::DataOwnAircraftTitle,
|
||||||
|
SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_SECOND,
|
||||||
|
SIMCONNECT_DATA_REQUEST_FLAG_CHANGED);
|
||||||
|
|
||||||
emit simulatorStarted();
|
emit simulatorStarted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#include "blackcore/interpolator_linear.h"
|
#include "blackcore/interpolator_linear.h"
|
||||||
#include "blackmisc/avaircraft.h"
|
#include "blackmisc/avaircraft.h"
|
||||||
#include "blackmisc/statusmessage.h"
|
#include "blackmisc/statusmessage.h"
|
||||||
|
#include "blackmisc/nwaircraftmodel.h"
|
||||||
#include "blacksim/simulatorinfo.h"
|
#include "blacksim/simulatorinfo.h"
|
||||||
|
|
||||||
#include <simconnect/SimConnect.h>
|
#include <simconnect/SimConnect.h>
|
||||||
@@ -137,6 +138,9 @@ namespace BlackSimPlugin
|
|||||||
//! \private
|
//! \private
|
||||||
void onSimExit();
|
void onSimExit();
|
||||||
|
|
||||||
|
//! \private
|
||||||
|
void setAircraftModel( const BlackMisc::Network::CAircraftModel &model) { m_aircraftModel = model; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//! Timer event
|
//! Timer event
|
||||||
virtual void timerEvent(QTimerEvent *event);
|
virtual void timerEvent(QTimerEvent *event);
|
||||||
@@ -172,6 +176,8 @@ namespace BlackSimPlugin
|
|||||||
BlackSim::CSimulatorInfo m_simulatorInfo;
|
BlackSim::CSimulatorInfo m_simulatorInfo;
|
||||||
BlackMisc::Aviation::CAircraft m_ownAircraft; //!< Object representing our own aircraft from simulator
|
BlackMisc::Aviation::CAircraft m_ownAircraft; //!< Object representing our own aircraft from simulator
|
||||||
QHash<BlackMisc::Aviation::CCallsign, CSimConnectObject> m_simConnectObjects;
|
QHash<BlackMisc::Aviation::CCallsign, CSimConnectObject> m_simConnectObjects;
|
||||||
|
BlackMisc::Network::CAircraftModel m_aircraftModel;
|
||||||
|
|
||||||
int m_simconnectTimerId;
|
int m_simconnectTimerId;
|
||||||
int m_skipCockpitUpdateCycles; //!< Skip some update cycles to allow changes in simulator cockpit to be set
|
int m_skipCockpitUpdateCycles; //!< Skip some update cycles to allow changes in simulator cockpit to be set
|
||||||
QFutureWatcher<bool> m_watcherConnect;
|
QFutureWatcher<bool> m_watcherConnect;
|
||||||
|
|||||||
Reference in New Issue
Block a user