Sync repository
authorKate Alhola <kate@kate-alholas-macbook-pro.local>
Wed, 11 Apr 2012 11:06:56 +0000 (14:06 +0300)
committerKate Alhola <kate@kate-alholas-macbook-pro.local>
Wed, 11 Apr 2012 11:06:56 +0000 (14:06 +0300)
21 files changed:
mardrone/ConfigDialogSymbian.qml [new file with mode: 0644]
mardrone/JoyStickCalibratorDesktop.qml [new file with mode: 0644]
mardrone/ardrone-lib-arm/libpc_ardrone.a [new file with mode: 0644]
mardrone/ardrone-lib-arm/libpc_ardrone_notool.a [new file with mode: 0644]
mardrone/ardrone-lib-arm/libsdk.a [new file with mode: 0644]
mardrone/ardrone-lib-arm/libvlib.a [new file with mode: 0644]
mardrone/ardrone-lib-x86/libpc_ardrone.a [new file with mode: 0644]
mardrone/ardrone-lib-x86/libpc_ardrone_notool.a [new file with mode: 0644]
mardrone/ardrone-lib-x86/libsdk.a [new file with mode: 0644]
mardrone/ardrone-lib-x86/libvlib.a [new file with mode: 0644]
mardrone/gauges/GenericGauge.qml [new file with mode: 0644]
mardrone/gauges/HeadingGauge.qml [new file with mode: 0644]
mardrone/gauges/bezel.png [new file with mode: 0644]
mardrone/gauges/glareshield1.png [new file with mode: 0644]
mardrone/gauges/hdg1.png [new file with mode: 0644]
mardrone/gauges/hdg2.png [new file with mode: 0644]
mardrone/gauges/tach-2700-redline.png [new file with mode: 0644]
mardrone/gauges/trn1.png [new file with mode: 0644]
mardrone/gauges/vsi1.png [new file with mode: 0644]
mardrone/mardrone-icon48.png [new file with mode: 0644]
mardrone/mardrone-icon48.png.en [new file with mode: 0644]

