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();