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