|
|
@ -25,7 +25,12 @@ const char* Joystick::_throttleModeSettingsKey = "ThrottleMode"; |
|
|
|
const char* Joystick::_exponentialSettingsKey = "Exponential"; |
|
|
|
const char* Joystick::_exponentialSettingsKey = "Exponential"; |
|
|
|
const char* Joystick::_accumulatorSettingsKey = "Accumulator"; |
|
|
|
const char* Joystick::_accumulatorSettingsKey = "Accumulator"; |
|
|
|
const char* Joystick::_deadbandSettingsKey = "Deadband"; |
|
|
|
const char* Joystick::_deadbandSettingsKey = "Deadband"; |
|
|
|
const char* Joystick::_txModeSettingsKey = "TXMode"; |
|
|
|
const char* Joystick::_txModeSettingsKey = NULL; |
|
|
|
|
|
|
|
const char* Joystick::_fixedWingTXModeSettingsKey = "TXMode_FixedWing"; |
|
|
|
|
|
|
|
const char* Joystick::_multiRotorTXModeSettingsKey = "TXMode_MultiRotor"; |
|
|
|
|
|
|
|
const char* Joystick::_roverTXModeSettingsKey = "TXMode_Rover"; |
|
|
|
|
|
|
|
const char* Joystick::_vtolTXModeSettingsKey = "TXMode_VTOL"; |
|
|
|
|
|
|
|
const char* Joystick::_submarineTXModeSettingsKey = "TXMode_Submarine"; |
|
|
|
|
|
|
|
|
|
|
|
const char* Joystick::_rgFunctionSettingsKey[Joystick::maxFunction] = { |
|
|
|
const char* Joystick::_rgFunctionSettingsKey[Joystick::maxFunction] = { |
|
|
|
"RollAxis", |
|
|
|
"RollAxis", |
|
|
@ -70,6 +75,8 @@ Joystick::Joystick(const QString& name, int axisCount, int buttonCount, int hatC |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_loadSettings(); |
|
|
|
_loadSettings(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
connect(_multiVehicleManager, &MultiVehicleManager::activeVehicleChanged, this, &Joystick::_activeVehicleChanged); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Joystick::~Joystick() |
|
|
|
Joystick::~Joystick() |
|
|
@ -96,9 +103,11 @@ void Joystick::_setDefaultCalibration(void) { |
|
|
|
_rgCalibration[1].reversed = true; |
|
|
|
_rgCalibration[1].reversed = true; |
|
|
|
_rgCalibration[3].reversed = true; |
|
|
|
_rgCalibration[3].reversed = true; |
|
|
|
|
|
|
|
|
|
|
|
for(int function = 0; function < maxFunction; function++) { |
|
|
|
// Default TX Mode 2 axis assignments for gamecontrollers
|
|
|
|
_rgFunctionAxis[function] = function; |
|
|
|
_rgFunctionAxis[rollFunction] = 2; |
|
|
|
} |
|
|
|
_rgFunctionAxis[pitchFunction] = 3; |
|
|
|
|
|
|
|
_rgFunctionAxis[yawFunction] = 0; |
|
|
|
|
|
|
|
_rgFunctionAxis[throttleFunction] = 1; |
|
|
|
|
|
|
|
|
|
|
|
_exponential = false; |
|
|
|
_exponential = false; |
|
|
|
_accumulator = false; |
|
|
|
_accumulator = false; |
|
|
@ -109,12 +118,40 @@ void Joystick::_setDefaultCalibration(void) { |
|
|
|
_saveSettings(); |
|
|
|
_saveSettings(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Joystick::_activeVehicleChanged(Vehicle *activeVehicle) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if(activeVehicle) { |
|
|
|
|
|
|
|
if(activeVehicle->fixedWing()) { |
|
|
|
|
|
|
|
_txModeSettingsKey = _fixedWingTXModeSettingsKey; |
|
|
|
|
|
|
|
} else if(activeVehicle->multiRotor()) { |
|
|
|
|
|
|
|
_txModeSettingsKey = _multiRotorTXModeSettingsKey; |
|
|
|
|
|
|
|
} else if(activeVehicle->rover()) { |
|
|
|
|
|
|
|
_txModeSettingsKey = _roverTXModeSettingsKey; |
|
|
|
|
|
|
|
} else if(activeVehicle->vtol()) { |
|
|
|
|
|
|
|
_txModeSettingsKey = _vtolTXModeSettingsKey; |
|
|
|
|
|
|
|
} else if(activeVehicle->sub()) { |
|
|
|
|
|
|
|
_txModeSettingsKey = _submarineTXModeSettingsKey; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
_txModeSettingsKey = NULL; |
|
|
|
|
|
|
|
qWarning() << "No valid joystick TXmode settings key for selected vehicle"; |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QSettings settings; |
|
|
|
|
|
|
|
settings.beginGroup(_settingsGroup); |
|
|
|
|
|
|
|
int mode = settings.value(_txModeSettingsKey, activeVehicle->firmwarePlugin()->defaultJoystickTXMode()).toInt(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setTXMode(mode); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void Joystick::_loadSettings(void) |
|
|
|
void Joystick::_loadSettings(void) |
|
|
|
{ |
|
|
|
{ |
|
|
|
QSettings settings; |
|
|
|
QSettings settings; |
|
|
|
|
|
|
|
|
|
|
|
settings.beginGroup(_settingsGroup); |
|
|
|
settings.beginGroup(_settingsGroup); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(_txModeSettingsKey) |
|
|
|
_transmitterMode = settings.value(_txModeSettingsKey, 2).toInt(); |
|
|
|
_transmitterMode = settings.value(_txModeSettingsKey, 2).toInt(); |
|
|
|
|
|
|
|
|
|
|
|
settings.beginGroup(_name); |
|
|
|
settings.beginGroup(_name); |
|
|
@ -195,6 +232,7 @@ void Joystick::_saveSettings(void) |
|
|
|
|
|
|
|
|
|
|
|
// Transmitter mode is static
|
|
|
|
// Transmitter mode is static
|
|
|
|
// Save the mode we are using
|
|
|
|
// Save the mode we are using
|
|
|
|
|
|
|
|
if(_txModeSettingsKey) |
|
|
|
settings.setValue(_txModeSettingsKey, _transmitterMode); |
|
|
|
settings.setValue(_txModeSettingsKey, _transmitterMode); |
|
|
|
|
|
|
|
|
|
|
|
settings.beginGroup(_name); |
|
|
|
settings.beginGroup(_name); |
|
|
|