refs #873, own data definition for lights

(as events will be used)
This commit is contained in:
Klaus Basan
2017-01-31 05:10:24 +01:00
committed by Mathew Sutcliffe
parent 36fb62a6fe
commit 9c2682f386
2 changed files with 32 additions and 18 deletions

View File

@@ -12,6 +12,7 @@
#include <tuple> #include <tuple>
using namespace BlackMisc; using namespace BlackMisc;
using namespace BlackMisc::Aviation;
namespace BlackSimPlugin namespace BlackSimPlugin
{ {
@@ -81,14 +82,6 @@ namespace BlackSimPlugin
// Hint: "Bool" and "Percent .." are units name // Hint: "Bool" and "Percent .." are units name
// default data type is SIMCONNECT_DATATYPE_FLOAT64 -> double // default data type is SIMCONNECT_DATATYPE_FLOAT64 -> double
// Lights
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "LIGHT STROBE", "Bool");
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "LIGHT LANDING", "Bool");
// hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "LIGHT TAXI", "Bool");
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "LIGHT BEACON", "Bool");
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "LIGHT NAV", "Bool");
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "LIGHT LOGO", "Bool");
// Flaps // Flaps
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "LEADING EDGE FLAPS LEFT PERCENT", "Percent Over 100"); hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "LEADING EDGE FLAPS LEFT PERCENT", "Percent Over 100");
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "LEADING EDGE FLAPS RIGHT PERCENT", "Percent Over 100"); hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "LEADING EDGE FLAPS RIGHT PERCENT", "Percent Over 100");
@@ -105,6 +98,14 @@ namespace BlackSimPlugin
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "GENERAL ENG COMBUSTION:3", "Bool"); hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "GENERAL ENG COMBUSTION:3", "Bool");
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "GENERAL ENG COMBUSTION:4", "Bool"); hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftParts, "GENERAL ENG COMBUSTION:4", "Bool");
// Lights (other definition)
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftLights, "LIGHT STROBE", "Bool");
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftLights, "LIGHT LANDING", "Bool");
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftLights, "LIGHT TAXI", "Bool");
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftLights, "LIGHT BEACON", "Bool");
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftLights, "LIGHT NAV", "Bool");
hr += SimConnect_AddToDataDefinition(hSimConnect, CSimConnectDefinitions::DataRemoteAircraftLights, "LIGHT LOGO", "Bool");
if (hr != S_OK) if (hr != S_OK)
{ {
CLogMessage(static_cast<CSimConnectDefinitions *>(nullptr)).error("SimConnect error: initRemoteAircraftSituation %1") << hr; CLogMessage(static_cast<CSimConnectDefinitions *>(nullptr)).error("SimConnect error: initRemoteAircraftSituation %1") << hr;
@@ -182,14 +183,17 @@ namespace BlackSimPlugin
bool DataDefinitionRemoteAircraftParts::operator==(const DataDefinitionRemoteAircraftParts &rhs) const bool DataDefinitionRemoteAircraftParts::operator==(const DataDefinitionRemoteAircraftParts &rhs) const
{ {
return std::tie(lightBeacon, lightLanding, lightLogo, lightNav, lightStrobe, return std::tie(flapsLeadingEdgeLeftPercent, flapsLeadingEdgeRightPercent, flapsTrailingEdgeLeftPercent, flapsTrailingEdgeRightPercent,
flapsLeadingEdgeLeftPercent, flapsLeadingEdgeRightPercent, flapsTrailingEdgeLeftPercent, flapsTrailingEdgeRightPercent,
gearHandlePosition, spoilersHandlePosition, gearHandlePosition, spoilersHandlePosition,
engine1Combustion, engine2Combustion, engine3Combustion, engine4Combustion) == engine1Combustion, engine2Combustion, engine3Combustion, engine4Combustion) ==
std::tie(rhs.lightBeacon, rhs.lightLanding, rhs.lightLogo, rhs.lightNav, rhs.lightStrobe, std::tie(rhs.flapsLeadingEdgeLeftPercent, rhs.flapsLeadingEdgeRightPercent, rhs.flapsTrailingEdgeLeftPercent, rhs.flapsTrailingEdgeRightPercent,
rhs.flapsLeadingEdgeLeftPercent, rhs.flapsLeadingEdgeRightPercent, rhs.flapsTrailingEdgeLeftPercent, rhs.flapsTrailingEdgeRightPercent,
rhs.gearHandlePosition, rhs.spoilersHandlePosition, rhs.gearHandlePosition, rhs.spoilersHandlePosition,
rhs.engine1Combustion, rhs.engine2Combustion, rhs.engine3Combustion, rhs.engine4Combustion); rhs.engine1Combustion, rhs.engine2Combustion, rhs.engine3Combustion, rhs.engine4Combustion);
} }
CAircraftLights DataDefinitionRemoteAircraftLights::toLights() const
{
return CAircraftLights(lightStrobe, lightLanding, lightTaxi, lightBeacon, lightNav, lightLogo);
}
} // namespace } // namespace
} // namespace } // namespace

