Commit ef452045 authored by Lorenz Meier's avatar Lorenz Meier

Fix joystick for good

parent d6a39f7d
......@@ -765,7 +765,7 @@ void Vehicle::_loadSettings(void)
_joystickMode = JoystickModeRC;
}
setJoystickEnabled(settings.value(_joystickEnabledSettingsKey, false).toBool());
_joystickEnabled = settings.value(_joystickEnabledSettingsKey, false).toBool();
_communicationInactivityTimeoutMSecs = settings.value(_communicationInactivityKey, _communicationInactivityTimeoutMSecsDefault).toInt();
}
......@@ -813,16 +813,25 @@ bool Vehicle::joystickEnabled(void)
void Vehicle::setJoystickEnabled(bool enabled)
{
// The magic parameter will go away,
// until then don't mess with the logic here!
Fact* fact = _autopilotPlugin->getParameterFact(FactSystem::defaultComponentId, "COM_RC_IN_MODE");
if (!fact) {
qCWarning(JoystickLog) << "Missing COM_RC_IN_MODE parameter";
}
if (fact->value().toInt() != 2) {
// Any value greater than one
// indicates special handling on
// the autopilot side. Force the
// joystick to on.
if (fact->value().toInt() > 1) {
// Mandatory in this setting
_joystickEnabled = true;
} else {
fact->setValue(enabled ? 1 : 0);
_joystickEnabled = enabled;
}
_joystickEnabled = enabled;
_startJoystick(_joystickEnabled);
_saveSettings();
}
......@@ -1032,6 +1041,10 @@ void Vehicle::_parametersReady(bool parametersReady)
_missionManagerInitialRequestComplete = true;
_missionManager->requestMissionItems();
}
if (parametersReady) {
setJoystickEnabled(_joystickEnabled);
}
}
void Vehicle::_communicationInactivityTimedOut(void)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment