diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Compass.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Compass.qml
index 198b9502c..2fb92cc19 100644
--- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Compass.qml
+++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Compass.qml
@@ -37,6 +37,42 @@ Item {
smooth: true
}
+ SvgElementImage {
+ id: compass_home
+ elementName: "compass-home" // Cyan point
+ sceneSize: sceneItem.sceneSize
+ smooth: true
+
+ x: Math.floor(scaledBounds.x * sceneItem.width)
+ y: Math.floor(scaledBounds.y * sceneItem.height)
+
+ property real home_degrees: 180/3.1415 * Math.atan2(TakeOffLocation.East - PositionState.East, TakeOffLocation.North - PositionState.North)
+
+ rotation: -AttitudeState.Yaw + home_degrees
+ transformOrigin: Item.Bottom
+ visible: TakeOffLocation.Status == 0
+
+ }
+
+ SvgElementImage {
+ id: compass_waypoint // Double Purple arrow
+ elementName: "compass-waypoint"
+ sceneSize: sceneItem.sceneSize
+
+ x: Math.floor(scaledBounds.x * sceneItem.width)
+ y: Math.floor(scaledBounds.y * sceneItem.height)
+
+ property real course_degrees: 180/3.1415 * Math.atan2(PathDesired.End_East - PositionState.East, PathDesired.End_North - PositionState.North)
+
+ rotation: -AttitudeState.Yaw + course_degrees
+ transformOrigin: Item.Center
+
+ smooth: true
+ visible: PathDesired.End_East !== 0.0 && PathDesired.End_East !== 0.0
+ }
+
+
+
Item {
id: compass_text_box
diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/HorizontCenter.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/HorizontCenter.qml
index c5f7c36f1..6dee7b633 100644
--- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/HorizontCenter.qml
+++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/HorizontCenter.qml
@@ -10,6 +10,9 @@ Item {
elementName: "center-arrows"
sceneSize: background.sceneSize
+ width: Math.floor(scaledBounds.width * sceneItem.width)
+ height: Math.floor(scaledBounds.height * sceneItem.height)
+
x: Math.floor(scaledBounds.x * sceneItem.width)
y: Math.floor(scaledBounds.y * sceneItem.height)
}
@@ -19,6 +22,9 @@ Item {
elementName: "center-plane"
sceneSize: background.sceneSize
+ width: Math.floor(scaledBounds.width * sceneItem.width)
+ height: Math.floor(scaledBounds.height * sceneItem.height)
+
x: Math.floor(scaledBounds.x * sceneItem.width)
y: Math.floor(scaledBounds.y * sceneItem.height)
}
diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml
index 9dedc4365..699e0b2f0 100644
--- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml
+++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml
@@ -4,10 +4,64 @@ Item {
id: info
property variant sceneSize
+ property real home_heading: 180/3.1415 * Math.atan2(TakeOffLocation.East - PositionState.East,
+ TakeOffLocation.North - PositionState.North)
+
+ property real home_distance: Math.sqrt(Math.pow((TakeOffLocation.East - PositionState.East),2) +
+ Math.pow((TakeOffLocation.North - PositionState.North),2))
+
+ property real wp_heading: 180/3.1415 * Math.atan2(PathDesired.End_East - PositionState.East,
+ PathDesired.End_North - PositionState.North)
+
+ property real wp_distance: Math.sqrt(Math.pow((PathDesired.End_East - PositionState.East),2) +
+ Math.pow(( PathDesired.End_North - PositionState.North),2))
+
+ property real current_velocity: Math.sqrt(Math.pow(VelocityState.North,2)+Math.pow(VelocityState.East,2))
+
+ property real home_eta: (home_distance > 0 && current_velocity > 0 ? Math.round(home_distance/current_velocity) : 0)
+ property real home_eta_h: (home_eta > 0 ? Math.floor(home_eta / 3600) : 0 )
+ property real home_eta_m: (home_eta > 0 ? Math.floor((home_eta - home_eta_h*3600)/60) : 0)
+ property real home_eta_s: (home_eta > 0 ? Math.floor(home_eta - home_eta_h*3600 - home_eta_m*60) : 0)
+
+ property real wp_eta: (wp_distance > 0 && current_velocity > 0 ? Math.round(wp_distance/current_velocity) : 0)
+ property real wp_eta_h: (wp_eta > 0 ? Math.floor(wp_eta / 3600) : 0 )
+ property real wp_eta_m: (wp_eta > 0 ? Math.floor((wp_eta - wp_eta_h*3600)/60) : 0)
+ property real wp_eta_s: (wp_eta > 0 ? Math.floor(wp_eta - wp_eta_h*3600 - wp_eta_m*60) : 0)
+
+ property real posEast_old
+ property real posNorth_old
+ property real total_distance
+ property bool init_dist: false
+
+ function reset_distance(){
+ total_distance = 0;
+ }
+
+ function compute_distance(posEast,posNorth) {
+ if (total_distance == 0 && !init_dist){init_dist = "true"; posEast_old = posEast; posNorth_old = posNorth;}
+ if (posEast > posEast_old+3 || posEast < posEast_old-3 || posNorth > posNorth_old+3 || posNorth < posNorth_old-3) {
+ total_distance += Math.sqrt(Math.pow((posEast - posEast_old ),2) + Math.pow((posNorth - posNorth_old),2));
+
+ posEast_old = posEast;
+ posNorth_old = posNorth;
+ return total_distance;
+ }
+ }
+
+ function formatTime(time) {
+ if (time === 0)
+ return "00"
+ if (time < 10)
+ return "0" + time;
+ else
+ return time.toString();
+ }
+
SvgElementImage {
id: info_bg
- elementName: "info-bg"
sceneSize: info.sceneSize
+ elementName: "info-bg"
+ width: parent.width
}
SvgElementImage {
@@ -25,11 +79,6 @@ Item {
}
}
- SvgElementImage {
- id: energy_label
- elementName: "battery-milliamp-label"
- sceneSize: info.sceneSize
- }
Repeater {
id: satNumberBar
@@ -53,7 +102,7 @@ Item {
Text {
text: ["No GPS", "No Fix", "Fix2D", "Fix3D"][GPSPositionSensor.Status]
anchors.centerIn: parent
- font.pixelSize: parent.height*1.2
+ font.pixelSize: Math.floor(parent.height*1.2)
color: "white"
}
}
@@ -66,7 +115,7 @@ Item {
text: ["Disconnected","HandshakeReq","HandshakeAck","Connected"][GCSTelemetryStats.Status]
anchors.centerIn: parent
- font.pixelSize: parent.height*1.2
+ font.pixelSize: Math.floor(parent.height*1.2)
color: "white"
}
}
@@ -99,6 +148,116 @@ Item {
}
}
+ SvgElementPositionItem {
+ sceneSize: info.sceneSize
+ elementName: "waypoint-heading-text"
+ width: scaledBounds.width * sceneItem.width
+ height: scaledBounds.height * sceneItem.height
+ y: Math.floor(scaledBounds.y * sceneItem.height)
+ visible: SystemAlarms.Alarm_PathPlan == 1
+
+ Text {
+ text: " "+wp_heading.toFixed(1)+"°"
+
+ anchors.centerIn: parent
+ font.pixelSize: parent.height*1.1
+ color: "magenta"
+ }
+ }
+
+ SvgElementPositionItem {
+ sceneSize: info.sceneSize
+ elementName: "waypoint-distance-text"
+ width: scaledBounds.width * sceneItem.width
+ height: scaledBounds.height * sceneItem.height
+ y: Math.floor(scaledBounds.y * sceneItem.height)
+ visible: SystemAlarms.Alarm_PathPlan == 1
+
+ Text {
+ text: " "+wp_distance.toFixed(0)+" m"
+
+ anchors.centerIn: parent
+ font.pixelSize: parent.height*1.1
+ color: "magenta"
+ }
+ }
+
+ SvgElementPositionItem {
+ sceneSize: info.sceneSize
+ elementName: "waypoint-total-distance-text"
+ width: scaledBounds.width * sceneItem.width
+ height: scaledBounds.height * sceneItem.height
+ y: Math.floor(scaledBounds.y * sceneItem.height)
+ visible: true
+
+ MouseArea { id: total_dist_mouseArea; anchors.fill: parent; onClicked: reset_distance()}
+
+ Text {
+ text: " "+total_distance.toFixed(0)+" m"
+
+ anchors.centerIn: parent
+ font.pixelSize: parent.height*1.1
+ color: "magenta"
+ }
+
+ Timer {
+ interval: 1000; running: true; repeat: true;
+ onTriggered: {if (GPSPositionSensor.Status == 3) compute_distance(PositionState.East,PositionState.North)}
+ }
+ }
+
+ SvgElementPositionItem {
+ sceneSize: info.sceneSize
+ elementName: "waypoint-eta-text"
+ width: scaledBounds.width * sceneItem.width
+ height: scaledBounds.height * sceneItem.height
+ y: Math.floor(scaledBounds.y * sceneItem.height)
+ visible: SystemAlarms.Alarm_PathPlan == 1
+
+ Text {
+ text: formatTime(wp_eta_h) + ":" + formatTime(wp_eta_m) + ":" + formatTime(wp_eta_s)
+
+ anchors.centerIn: parent
+ font.pixelSize: parent.height*1.1
+ color: "magenta"
+ }
+ }
+
+ SvgElementPositionItem {
+ sceneSize: info.sceneSize
+ elementName: "waypoint-number-text"
+ width: scaledBounds.width * sceneItem.width
+ height: scaledBounds.height * sceneItem.height
+ y: Math.floor(scaledBounds.y * sceneItem.height)
+ visible: SystemAlarms.Alarm_PathPlan == 1
+
+ Text {
+ text: (WaypointActive.Index+1)+" / "+PathPlan.WaypointCount
+
+ anchors.centerIn: parent
+ font.pixelSize: parent.height*1.1
+ color: "magenta"
+ }
+ }
+
+ SvgElementPositionItem {
+ sceneSize: info.sceneSize
+ elementName: "waypoint-mode-text"
+ width: scaledBounds.width * sceneItem.width
+ height: scaledBounds.height * sceneItem.height
+ y: Math.floor(scaledBounds.y * sceneItem.height)
+ visible: SystemAlarms.Alarm_PathPlan == 1
+
+ Text {
+ text: ["Fly End Point","Fly Vector","Fly Circle Right","Fly Circle Left","Drive End Point","Drive Vector","Drive Circle Right",
+ "Drive Circle Left","Fixed Attitude","Set Accessory","Land","Disarm Alarm"][PathDesired.Mode]
+
+ anchors.centerIn: parent
+ font.pixelSize: parent.height*1.1
+ color: "magenta"
+ }
+ }
+
SvgElementPositionItem {
sceneSize: info.sceneSize
elementName: "battery-volt-text"
@@ -110,7 +269,7 @@ Item {
color: "white"
font {
family: "Arial"
- pixelSize: parent.height * 1.3
+ pixelSize: Math.floor(parent.height * 1.2)
}
}
}
@@ -126,7 +285,7 @@ Item {
color: "white"
font {
family: "Arial"
- pixelSize: parent.height * 1.3
+ pixelSize: Math.floor(parent.height * 1.2)
}
}
}
@@ -142,7 +301,7 @@ Item {
color: "white"
font {
family: "Arial"
- pixelSize: parent.height * 1.3
+ pixelSize: Math.floor(parent.height * 1.2)
}
}
}
@@ -157,6 +316,7 @@ Item {
property int minThrottleNumber : index+1
elementName: "eng" + minThrottleNumber
sceneSize: info.sceneSize
+
visible: throttleNumberBar.throttleNumber >= minThrottleNumber
}
}
@@ -184,4 +344,123 @@ Item {
elementName: "rx-mask"
sceneSize: info.sceneSize
}
+
+ SvgElementImage {
+ id: home_bg
+ elementName: "home-bg"
+ sceneSize: info.sceneSize
+ y: Math.floor(scaledBounds.y * sceneItem.height)
+
+ states: State {
+ name: "fading"
+ when: TakeOffLocation.Status !== 0
+ PropertyChanges { target: home_bg; x: Math.floor(scaledBounds.x * sceneItem.width) + home_bg.width; }
+ }
+
+ transitions: Transition {
+ SequentialAnimation {
+ PropertyAnimation { property: "x"; duration: 800 }
+ }
+ }
+ }
+
+ SvgElementPositionItem {
+ sceneSize: info.sceneSize
+ id: home_heading_text
+ elementName: "home-heading-text"
+ width: scaledBounds.width * sceneItem.width
+ height: scaledBounds.height * sceneItem.height
+ y: Math.floor(scaledBounds.y * sceneItem.height)
+
+ states: State {
+ name: "fading_heading"
+ when: TakeOffLocation.Status !== 0
+ PropertyChanges { target: home_heading_text; x: Math.floor(scaledBounds.x * sceneItem.width) + home_bg.width }
+ }
+
+ transitions: Transition {
+ SequentialAnimation {
+ PropertyAnimation { property: "x"; duration: 800 }
+ }
+ }
+ Text {
+ text: " "+home_heading.toFixed(1)+"°"
+ anchors.centerIn: parent
+ color: "cyan"
+ font {
+ family: "Arial"
+ pixelSize: parent.height * 1.2
+ }
+ }
+ }
+
+ SvgElementPositionItem {
+ sceneSize: info.sceneSize
+ id: home_distance_text
+ elementName: "home-distance-text"
+ width: scaledBounds.width * sceneItem.width
+ height: scaledBounds.height * sceneItem.height
+ y: Math.floor(scaledBounds.y * sceneItem.height)
+
+ states: State {
+ name: "fading_distance"
+ when: TakeOffLocation.Status !== 0
+ PropertyChanges { target: home_distance_text; x: Math.floor(scaledBounds.x * sceneItem.width) + home_bg.width; }
+ }
+
+ transitions: Transition {
+ SequentialAnimation {
+ PropertyAnimation { property: "x"; duration: 800 }
+ }
+ }
+
+ Text {
+ text: home_distance.toFixed(0)+" m"
+ anchors.centerIn: parent
+ color: "cyan"
+ font {
+ family: "Arial"
+ pixelSize: parent.height * 1.2
+ }
+ }
+ }
+
+ SvgElementPositionItem {
+ sceneSize: info.sceneSize
+ id: home_eta_text
+ elementName: "home-eta-text"
+ width: scaledBounds.width * sceneItem.width
+ height: scaledBounds.height * sceneItem.height
+ y: Math.floor(scaledBounds.y * sceneItem.height)
+
+ states: State {
+ name: "fading_distance"
+ when: TakeOffLocation.Status !== 0
+ PropertyChanges { target: home_eta_text; x: Math.floor(scaledBounds.x * sceneItem.width) + home_bg.width; }
+ }
+
+ transitions: Transition {
+ SequentialAnimation {
+ PropertyAnimation { property: "x"; duration: 800 }
+ }
+ }
+
+ Text {
+ text: formatTime(home_eta_h) + ":" + formatTime(home_eta_m) + ":" + formatTime(home_eta_s)
+ anchors.centerIn: parent
+ color: "cyan"
+ font {
+ family: "Arial"
+ pixelSize: parent.height * 1.2
+ }
+ }
+ }
+
+
+ SvgElementImage {
+ id: info_border
+ elementName: "info-border"
+ sceneSize: info.sceneSize
+ width: Math.floor(parent.width * 1.009)
+ }
}
diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml
index cca29f743..336a0617a 100644
--- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml
+++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml
@@ -8,18 +8,29 @@ Rectangle {
elementName: "pfd-window"
fillMode: Image.PreserveAspectFit
anchors.fill: parent
-
sceneSize: Qt.size(width, height)
+
+ Rectangle {
+ width: Math.floor(parent.paintedHeight * 1.319)
+ height: Math.floor(parent.paintedHeight - parent.paintedHeight * 0.008)
+
+ color: "transparent"
+ border.color: "white"
+ border.width: Math.floor(parent.paintedHeight * 0.008)
+ radius: Math.floor(parent.paintedHeight * 0.01)
+ anchors.centerIn: parent
+ }
Item {
id: sceneItem
+
+ width: Math.floor((parent.paintedHeight * 1.32) - (parent.paintedHeight * 0.013))
+ height: Math.floor(parent.paintedHeight - parent.paintedHeight * 0.02)
property variant viewportSize : Qt.size(width, height)
- width: parent.paintedWidth
- height: parent.paintedHeight
anchors.centerIn: parent
clip: true
-
+
Loader {
id: worldLoader
anchors.fill: parent
@@ -39,14 +50,6 @@ Rectangle {
anchors.fill: parent
}
- SvgElementImage {
- id: foreground
- elementName: "foreground"
- sceneSize: sceneItem.viewportSize
-
- anchors.centerIn: parent
- }
-
SvgElementImage {
id: side_slip_fixed
elementName: "sideslip-fixed"
@@ -55,28 +58,6 @@ Rectangle {
x: scaledBounds.x * sceneItem.width
}
- SvgElementImage {
- id: side_slip
- elementName: "sideslip-moving"
- sceneSize: sceneItem.viewportSize
- smooth: true
-
- property real sideSlip: AccelState.y
- //smooth side slip changes, a low pass filter replacement
- //accels are updated once per second
- Behavior on sideSlip {
- SmoothedAnimation {
- duration: 1000
- velocity: -1
- }
- }
-
- anchors.horizontalCenter: foreground.horizontalCenter
- //0.5 coefficient is empirical to limit indicator movement
- anchors.horizontalCenterOffset: sideSlip*width*0.1 //was 0.5
- y: scaledBounds.y * sceneItem.height
- }
-
Compass {
anchors.fill: parent
sceneSize: sceneItem.viewportSize
diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/PfdWorldView.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/PfdWorldView.qml
index eddc2f49f..b2b1d2e6a 100644
--- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/PfdWorldView.qml
+++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/PfdWorldView.qml
@@ -12,7 +12,7 @@ Item {
property variant scaledBounds: svgRenderer.scaledElementBounds("pfd.svg", "horizon")
width: Math.round(sceneItem.width*scaledBounds.width/2)*2
- height: Math.round(sceneItem.height*scaledBounds.height/2)*2
+ height: Math.round(sceneItem.height*scaledBounds.height/2)*3
property double pitch1DegScaledHeight: (svgRenderer.scaledElementBounds("pfd.svg", "pitch-90").y -
svgRenderer.scaledElementBounds("pfd.svg", "pitch90").y)/180.0
@@ -49,6 +49,16 @@ Item {
border: 1
smooth: true
}
+
+ SvgElementImage {
+ id: pitch_0
+ elementName: "pitch0"
+
+ sceneSize: background.sceneSize
+ anchors.centerIn: parent
+ border: 1
+ smooth: true
+ }
}
Item {
diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/RollScale.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/RollScale.qml
index d02023e3b..f5ab5df1a 100644
--- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/RollScale.qml
+++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/RollScale.qml
@@ -13,8 +13,11 @@ Item {
elementName: "roll-scale"
sceneSize: sceneItem.sceneSize
- x: Math.floor(scaledBounds.x * sceneItem.width)
- y: Math.floor(scaledBounds.y * sceneItem.height)
+ width: scaledBounds.width * sceneItem.width
+ height: scaledBounds.height * sceneItem.height
+
+ x: scaledBounds.x * sceneItem.width
+ y: scaledBounds.y * sceneItem.height
smooth: true
diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Warnings.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Warnings.qml
index 0f86755e0..82030e16b 100644
--- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Warnings.qml
+++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Warnings.qml
@@ -10,6 +10,8 @@ Item {
id: warning_bg
elementName: "warnings-bg"
sceneSize: warnings.sceneSize
+ width: background.width
+ anchors.bottom: parent.bottom
}
SvgElementPositionItem {
@@ -26,7 +28,7 @@ Item {
text: "RC INPUT"
font {
family: "Arial"
- pixelSize: parent.height * 0.8
+ pixelSize: Math.floor(parent.height * 0.8)
weight: Font.DemiBold
}
}
@@ -53,7 +55,7 @@ Item {
text: "MASTER CAUTION"
font {
family: "Arial"
- pixelSize: parent.height * 0.8
+ pixelSize: Math.floor(parent.height * 0.8)
weight: Font.DemiBold
}
}
@@ -74,7 +76,7 @@ Item {
text: "AUTOPILOT"
font {
family: "Arial"
- pixelSize: parent.height * 0.8
+ pixelSize: Math.floor(parent.height * 0.8)
weight: Font.DemiBold
}
}
@@ -101,7 +103,7 @@ Item {
id: warning_battery
elementName: "warning-battery"
sceneSize: warnings.sceneSize
-
+ anchors.right: parent.right
visible: SystemAlarms.Alarm_Battery > 1
}
@@ -109,7 +111,7 @@ Item {
id: warning_attitude
elementName: "warning-attitude"
sceneSize: warnings.sceneSize
-
+ anchors.centerIn: background.centerIn
visible: SystemAlarms.Alarm_Attitude > 1
}
}
diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg
index ca9d72433..eddbc6a21 100644
--- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg
+++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg
@@ -42,14 +42,6 @@
offset="1"
id="stop5010" />
-
-
-
+ inkscape:snap-global="true"
+ inkscape:snap-intersection-paths="false"
+ inkscape:snap-object-midpoints="true">
image/svg+xml
-
+
@@ -903,20 +897,22 @@
inkscape:groupmode="layer"
id="layer25"
inkscape:label="home-bg"
- style="display:inline">
+ style="display:inline"
+ sodipodi:insensitive="true">
-
+
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="scccss" />
+ id="home-eta-label"
+ transform="matrix(1,0,0,1.0973877,0,-46.442937)">
+ id="home-distance-label"
+ transform="matrix(1,0,0,1.0577142,0,-27.456636)">
+ id="home-heading-label"
+ transform="matrix(1,0,0,1.0577142,0,-26.706351)">
+ id="home-eta-text"
+ transform="matrix(1,0,0,0.99160769,0,2.0646588)">
+ id="home-distance-text"
+ transform="matrix(1,0,0,0.99160769,0,2.0975587)">
+ id="home-heading-text"
+ transform="matrix(1,0,0,0.99160769,15.28151,1.9884587)">
+ transform="translate(0,-4)">
+ transform="translate(0,4)">
-
+
+
+
+
+
-
-
-
-
-
+ x="-0.5"
+ y="-0.5" />
-
-
-
-
-
-
-
-
-
-
-
+ transform="matrix(1,0,0,1.0375459,-5.79738,-3.7697649)">
-
+ transform="matrix(1,0,0,1.0375459,0,-3.0939387)">
+ id="waypoint-label"
+ transform="matrix(1.0375459,0,0,1.0375459,-7.161678,-3.5667345)">
+ id="waypoint-heading-label"
+ transform="translate(0,-3.00017)">
+ id="waypoint-distance-label"
+ transform="translate(0,-3.00017)">
+
+
+
+
+
+
+
+
+
+ id="waypoint-mode-label"
+ transform="translate(0,-3.113201)">
+ id="waypoint-eta-label"
+ transform="matrix(1.0375459,0,0,1.0375459,-14.202279,-4.0166731)">
-
+ style="display:inline">
+ style="display:inline">
+ transform="translate(0,16.75)">
+ style="display:inline">
+ transform="translate(0,-1.231522)">
+ style="display:inline">
+ inkscape:label="waypoint-eta-text">
+ transform="translate(0,0.595158)">
+ inkscape:label="waypoint-distance-text">
+ transform="translate(0,0.595158)">
+ inkscape:label="waypoint-heading-text">
+ transform="translate(2,0.595158)">
+ inkscape:label="waypoint-mode-text">
+ transform="translate(0,0.595158)">
@@ -1924,12 +1892,11 @@
inkscape:groupmode="layer"
id="layer56"
inkscape:label="waypoint-description-text"
- style="display:inline"
- sodipodi:insensitive="true">
+ style="display:inline">
+ transform="translate(30,0.595158)">
@@ -1985,21 +1952,67 @@
style="font-size:12px;fill:#ff00ff"
id="path6364"
inkscape:connector-curvature="0" />
+
+
+ d="m 309.28568,10.810623 -1.70508,0 -0.49219,1.957031 1.7168,0 0.48047,-1.957031 m -0.87891,-3.3339842 -0.60938,2.4316406 1.71094,0 0.61524,-2.4316406 0.9375,0 -0.60352,2.4316406 1.82813,0 0,0.9023436 -2.05665,0 -0.48046,1.957031 1.86328,0 0,0.896485 -2.0918,0 -0.60937,2.425781 -0.9375,0 0.60351,-2.425781 -1.7168,0 -0.60351,2.425781 -0.94336,0 0.60937,-2.425781 -1.8457,0 0,-0.896485 2.0625,0 0.49219,-1.957031 -1.88672,0 0,-0.9023436 2.11523,0 0.59766,-2.4316406 0.94922,0" />
+
+
+
+
+ d="m 303.29349,23.12117 c -0.60938,8e-6 -1.06836,0.300789 -1.37696,0.902344 -0.30469,0.597663 -0.45703,1.498052 -0.45703,2.701172 0,1.199222 0.15234,2.099611 0.45703,2.701172 0.3086,0.597657 0.76758,0.896485 1.37696,0.896484 0.61327,1e-6 1.07226,-0.298827 1.37695,-0.896484 0.30859,-0.601561 0.46289,-1.50195 0.46289,-2.701172 0,-1.20312 -0.1543,-2.103509 -0.46289,-2.701172 -0.30469,-0.601555 -0.76368,-0.902336 -1.37695,-0.902344 m 0,-0.9375 c 0.98046,9e-6 1.72851,0.38868 2.24414,1.166016 0.51952,0.773444 0.77929,1.898443 0.7793,3.375 -1e-5,1.472659 -0.25978,2.597658 -0.7793,3.375 -0.51563,0.773437 -1.26368,1.160156 -2.24414,1.160156 -0.98047,0 -1.73047,-0.386719 -2.25,-1.160156 -0.51563,-0.777342 -0.77344,-1.902341 -0.77344,-3.375 0,-1.476557 0.25781,-2.601556 0.77344,-3.375 0.51953,-0.777336 1.26953,-1.166007 2.25,-1.166016" />
+ d="m 310.93411,23.12117 c -0.60938,8e-6 -1.06836,0.300789 -1.37695,0.902344 -0.30469,0.597663 -0.45703,1.498052 -0.45703,2.701172 0,1.199222 0.15234,2.099611 0.45703,2.701172 0.30859,0.597657 0.76757,0.896485 1.37695,0.896484 0.61328,1e-6 1.07226,-0.298827 1.37696,-0.896484 0.30858,-0.601561 0.46288,-1.50195 0.46289,-2.701172 -10e-6,-1.20312 -0.15431,-2.103509 -0.46289,-2.701172 -0.3047,-0.601555 -0.76368,-0.902336 -1.37696,-0.902344 m 0,-0.9375 c 0.98047,9e-6 1.72851,0.38868 2.24414,1.166016 0.51953,0.773444 0.77929,1.898443 0.7793,3.375 -1e-5,1.472659 -0.25977,2.597658 -0.7793,3.375 -0.51563,0.773437 -1.26367,1.160156 -2.24414,1.160156 -0.98047,0 -1.73047,-0.386719 -2.25,-1.160156 -0.51562,-0.777342 -0.77344,-1.902341 -0.77343,-3.375 -1e-5,-1.476557 0.25781,-2.601556 0.77343,-3.375 0.51953,-0.777336 1.26953,-1.166007 2.25,-1.166016" />
+
+
+
+
+
+
@@ -2385,14 +2398,12 @@
inkscape:groupmode="layer"
id="layer57"
inkscape:label="gps"
- style="display:inline"
- sodipodi:insensitive="true">
+ style="display:inline">
+ style="display:inline">
+ transform="translate(0,1.5)">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ style="display:inline">
+ style="display:inline">
-
+
-
+
+
+
+
-
+ style="display:inline">
+
+
+
+
diff --git a/ground/openpilotgcs/src/plugins/pfdqml/pfdqmlgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/pfdqml/pfdqmlgadgetwidget.cpp
index 60b391505..e1978108d 100644
--- a/ground/openpilotgcs/src/plugins/pfdqml/pfdqmlgadgetwidget.cpp
+++ b/ground/openpilotgcs/src/plugins/pfdqml/pfdqmlgadgetwidget.cpp
@@ -63,7 +63,10 @@ PfdQmlGadgetWidget::PfdQmlGadgetWidget(QWindow *parent) :
"SystemAlarms" <<
"NedAccel" <<
"FlightBatteryState" <<
- "ActuatorDesired";
+ "ActuatorDesired" <<
+ "TakeOffLocation" <<
+ "PathPlan" <<
+ "WaypointActive";
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager *objManager = pm->getObject();