Bits and Droids connector
Connect your microcontroller to handle MFS2020 commands.
Loading...
Searching...
No Matches
Signals | Public Member Functions | Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
InputSwitchHandler Class Reference

The InputSwitchHandler class is responsible for handling the input commands. The input commands are sent from the MFSWorker class. It uses the received prefix from a microncontroller over serial port to determine which input command to handle. More...

#include <InputSwitchHandler.h>

Inheritance diagram for InputSwitchHandler:

Signals

void logMessage (std::string message, LogLevel level)
 

Public Member Functions

 InputSwitchHandler ()
 
 InputSwitchHandler (std::map< int, Input > inputs, HANDLE connect)
 
void switchHandling (const char *stringToParse)
 this function triggers the appropriate input handling function Depending on the incomming string this function will parse and fire the appropriate input function. Input types are determined in the Input.json file. Types are defined in the InputTypeEnum. More...
 
void setRanges ()
 
void setCurve (QList< coordinates > curve, CurveTypeEnum curveType)
 

Public Attributes

HANDLE connect
 
SIMCONNECT_OBJECT_ID object
 
std::array< Axis *, constants::supportedEnginesenginelist
 
float reverseAxis = -23000.0
 

Private Member Functions

void setEngineValues (std::string stringToSet)
 
void setMixtureValues (std::string stringToSet)
 
void set_prop_values (std::string stringToSet)
 
int setComs (const std::string &stringToSet, int comNo) const
 
void sendBasicCommandOn (SIMCONNECT_CLIENT_EVENT_ID eventID) const
 
void sendBasicCommandOff (SIMCONNECT_CLIENT_EVENT_ID eventID) const
 
void setElevatorTrim (std::string stringToSet)
 
void setFlaps (std::string stringToSet)
 
void setRudder (std::string stringToSet)
 
void setBrakeAxis (std::string stringToSet)
 
void sendBasicCommandValue (SIMCONNECT_CLIENT_EVENT_ID eventID, int value)
 
void controlYoke (std::string stringToSet)
 
void sendBasicCommand (SIMCONNECT_CLIENT_EVENT_ID eventID, const std::string &stringToSet)
 
void sendWASMCommand (int prefix, int value) const
 
void setAxisValue (Axis *axis)
 
void mapEngineValueToAxis (Engine *engine) const
 
void mapInputs ()
 
void mapValueToAxis (Axis *axis) const
 

Static Private Member Functions

static int mapCoordinates (int value, coordinates toMapMin, coordinates toMapMax)
 
static vector< int > cutInputs (int amountOfPartsNeeded, std::string stringToSet)
 
static void calibratedRange (CurveAxis *curveAxis)
 

Private Attributes

float closedAxis = -16383.0
 
float openAxis = 16383.0
 
std::map< int, Inputinputs
 
std::string prefix
 
SettingsHandler settingsHandler
 
Axis elevatorTrimAxis = Axis(0, 1023, InputEnum::DEFINITION_ELEVATOR_TRIM_SET)
 
Axis mixtureRanges [constants::supportedMixtureLevers]
 
Axis propellerRanges [constants::supportedPropellerLevers]
 
Axis flapsRange
 
QStringList curveStrings = {"Rudder", "Toe brakes", "Aileron", "Elevator"}
 
CurveAxis rudderAxis = CurveAxis(InputEnum::DEFINITION_AXIS_RUDDER_SET)
 
CurveAxis leftBrakeAxis = CurveAxis(InputEnum::DEFINITION_AXIS_LEFT_BRAKE_SET)
 
CurveAxis rightBrakeAxis = CurveAxis(InputEnum::DEFINITION_AXIS_RIGHT_BRAKE_SET)
 
CurveAxis brakeAxis [2] = {leftBrakeAxis, rightBrakeAxis}
 
CurveAxis aileronAxis = CurveAxis(InputEnum::DEFINITION_AXIS_AILERONS_SET)
 
CurveAxis elevatorAxis = CurveAxis(InputEnum::DEFINITION_AXIS_ELEVATOR_SET)
 

Detailed Description

The InputSwitchHandler class is responsible for handling the input commands. The input commands are sent from the MFSWorker class. It uses the received prefix from a microncontroller over serial port to determine which input command to handle.

Constructor & Destructor Documentation

◆ InputSwitchHandler() [1/2]

InputSwitchHandler::InputSwitchHandler ( )

◆ InputSwitchHandler() [2/2]

InputSwitchHandler::InputSwitchHandler ( std::map< int, Input inputs,
HANDLE  connect 
)

Member Function Documentation

◆ calibratedRange()

void InputSwitchHandler::calibratedRange ( CurveAxis curveAxis)
staticprivate

◆ controlYoke()

void InputSwitchHandler::controlYoke ( std::string  stringToSet)
private

◆ cutInputs()

std::vector< int > InputSwitchHandler::cutInputs ( int  amountOfPartsNeeded,
std::string  stringToSet 
)
staticprivate

◆ logMessage

void InputSwitchHandler::logMessage ( std::string  message,
LogLevel  level 
)
signal

◆ mapCoordinates()

int InputSwitchHandler::mapCoordinates ( int  value,
coordinates  toMapMin,
coordinates  toMapMax 
)
staticprivate

◆ mapEngineValueToAxis()

void InputSwitchHandler::mapEngineValueToAxis ( Engine engine) const
private

◆ mapInputs()

void InputSwitchHandler::mapInputs ( )
private

◆ mapValueToAxis()

void InputSwitchHandler::mapValueToAxis ( Axis axis) const
private

◆ sendBasicCommand()

void InputSwitchHandler::sendBasicCommand ( SIMCONNECT_CLIENT_EVENT_ID  eventID,
const std::string &  stringToSet 
)
private

◆ sendBasicCommandOff()

void InputSwitchHandler::sendBasicCommandOff ( SIMCONNECT_CLIENT_EVENT_ID  eventID) const
private

◆ sendBasicCommandOn()

void InputSwitchHandler::sendBasicCommandOn ( SIMCONNECT_CLIENT_EVENT_ID  eventID) const
private

◆ sendBasicCommandValue()

void InputSwitchHandler::sendBasicCommandValue ( SIMCONNECT_CLIENT_EVENT_ID  eventID,
int  value 
)
private

◆ sendWASMCommand()

void InputSwitchHandler::sendWASMCommand ( int  prefix,
int  value 
) const
private

◆ set_prop_values()

void InputSwitchHandler::set_prop_values ( std::string  stringToSet)
private

◆ setAxisValue()

void InputSwitchHandler::setAxisValue ( Axis axis)
private

◆ setBrakeAxis()

void InputSwitchHandler::setBrakeAxis ( std::string  stringToSet)
private

◆ setComs()

int InputSwitchHandler::setComs ( const std::string &  stringToSet,
int  comNo 
) const
private

◆ setCurve()

void InputSwitchHandler::setCurve ( QList< coordinates curve,
CurveTypeEnum  curveType 
)

◆ setElevatorTrim()

void InputSwitchHandler::setElevatorTrim ( std::string  stringToSet)
private

◆ setEngineValues()

void InputSwitchHandler::setEngineValues ( std::string  stringToSet)
private

◆ setFlaps()

void InputSwitchHandler::setFlaps ( std::string  stringToSet)
private

◆ setMixtureValues()

void InputSwitchHandler::setMixtureValues ( std::string  stringToSet)
private

◆ setRanges()

void InputSwitchHandler::setRanges ( )

◆ setRudder()

void InputSwitchHandler::setRudder ( std::string  stringToSet)
private

◆ switchHandling()

void InputSwitchHandler::switchHandling ( const char *  stringToParse)

this function triggers the appropriate input handling function Depending on the incomming string this function will parse and fire the appropriate input function. Input types are determined in the Input.json file. Types are defined in the InputTypeEnum.

See also
InputTypeEnum
Parameters
stringToParsethe string that has been sent by a microcontroller

Member Data Documentation

◆ aileronAxis

CurveAxis InputSwitchHandler::aileronAxis = CurveAxis(InputEnum::DEFINITION_AXIS_AILERONS_SET)
private

◆ brakeAxis

CurveAxis InputSwitchHandler::brakeAxis[2] = {leftBrakeAxis, rightBrakeAxis}
private

◆ closedAxis

float InputSwitchHandler::closedAxis = -16383.0
private

◆ connect

HANDLE InputSwitchHandler::connect

◆ curveStrings

QStringList InputSwitchHandler::curveStrings = {"Rudder", "Toe brakes", "Aileron", "Elevator"}
private

◆ elevatorAxis

CurveAxis InputSwitchHandler::elevatorAxis = CurveAxis(InputEnum::DEFINITION_AXIS_ELEVATOR_SET)
private

◆ elevatorTrimAxis

Axis InputSwitchHandler::elevatorTrimAxis = Axis(0, 1023, InputEnum::DEFINITION_ELEVATOR_TRIM_SET)
private

◆ enginelist

std::array<Axis *, constants::supportedEngines> InputSwitchHandler::enginelist

◆ flapsRange

Axis InputSwitchHandler::flapsRange
private

◆ inputs

std::map<int, Input> InputSwitchHandler::inputs
private

◆ leftBrakeAxis

CurveAxis InputSwitchHandler::leftBrakeAxis = CurveAxis(InputEnum::DEFINITION_AXIS_LEFT_BRAKE_SET)
private

◆ mixtureRanges

Axis InputSwitchHandler::mixtureRanges[constants::supportedMixtureLevers]
private

◆ object

SIMCONNECT_OBJECT_ID InputSwitchHandler::object

◆ openAxis

float InputSwitchHandler::openAxis = 16383.0
private

◆ prefix

std::string InputSwitchHandler::prefix
private

◆ propellerRanges

Axis InputSwitchHandler::propellerRanges[constants::supportedPropellerLevers]
private

◆ reverseAxis

float InputSwitchHandler::reverseAxis = -23000.0

◆ rightBrakeAxis

CurveAxis InputSwitchHandler::rightBrakeAxis = CurveAxis(InputEnum::DEFINITION_AXIS_RIGHT_BRAKE_SET)
private

◆ rudderAxis

CurveAxis InputSwitchHandler::rudderAxis = CurveAxis(InputEnum::DEFINITION_AXIS_RUDDER_SET)
private

◆ settingsHandler

SettingsHandler InputSwitchHandler::settingsHandler
private

The documentation for this class was generated from the following files: