diff --git a/src/AutoPilotPlugins/Common/MotorComponent.qml b/src/AutoPilotPlugins/Common/MotorComponent.qml index 4e57025164e5ac6a9f055eab967cc74181e0aa18..ae893cebdb82e612e2df240c1d3a9c4891a9aed8 100644 --- a/src/AutoPilotPlugins/Common/MotorComponent.qml +++ b/src/AutoPilotPlugins/Common/MotorComponent.qml @@ -20,9 +20,10 @@ SetupPage { id: motorPage pageComponent: pageComponent - readonly property int _barHeight: 10 - readonly property int _barWidth: 5 - readonly property int _sliderHeight: 10 + readonly property int _barHeight: 10 + readonly property int _barWidth: 5 + readonly property int _sliderHeight: 10 + readonly property int _motorTimeoutSecs: 3 FactPanelController { id: controller @@ -32,7 +33,13 @@ SetupPage { id: pageComponent Column { - spacing: 10 + spacing: ScreenTools.defaultFontPixelHeight + + QGCLabel { + text: qsTr("Warning: Unable to determine motor count") + color: qgcPal.warningText + visible: controller.vehicle.motorCount == -1 + } Row { id: motorSliders @@ -46,20 +53,6 @@ SetupPage { Column { property alias motorSlider: slider - Timer { - interval: 250 - running: true - repeat: true - - property real _lastValue: 0 - - onTriggered: { - if (_lastValue !== slider.value) { - controller.vehicle.motorTest(index + 1, slider.value, 1) - } - } - } - QGCLabel { anchors.horizontalCenter: parent.horizontalCenter text: index + 1 @@ -69,8 +62,30 @@ SetupPage { id: slider height: ScreenTools.defaultFontPixelHeight * _sliderHeight orientation: Qt.Vertical + minimumValue: 0 maximumValue: 100 + stepSize: 1 value: 0 + updateValueWhileDragging: false + + onValueChanged: { + controller.vehicle.motorTest(index + 1, value, value == 0 ? 0 : _motorTimeoutSecs) + if (value != 0) { + motorTimer.restart() + } + } + + Timer { + id: motorTimer + interval: _motorTimeoutSecs * 1000 + repeat: false + running: false + + onTriggered: { + allSlider.value = 0 + slider.value = 0 + } + } } } // Column } // Repeater @@ -85,8 +100,11 @@ SetupPage { id: allSlider height: ScreenTools.defaultFontPixelHeight * _sliderHeight orientation: Qt.Vertical + minimumValue: 0 maximumValue: 100 + stepSize: 1 value: 0 + updateValueWhileDragging: false onValueChanged: { for (var sliderIndex=0; sliderIndex