diff --git a/mardrone/ConfigDialogSymbian.qml b/mardrone/ConfigDialogSymbian.qml
new file mode 100644 (file)
index 0000000..d76f723
--- /dev/null
@@ -0,0 +1,220 @@
+import QtQuick 1.0
+import com.nokia.symbian 1.1
+import JoyStick 1.0
+Page {
+        property color textColor:"white"
+        property int textSize:30
+        id:dialog
+       tools:commonTools
+        Menu {
+            id:uiMenu
+            visualParent:pageStack
+            MenuLayout {
+                MenuItem { text:"MeeGo/Harmattan 854x480";  onClicked: { drone.confActiveUI="ardrone_harmattan.qml" }}
+                MenuItem { text:"Desktop";  onClicked: { drone.confActiveUI="ardrone_desktop.qml"}}
+           }
+        }
+        Flickable {
+          id: dialogscrolarea
+          anchors.fill: parent
+ //         anchors.leftMargin:50;anchors.rightMargin:50
+          contentHeight: dialogcontent.height
+          contentWidth: parent.width
+
+          Grid {
+              columns:2
+              id: dialogcontent
+              anchors.leftMargin:50;anchors.rightMargin:150
+              spacing: 20
+
+              Text {
+                  font.pixelSize  :textSize
+                  text:"UI Style"
+
+              }
+              Button {
+                  text:drone.confActiveUI
+                  anchors.right:parent.right
+                  onClicked:uiMenu.open()
+              }
+          Text {
+              width:350
+              text: "Drone IP"
+              color:textColor
+              font.pixelSize  :textSize
+           }
+
+           TextField {
+                  id: droneip
+                  width: 300
+                  height: 40
+                  anchors.right: parent.right
+                  text: drone.confDroneIp
+                  onTextChanged:{drone.confDroneIp=text;}
+           }
+
+//          }
+
+           Text {
+              text: "Video 640x480/Full Screen"
+             color:textColor
+              font.pixelSize  :textSize
+           }
+           Switch {
+              id: fullScreen
+              checked:drone.confFullScreen
+              anchors.right:parent.right
+              onCheckedChanged:{drone.confFullScreen=checked;}
+           }
+           Text {
+              text: "Acceleration Sensor controll"
+             color:textColor
+              font.pixelSize  :textSize
+           }
+           Switch {
+              id: useAccelSw
+              checked:drone.confUseAccel
+              anchors.right:parent.right
+              onCheckedChanged:{drone.confUseAccel=checked;}
+           }
+           Text {
+               text: "Joystick"
+             color:textColor
+              font.pixelSize  :textSize
+           }
+           Switch {
+              id: useJoySw
+              checked:drone.confUseJoyStick
+              anchors.right:parent.right
+              enabled:js.haveJoyStick
+              onCheckedChanged:{drone.confUseJoyStick=checked;}
+           }
+
+           Text {
+               visible:drone.confUseJoyStick
+               font.pixelSize  :textSize
+               text:"\"" + js.joyStickName + "\""
+
+           }
+           Button {
+               visible:drone.confUseJoyStick
+               text:"Calibrate"
+               anchors.right:parent.right
+               onClicked:{
+                   js.calibrate=true
+                   pageStack.push(calibrateDialog);
+               }
+           }
+           Text {
+               visible:drone.confUseJoyStick
+               font.pixelSize  :textSize
+               text:"Show JoyStick Indicators"
+
+           }
+            Switch {
+               visible:drone.confUseJoyStick
+               checked:drone.confShowJSIndicators
+               anchors.right:parent.right
+               enabled:js.haveJoyStick
+               onCheckedChanged:{drone.confShowJSIndicators=checked;}
+
+           }
+           Text {
+             color:textColor
+              text: "Show debug"
+              font.pixelSize  :textSize
+           }
+           Switch {
+              id: showDebug
+              checked:drone.confShowDebug
+              anchors.right:parent.right
+              onCheckedChanged:{drone.confShowDebug=checked;}
+           }
+
+           Text {
+              text: "Show engine gauges"
+             color:textColor
+              font.pixelSize  :textSize
+
+           }
+           Switch {
+              id: showGauges
+              checked:drone.confShowGauges
+              anchors.right:parent.right
+              onCheckedChanged:{drone.confShowGauges=checked;}
+           }
+
+           Text {
+              text: "Show horizon"
+             color:textColor
+              font.pixelSize  :textSize
+
+           }
+           Switch {
+              id: showHorizon
+              checked:drone.confShowHorizon
+              anchors.right:parent.right
+              onCheckedChanged:{drone.confShowHorizon=checked;}
+           }
+
+           Text {
+              text: "Forward/backward gain"
+             color:textColor
+              font.pixelSize  :textSize
+           }
+
+           Slider {
+              id: forwardGain
+              anchors.right:parent.right
+              maximumValue:1.0
+              stepSize:0.01
+              value:drone.confForwardGain
+              onValueChanged:{drone.confForwardGain=value;}
+           }
+           Text {
+              text: "Right/Left gain"
+             color:textColor
+              font.pixelSize  :textSize
+           }
+
+           Slider {
+              id: rightGain
+              anchors.right:parent.right
+              maximumValue:1.0
+              stepSize:0.01
+              value:drone.confRightGain
+              onValueChanged:{drone.confRightGain=value;}
+           }
+           Text {
+              text: "accel ctrl treshold"
+             color:textColor
+              font.pixelSize  :textSize
+           }
+
+           Slider {
+              id: ctrlTreshold
+              anchors.right:parent.right
+              maximumValue:25.0
+              value:drone.confCtrlTrsh
+              onValueChanged:{drone.confCtrlTrsh=value;}
+           }
+          }
+       }
+        Page {
+                property color textColor:"black"
+                property int textSize:30
+                id:calibrateDialog
+                tools:commonTools
+                /*
+                JoyStickCalibrator {
+                    id:jc
+                //    jStick:js
+                    Component.onCompleted: {
+                        if (jc.status != Component.Ready)
+                                    console.log("Error loading component:", jc.errorString());
+                    }
+                }
+*/
+        }
+     }
+
diff --git a/mardrone/JoyStickCalibratorDesktop.qml b/mardrone/JoyStickCalibratorDesktop.qml
new file mode 100644 (file)
index 0000000..deb435e
--- /dev/null
@@ -0,0 +1,424 @@
+import QtQuick 1.0
+import JoyStick 1.0
+import QtDesktop 0.1
+
+Item {
+    width: 600
+    height: 800
+    property int textSize:22
+    property int ctrlSize:40
+    ListModel {
+          id: axisMapModel
+          ListElement{ text:"Aileron";  mapAxis:1 }
+          ListElement { text:"Elevator"; mapAxis:2 }
+          ListElement { text:"Throtle";  mapAxis:3 }
+          ListElement { text:"Rudder";   mapAxis:4 }
+          ListElement { text:"none";     mapAxis:0 }
+   }
+     /*
+    ComboBox {
+        id: axisMap1UICombo;
+        model:  ListModel {
+          id: choicesMapAxis1
+          ListElement{ text:"Aileron";  mapAxis:1 }
+          ListElement { text:"Elevator"; mapAxis:2 }
+          ListElement { text:"Throtle";  mapAxis:3 }
+          ListElement { text:"Rudder";   mapAxis:4 }
+          ListElement { text:"none";     mapAxis:0 }
+          }
+        onSelectedIndexChanged: {
+            console.debug("onSelectedIndexChanged " + selectedText + ", " + choicesMapAxis1.get(selectedIndex).mapAxis);
+            js.mapAxis1=choicesMapAxis1.get(selectedIndex).mapAxis
+        }
+        selectedText:js.mapAxis1
+        KeyNavigation.tab: t1
+        KeyNavigation.backtab: button2
+     }
+
+    Menu {
+        id:js1map
+        visualParent:pageStack
+        MenuLayout {
+            MenuItem { text:"Aileron";  onClicked: { js.mapAxis1=1 }}
+            MenuItem { text:"Elevator"; onClicked: { js.mapAxis1=2 }}
+            MenuItem { text:"Throtle";  onClicked: { js.mapAxis1=3 }}
+            MenuItem { text:"Rudder";   onClicked: { js.mapAxis1=4 }}
+            MenuItem { text:"none";     onClicked: { js.mapAxis1=0 }}
+
+       }
+    }
+    Menu {
+        id:js2map
+        visualParent:pageStack
+        MenuLayout {
+            MenuItem { text:"Aileron";  onClicked: { js.mapAxis2=1 }}
+            MenuItem { text:"Elevator"; onClicked: { js.mapAxis2=2 }}
+            MenuItem { text:"Throtle";  onClicked: { js.mapAxis2=3 }}
+            MenuItem { text:"Rudder";   onClicked: { js.mapAxis2=4 }}
+            MenuItem { text:"none";     onClicked: { js.mapAxis2=0 }}
+
+       }
+    }
+    Menu {
+        id:js3map
+        visualParent:pageStack
+        MenuLayout {
+            MenuItem { text:"Aileron";  onClicked: { js.mapAxis3=1 }}
+            MenuItem { text:"Elevator"; onClicked: { js.mapAxis3=2 }}
+            MenuItem { text:"Throtle";  onClicked: { js.mapAxis3=3 }}
+            MenuItem { text:"Rudder";   onClicked: { js.mapAxis3=4 }}
+            MenuItem { text:"none";     onClicked: { js.mapAxis3=0 }}
+
+       }
+    }
+    Menu {
+        id:js4map
+        visualParent:pageStack
+        MenuLayout {
+            MenuItem { text:"Aileron";  onClicked: { js.mapAxis4=1 }}
+            MenuItem { text:"Elevator"; onClicked: { js.mapAxis4=2 }}
+            MenuItem { text:"Throtle";  onClicked: { js.mapAxis4=3 }}
+            MenuItem { text:"Rudder";   onClicked: { js.mapAxis4=4 }}
+            MenuItem { text:"none";     onClicked: { js.mapAxis4=0 }}
+
+       }
+    }
+    Menu {
+        id:js5map
+        visualParent:pageStack
+        MenuLayout {
+            MenuItem { text:"Aileron";  onClicked: { js.mapAxis5=1 }}
+            MenuItem { text:"Elevator"; onClicked: { js.mapAxis5=2 }}
+            MenuItem { text:"Throtle";  onClicked: { js.mapAxis5=3 }}
+            MenuItem { text:"Rudder";   onClicked: { js.mapAxis5=4 }}
+            MenuItem { text:"none";     onClicked: { js.mapAxis5=0 }}
+
+       }
+    }
+    Menu {
+        id:js6map
+        visualParent:pageStack
+        MenuLayout {
+            MenuItem { text:"Aileron";  onClicked: { js.mapAxis6=1 }}
+            MenuItem { text:"Elevator"; onClicked: { js.mapAxis6=2 }}
+            MenuItem { text:"Throtle";  onClicked: { js.mapAxis6=3 }}
+            MenuItem { text:"Rudder";   onClicked: { js.mapAxis6=4 }}
+            MenuItem { text:"none";     onClicked: { js.mapAxis6=0 }}
+
+       }
+    }
+*/
+ //   property Item jStick:
+    Column {
+        Text {
+            text:" "
+        }
+
+        Row {
+            Text {
+                text:"                  "
+            }
+            JoyStickIndicator {
+                border.width:1
+                width:100;height:100
+                xvalue:js.axis4
+                yvalue:js.axis3
+                Text {
+                    anchors.bottom: parent.bottom
+                    font.pixelSize: 10
+                    text:"       rudder"
+                }
+                Text {
+                    x:-10;y:50
+                    rotation:90
+                    font.pixelSize: 10
+                    text:"Throtle"
+                }
+            }
+
+            spacing:50
+            JoyStickIndicator {
+                border.width:1
+                width:100;height:100
+                xvalue:js.axis1
+                yvalue:js.axis2
+                Text {
+                    anchors.bottom: parent.bottom
+                    font.pixelSize: 10
+                    text:"      Aileron"
+                }
+                Text {
+                    x:-15;y:50
+                    rotation:90
+                    font.pixelSize: 10
+                    text:"Elevator"
+                }
+            }
+            Column {
+                Button{
+                    text:"Reset"
+                    onClicked:{
+                        js.calibrate=false
+                        pageStack.pop();
+                    }
+                }
+                Button{
+                    text:"Save"
+                    onClicked:{
+                        js.calibrate=false
+                        pageStack.pop();
+                    }
+                }
+        }
+        }
+        Grid {
+            spacing:10
+            columns:7
+            Text {
+                font.pixelSize  :textSize
+                text:"     Raw"
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:"     Max"
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:"     Min"
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:"Calib"
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:"value"
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:"reverse"
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:"mapping " + js.mapAxis1 + js.mapAxis2 + js.mapAxis3 + js.mapAxis4 +js.mapAxis5 +js.mapAxis6
+            }
+
+
+            Text {
+                font.pixelSize  :textSize
+                text:js.rawAxis1
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.maxAxis1
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.minAxis1
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.calAxis1.toFixed(2)
+            }
+            BarGauge {
+                width:100
+                height:20
+                val:js.calAxis1+1.0
+                max:2.0
+                horiz:true
+            }
+            CheckBox {
+                width:60
+       //         scale:0.8
+                checked:js.invertAxis1
+                onCheckedChanged:{js.invertAxis1=checked;}
+            }
+            ComboBox {
+                id: axisMap1UICombo;
+                model:  axisMapModel
+                onSelectedIndexChanged: {
+                    console.debug("onSelectedIndexChanged " + selectedText + ", " + axisMap1UICombo.get(selectedIndex).mapAxis);
+                    js.mapAxis1=caxisMap1UICombo.get(selectedIndex).mapAxis
+                }
+                selectedText:js.mapAxis1
+             }
+/*            Button{
+                width:200;height:ctrlSize
+                text:js.mapAxis1==1?"Aileron":js.mapAxis1==2?"Elevator":js.mapAxis1==3?"Throtle":js.mapAxis1==4?"Rudder":"none"
+                onClicked:js1map.open()
+            }
+*/
+
+
+            Text {
+                font.pixelSize  :textSize
+                text:js.rawAxis2
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.maxAxis2
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.minAxis2
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.calAxis2.toFixed(2)
+            }
+            BarGauge {
+                width:100
+                height:20
+                val:js.calAxis2+1.0
+                max:2.0
+                horiz:true
+            }
+            CheckBox {
+                checked:js.invertAxis2
+                onCheckedChanged:{js.invertAxis2=checked;}
+            }
+            Button{
+                width:200;height:ctrlSize
+                text:js.mapAxis2==1?"Aileron":js.mapAxis2==2?"Elevator":js.mapAxis2==3?"Throtle":js.mapAxis2==4?"Rudder":"none"
+                onClicked:js2map.open()
+            }
+
+
+
+            Text {
+                font.pixelSize  :textSize
+                text:js.rawAxis3
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.maxAxis3
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.minAxis3
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.calAxis3.toFixed(2)
+            }
+            BarGauge {
+                width:100
+                height:20
+                val:js.calAxis3+1.0
+                max:2.0               
+                horiz:true
+            }
+            CheckBox {
+                checked:js.invertAxis3
+                onCheckedChanged:{js.invertAxis3=checked;}
+            }
+            Button{
+                width:200;height:ctrlSize
+                text:js.mapAxis3==1?"Aileron":js.mapAxis3==2?"Elevator":js.mapAxis3==3?"Throtle":js.mapAxis3==4?"Rudder":"none"
+                onClicked:js3map.open()
+            }
+
+            Text {
+                font.pixelSize  :textSize
+                text:js.rawAxis4
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.maxAxis4
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.minAxis4
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.calAxis4.toFixed(2)
+            }
+            BarGauge {
+                width:100
+                height:20
+                val:js.calAxis4+1.0
+                max:2.0
+                horiz:true
+            }
+            CheckBox {
+                checked:js.invertAxis4
+                onCheckedChanged:{js.invertAxis4=checked;}
+            }
+            Button{
+                width:200;height:ctrlSize
+                text:js.mapAxis4==1?"Aileron":js.mapAxis4==2?"Elevator":js.mapAxis4==3?"Throtle":js.mapAxis4==4?"Rudder":"none"
+                onClicked:js4map.open()
+            }
+
+            Text {
+                font.pixelSize  :textSize
+                text:js.rawAxis5
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.maxAxis5
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.minAxis5
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.calAxis5.toFixed(2)
+            }
+            BarGauge {
+                width:100
+                height:20
+                val:js.calAxis5+1.0
+                max:2.0
+                horiz:true
+            }
+            CheckBox {
+                checked:js.invertAxis5
+                onCheckedChanged:{js.invertAxis5=checked;}
+            }
+            Button{
+                width:200;height:ctrlSize
+                text:js.mapAxis5==1?"Aileron":js.mapAxis5==2?"Elevator":js.mapAxis5==3?"Throtle":js.mapAxis5==4?"Rudder":"none"
+                onClicked:js5map.open()
+            }
+
+            Text {
+                font.pixelSize  :textSize
+                text:js.rawAxis6
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.maxAxis6
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.minAxis6
+            }
+            Text {
+                font.pixelSize  :textSize
+                text:js.calAxis6.toFixed(2)
+            }
+            BarGauge {
+                width:100
+                height:20
+                val:js.calAxis6+1.0
+                max:2.0
+                horiz:true
+            }
+            CheckBox {
+                checked:js.invertAxis6
+                onCheckedChanged:{js.invertAxis6=checked;}
+            }
+            Button{
+                width:200;height:ctrlSize
+                text:js.mapAxis6==1?"Aileron":js.mapAxis6==2?"Elevator":js.mapAxis6==3?"Throtle":js.mapAxis6==4?"Rudder":"none"
+                onClicked:js6map.open()
+            }
+        }
+
+    }
+}
+
+
diff --git a/mardrone/ardrone-lib-arm/libpc_ardrone.a b/mardrone/ardrone-lib-arm/libpc_ardrone.a
new file mode 100644 (file)
index 0000000..97eb429
Binary files /dev/null and b/mardrone/ardrone-lib-arm/libpc_ardrone.a differ
diff --git a/mardrone/ardrone-lib-arm/libpc_ardrone_notool.a b/mardrone/ardrone-lib-arm/libpc_ardrone_notool.a
new file mode 100644 (file)
index 0000000..8f30b9a
Binary files /dev/null and b/mardrone/ardrone-lib-arm/libpc_ardrone_notool.a differ
diff --git a/mardrone/ardrone-lib-arm/libsdk.a b/mardrone/ardrone-lib-arm/libsdk.a
new file mode 100644 (file)
index 0000000..d302b8d
Binary files /dev/null and b/mardrone/ardrone-lib-arm/libsdk.a differ
diff --git a/mardrone/ardrone-lib-arm/libvlib.a b/mardrone/ardrone-lib-arm/libvlib.a
new file mode 100644 (file)
index 0000000..f56354d
Binary files /dev/null and b/mardrone/ardrone-lib-arm/libvlib.a differ
diff --git a/mardrone/ardrone-lib-x86/libpc_ardrone.a b/mardrone/ardrone-lib-x86/libpc_ardrone.a
new file mode 100644 (file)
index 0000000..97eb429
Binary files /dev/null and b/mardrone/ardrone-lib-x86/libpc_ardrone.a differ
diff --git a/mardrone/ardrone-lib-x86/libpc_ardrone_notool.a b/mardrone/ardrone-lib-x86/libpc_ardrone_notool.a
new file mode 100644 (file)
index 0000000..42bd797
Binary files /dev/null and b/mardrone/ardrone-lib-x86/libpc_ardrone_notool.a differ
diff --git a/mardrone/ardrone-lib-x86/libsdk.a b/mardrone/ardrone-lib-x86/libsdk.a
new file mode 100644 (file)
index 0000000..4a8b101
Binary files /dev/null and b/mardrone/ardrone-lib-x86/libsdk.a differ
diff --git a/mardrone/ardrone-lib-x86/libvlib.a b/mardrone/ardrone-lib-x86/libvlib.a
new file mode 100644 (file)
index 0000000..829e432
Binary files /dev/null and b/mardrone/ardrone-lib-x86/libvlib.a differ
diff --git a/mardrone/gauges/GenericGauge.qml b/mardrone/gauges/GenericGauge.qml
new file mode 100644 (file)
index 0000000..8a8c74e
--- /dev/null
@@ -0,0 +1,34 @@
+
+import QtQuick 1.0
+
+Item {
+    id: root
+    property real value : 0
+    property real startAngle:0
+    property real endAngle:300
+    property maxValue:100
+    property url gaugeBackground:"joybox.png"
+    property url gaugeForeground:"joybox.png"
+    property url gaugeNeedle:"needle1.png"
+    property url bezel:""
+
+    Image {
+        anchors.fill:parent
+        source: gaugeBackground
+    }
+
+    Image {
+        id: needle
+        x: (root.width/2)-(width/2); y:(root.width/2)
+        transformOrigin: Item.Top
+        scale: root.width / 300
+        rotation: startAngle+root.value*0.36
+        smooth: true
+        source: gaugeNeedle
+
+    Image {
+        anchors.fill:parent
+        source: gaugeForeground
+    }
+
+}
diff --git a/mardrone/gauges/HeadingGauge.qml b/mardrone/gauges/HeadingGauge.qml
new file mode 100644 (file)
index 0000000..c37f7a0
--- /dev/null
@@ -0,0 +1,31 @@
+
+import QtQuick 1.0
+
+Item {
+    id: root
+    property real value : 0
+    property url gaugeForeground:"hdg2.png"
+    property url gaugeNeedle:"hdg1.png"
+    property url bezel:""
+
+
+    Image {
+        id: needle
+        x: (root.width/2)-(width/2); y:(root.width/2)
+        transformOrigin: Item.Center
+        anchors.fill:parent
+        rotation: root.value
+        smooth: true
+        source: gaugeNeedle
+    }
+    Image {
+        anchors.fill:parent
+        source: gaugeForeground
+    }
+    Image {
+        id:bezelImg
+        anchors.fill:parent
+        source: bezel
+    }
+
+}
diff --git a/mardrone/gauges/bezel.png b/mardrone/gauges/bezel.png
new file mode 100644 (file)
index 0000000..f0c2246
Binary files /dev/null and b/mardrone/gauges/bezel.png differ
diff --git a/mardrone/gauges/glareshield1.png b/mardrone/gauges/glareshield1.png
new file mode 100644 (file)
index 0000000..7cd326f
Binary files /dev/null and b/mardrone/gauges/glareshield1.png differ
diff --git a/mardrone/gauges/hdg1.png b/mardrone/gauges/hdg1.png
new file mode 100644 (file)
index 0000000..7f1b91e
Binary files /dev/null and b/mardrone/gauges/hdg1.png differ
diff --git a/mardrone/gauges/hdg2.png b/mardrone/gauges/hdg2.png
new file mode 100644 (file)
index 0000000..8e27232
Binary files /dev/null and b/mardrone/gauges/hdg2.png differ
diff --git a/mardrone/gauges/tach-2700-redline.png b/mardrone/gauges/tach-2700-redline.png
new file mode 100644 (file)
index 0000000..2cb5d07
Binary files /dev/null and b/mardrone/gauges/tach-2700-redline.png differ
diff --git a/mardrone/gauges/trn1.png b/mardrone/gauges/trn1.png
new file mode 100644 (file)
index 0000000..a57d75a
Binary files /dev/null and b/mardrone/gauges/trn1.png differ
diff --git a/mardrone/gauges/vsi1.png b/mardrone/gauges/vsi1.png
new file mode 100644 (file)
index 0000000..5214f81
Binary files /dev/null and b/mardrone/gauges/vsi1.png differ
diff --git a/mardrone/mardrone-icon48.png b/mardrone/mardrone-icon48.png
new file mode 100644 (file)
index 0000000..a53acdc
Binary files /dev/null and b/mardrone/mardrone-icon48.png differ
diff --git a/mardrone/mardrone-icon48.png.en b/mardrone/mardrone-icon48.png.en
new file mode 100644 (file)
index 0000000..c515d4d
--- /dev/null
@@ -0,0 +1,54 @@
+begin-base64 644 mardrone-icon48.png
+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
+====