View File

@@ -17,6 +17,7 @@
#ifndef NOMINMAX #ifndef NOMINMAX
#define NOMINMAX #define NOMINMAX
#endif #endif
#include "blackmisc/aviation/aircraftlights.h"
#include <simconnect/SimConnect.h> #include <simconnect/SimConnect.h>
#include <windows.h> #include <windows.h>
#include <algorithm> #include <algorithm>
@@ -76,12 +77,6 @@ namespace BlackSimPlugin
//! Data struct of remote aircraft parts //! Data struct of remote aircraft parts
struct DataDefinitionRemoteAircraftParts struct DataDefinitionRemoteAircraftParts
{ {
double lightStrobe; //!< Is strobe light on?
double lightLanding; //!< Is landing light on?
// double lightTaxi; //!< Is taxi light on?
double lightBeacon; //!< Is beacon light on?
double lightNav; //!< Is nav light on?
double lightLogo; //!< Is logo light on?
double flapsLeadingEdgeLeftPercent; //!< Leading edge left in percent double flapsLeadingEdgeLeftPercent; //!< Leading edge left in percent
double flapsLeadingEdgeRightPercent; //!< Leading edge right in percent double flapsLeadingEdgeRightPercent; //!< Leading edge right in percent
double flapsTrailingEdgeLeftPercent; //!< Trailing edge left in percent double flapsTrailingEdgeLeftPercent; //!< Trailing edge left in percent
@@ -97,6 +92,20 @@ namespace BlackSimPlugin
bool operator==(const DataDefinitionRemoteAircraftParts &rhs) const; bool operator==(const DataDefinitionRemoteAircraftParts &rhs) const;
}; };
//! Data for aircraft lighs
struct DataDefinitionRemoteAircraftLights
{
double lightStrobe; //!< Is strobe light on?
double lightLanding; //!< Is landing light on?
double lightTaxi; //!< Is taxi light on?
double lightBeacon; //!< Is beacon light on?
double lightNav; //!< Is nav light on?
double lightLogo; //!< Is logo light on?
//! Convert to lights
BlackMisc::Aviation::CAircraftLights toLights() const;
};
//! Data for AI object sent back from simulator //! Data for AI object sent back from simulator
struct DataDefinitionRemoteAircraftSimData struct DataDefinitionRemoteAircraftSimData
{ {
@@ -158,6 +167,7 @@ namespace BlackSimPlugin
{ {
DataOwnAircraft, DataOwnAircraft,
DataOwnAircraftTitle, DataOwnAircraftTitle,
DataRemoteAircraftLights,
DataRemoteAircraftParts, DataRemoteAircraftParts,
DataRemoteAircraftPosition, DataRemoteAircraftPosition,
DataRemoteAircraftSimData, DataRemoteAircraftSimData,