Browse Source

MotorComponent: use same implementation as for APM

Except for motorIndexToLetter()
QGC4.4
Beat Küng 6 years ago
parent
commit
b5f21cf4d7
No known key found for this signature in database
GPG Key ID: 866DB5F0E24821BB
  1. 66
      src/AutoPilotPlugins/Common/MotorComponent.qml

66
src/AutoPilotPlugins/Common/MotorComponent.qml

@ -20,9 +20,10 @@ SetupPage {
id: motorPage id: motorPage
pageComponent: pageComponent pageComponent: pageComponent
readonly property int _barHeight: 10 readonly property int _barHeight: 10
readonly property int _barWidth: 5 readonly property int _barWidth: 5
readonly property int _sliderHeight: 10 readonly property int _sliderHeight: 10
readonly property int _motorTimeoutSecs: 3
FactPanelController { FactPanelController {
id: controller id: controller
@ -32,7 +33,13 @@ SetupPage {
id: pageComponent id: pageComponent
Column { Column {
spacing: 10 spacing: ScreenTools.defaultFontPixelHeight
QGCLabel {
text: qsTr("Warning: Unable to determine motor count")
color: qgcPal.warningText
visible: controller.vehicle.motorCount == -1
}
Row { Row {
id: motorSliders id: motorSliders
@ -46,20 +53,6 @@ SetupPage {
Column { Column {
property alias motorSlider: slider 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 { QGCLabel {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
text: index + 1 text: index + 1
@ -69,8 +62,30 @@ SetupPage {
id: slider id: slider
height: ScreenTools.defaultFontPixelHeight * _sliderHeight height: ScreenTools.defaultFontPixelHeight * _sliderHeight
orientation: Qt.Vertical orientation: Qt.Vertical
minimumValue: 0
maximumValue: 100 maximumValue: 100
stepSize: 1
value: 0 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 } // Column
} // Repeater } // Repeater
@ -85,8 +100,11 @@ SetupPage {
id: allSlider id: allSlider
height: ScreenTools.defaultFontPixelHeight * _sliderHeight height: ScreenTools.defaultFontPixelHeight * _sliderHeight
orientation: Qt.Vertical orientation: Qt.Vertical
minimumValue: 0
maximumValue: 100 maximumValue: 100
stepSize: 1
value: 0 value: 0
updateValueWhileDragging: false
onValueChanged: { onValueChanged: {
for (var sliderIndex=0; sliderIndex<sliderRepeater.count; sliderIndex++) { for (var sliderIndex=0; sliderIndex<sliderRepeater.count; sliderIndex++) {
@ -95,16 +113,6 @@ SetupPage {
} }
} }
} // Column } // Column
MultiRotorMotorDisplay {
anchors.top: parent.top
anchors.bottom: parent.bottom
width: height
motorCount: controller.vehicle.motorCount
xConfig: controller.vehicle.xConfigMotors
coaxial: controller.vehicle.coaxialMotors
}
} // Row } // Row
QGCLabel { QGCLabel {
@ -131,7 +139,7 @@ SetupPage {
QGCLabel { QGCLabel {
color: qgcPal.warningText color: qgcPal.warningText
text: qsTr("Propellers are removed - Enable motor sliders") text: safetySwitch.checked ? qsTr("Careful: Motor sliders are enabled") : qsTr("Propellers are removed - Enable motor sliders")
} }
} // Row } // Row
} // Column } // Column

Loading…
Cancel
Save