|
|
|
@ -104,253 +104,260 @@ QGCView {
@@ -104,253 +104,260 @@ QGCView {
|
|
|
|
|
id: panel |
|
|
|
|
anchors.fill: parent |
|
|
|
|
|
|
|
|
|
Flickable { |
|
|
|
|
anchors.fill: parent |
|
|
|
|
flickableDirection: Flickable.VerticalFlick |
|
|
|
|
contentHeight: innerColumn.height |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
id: innerColumn |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
spacing: ScreenTools.defaultFontPixelHeight |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "POWER CONFIG" |
|
|
|
|
font.pixelSize: ScreenTools.largeFontPixelSize |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
anchors.fill: parent |
|
|
|
|
spacing: ScreenTools.defaultFontPixelHeight |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "POWER CONFIG" |
|
|
|
|
font.pixelSize: ScreenTools.largeFontPixelSize |
|
|
|
|
} |
|
|
|
|
QGCLabel { |
|
|
|
|
text: "Battery" |
|
|
|
|
font.pixelSize: ScreenTools.mediumFontPixelSize |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "Battery" |
|
|
|
|
font.pixelSize: ScreenTools.mediumFontPixelSize |
|
|
|
|
} |
|
|
|
|
Rectangle { |
|
|
|
|
width: parent.width |
|
|
|
|
height: voltageCol.height + ScreenTools.defaultFontPixelHeight |
|
|
|
|
color: palette.windowShade |
|
|
|
|
|
|
|
|
|
Rectangle { |
|
|
|
|
width: parent.width |
|
|
|
|
height: voltageCol.height + ScreenTools.defaultFontPixelHeight |
|
|
|
|
color: palette.windowShade |
|
|
|
|
Column { |
|
|
|
|
id: voltageCol |
|
|
|
|
anchors.margins: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
spacing: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
id: voltageCol |
|
|
|
|
anchors.margins: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
spacing: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
property real firstColumnWidth: Math.max(Math.max(cellsLabel.contentWidth, battHighLabel.contentWidth), battLowLabel.contentWidth) + ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
property real firstColumnWidth: Math.max(Math.max(cellsLabel.contentWidth, battHighLabel.contentWidth), battLowLabel.contentWidth) + ScreenTools.defaultFontPixelWidth |
|
|
|
|
Row { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
QGCLabel { |
|
|
|
|
id: cellsLabel |
|
|
|
|
text: "Number of Cells (in Series)" |
|
|
|
|
anchors.baseline: cellsField.baseline |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: cellsLabel |
|
|
|
|
text: "Number of Cells (in Series)" |
|
|
|
|
anchors.baseline: cellsField.baseline |
|
|
|
|
FactTextField { |
|
|
|
|
id: cellsField |
|
|
|
|
x: voltageCol.firstColumnWidth |
|
|
|
|
width: textEditWidth |
|
|
|
|
fact: battNumCells |
|
|
|
|
showUnits: true |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactTextField { |
|
|
|
|
id: cellsField |
|
|
|
|
x: voltageCol.firstColumnWidth |
|
|
|
|
width: textEditWidth |
|
|
|
|
fact: battNumCells |
|
|
|
|
showUnits: true |
|
|
|
|
Row { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: battHighLabel |
|
|
|
|
text: "Full Voltage (per cell)" |
|
|
|
|
anchors.baseline: battHighField.baseline |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactTextField { |
|
|
|
|
id: battHighField |
|
|
|
|
x: voltageCol.firstColumnWidth |
|
|
|
|
width: textEditWidth |
|
|
|
|
fact: battHighVolt |
|
|
|
|
showUnits: true |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
Row { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: battHighLabel |
|
|
|
|
text: "Full Voltage (per cell)" |
|
|
|
|
anchors.baseline: battHighField.baseline |
|
|
|
|
QGCLabel { |
|
|
|
|
id: battLowLabel |
|
|
|
|
text: "Empty Voltage (per cell)" |
|
|
|
|
anchors.baseline: battLowField.baseline |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactTextField { |
|
|
|
|
id: battHighField |
|
|
|
|
x: voltageCol.firstColumnWidth |
|
|
|
|
width: textEditWidth |
|
|
|
|
fact: battHighVolt |
|
|
|
|
showUnits: true |
|
|
|
|
FactTextField { |
|
|
|
|
id: battLowField |
|
|
|
|
x: voltageCol.firstColumnWidth |
|
|
|
|
width: textEditWidth |
|
|
|
|
fact: battLowVolt |
|
|
|
|
showUnits: true |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} // Column |
|
|
|
|
|
|
|
|
|
QGCColoredImage { |
|
|
|
|
id: batteryImage |
|
|
|
|
anchors.verticalCenter: voltageCol.verticalCenter |
|
|
|
|
x: voltageCol.firstColumnWidth + textEditWidth + (ScreenTools.defaultFontPixelWidth * 3) |
|
|
|
|
width: height * 0.75 |
|
|
|
|
height: voltageCol.height |
|
|
|
|
fillMode: Image.PreserveAspectFit |
|
|
|
|
smooth: true |
|
|
|
|
color: palette.button |
|
|
|
|
cache: false |
|
|
|
|
source: getBatteryImage(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
Column { |
|
|
|
|
anchors.leftMargin: ScreenTools.defaultFontPixelWidth * 2 |
|
|
|
|
anchors.left: batteryImage.right |
|
|
|
|
anchors.verticalCenter: voltageCol.verticalCenter |
|
|
|
|
spacing: ScreenTools.defaultFontPixelHeight |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: battLowLabel |
|
|
|
|
text: "Empty Voltage (per cell)" |
|
|
|
|
anchors.baseline: battLowField.baseline |
|
|
|
|
text: "Battery Max: " + (battNumCells.value * battHighVolt.value).toFixed(1) + ' V' |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactTextField { |
|
|
|
|
id: battLowField |
|
|
|
|
x: voltageCol.firstColumnWidth |
|
|
|
|
width: textEditWidth |
|
|
|
|
fact: battLowVolt |
|
|
|
|
showUnits: true |
|
|
|
|
QGCLabel { |
|
|
|
|
text: "Battery Min: " + (battNumCells.value * battLowVolt.value).toFixed(1) + ' V' |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} // Column |
|
|
|
|
|
|
|
|
|
QGCColoredImage { |
|
|
|
|
id: batteryImage |
|
|
|
|
anchors.verticalCenter: voltageCol.verticalCenter |
|
|
|
|
x: voltageCol.firstColumnWidth + textEditWidth + (ScreenTools.defaultFontPixelWidth * 3) |
|
|
|
|
width: height * 0.75 |
|
|
|
|
height: voltageCol.height |
|
|
|
|
fillMode: Image.PreserveAspectFit |
|
|
|
|
smooth: true |
|
|
|
|
color: palette.button |
|
|
|
|
cache: false |
|
|
|
|
source: getBatteryImage(); |
|
|
|
|
} // Rectangle - Battery settings |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "ESC Calibration" |
|
|
|
|
font.pixelSize: ScreenTools.mediumFontPixelSize |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
anchors.leftMargin: ScreenTools.defaultFontPixelWidth * 2 |
|
|
|
|
anchors.left: batteryImage.right |
|
|
|
|
anchors.verticalCenter: voltageCol.verticalCenter |
|
|
|
|
spacing: ScreenTools.defaultFontPixelHeight |
|
|
|
|
Rectangle { |
|
|
|
|
width: parent.width |
|
|
|
|
height: escCalColumn.height + ScreenTools.defaultFontPixelHeight |
|
|
|
|
color: palette.windowShade |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "Battery Max: " + (battNumCells.value * battHighVolt.value).toFixed(1) + ' V' |
|
|
|
|
} |
|
|
|
|
Column { |
|
|
|
|
id : escCalColumn |
|
|
|
|
anchors.margins: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "Battery Min: " + (battNumCells.value * battLowVolt.value).toFixed(1) + ' V' |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} // Rectangle - Battery settings |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "ESC Calibration" |
|
|
|
|
font.pixelSize: ScreenTools.mediumFontPixelSize |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Rectangle { |
|
|
|
|
width: parent.width |
|
|
|
|
height: escCalColumn.height + ScreenTools.defaultFontPixelHeight |
|
|
|
|
color: palette.windowShade |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
id : escCalColumn |
|
|
|
|
anchors.margins: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
color: palette.warningText |
|
|
|
|
text: "<font color=\"yellow\">WARNING: Propellers must be removed from vehicle prior to performing ESC calibration.</font>" |
|
|
|
|
} |
|
|
|
|
QGCLabel { |
|
|
|
|
color: palette.warningText |
|
|
|
|
text: "<font color=\"yellow\">WARNING: Propellers must be removed from vehicle prior to performing ESC calibration.</font>" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "You must use USB connection for this operation." |
|
|
|
|
} |
|
|
|
|
QGCLabel { |
|
|
|
|
text: "You must use USB connection for this operation." |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
text: "Calibrate" |
|
|
|
|
onClicked: controller.calibrateEsc() |
|
|
|
|
QGCButton { |
|
|
|
|
text: "Calibrate" |
|
|
|
|
onClicked: controller.calibrateEsc() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "UAVCAN ESC Configuration" |
|
|
|
|
font.pixelSize: ScreenTools.mediumFontPixelSize |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Rectangle { |
|
|
|
|
width: parent.width |
|
|
|
|
height: uavCanEscCalColumn.height + ScreenTools.defaultFontPixelHeight |
|
|
|
|
color: palette.windowShade |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
id: uavCanEscCalColumn |
|
|
|
|
anchors.margins: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
color: palette.warningText |
|
|
|
|
text: "<font color=\"yellow\">WARNING: Propellers must be removed from vehicle prior to performing UAVCAN ESC configuration.</font>" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "You must use USB connection for this operation." |
|
|
|
|
} |
|
|
|
|
QGCLabel { |
|
|
|
|
text: "UAVCAN ESC Configuration" |
|
|
|
|
font.pixelSize: ScreenTools.mediumFontPixelSize |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
text: "Start Configuration" |
|
|
|
|
onClicked: controller.busConfigureActuators() |
|
|
|
|
} |
|
|
|
|
Rectangle { |
|
|
|
|
width: parent.width |
|
|
|
|
height: uavCanEscCalColumn.height + ScreenTools.defaultFontPixelHeight |
|
|
|
|
color: palette.windowShade |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
text: "End Configuration" |
|
|
|
|
onClicked: controller.StopBusConfigureActuators() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCCheckBox { |
|
|
|
|
id: showAdvanced |
|
|
|
|
text: "Show Advanced Settings" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "Advanced Power Settings" |
|
|
|
|
font.pixelSize: ScreenTools.mediumFontPixelSize |
|
|
|
|
visible: showAdvanced.checked |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Rectangle { |
|
|
|
|
id: batteryRectangle |
|
|
|
|
width: parent.width |
|
|
|
|
height: advBatteryColumn.height + ScreenTools.defaultFontPixelHeight |
|
|
|
|
color: palette.windowShade |
|
|
|
|
visible: showAdvanced.checked |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
id: advBatteryColumn |
|
|
|
|
anchors.margins: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
Column { |
|
|
|
|
id: uavCanEscCalColumn |
|
|
|
|
anchors.margins: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "Voltage Drop on Full Load (per cell)" |
|
|
|
|
anchors.baseline: battDropField.baseline |
|
|
|
|
color: palette.warningText |
|
|
|
|
text: "<font color=\"yellow\">WARNING: Propellers must be removed from vehicle prior to performing UAVCAN ESC configuration.</font>" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactTextField { |
|
|
|
|
id: battDropField |
|
|
|
|
width: textEditWidth |
|
|
|
|
fact: battVoltLoadDrop |
|
|
|
|
showUnits: true |
|
|
|
|
QGCLabel { |
|
|
|
|
text: "You must use USB connection for this operation." |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
width: parent.width |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
text: "Batteries show less voltage at high throttle. Enter the difference in Volts between idle throttle and full " + |
|
|
|
|
"throttle, divided by the number of battery cells. Leave at the default if unsure. " + |
|
|
|
|
"<font color=\"yellow\">If this value is set too high, the battery might be deep discharged and damaged.</font>" |
|
|
|
|
QGCButton { |
|
|
|
|
text: "Start Configuration" |
|
|
|
|
onClicked: controller.busConfigureActuators() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
text: "End Configuration" |
|
|
|
|
onClicked: controller.StopBusConfigureActuators() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
QGCCheckBox { |
|
|
|
|
id: showAdvanced |
|
|
|
|
text: "Show Advanced Settings" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "Compensated Minimum Voltage:" |
|
|
|
|
QGCLabel { |
|
|
|
|
text: "Advanced Power Settings" |
|
|
|
|
font.pixelSize: ScreenTools.mediumFontPixelSize |
|
|
|
|
visible: showAdvanced.checked |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Rectangle { |
|
|
|
|
id: batteryRectangle |
|
|
|
|
width: parent.width |
|
|
|
|
height: advBatteryColumn.height + ScreenTools.defaultFontPixelHeight |
|
|
|
|
color: palette.windowShade |
|
|
|
|
visible: showAdvanced.checked |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
id: advBatteryColumn |
|
|
|
|
anchors.margins: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
anchors.top: parent.top |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "Voltage Drop on Full Load (per cell)" |
|
|
|
|
anchors.baseline: battDropField.baseline |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FactTextField { |
|
|
|
|
id: battDropField |
|
|
|
|
width: textEditWidth |
|
|
|
|
fact: battVoltLoadDrop |
|
|
|
|
showUnits: true |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: ((battNumCells.value * battLowVolt.value) - (battNumCells.value * battVoltLoadDrop.value)).toFixed(1) + ' V' |
|
|
|
|
width: parent.width |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
text: "Batteries show less voltage at high throttle. Enter the difference in Volts between idle throttle and full " + |
|
|
|
|
"throttle, divided by the number of battery cells. Leave at the default if unsure. " + |
|
|
|
|
"<font color=\"yellow\">If this value is set too high, the battery might be deep discharged and damaged.</font>" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: "Compensated Minimum Voltage:" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: ((battNumCells.value * battLowVolt.value) - (battNumCells.value * battVoltLoadDrop.value)).toFixed(1) + ' V' |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} // Rectangle - Advanced power settings |
|
|
|
|
} // Column |
|
|
|
|
} // Rectangle - Advanced power settings |
|
|
|
|
} // Column |
|
|
|
|
} // Flickable |
|
|
|
|
} // QGCViewPanel |
|
|
|
|
} // QGCView |
|
|
|
|