Commit b2c32682 authored by dogmaphobic's avatar dogmaphobic

Added some battery graphics.

Added "Advanced Settings" check box.
parent b6cf543e
......@@ -300,6 +300,12 @@
<file alias="QGroundControl/Controls/PowerComponentIcon.png">src/AutoPilotPlugins/PX4/Images/PowerComponentIcon.png</file>
<file alias="QGroundControl/Controls/FirmwareUpgradeIcon.png">src/VehicleSetup/FirmwareUpgradeIcon.png</file>
<file alias="QGroundControl/Controls/VehicleSummaryIcon.png">src/VehicleSetup/VehicleSummaryIcon.png</file>
<file alias="PowerComponentBattery_01cell.svg">src/AutoPilotPlugins/PX4/Images/PowerComponentBattery_01cell.svg</file>
<file alias="PowerComponentBattery_02cell.svg">src/AutoPilotPlugins/PX4/Images/PowerComponentBattery_02cell.svg</file>
<file alias="PowerComponentBattery_03cell.svg">src/AutoPilotPlugins/PX4/Images/PowerComponentBattery_03cell.svg</file>
<file alias="PowerComponentBattery_04cell.svg">src/AutoPilotPlugins/PX4/Images/PowerComponentBattery_04cell.svg</file>
<file alias="PowerComponentBattery_05cell.svg">src/AutoPilotPlugins/PX4/Images/PowerComponentBattery_05cell.svg</file>
<file alias="PowerComponentBattery_06cell.svg">src/AutoPilotPlugins/PX4/Images/PowerComponentBattery_06cell.svg</file>
<file alias="MainToolBar.qml">src/ui/toolbar/MainToolBar.qml</file>
</qresource>
<qresource prefix="/AutoPilotPlugins/PX4">
......
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="36 9 216 279" enable-background="new 36 9 216 279" xml:space="preserve">
<g>
<path fill="none" stroke="#FFFFFF" stroke-width="8" stroke-miterlimit="10" d="M238.475,270.675c0,3.96-3.24,7.2-7.2,7.2h-174.6
c-3.96,0-7.2-3.24-7.2-7.2v-219.6c0-3.96,3.24-7.2,7.2-7.2h174.6c3.96,0,7.2,3.24,7.2,7.2V270.675z"/>
</g>
<g>
<rect x="84.262" y="13.95" fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" width="28.8" height="28.8"/>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="92.141" y1="28.35" x2="105.184" y2="28.35"/>
</g>
<g>
<rect x="173.928" y="13.95" fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" width="28.8" height="28.8"/>
<g>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="188.328" y1="20.767" x2="188.328" y2="35.933"/>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="181.806" y1="28.35" x2="194.849" y2="28.35"/>
</g>
</g>
<rect x="63" y="58.5" fill="#FFFFFF" width="162" height="207"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="36 9 216 279" enable-background="new 36 9 216 279" xml:space="preserve">
<g>
<path fill="none" stroke="#FFFFFF" stroke-width="8" stroke-miterlimit="10" d="M238.475,270.675c0,3.96-3.24,7.2-7.2,7.2h-174.6
c-3.96,0-7.2-3.24-7.2-7.2v-219.6c0-3.96,3.24-7.2,7.2-7.2h174.6c3.96,0,7.2,3.24,7.2,7.2V270.675z"/>
</g>
<g>
<rect x="84.262" y="13.95" fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" width="28.8" height="28.8"/>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="92.141" y1="28.35" x2="105.184" y2="28.35"/>
</g>
<g>
<rect x="173.928" y="13.95" fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" width="28.8" height="28.8"/>
<g>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="188.328" y1="20.767" x2="188.328" y2="35.933"/>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="181.806" y1="28.35" x2="194.849" y2="28.35"/>
</g>
</g>
<rect x="63" y="58.5" fill="#FFFFFF" width="75.6" height="207"/>
<rect x="149.4" y="58.5" fill="#FFFFFF" width="75.6" height="207"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="36 9 216 279" enable-background="new 36 9 216 279" xml:space="preserve">
<g>
<path fill="none" stroke="#FFFFFF" stroke-width="8" stroke-miterlimit="10" d="M238.475,270.675c0,3.96-3.24,7.2-7.2,7.2h-174.6
c-3.96,0-7.2-3.24-7.2-7.2v-219.6c0-3.96,3.24-7.2,7.2-7.2h174.6c3.96,0,7.2,3.24,7.2,7.2V270.675z"/>
</g>
<g>
<rect x="84.262" y="13.95" fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" width="28.8" height="28.8"/>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="92.141" y1="28.35" x2="105.184" y2="28.35"/>
</g>
<g>
<rect x="173.928" y="13.95" fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" width="28.8" height="28.8"/>
<g>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="188.328" y1="20.767" x2="188.328" y2="35.933"/>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="181.806" y1="28.35" x2="194.849" y2="28.35"/>
</g>
</g>
<rect x="63" y="58.5" fill="#FFFFFF" width="48.6" height="207"/>
<rect x="119.363" y="58.5" fill="#FFFFFF" width="48.6" height="207"/>
<rect x="176.4" y="58.5" fill="#FFFFFF" width="48.6" height="207"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="36 9 216 279" enable-background="new 36 9 216 279" xml:space="preserve">
<g>
<path fill="none" stroke="#FFFFFF" stroke-width="8" stroke-miterlimit="10" d="M238.475,270.675c0,3.96-3.24,7.2-7.2,7.2h-174.6
c-3.96,0-7.2-3.24-7.2-7.2v-219.6c0-3.96,3.24-7.2,7.2-7.2h174.6c3.96,0,7.2,3.24,7.2,7.2V270.675z"/>
</g>
<g>
<rect x="84.262" y="13.95" fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" width="28.8" height="28.8"/>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="92.141" y1="28.35" x2="105.184" y2="28.35"/>
</g>
<g>
<rect x="173.928" y="13.95" fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" width="28.8" height="28.8"/>
<g>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="188.328" y1="20.767" x2="188.328" y2="35.933"/>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="181.806" y1="28.35" x2="194.849" y2="28.35"/>
</g>
</g>
<rect x="63" y="58.5" fill="#FFFFFF" width="36" height="207"/>
<rect x="104.812" y="58.5" fill="#FFFFFF" width="36" height="207"/>
<rect x="147.75" y="58.5" fill="#FFFFFF" width="36" height="207"/>
<rect x="189" y="58.5" fill="#FFFFFF" width="36" height="207"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="36 9 216 279" enable-background="new 36 9 216 279" xml:space="preserve">
<g>
<path fill="none" stroke="#FFFFFF" stroke-width="8" stroke-miterlimit="10" d="M238.475,270.675c0,3.96-3.24,7.2-7.2,7.2h-174.6
c-3.96,0-7.2-3.24-7.2-7.2v-219.6c0-3.96,3.24-7.2,7.2-7.2h174.6c3.96,0,7.2,3.24,7.2,7.2V270.675z"/>
</g>
<g>
<rect x="84.262" y="13.95" fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" width="28.8" height="28.8"/>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="92.141" y1="28.35" x2="105.184" y2="28.35"/>
</g>
<g>
<rect x="173.928" y="13.95" fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" width="28.8" height="28.8"/>
<g>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="188.328" y1="20.767" x2="188.328" y2="35.933"/>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="181.806" y1="28.35" x2="194.849" y2="28.35"/>
</g>
</g>
<rect x="198" y="58.5" fill="#FFFFFF" width="27" height="207"/>
<rect x="164.25" y="58.5" fill="#FFFFFF" width="27" height="207"/>
<rect x="130.5" y="58.5" fill="#FFFFFF" width="27" height="207"/>
<rect x="96.75" y="58.5" fill="#FFFFFF" width="27" height="207"/>
<rect x="63" y="58.5" fill="#FFFFFF" width="27" height="207"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="36 9 216 279" enable-background="new 36 9 216 279" xml:space="preserve">
<g>
<path fill="none" stroke="#FFFFFF" stroke-width="8" stroke-miterlimit="10" d="M238.475,270.675c0,3.96-3.24,7.2-7.2,7.2h-174.6
c-3.96,0-7.2-3.24-7.2-7.2v-219.6c0-3.96,3.24-7.2,7.2-7.2h174.6c3.96,0,7.2,3.24,7.2,7.2V270.675z"/>
</g>
<g>
<rect x="84.262" y="13.95" fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" width="28.8" height="28.8"/>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="92.141" y1="28.35" x2="105.184" y2="28.35"/>
</g>
<g>
<rect x="173.928" y="13.95" fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" width="28.8" height="28.8"/>
<g>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="188.328" y1="20.767" x2="188.328" y2="35.933"/>
<line fill="none" stroke="#FFFFFF" stroke-width="6" stroke-miterlimit="10" x1="181.806" y1="28.35" x2="194.849" y2="28.35"/>
</g>
</g>
<rect x="63" y="58.5" fill="#FFFFFF" width="23.4" height="207"/>
<rect x="90.675" y="58.5" fill="#FFFFFF" width="23.4" height="207"/>
<rect x="118.35" y="58.5" fill="#FFFFFF" width="23.4" height="207"/>
<rect x="146.025" y="58.5" fill="#FFFFFF" width="23.4" height="207"/>
<rect x="173.7" y="58.5" fill="#FFFFFF" width="23.4" height="207"/>
<rect x="201.375" y="58.5" fill="#FFFFFF" width="23.4" height="207"/>
</svg>
......@@ -43,8 +43,54 @@ Rectangle {
color: palette.window
property int firstColumnWidth: 220
property int textEditWidth: 60
property ScreenTools __screenTools: ScreenTools { }
property Fact battNumCells: Fact { name: "BAT_N_CELLS" }
property Fact battHighVolt: Fact { name: "BAT_V_CHARGED" }
property Fact battLowVolt: Fact { name: "BAT_V_EMPTY" }
property alias battHigh: battHighRow
property alias battLow: battLowRow
function getBatteryImage()
{
switch(battNumCells.value) {
case 1: return "/qml/PowerComponentBattery_01cell.svg";
case 2: return "/qml/PowerComponentBattery_02cell.svg"
case 3: return "/qml/PowerComponentBattery_03cell.svg"
case 4: return "/qml/PowerComponentBattery_04cell.svg"
case 5: return "/qml/PowerComponentBattery_05cell.svg"
case 6: return "/qml/PowerComponentBattery_06cell.svg"
default: return "/qml/PowerComponentBattery_01cell.svg";
}
}
function drawArrowhead(ctx, x, y, radians)
{
ctx.save();
ctx.beginPath();
ctx.translate(x,y);
ctx.rotate(radians);
ctx.moveTo(0,0);
ctx.lineTo(5,10);
ctx.lineTo(-5,10);
ctx.closePath();
ctx.restore();
ctx.fill();
}
function drawLineWithArrow(ctx, x1, y1, x2, y2)
{
ctx.beginPath();
ctx.moveTo(x1, y1);
ctx.lineTo(x2, y2);
ctx.stroke();
var rd = Math.atan((y2 - y1) / (x2 - x1));
rd += ((x2 > x1) ? 90 : -90) * Math.PI/180;
drawArrowhead(ctx, x2, y2, rd);
}
Column {
anchors.fill: parent
spacing: 10
......@@ -54,8 +100,6 @@ Rectangle {
font.pointSize: 20 * __screenTools.dpiFactor;
}
Item { height: 1; width: 10 }
QGCLabel {
text: "Battery"
color: palette.text
......@@ -75,44 +119,153 @@ Rectangle {
Row {
spacing: 10
QGCLabel { text: "Number of Cells"; width: firstColumnWidth; anchors.baseline: cellsField.baseline}
FactTextField {
id: cellsField
fact: Fact { name: "BAT_N_CELLS" }
showUnits: true
Column {
id: voltageCol
spacing: 10
Row {
spacing: 10
QGCLabel { text: "Number of Cells"; width: firstColumnWidth; anchors.baseline: cellsField.baseline}
FactTextField {
id: cellsField
width: textEditWidth
fact: Fact { name: "BAT_N_CELLS" }
showUnits: true
}
}
Row {
id: battHighRow
spacing: 10
QGCLabel { text: "Full Voltage (per cell)"; width: firstColumnWidth; anchors.baseline: battHighField.baseline}
FactTextField {
id: battHighField
width: textEditWidth
fact: Fact { name: "BAT_V_CHARGED" }
showUnits: true
}
}
Row {
id: battLowRow
spacing: 10
QGCLabel { text: "Empty Voltage (per cell)"; width: firstColumnWidth; anchors.baseline: battLowField.baseline}
FactTextField {
id: battLowField
width: textEditWidth
fact: Fact { name: "BAT_V_EMPTY" }
showUnits: true
}
}
Row {
spacing: 10
visible: showAdvanced.checked
QGCLabel { text: "Voltage Drop on Full Load (per cell)"; width: firstColumnWidth; anchors.baseline: battDropField.baseline}
FactTextField {
id: battDropField
width: textEditWidth
fact: Fact { name: "BAT_V_LOAD_DROP" }
showUnits: true
}
}
}
}
Row {
spacing: 10
QGCLabel { text: "Full Voltage (per cell)"; width: firstColumnWidth; anchors.baseline: battHighField.baseline}
FactTextField {
id: battHighField
fact: Fact { name: "BAT_V_CHARGED" }
showUnits: true
Canvas {
id: arrows
height: voltageCol.height
width: 40
antialiasing: true
onPaint: {
var y0 = voltageCol.mapFromItem(battHigh, 0, battHigh.height / 2).y;
var y1 = voltageCol.mapFromItem(battLow, 0, battLow.height / 2).y;
var context = getContext("2d");
context.reset();
context.strokeStyle = palette.button;
context.fillStyle = palette.button;
drawLineWithArrow(context, 0, y0, width, height * 0.25);
drawLineWithArrow(context, 0, y1, width, height * 0.85);
}
}
}
Row {
spacing: 10
QGCLabel { text: "Empty Voltage (per cell)"; width: firstColumnWidth; anchors.baseline: battLowField.baseline}
FactTextField {
id: battLowField
fact: Fact { name: "BAT_V_EMPTY" }
showUnits: true
QGCColoredImage {
height: voltageCol.height
width: voltageCol.height * 0.75
source: getBatteryImage();
fillMode: Image.PreserveAspectFit
smooth: true
color: palette.button
cache: false
}
Item { width: 20; height: 1; }
Column {
spacing: 10
anchors.verticalCenter: parent.verticalCenter
Row {
spacing: 10
QGCLabel {
text: "Battery Max:"
color: palette.text
width: 80
font.pointSize: 12 * __screenTools.dpiFactor;
}
QGCLabel {
text: (battNumCells.value * battHighVolt.value).toFixed(1) + ' V'
color: palette.text
font.pointSize: 12 * __screenTools.dpiFactor;
}
}
Row {
spacing: 10
QGCLabel {
text: "Battery Min:"
color: palette.text
width: 80
font.pointSize: 12 * __screenTools.dpiFactor;
}
QGCLabel {
text: (battNumCells.value * battLowVolt.value).toFixed(1) + ' V'
color: palette.text
font.pointSize: 12 * __screenTools.dpiFactor;
}
}
}
}
}
}
Row {
spacing: 10
QGCLabel { text: "Voltage Drop on Full Load (per cell)"; width: firstColumnWidth; anchors.baseline: battDropField.baseline}
FactTextField {
id: battDropField
fact: Fact { name: "BAT_V_LOAD_DROP" }
showUnits: true
}
Row {
width: parent.width
spacing: 30
visible: showAdvanced.checked
Column {
spacing: 10
width: (parent.width / 2) - 5
QGCLabel {
text: "Propeller Function"
color: palette.text
font.pointSize: 20 * __screenTools.dpiFactor;
}
Rectangle {
width: parent.width
height: 160
color: palette.windowShade
}
}
Column {
spacing: 10
width: (parent.width / 2) - 5
QGCLabel {
text: "Magnetometer Distortion"
color: palette.text
font.pointSize: 20 * __screenTools.dpiFactor;
}
Rectangle {
width: parent.width
height: 160
color: palette.windowShade
}
}
}
//-- Advanced Settings
QGCCheckBox {
id: showAdvanced
text: "Show Advanced Settings"
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment