diff --git a/src/AutoPilotPlugins/PX4/PX4SimpleFlightModes.qml b/src/AutoPilotPlugins/PX4/PX4SimpleFlightModes.qml index 4099de573e1ee0be4df1437998e995499b58e7d5..525f91e3dfc570ba2e07ab964d696a5a37fcd12f 100644 --- a/src/AutoPilotPlugins/PX4/PX4SimpleFlightModes.qml +++ b/src/AutoPilotPlugins/PX4/PX4SimpleFlightModes.qml @@ -114,7 +114,7 @@ Item { QGCLabel { anchors.baseline: modeCombo.baseline - text: qsTr("Flight Mode %1:)").arg(index) + text: qsTr("Flight Mode %1").arg(index) color: controller.activeFlightMode == index ? "yellow" : qgcPal.text } diff --git a/src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc b/src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc index 18808d951a51d22ea13947a3c75e6d549497dbad..c26ae0ee52a8546b5bf50a1e09b341580d946c42 100644 --- a/src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc +++ b/src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc @@ -55,6 +55,8 @@ void PX4SimpleFlightModesController::_rcChannelsChanged(int channelCount, int pw int flightModeChannel = getParameterFact(-1, "RC_MAP_FLTMODE")->rawValue().toInt() - 1; + int flightModeReversed = getParameterFact(1, QString("RC%1_REV").arg(flightModeChannel + 1))->rawValue().toInt(); + if (flightModeChannel < 0 || flightModeChannel > channelCount) { return; } @@ -63,7 +65,7 @@ void PX4SimpleFlightModesController::_rcChannelsChanged(int channelCount, int pw int channelValue = pwmValues[flightModeChannel]; if (channelValue != -1) { bool found = false; - int rgThreshold[] = { 1230, 1360, 1490, 1620, 1749 }; + int rgThreshold[] = { 1200, 1360, 1490, 1620, 1900 }; for (int i=0; i<5; i++) { if (channelValue <= rgThreshold[i]) { _activeFlightMode = i + 1; @@ -71,9 +73,15 @@ void PX4SimpleFlightModesController::_rcChannelsChanged(int channelCount, int pw break; } } + if (!found) { _activeFlightMode = 6; } + + if (flightModeReversed == -1) { + _activeFlightMode = 6 - (_activeFlightMode - 1); + } } + emit activeFlightModeChanged(_activeFlightMode); }