Browse Source

Merge pull request #3244 from mavlink/fltmode_fixes

Fix flight mode display for PX4. Missed reverse channel check
QGC4.4
Lorenz Meier 9 years ago
parent
commit
07052d03e1
  1. 2
      src/AutoPilotPlugins/PX4/PX4SimpleFlightModes.qml
  2. 10
      src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc

2
src/AutoPilotPlugins/PX4/PX4SimpleFlightModes.qml

@ -114,7 +114,7 @@ Item {
QGCLabel { QGCLabel {
anchors.baseline: modeCombo.baseline 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 color: controller.activeFlightMode == index ? "yellow" : qgcPal.text
} }

10
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 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) { if (flightModeChannel < 0 || flightModeChannel > channelCount) {
return; return;
} }
@ -63,7 +65,7 @@ void PX4SimpleFlightModesController::_rcChannelsChanged(int channelCount, int pw
int channelValue = pwmValues[flightModeChannel]; int channelValue = pwmValues[flightModeChannel];
if (channelValue != -1) { if (channelValue != -1) {
bool found = false; bool found = false;
int rgThreshold[] = { 1230, 1360, 1490, 1620, 1749 }; int rgThreshold[] = { 1200, 1360, 1490, 1620, 1900 };
for (int i=0; i<5; i++) { for (int i=0; i<5; i++) {
if (channelValue <= rgThreshold[i]) { if (channelValue <= rgThreshold[i]) {
_activeFlightMode = i + 1; _activeFlightMode = i + 1;
@ -71,9 +73,15 @@ void PX4SimpleFlightModesController::_rcChannelsChanged(int channelCount, int pw
break; break;
} }
} }
if (!found) { if (!found) {
_activeFlightMode = 6; _activeFlightMode = 6;
} }
if (flightModeReversed == -1) {
_activeFlightMode = 6 - (_activeFlightMode - 1);
} }
}
emit activeFlightModeChanged(_activeFlightMode); emit activeFlightModeChanged(_activeFlightMode);
} }

Loading…
Cancel
Save