From 81999ced235b9c33c5a04e2546c8df69b2311f0a Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Tue, 2 Sep 2014 00:21:38 +0200 Subject: [PATCH 01/11] OP-1435 Add_more_info_PFD Follow up to previous review. Added Panels.qml, System tab panel, new behavior for panels with close icon. --- .../share/openpilotgcs/pfd/default/Info.qml | 733 -------------- .../share/openpilotgcs/pfd/default/Panels.qml | 906 ++++++++++++++++++ .../share/openpilotgcs/pfd/default/Pfd.qml | 6 + .../share/openpilotgcs/pfd/default/pfd.svg | 384 ++++++-- 4 files changed, 1226 insertions(+), 803 deletions(-) create mode 100644 ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml index e8455caba..f8db82737 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml @@ -37,11 +37,6 @@ Item { 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 est_flight_time: Math.round(FlightBatteryState.EstimatedFlightTime) - property real est_time_h: (est_flight_time > 0 ? Math.floor(est_flight_time / 3600) : 0 ) - property real est_time_m: (est_flight_time > 0 ? Math.floor((est_flight_time - est_time_h*3600)/60) : 0) - property real est_time_s: (est_flight_time > 0 ? Math.floor(est_flight_time - est_time_h*3600 - est_time_m*60) : 0) - function reset_distance(){ total_distance = 0; } @@ -66,110 +61,6 @@ Item { return time.toString(); } - // - // Panel functions - // - - property bool hide_display_rc: false - property bool hide_display_bat: false - property bool hide_display_oplm: false - - function hide_display_rcinput(){ - if (hide_display_rc == false && hide_display_bat == false && hide_display_oplm == false) - hide_display_rc = true; - else - hide_display_rc = false; - battery_bg.z = -1 - oplm_bg.z = -1 - } - - function hide_display_battery(){ - if (hide_display_bat == false && hide_display_rc == false && hide_display_oplm == false) - hide_display_bat = true; - else - hide_display_bat = false; - battery_bg.z = 10 - oplm_bg.z = -1 - } - - function hide_display_oplink(){ - if (hide_display_oplm == false && hide_display_rc == false && hide_display_bat == false) - hide_display_oplm = true; - else - hide_display_oplm = false; - oplm_bg.z = 20 - } - - // Uninitialised, Ok, Warning, Critical, Error - property variant batColors : ["#2c2929", "green", "orange", "red", "red"] - - property real smeter_angle - - // Needed to get correctly int8 value, reset value (-127) on disconnect - property int oplm0_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_0 : -127 - property int oplm1_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_1 : -127 - property int oplm2_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_2 : -127 - property int oplm3_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_3 : -127 - - // Filtering for S-meter. Smeter range -127dB <--> -13dB = S9+60dB - - Timer { - id: smeter_filter0 - interval: 100; running: true; repeat: true - onTriggered: smeter_angle = (0.90 * smeter_angle) + (0.1 * (oplm0_db + 13)) - } - - Timer { - id: smeter_filter1 - interval: 100; repeat: true - onTriggered: smeter_angle = (0.90 * smeter_angle) + (0.1 * (oplm1_db + 13)) - } - - Timer { - id: smeter_filter2 - interval: 100; repeat: true - onTriggered: smeter_angle = (0.90 * smeter_angle) + (0.1 * (oplm2_db + 13)) - } - - Timer { - id: smeter_filter3 - interval: 100; repeat: true - onTriggered: smeter_angle = (0.90 * smeter_angle) + (0.1 * (oplm3_db + 13)) - } - - property int smeter_filter - property variant oplm_pair_id : OPLinkStatus.PairIDs_0 - - function select_oplm(index){ - smeter_filter0.running = false; - smeter_filter1.running = false; - smeter_filter2.running = false; - smeter_filter3.running = false; - - switch(index) { - case 0: - smeter_filter0.running = true; - smeter_filter = 0; - oplm_pair_id = OPLinkStatus.PairIDs_0 - break; - case 1: - smeter_filter1.running = true; - smeter_filter = 1; - oplm_pair_id = OPLinkStatus.PairIDs_1 - break; - case 2: - smeter_filter2.running = true; - smeter_filter = 2; - oplm_pair_id = OPLinkStatus.PairIDs_2 - break; - case 3: - smeter_filter3.running = true; - smeter_filter = 3; - oplm_pair_id = OPLinkStatus.PairIDs_3 - break; - } - } - // End Functions // // Start Drawing @@ -473,630 +364,6 @@ Item { } } - // - // Rc-Input panel - // - - SvgElementImage { - id: rc_input_bg - elementName: "rc-input-bg" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - - states: State { - name: "fading" - when: hide_display_rc !== true - PropertyChanges { target: rc_input_bg; x: Math.floor(scaledBounds.x * sceneItem.width) - (rc_input_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - id: rc_input_anim - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - SvgElementImage { - id: rc_input_labels - elementName: "rc-input-labels" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - - states: State { - name: "fading" - when: hide_display_rc !== true - PropertyChanges { target: rc_input_labels; x: Math.floor(scaledBounds.x * sceneItem.width) - (rc_input_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - SvgElementImage { - id: rc_input_mousearea - elementName: "rc-input-panel-mousearea" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - - MouseArea { - id: hidedisp_rcinput; - anchors.fill: parent; - cursorShape: hide_display_bat == false && hide_display_oplm == false ? Qt.WhatsThisCursor : Qt.ArrowCursor - onClicked: hide_display_bat == false && hide_display_oplm == false ? hide_display_rcinput() : 0 - } - - states: State { - name: "fading" - when: hide_display_rc !== true - PropertyChanges { target: rc_input_mousearea; x: Math.floor(scaledBounds.x * sceneItem.width) - (rc_input_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - SvgElementImage { - id: rc_throttle - elementName: "rc-throttle" - sceneSize: info.sceneSize - - width: scaledBounds.width * sceneItem.width - height: (scaledBounds.height * sceneItem.height) * (ManualControlCommand.Throttle) - - x: scaledBounds.x * sceneItem.width - y: (scaledBounds.y * sceneItem.height) - rc_throttle.height + (scaledBounds.height * sceneItem.height) - - smooth: true - - states: State { - name: "fading" - when: hide_display_rc !== true - PropertyChanges { target: rc_throttle; x: Math.floor(scaledBounds.x * sceneItem.width) - (rc_input_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - SvgElementImage { - id: rc_stick - elementName: "rc-stick" - sceneSize: info.sceneSize - - width: scaledBounds.width * sceneItem.width - height: scaledBounds.height * sceneItem.height - - x: (scaledBounds.x * sceneItem.width) + (ManualControlCommand.Roll * rc_stick.width * 2.5) - y: (scaledBounds.y * sceneItem.height) + (ManualControlCommand.Pitch * rc_stick.width * 2.5) - - smooth: true - - //rotate it around his center - transform: Rotation { - angle: ManualControlCommand.Yaw * 90 - origin.y : rc_stick.height / 2 - origin.x : rc_stick.width / 2 - } - - states: State { - name: "fading" - when: hide_display_rc !== true - PropertyChanges { target: rc_stick; x: Math.floor(scaledBounds.x * sceneItem.width) - (rc_input_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - // - // Battery panel - // - - SvgElementImage { - id: battery_bg - elementName: "battery-bg" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - z: 10 - - states: State { - name: "fading" - when: hide_display_bat !== true - PropertyChanges { target: battery_bg; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - SvgElementPositionItem { - id: battery_volt - sceneSize: info.sceneSize - elementName: "battery-volt-text" - z: 11 - - width: scaledBounds.width * sceneItem.width - height: scaledBounds.height * sceneItem.height - y: scaledBounds.y * sceneItem.height - - states: State { - name: "fading" - when: hide_display_bat !== true - PropertyChanges { target: battery_volt; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - - Rectangle { - anchors.fill: parent - color: info.batColors[SystemAlarms.Alarm_Battery] - border.color: "white" - border.width: battery_volt.width * 0.01 - radius: border.width * 4 - - Text { - text: FlightBatteryState.Voltage.toFixed(2) - anchors.centerIn: parent - color: "white" - font { - family: "Arial" - pixelSize: Math.floor(parent.height * 0.6) - } - } - } - } - - SvgElementPositionItem { - id: battery_amp - sceneSize: info.sceneSize - elementName: "battery-amp-text" - z: 12 - - width: scaledBounds.width * sceneItem.width - height: scaledBounds.height * sceneItem.height - y: scaledBounds.y * sceneItem.height - - states: State { - name: "fading" - when: hide_display_bat !== true - PropertyChanges { target: battery_amp; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - - Rectangle { - anchors.fill: parent - color: info.batColors[SystemAlarms.Alarm_Battery] - border.color: "white" - border.width: battery_volt.width * 0.01 - radius: border.width * 4 - - Text { - text: FlightBatteryState.Current.toFixed(2) - anchors.centerIn: parent - color: "white" - font { - family: "Arial" - pixelSize: Math.floor(parent.height * 0.6) - } - } - } - } - - SvgElementPositionItem { - id: battery_milliamp - sceneSize: info.sceneSize - elementName: "battery-milliamp-text" - z: 13 - - width: scaledBounds.width * sceneItem.width - height: scaledBounds.height * sceneItem.height - y: scaledBounds.y * sceneItem.height - - states: State { - name: "fading" - when: hide_display_bat !== true - PropertyChanges { target: battery_milliamp; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - - Rectangle { - anchors.fill: parent - - // Alarm based on FlightBatteryState.EstimatedFlightTime < 120s orange, < 60s red - color: (FlightBatteryState.EstimatedFlightTime <= 120 && FlightBatteryState.EstimatedFlightTime > 60 ? "orange" : - (FlightBatteryState.EstimatedFlightTime <= 60 ? "red": info.batColors[SystemAlarms.Alarm_Battery])) - - border.color: "white" - border.width: battery_volt.width * 0.01 - radius: border.width * 4 - - Text { - text: FlightBatteryState.ConsumedEnergy.toFixed(0) - anchors.centerIn: parent - color: "white" - font { - family: "Arial" - pixelSize: Math.floor(parent.height * 0.6) - } - } - } - } - - SvgElementPositionItem { - id: battery_estimated_flight_time - sceneSize: info.sceneSize - elementName: "battery-estimated-flight-time" - z: 14 - width: scaledBounds.width * sceneItem.width - height: scaledBounds.height * sceneItem.height - y: scaledBounds.y * sceneItem.height - - states: State { - name: "fading" - when: hide_display_bat !== true - PropertyChanges { target: battery_estimated_flight_time; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - - Rectangle { - anchors.fill: parent - //color: info.batColors[SystemAlarms.Alarm_Battery] - - // Alarm based on FlightBatteryState.EstimatedFlightTime < 120s orange, < 60s red - color: (FlightBatteryState.EstimatedFlightTime <= 120 && FlightBatteryState.EstimatedFlightTime > 60 ? "orange" : - (FlightBatteryState.EstimatedFlightTime <= 60 ? "red": info.batColors[SystemAlarms.Alarm_Battery])) - - border.color: "white" - border.width: battery_volt.width * 0.01 - radius: border.width * 4 - - Text { - text: formatTime(est_time_h) + ":" + formatTime(est_time_m) + ":" + formatTime(est_time_s) - anchors.centerIn: parent - color: "white" - font { - family: "Arial" - pixelSize: Math.floor(parent.height * 0.6) - } - } - } - } - - SvgElementImage { - id: battery_labels - elementName: "battery-labels" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - z: 15 - states: State { - name: "fading" - when: hide_display_bat !== true - PropertyChanges { target: battery_labels; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - SvgElementImage { - id: battery_mousearea - elementName: "battery-panel-mousearea" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - z: 16 - - MouseArea { - id: hidedisp_battery; - anchors.fill: parent; - cursorShape: hide_display_rc == false && hide_display_oplm == false ? Qt.WhatsThisCursor : Qt.ArrowCursor - onClicked: hide_display_rc == false && hide_display_oplm == false ? hide_display_battery() : 0 - } - - states: State { - name: "fading" - when: hide_display_bat !== true - PropertyChanges { target: battery_mousearea; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - // - // OPLM panel - // - - SvgElementImage { - id: oplm_bg - elementName: "oplm-bg" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - z: 20 - - states: State { - name: "fading" - when: hide_display_oplm !== true - PropertyChanges { target: oplm_bg; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - SvgElementImage { - id: smeter_bg - elementName: "smeter-bg" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - z: 21 - - states: State { - name: "fading" - when: hide_display_oplm !== true - PropertyChanges { target: smeter_bg; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - SvgElementImage { - id: smeter_scale - elementName: "smeter-scale" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - z: 22 - - states: State { - name: "fading" - when: hide_display_oplm !== true - PropertyChanges { target: smeter_scale; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - SvgElementImage { - id: smeter_needle - elementName: "smeter-needle" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - z: 23 - - states: State { - name: "fading" - when: hide_display_oplm !== true - PropertyChanges { target: smeter_needle; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - - transform: Rotation { - angle: smeter_angle.toFixed(1) - origin.y : smeter_needle.height - } - } - - SvgElementImage { - id: smeter_mask - elementName: "smeter-mask" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - z: 24 - - states: State { - name: "fading" - when: hide_display_oplm !== true - PropertyChanges { target: smeter_mask; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - SvgElementImage { - id: oplm_button_bg - elementName: "oplm-button-bg" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - z: 25 - - states: State { - name: "fading" - when: hide_display_oplm !== true - PropertyChanges { target: oplm_button_bg; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - Repeater { - model: 4 - - SvgElementImage { - z: 25 - property variant idButton_oplm: "oplm_button_" + index - property variant idButton_oplm_mousearea: "oplm_button_mousearea" + index - property variant button_color: "button"+index+"_color" - - id: idButton_oplm - - elementName: "oplm-button-" + index - sceneSize: info.sceneSize - - Rectangle { - anchors.fill: parent - border.color: "red" - border.width: parent.width * 0.04 - radius: border.width*3 - color: "transparent" - opacity: smeter_filter == index ? 0.5 : 0 - } - - MouseArea { - id: idButton_oplm_mousearea; - anchors.fill: parent; - cursorShape: Qt.PointingHandCursor - onClicked: select_oplm(index) - } - - states: State { - name: "fading" - when: hide_display_oplm !== true - PropertyChanges { target: idButton_oplm; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - } - - SvgElementImage { - id: oplm_id_label - elementName: "oplm-id-label" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - z: 26 - states: State { - name: "fading" - when: hide_display_oplm !== true - PropertyChanges { target: oplm_id_label; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - - SvgElementPositionItem { - id: oplm_id_text - sceneSize: info.sceneSize - elementName: "oplm-id-text" - z: 27 - - width: scaledBounds.width * sceneItem.width - height: scaledBounds.height * sceneItem.height - y: scaledBounds.y * sceneItem.height - - states: State { - name: "fading" - when: hide_display_oplm !== true - PropertyChanges { target: oplm_id_text; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - - Text { - text: oplm_pair_id > 0 ? oplm_pair_id.toString(16) : "-- -- -- --" - anchors.centerIn: parent - color: "white" - font { - family: "Arial" - pixelSize: Math.floor(parent.height * 1.4) - weight: Font.DemiBold - capitalization: Font.AllUppercase - } - } - } - - SvgElementImage { - id: oplm_mousearea - elementName: "oplm-panel-mousearea" - sceneSize: info.sceneSize - y: Math.floor(scaledBounds.y * sceneItem.height) - z: 26 - - MouseArea { - id: hidedisp_oplm; - anchors.fill: parent; - cursorShape: hide_display_rc == false && hide_display_bat == false ? Qt.WhatsThisCursor : Qt.ArrowCursor - onClicked: hide_display_rc == false && hide_display_bat == false ? hide_display_oplink() : 0 - } - - states: State { - name: "fading" - when: hide_display_oplm !== true - PropertyChanges { target: oplm_mousearea; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } - } - - transitions: Transition { - SequentialAnimation { - PropertyAnimation { property: "x"; duration: 800 } - } - } - } - SvgElementImage { id: info_border elementName: "info-border" diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml new file mode 100644 index 000000000..0e3f0f483 --- /dev/null +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml @@ -0,0 +1,906 @@ +import QtQuick 2.0 + +Item { + id: panels + property variant sceneSize + + property real est_flight_time: Math.round(FlightBatteryState.EstimatedFlightTime) + property real est_time_h: (est_flight_time > 0 ? Math.floor(est_flight_time / 3600) : 0 ) + property real est_time_m: (est_flight_time > 0 ? Math.floor((est_flight_time - est_time_h*3600)/60) : 0) + property real est_time_s: (est_flight_time > 0 ? Math.floor(est_flight_time - est_time_h*3600 - est_time_m*60) : 0) + + function formatTime(time) { + if (time === 0) + return "00" + if (time < 10) + return "0" + time; + else + return time.toString(); + } + + // + // Panel functions + // + + property bool show_panels: false + property bool hide_display_rc: false + property bool hide_display_bat: false + property bool hide_display_oplm: false + + function close_panels(){ + if (show_panels == true) + show_panels = false; + rc_input_bg.z = 10 + battery_bg.z = 20 + oplm_bg.z = 30 + system_bg.z = 40 + } + + function hide_display_rcinput(){ + if (show_panels == false) + show_panels = true; + else + rc_input_bg.z = 10 + battery_bg.z = -1 + oplm_bg.z = -1 + system_bg.z = -1 + } + + function hide_display_battery(){ + if (show_panels == false) + show_panels = true; + else + rc_input_bg.z = -1 + battery_bg.z = 20 + oplm_bg.z = -1 + system_bg.z = -1 + } + + function hide_display_oplink(){ + if (show_panels == false) + show_panels = true; + else + rc_input_bg.z = -1 + battery_bg.z = -1 + oplm_bg.z = 30 + system_bg.z = -1 + } + + function hide_display_system(){ + if (show_panels == false) + show_panels = true; + else + rc_input_bg.z = -1 + battery_bg.z = -1 + oplm_bg.z = -1 + system_bg.z = 40 + } + + // Uninitialised, Ok, Warning, Critical, Error + property variant batColors : ["#2c2929", "green", "orange", "red", "red"] + + property real smeter_angle + + // Needed to get correctly int8 value, reset value (-127) on disconnect + property int oplm0_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_0 : -127 + property int oplm1_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_1 : -127 + property int oplm2_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_2 : -127 + property int oplm3_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_3 : -127 + + // Filtering for S-meter. Smeter range -127dB <--> -13dB = S9+60dB + + Timer { + id: smeter_filter0 + interval: 100; running: true; repeat: true + onTriggered: smeter_angle = (0.90 * smeter_angle) + (0.1 * (oplm0_db + 13)) + } + + Timer { + id: smeter_filter1 + interval: 100; repeat: true + onTriggered: smeter_angle = (0.90 * smeter_angle) + (0.1 * (oplm1_db + 13)) + } + + Timer { + id: smeter_filter2 + interval: 100; repeat: true + onTriggered: smeter_angle = (0.90 * smeter_angle) + (0.1 * (oplm2_db + 13)) + } + + Timer { + id: smeter_filter3 + interval: 100; repeat: true + onTriggered: smeter_angle = (0.90 * smeter_angle) + (0.1 * (oplm3_db + 13)) + } + + property int smeter_filter + property variant oplm_pair_id : OPLinkStatus.PairIDs_0 + + function select_oplm(index){ + smeter_filter0.running = false; + smeter_filter1.running = false; + smeter_filter2.running = false; + smeter_filter3.running = false; + + switch(index) { + case 0: + smeter_filter0.running = true; + smeter_filter = 0; + oplm_pair_id = OPLinkStatus.PairIDs_0 + break; + case 1: + smeter_filter1.running = true; + smeter_filter = 1; + oplm_pair_id = OPLinkStatus.PairIDs_1 + break; + case 2: + smeter_filter2.running = true; + smeter_filter = 2; + oplm_pair_id = OPLinkStatus.PairIDs_2 + break; + case 3: + smeter_filter3.running = true; + smeter_filter = 3; + oplm_pair_id = OPLinkStatus.PairIDs_3 + break; + } + } + + // End Functions + // + // Start Drawing + + // + // Close panel + // + + SvgElementImage { + id: close_bg + elementName: "close-bg" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: close_bg; x: Math.floor(scaledBounds.x * sceneItem.width) - (close_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + id: close_anim + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementImage { + id: close_mousearea + elementName: "close-panel-mousearea" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + + MouseArea { + id: hidedisp_close; + anchors.fill: parent; + cursorShape: show_panels == true ? Qt.WhatsThisCursor : Qt.ArrowCursor + onClicked: close_panels() + } + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: close_mousearea; x: Math.floor(scaledBounds.x * sceneItem.width) - (close_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + + // + // Rc-Input panel + // + + SvgElementImage { + id: rc_input_bg + elementName: "rc-input-bg" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: 10 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: rc_input_bg; x: Math.floor(scaledBounds.x * sceneItem.width) - (rc_input_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + id: rc_input_anim + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementImage { + id: rc_input_labels + elementName: "rc-input-labels" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: rc_input_bg.z+1 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: rc_input_labels; x: Math.floor(scaledBounds.x * sceneItem.width) - (rc_input_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementImage { + id: rc_input_mousearea + elementName: "rc-input-panel-mousearea" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: rc_input_bg.z+1 + + MouseArea { + id: hidedisp_rcinput; + anchors.fill: parent; + cursorShape: hide_display_bat == false && hide_display_oplm == false ? Qt.WhatsThisCursor : Qt.ArrowCursor + onClicked: hide_display_bat == false && hide_display_oplm == false ? hide_display_rcinput() : 0 + } + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: rc_input_mousearea; x: Math.floor(scaledBounds.x * sceneItem.width) - (rc_input_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementImage { + id: rc_throttle + elementName: "rc-throttle" + sceneSize: panels.sceneSize + z: rc_input_bg.z+2 + + width: scaledBounds.width * sceneItem.width + height: (scaledBounds.height * sceneItem.height) * (ManualControlCommand.Throttle) + + x: scaledBounds.x * sceneItem.width + y: (scaledBounds.y * sceneItem.height) - rc_throttle.height + (scaledBounds.height * sceneItem.height) + + smooth: true + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: rc_throttle; x: Math.floor(scaledBounds.x * sceneItem.width) - (rc_input_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementImage { + id: rc_stick + elementName: "rc-stick" + sceneSize: panels.sceneSize + z: rc_input_bg.z+3 + + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + + x: (scaledBounds.x * sceneItem.width) + (ManualControlCommand.Roll * rc_stick.width * 2.5) + y: (scaledBounds.y * sceneItem.height) + (ManualControlCommand.Pitch * rc_stick.width * 2.5) + + smooth: true + + //rotate it around his center + transform: Rotation { + angle: ManualControlCommand.Yaw * 90 + origin.y : rc_stick.height / 2 + origin.x : rc_stick.width / 2 + } + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: rc_stick; x: Math.floor(scaledBounds.x * sceneItem.width) - (rc_input_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + // + // Battery panel + // + + SvgElementImage { + id: battery_bg + elementName: "battery-bg" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: 20 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: battery_bg; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementPositionItem { + id: battery_volt + sceneSize: panels.sceneSize + elementName: "battery-volt-text" + z: battery_bg.z+1 + + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: scaledBounds.y * sceneItem.height + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: battery_volt; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + + Rectangle { + anchors.fill: parent + color: panels.batColors[SystemAlarms.Alarm_Battery] + border.color: "white" + border.width: battery_volt.width * 0.01 + radius: border.width * 4 + + Text { + text: FlightBatteryState.Voltage.toFixed(2) + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 0.6) + } + } + } + } + + SvgElementPositionItem { + id: battery_amp + sceneSize: panels.sceneSize + elementName: "battery-amp-text" + z: battery_bg.z+2 + + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: scaledBounds.y * sceneItem.height + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: battery_amp; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + + Rectangle { + anchors.fill: parent + color: panels.batColors[SystemAlarms.Alarm_Battery] + border.color: "white" + border.width: battery_volt.width * 0.01 + radius: border.width * 4 + + Text { + text: FlightBatteryState.Current.toFixed(2) + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 0.6) + } + } + } + } + + SvgElementPositionItem { + id: battery_milliamp + sceneSize: panels.sceneSize + elementName: "battery-milliamp-text" + z: battery_bg.z+3 + + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: scaledBounds.y * sceneItem.height + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: battery_milliamp; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + + Rectangle { + anchors.fill: parent + + // Alarm based on FlightBatteryState.EstimatedFlightTime < 120s orange, < 60s red + color: (FlightBatteryState.EstimatedFlightTime <= 120 && FlightBatteryState.EstimatedFlightTime > 60 ? "orange" : + (FlightBatteryState.EstimatedFlightTime <= 60 ? "red": panels.batColors[SystemAlarms.Alarm_Battery])) + + border.color: "white" + border.width: battery_volt.width * 0.01 + radius: border.width * 4 + + Text { + text: FlightBatteryState.ConsumedEnergy.toFixed(0) + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 0.6) + } + } + } + } + + SvgElementPositionItem { + id: battery_estimated_flight_time + sceneSize: panels.sceneSize + elementName: "battery-estimated-flight-time" + z: battery_bg.z+4 + + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: scaledBounds.y * sceneItem.height + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: battery_estimated_flight_time; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + + Rectangle { + anchors.fill: parent + //color: panels.batColors[SystemAlarms.Alarm_Battery] + + // Alarm based on FlightBatteryState.EstimatedFlightTime < 120s orange, < 60s red + color: (FlightBatteryState.EstimatedFlightTime <= 120 && FlightBatteryState.EstimatedFlightTime > 60 ? "orange" : + (FlightBatteryState.EstimatedFlightTime <= 60 ? "red": panels.batColors[SystemAlarms.Alarm_Battery])) + + border.color: "white" + border.width: battery_volt.width * 0.01 + radius: border.width * 4 + + Text { + text: formatTime(est_time_h) + ":" + formatTime(est_time_m) + ":" + formatTime(est_time_s) + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 0.6) + } + } + } + } + + SvgElementImage { + id: battery_labels + elementName: "battery-labels" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: battery_bg.z+5 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: battery_labels; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementImage { + id: battery_mousearea + elementName: "battery-panel-mousearea" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: battery_bg.z+6 + + MouseArea { + id: hidedisp_battery; + anchors.fill: parent; + cursorShape: Qt.WhatsThisCursor + onClicked: hide_display_battery() + } + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: battery_mousearea; x: Math.floor(scaledBounds.x * sceneItem.width) - (battery_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + // + // OPLM panel + // + + SvgElementImage { + id: oplm_bg + elementName: "oplm-bg" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: 30 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: oplm_bg; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementImage { + id: smeter_bg + elementName: "smeter-bg" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: oplm_bg.z+1 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: smeter_bg; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementImage { + id: smeter_scale + elementName: "smeter-scale" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: oplm_bg.z+2 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: smeter_scale; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementImage { + id: smeter_needle + elementName: "smeter-needle" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: oplm_bg.z+3 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: smeter_needle; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + + transform: Rotation { + angle: smeter_angle.toFixed(1) + origin.y : smeter_needle.height + } + } + + SvgElementImage { + id: smeter_mask + elementName: "smeter-mask" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: oplm_bg.z+4 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: smeter_mask; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementImage { + id: oplm_button_bg + elementName: "oplm-button-bg" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: oplm_bg.z+5 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: oplm_button_bg; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + Repeater { + model: 4 + + SvgElementImage { + z: oplm_bg.z+5 + property variant idButton_oplm: "oplm_button_" + index + property variant idButton_oplm_mousearea: "oplm_button_mousearea" + index + property variant button_color: "button"+index+"_color" + + id: idButton_oplm + + elementName: "oplm-button-" + index + sceneSize: panels.sceneSize + + Rectangle { + anchors.fill: parent + border.color: "red" + border.width: parent.width * 0.04 + radius: border.width*3 + color: "transparent" + opacity: smeter_filter == index ? 0.5 : 0 + } + + MouseArea { + id: idButton_oplm_mousearea; + anchors.fill: parent; + cursorShape: Qt.PointingHandCursor + onClicked: select_oplm(index) + } + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: idButton_oplm; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + } + + SvgElementImage { + id: oplm_id_label + elementName: "oplm-id-label" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: oplm_bg.z+6 + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: oplm_id_label; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementPositionItem { + id: oplm_id_text + sceneSize: panels.sceneSize + elementName: "oplm-id-text" + z: oplm_bg.z+7 + + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: scaledBounds.y * sceneItem.height + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: oplm_id_text; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + + Text { + text: oplm_pair_id > 0 ? oplm_pair_id.toString(16) : "-- -- -- --" + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 1.4) + weight: Font.DemiBold + capitalization: Font.AllUppercase + } + } + } + + SvgElementImage { + id: oplm_mousearea + elementName: "oplm-panel-mousearea" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: oplm_bg.z + + MouseArea { + id: hidedisp_oplm; + anchors.fill: parent; + cursorShape: Qt.WhatsThisCursor + onClicked: hide_display_oplink() + } + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: oplm_mousearea; x: Math.floor(scaledBounds.x * sceneItem.width) - (oplm_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + // + // System panel + // + + SvgElementImage { + id: system_bg + elementName: "system-bg" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: 40 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: system_bg; x: Math.floor(scaledBounds.x * sceneItem.width) - (system_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + id: system_anim + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementImage { + id: system_text + elementName: "system-text-tmp" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: system_bg.z+1 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: system_text; x: Math.floor(scaledBounds.x * sceneItem.width) - (system_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } + + SvgElementImage { + id: system_mousearea + elementName: "system-panel-mousearea" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: system_bg.z+1 + + MouseArea { + id: hidedisp_system; + anchors.fill: parent; + cursorShape: Qt.WhatsThisCursor + onClicked: hide_display_system() + } + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: system_mousearea; x: Math.floor(scaledBounds.x * sceneItem.width) - (system_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + } +} diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml index 336a0617a..37e38256c 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml @@ -83,6 +83,12 @@ Rectangle { sceneSize: sceneItem.viewportSize } + Panels { + anchors.fill: parent + sceneSize: sceneItem.viewportSize + } + + Warnings { anchors.fill: parent sceneSize: sceneItem.viewportSize diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg index 560b7ee07..0591abfc5 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg @@ -22,6 +22,29 @@ inkscape:export-ydpi="72"> + + + + + + + + + + + + + + + + + + + inkscape:snap-bbox-edge-midpoints="true"> + + style="display:none"> + transform="translate(0,-2.0678301)"> - @@ -1573,14 +1710,12 @@ inkscape:groupmode="layer" id="layer84" inkscape:label="battery-panel" - style="display:inline" - sodipodi:insensitive="true"> + style="display:none"> + style="display:inline"> - + transform="translate(-25.702698,19.078394)"> @@ -1893,16 +2022,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + inkscape:label="oplm-panel" + style="display:none"> + style="display:inline"> - + id="oplm-icon" + transform="translate(0,10.34333)"> + id="path5847" + inkscape:connector-curvature="0" /> + d="m 21.619769,406.77173 l 0,-9.66381 l 3.645353,0 c 0.641611,1e-5 1.131613,0.0308 1.470006,0.0923 c 0.474615,0.0791 0.872329,0.23072 1.193145,0.45484 c 0.320801,0.21974 0.577887,0.52956 0.771259,0.92947 c 0.19775,0.39992 0.296629,0.83938 0.296638,1.31839 c -9e-6,0.8218 -0.261489,1.51835 -0.784443,2.08965 c -0.522969,0.56691 -1.467816,0.85037 -2.834542,0.85036 l -2.478576,0 l 0,3.92881 l -1.27884,0 m 1.27884,-5.06922 l 2.498352,0 c 0.826186,1e-5 1.41287,-0.1538 1.760053,-0.46143 c 0.347169,-0.30762 0.520757,-0.74049 0.520764,-1.29862 c -7e-6,-0.4043 -0.103281,-0.74928 -0.309822,-1.03494 c -0.20216,-0.29004 -0.470232,-0.4812 -0.804219,-0.5735 c -0.215343,-0.0571 -0.613057,-0.0857 -1.193144,-0.0857 l -2.471984,0 l 0,3.45418" + id="path5849" + inkscape:connector-curvature="0" /> + id="path5851" + inkscape:connector-curvature="0" /> + id="path5853" + inkscape:connector-curvature="0" /> + id="path5855" + inkscape:connector-curvature="0" /> + id="path5857" + inkscape:connector-curvature="0" /> + id="path5859" + inkscape:connector-curvature="0" /> From fd9700b57882d4bb1ad8920972cdb63f7d5f667e Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Tue, 2 Sep 2014 01:28:27 +0200 Subject: [PATCH 02/11] OP-1435 Add_more_info_PFD Changes in panel functions + removed spaces --- .../share/openpilotgcs/pfd/default/Panels.qml | 53 +++++++------------ .../share/openpilotgcs/pfd/default/Pfd.qml | 1 - 2 files changed, 20 insertions(+), 34 deletions(-) diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml index 0e3f0f483..6f51d4d9d 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml @@ -30,50 +30,38 @@ Item { function close_panels(){ if (show_panels == true) show_panels = false; - rc_input_bg.z = 10 - battery_bg.z = 20 - oplm_bg.z = 30 - system_bg.z = 40 } function hide_display_rcinput(){ - if (show_panels == false) - show_panels = true; - else - rc_input_bg.z = 10 - battery_bg.z = -1 - oplm_bg.z = -1 - system_bg.z = -1 + show_panels = true; + rc_input_bg.z = 10 + battery_bg.z = -1 + oplm_bg.z = -1 + system_bg.z = -1 } function hide_display_battery(){ - if (show_panels == false) - show_panels = true; - else - rc_input_bg.z = -1 - battery_bg.z = 20 - oplm_bg.z = -1 - system_bg.z = -1 + show_panels = true; + rc_input_bg.z = 10 + battery_bg.z = 20 + oplm_bg.z = -1 + system_bg.z = -1 } function hide_display_oplink(){ - if (show_panels == false) - show_panels = true; - else - rc_input_bg.z = -1 - battery_bg.z = -1 - oplm_bg.z = 30 - system_bg.z = -1 + show_panels = true; + rc_input_bg.z = 10 + battery_bg.z = 20 + oplm_bg.z = 30 + system_bg.z = -1 } function hide_display_system(){ - if (show_panels == false) - show_panels = true; - else - rc_input_bg.z = -1 - battery_bg.z = -1 - oplm_bg.z = -1 - system_bg.z = 40 + show_panels = true; + rc_input_bg.z = 10 + battery_bg.z = 20 + oplm_bg.z = 30 + system_bg.z = 40 } // Uninitialised, Ok, Warning, Critical, Error @@ -200,7 +188,6 @@ Item { } } - // // Rc-Input panel // diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml index 37e38256c..41a19ae69 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml @@ -88,7 +88,6 @@ Rectangle { sceneSize: sceneItem.viewportSize } - Warnings { anchors.fill: parent sceneSize: sceneItem.viewportSize From 20218a0788c659de713b5b193cca313817a785ec Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Sun, 7 Sep 2014 20:29:31 +0200 Subject: [PATCH 03/11] OP-1435 Add_more_info_PFD : Add FrameType, Cpuload/temp, MemFree to SystemTab --- .../share/openpilotgcs/pfd/default/Panels.qml | 87 +- .../share/openpilotgcs/pfd/default/pfd.svg | 759 ++++++++++++++---- 2 files changed, 675 insertions(+), 171 deletions(-) diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml index 6f51d4d9d..0abf4bd16 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml @@ -69,6 +69,8 @@ Item { property real smeter_angle + property real memory_free : SystemStats.HeapRemaining > 1024 ? SystemStats.HeapRemaining / 1024 : SystemStats.HeapRemaining + // Needed to get correctly int8 value, reset value (-127) on disconnect property int oplm0_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_0 : -127 property int oplm1_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_1 : -127 @@ -844,9 +846,9 @@ Item { } } - SvgElementImage { - id: system_text - elementName: "system-text-tmp" + SvgElementPositionItem { + id: system_frametype + elementName: "system-frame-type" sceneSize: panels.sceneSize y: Math.floor(scaledBounds.y * sceneItem.height) z: system_bg.z+1 @@ -854,13 +856,90 @@ Item { states: State { name: "fading" when: show_panels !== true - PropertyChanges { target: system_text; x: Math.floor(scaledBounds.x * sceneItem.width) - (system_bg.width * 0.85); } + PropertyChanges { target: system_frametype; x: Math.floor(scaledBounds.x * sceneItem.width) - (system_bg.width * 0.85); } } transitions: Transition { SequentialAnimation { PropertyAnimation { property: "x"; duration: 800 } } + } + + Text { + text: ["FixedWing", "FixedWingElevon", "FixedWingVtail", "VTOL", "HeliCP", "QuadX", "QuadP", + "Hexa+", "Octo+", "Custom", "HexaX", "HexaH", "OctoV", "OctoCoaxP", "OctoCoaxX", "OctoX", "HexaCoax", + "Tricopter", "GroundVehicleCar", "GroundVehicleDiff", "GroundVehicleMoto"][SystemSettings.AirframeType] + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 1.4) + weight: Font.DemiBold + } + } + } + + SvgElementPositionItem { + id: system_cpuloadtemp + elementName: "system-cpu-load-temp" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: system_bg.z+1 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: system_cpuloadtemp; x: Math.floor(scaledBounds.x * sceneItem.width) - (system_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + + Text { + // CC3D hack, Cputemp not working + text: SystemStats.CPULoad+"% - "+ + [String(SystemStats.CPUTemp).charCodeAt(0) == "64" ? "??" : String(SystemStats.CPUTemp).charCodeAt(0)] +"°C" + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 1.4) + weight: Font.DemiBold + } + } + } + + SvgElementPositionItem { + id: system_memfree + elementName: "system-mem-free" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: system_bg.z+1 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: system_memfree; x: Math.floor(scaledBounds.x * sceneItem.width) - (system_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + + Text { + text: SystemStats.HeapRemaining > 1024 ? memory_free.toFixed(2) +"Kb" : memory_free +"bytes" + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 1.4) + weight: Font.DemiBold + } } } diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg index 0591abfc5..efb330d7a 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg @@ -281,11 +281,11 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="2.0688398" + inkscape:zoom="2.140049" inkscape:cx="179.9755" - inkscape:cy="107.20979" + inkscape:cy="32.445148" inkscape:document-units="px" - inkscape:current-layer="layer77" + inkscape:current-layer="svg2" showgrid="false" fit-margin-top="0" fit-margin-left="0" @@ -1383,7 +1383,8 @@ inkscape:groupmode="layer" id="layer95" inkscape:label="close-panel" - style="display:none"> + style="display:none" + sodipodi:insensitive="true"> @@ -1444,7 +1445,8 @@ inkscape:groupmode="layer" id="layer83" inkscape:label="rc-input-panel" - style="display:none"> + style="display:none" + sodipodi:insensitive="true"> @@ -1536,7 +1538,7 @@ id="rc-input-labels" transform="translate(0,-2)"> THROTTLE @@ -1653,7 +1655,7 @@ sodipodi:insensitive="true"> @@ -1670,7 +1672,7 @@ transform="matrix(1.1599442,0,0,1.1601679,-0.06770889,-75.769595)"> @@ -1710,7 +1712,8 @@ inkscape:groupmode="layer" id="layer84" inkscape:label="battery-panel" - style="display:none"> + style="display:none" + sodipodi:insensitive="true"> @@ -1771,22 +1774,22 @@ + d="M 620.206,52 L 620.206,47.775181 L 620.84648,47.775181 L 620.84648,48.367929 C 620.97909,48.161068 621.15545,47.995311 621.37558,47.870658 C 621.5957,47.74336 621.84633,47.67971 622.12746,47.679705 C 622.4404,47.67971 622.69633,47.744685 622.89524,47.874636 C 623.0968,48.004593 623.23869,48.186263 623.32091,48.419645 C 623.65507,47.926356 624.09002,47.67971 624.62575,47.679705 C 625.04478,47.67971 625.36701,47.796403 625.59244,48.029784 C 625.81787,48.260522 625.93058,48.617231 625.93059,49.099913 L 625.93059,52 L 625.2185,52 L 625.2185,49.338603 C 625.21849,49.052178 625.1946,48.846639 625.1469,48.721986 C 625.1018,48.594688 625.01827,48.492582 624.89627,48.415667 C 624.77427,48.338757 624.63106,48.300304 624.46663,48.3003 C 624.16959,48.300304 623.92294,48.39976 623.72669,48.598663 C 623.53043,48.794923 623.4323,49.110524 623.43231,49.545468 L 623.43231,52 L 622.71623,52 L 622.71623,49.255061 C 622.71623,48.936811 622.65793,48.698121 622.5412,48.53899 C 622.4245,48.379867 622.23355,48.300304 621.96834,48.3003 C 621.76678,48.300304 621.5798,48.35335 621.40742,48.459427 C 621.23768,48.565515 621.11436,48.720664 621.03745,48.924873 C 620.96055,49.129089 620.92208,49.423473 620.92208,49.808027 L 620.92208,52 L 620.20601,52" /> + d="M 632.45877,52 L 632.45877,46.168 L 633.17484,46.168 L 633.17484,48.260518 C 633.509,47.873314 633.93069,47.67971 634.4399,47.679705 C 634.75284,47.67971 635.02469,47.742035 635.25542,47.866679 C 635.48615,47.988681 635.65058,48.158416 635.74872,48.375885 C 635.84949,48.593362 635.89988,48.908964 635.89989,49.32269 L 635.89989,52 L 635.18382,52 L 635.18382,49.32269 C 635.18381,48.964658 635.10562,48.704751 634.9491,48.542969 C 634.79528,48.378541 634.57648,48.296326 634.29271,48.296322 C 634.08053,48.296326 633.8803,48.352022 633.692,48.463405 C 633.50635,48.572145 633.37375,48.720664 633.29418,48.90896 C 633.21458,49.097264 633.17484,49.35717 633.17484,49.688682 L 633.17484,52 L 632.45877,52" /> + d="M 626.46764,52 L 628.70735,46.168 L 629.53879,46.168 L 631.92569,52 L 631.04652,52 L 630.36625,50.233692 L 627.92763,50.233692 L 627.28714,52 L 626.46764,52 M 628.15041,49.605141 L 630.12756,49.605141 L 629.5189,47.990003 C 629.33325,47.499366 629.19534,47.096245 629.10517,46.780639 C 629.03087,47.154592 628.92615,47.525887 628.79089,47.894527 L 628.15041,49.605141" /> @@ -1799,41 +1802,41 @@ inkscape:connector-curvature="0" id="path6809" style="font-size:8px;fill:#ffffff" - d="M 625.76807,14.08992 L 623.5415,8.2578888 l 0.82422,0 l 1.84766,4.9101562 l 1.85156,-4.9101562 l 0.82031,0 L 626.6626,14.08992 l -0.89453,0" /> + d="M 625.76807,14.08992 L 623.5415,8.2578888 L 624.36572,8.2578888 L 626.21338,13.168045 L 628.06494,8.2578888 L 628.88525,8.2578888 L 626.6626,14.08992 L 625.76807,14.08992" /> @@ -1877,27 +1880,27 @@ inkscape:connector-curvature="0" id="path6494" style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" - d="m 30.733386,403.38025 l 0,-1.90058 c 0.523336,0.2479 1.053568,0.43727 1.590697,0.56811 c 0.537107,0.13083 1.063913,0.19625 1.580373,0.19625 c 1.37723,0 2.427371,-0.46137 3.150424,-1.38412 c 0.729929,-0.92963 1.146542,-2.33785 1.249838,-4.22467 c -0.399414,0.59223 -0.905552,1.04672 -1.518413,1.36347 c -0.61286,0.31677 -1.291152,0.47515 -2.034852,0.47515 c -1.542508,0 -2.764802,-0.46482 -3.666885,-1.39446 c -0.895207,-0.9365 -1.34279,-2.21389 -1.34279,-3.83215 c 0,-1.5838 0.468251,-2.8543 1.404772,-3.81148 C 32.083072,388.4786 33.329462,388.00002 34.885741,388 c 1.783497,2e-5 3.143527,0.68519 4.080049,2.05552 c 0.943397,1.36348 1.415095,3.34668 1.415095,5.94964 c 0,2.43082 -0.578443,4.37272 -1.735308,5.82569 C 37.495588,403.27695 35.946205,404 33.99743,404 c -0.523358,0 -1.05359,-0.0516 -1.590719,-0.15493 c -0.537129,-0.1033 -1.094904,-0.25823 -1.673325,-0.46482 m 4.152355,-6.53841 c 0.9365,1e-5 1.676773,-0.3202 2.220777,-0.96062 c 0.550879,-0.6404 0.826329,-1.51839 0.82635,-2.63396 c -2.1e-5,-1.10866 -0.275471,-1.9832 -0.82635,-2.62362 c -0.544004,-0.64729 -1.284277,-0.97094 -2.220777,-0.97096 c -0.936522,2e-5 -1.680244,0.32367 -2.231122,0.97096 c -0.544005,0.64042 -0.816006,1.51496 -0.816006,2.62362 c 0,1.11557 0.272001,1.99356 0.816006,2.63396 c 0.550878,0.64042 1.2946,0.96063 2.231122,0.96062" /> + d="M 30.733386,403.38025 L 30.733386,401.47967 C 31.256722,401.72757 31.786954,401.91694 32.324083,402.04778 C 32.86119,402.17861 33.387996,402.24403 33.904456,402.24403 C 35.281686,402.24403 36.331827,401.78266 37.05488,400.85991 C 37.784809,399.93028 38.201422,398.52206 38.304718,396.63524 C 37.905304,397.22747 37.399166,397.68196 36.786305,397.99871 C 36.173445,398.31548 35.495153,398.47386 34.751453,398.47386 C 33.208945,398.47386 31.986651,398.00904 31.084568,397.0794 C 30.189361,396.1429 29.741778,394.86551 29.741778,393.24725 C 29.741778,391.66345 30.210029,390.39295 31.14655,389.43577 C 32.083072,388.4786 33.329462,388.00002 34.885741,388 C 36.669238,388.00002 38.029268,388.68519 38.96579,390.05552 C 39.909187,391.419 40.380885,393.4022 40.380885,396.00516 C 40.380885,398.43598 39.802442,400.37788 38.645577,401.83085 C 37.495588,403.27695 35.946205,404 33.99743,404 C 33.474072,404 32.94384,403.9484 32.406711,403.84507 C 31.869582,403.74177 31.311807,403.58684 30.733386,403.38025 M 34.885741,396.84184 C 35.822241,396.84185 36.562514,396.52164 37.106518,395.88122 C 37.657397,395.24082 37.932847,394.36283 37.932868,393.24726 C 37.932847,392.1386 37.657397,391.26406 37.106518,390.62364 C 36.562514,389.97635 35.822241,389.6527 34.885741,389.65268 C 33.949219,389.6527 33.205497,389.97635 32.654619,390.62364 C 32.110614,391.26406 31.838613,392.1386 31.838613,393.24726 C 31.838613,394.36283 32.110614,395.24082 32.654619,395.88122 C 33.205497,396.52164 33.949219,396.84185 34.885741,396.84184" /> + d="M 44.202704,403.38025 L 44.202704,401.47967 C 44.726061,401.72757 45.256294,401.91694 45.793422,402.04778 C 46.330529,402.17861 46.857314,402.24403 47.373796,402.24403 C 48.751025,402.24403 49.801145,401.78266 50.52422,400.85991 C 51.254127,399.93028 51.67074,398.52206 51.774057,396.63524 C 51.374644,397.22747 50.868506,397.68196 50.255645,397.99871 C 49.642784,398.31548 48.964493,398.47386 48.220792,398.47386 C 46.678285,398.47386 45.45599,398.00904 44.553908,397.0794 C 43.6587,396.1429 43.211096,394.86551 43.211096,393.24725 C 43.211096,391.66345 43.679368,390.39295 44.615889,389.43577 C 45.55239,388.4786 46.798801,388.00002 48.355059,388 C 50.138577,388.00002 51.498586,388.68519 52.435129,390.05552 C 53.378505,391.419 53.850224,393.4022 53.850224,396.00516 C 53.850224,398.43598 53.271782,400.37788 52.114917,401.83085 C 50.964906,403.27695 49.415523,404 47.466748,404 C 46.94339,404 46.413158,403.9484 45.876051,403.84507 C 45.338922,403.74177 44.781147,403.58684 44.202704,403.38025 M 48.355059,396.84184 C 49.291581,396.84185 50.031832,396.52164 50.575857,395.88122 C 51.126736,395.24082 51.402186,394.36283 51.402186,393.24726 C 51.402186,392.1386 51.126736,391.26406 50.575857,390.62364 C 50.031832,389.97635 49.291581,389.6527 48.355059,389.65268 C 47.418537,389.6527 46.674837,389.97635 46.123958,390.62364 C 45.579933,391.26406 45.307931,392.1386 45.307952,393.24726 C 45.307931,394.36283 45.579933,395.24082 46.123958,395.88122 C 46.674837,396.52164 47.418537,396.84185 48.355059,396.84184" /> + d="M 57.672043,403.38025 L 57.672043,401.47967 C 58.1954,401.72757 58.725633,401.91694 59.262741,402.04778 C 59.799869,402.17861 60.326653,402.24403 60.843135,402.24403 C 62.220342,402.24403 63.270485,401.78266 63.993538,400.85991 C 64.723467,399.93028 65.140079,398.52206 65.243375,396.63524 C 64.843982,397.22747 64.337846,397.68196 63.724984,397.99871 C 63.112102,398.31548 62.433811,398.47386 61.690132,398.47386 C 60.147624,398.47386 58.925329,398.00904 58.023246,397.0794 C 57.128039,396.1429 56.680436,394.86551 56.680436,393.24725 C 56.680436,391.66345 57.148707,390.39295 58.085207,389.43577 C 59.021729,388.4786 60.268119,388.00002 61.824398,388 C 63.607917,388.00002 64.967926,388.68519 65.904447,390.05552 C 66.847844,391.419 67.319542,393.4022 67.319564,396.00516 C 67.319542,398.43598 66.741121,400.37788 65.584256,401.83085 C 64.434246,403.27695 62.884862,404 60.936087,404 C 60.41273,404 59.882497,403.9484 59.34539,403.84507 C 58.808262,403.74177 58.250486,403.58684 57.672043,403.38025 M 61.824398,396.84184 C 62.760919,396.84185 63.501172,396.52164 64.045197,395.88122 C 64.596076,395.24082 64.871526,394.36283 64.871526,393.24726 C 64.871526,392.1386 64.596076,391.26406 64.045197,390.62364 C 63.501172,389.97635 62.760919,389.6527 61.824398,389.65268 C 60.887877,389.6527 60.144176,389.97635 59.593276,390.62364 C 59.049272,391.26406 58.77727,392.1386 58.77727,393.24726 C 58.77727,394.36283 59.049272,395.24082 59.593276,395.88122 C 60.144176,396.52164 60.887877,396.84185 61.824398,396.84184" /> + d="M 71.141382,403.38025 L 71.141382,401.47967 C 71.664718,401.72757 72.194951,401.91694 72.732079,402.04778 C 73.269208,402.17861 73.795992,402.24403 74.312454,402.24403 C 75.689682,402.24403 76.739823,401.78266 77.462878,400.85991 C 78.192806,399.93028 78.609419,398.52206 78.712715,396.63524 C 78.313301,397.22747 77.807184,397.68196 77.194324,397.99871 C 76.581441,398.31548 75.90315,398.47386 75.15945,398.47386 C 73.616942,398.47386 72.394669,398.00904 71.492565,397.0794 C 70.597379,396.1429 70.149775,394.86551 70.149775,393.24725 C 70.149775,391.66345 70.618025,390.39295 71.554547,389.43577 C 72.491069,388.4786 73.737459,388.00002 75.293737,388 C 77.077235,388.00002 78.437265,388.68519 79.373787,390.05552 C 80.317183,391.419 80.788882,393.4022 80.788903,396.00516 C 80.788882,398.43598 80.210439,400.37788 79.053574,401.83085 C 77.903584,403.27695 76.354202,404 74.405426,404 C 73.88207,404 73.351837,403.9484 72.814709,403.84507 C 72.277601,403.74177 71.719826,403.58684 71.141382,403.38025 M 75.293737,396.84184 C 76.230238,396.84185 76.970511,396.52164 77.514515,395.88122 C 78.065415,395.24082 78.340865,394.36283 78.340865,393.24726 C 78.340865,392.1386 78.065415,391.26406 77.514515,390.62364 C 76.970511,389.97635 76.230238,389.6527 75.293737,389.65268 C 74.357215,389.6527 73.613516,389.97635 73.062615,390.62364 C 72.518612,391.26406 72.24661,392.1386 72.24661,393.24726 C 72.24661,394.36283 72.518612,395.24082 73.062615,395.88122 C 73.613516,396.52164 74.357215,396.84185 75.293737,396.84184" /> + d="M 84.610722,403.38025 L 84.610722,401.47967 C 85.134058,401.72757 85.66429,401.91694 86.201419,402.04778 C 86.738526,402.17861 87.265332,402.24403 87.781792,402.24403 C 89.159022,402.24403 90.209163,401.78266 90.932216,400.85991 C 91.662145,399.93028 92.078758,398.52206 92.182054,396.63524 C 91.78264,397.22747 91.276502,397.68196 90.663642,397.99871 C 90.050781,398.31548 89.37249,398.47386 88.62879,398.47386 C 87.086282,398.47386 85.863987,398.00904 84.961904,397.0794 C 84.066697,396.1429 83.619115,394.86551 83.619115,393.24725 C 83.619115,391.66345 84.087365,390.39295 85.023886,389.43577 C 85.960408,388.4786 87.206798,388.00002 88.763077,388 C 90.546574,388.00002 91.906605,388.68519 92.843126,390.05552 C 93.786523,391.419 94.258222,393.4022 94.258222,396.00516 C 94.258222,398.43598 93.679778,400.37788 92.522914,401.83085 C 91.372924,403.27695 89.823542,404 87.874766,404 C 87.351408,404 86.821176,403.9484 86.284047,403.84507 C 85.746919,403.74177 85.189144,403.58684 84.610722,403.38025 M 88.763077,396.84184 C 89.699577,396.84185 90.439851,396.52164 90.983854,395.88122 C 91.534734,395.24082 91.810183,394.36283 91.810205,393.24726 C 91.810183,392.1386 91.534734,391.26406 90.983854,390.62364 C 90.439851,389.97635 89.699577,389.6527 88.763077,389.65268 C 87.826555,389.6527 87.082834,389.97635 86.531955,390.62364 C 85.987951,391.26406 85.71595,392.1386 85.71595,393.24726 C 85.71595,394.36283 85.987951,395.24082 86.531955,395.88122 C 87.082834,396.52164 87.826555,396.84185 88.763077,396.84184" /> @@ -1957,27 +1960,27 @@ inkscape:connector-curvature="0" id="path6483" style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" - d="m 34.816055,309.65268 c -1.074235,1e-5 -1.883366,0.53024 -2.42737,1.5907 c -0.537107,1.05359 -0.805682,2.64085 -0.805682,4.76178 c 0,2.11406 0.268575,3.70132 0.805682,4.76178 c 0.544004,1.05358 1.353135,1.58038 2.42737,1.58038 c 1.081133,0 1.890263,-0.5268 2.427392,-1.58038 c 0.543982,-1.06046 0.815984,-2.64772 0.816005,-4.76178 c -2.1e-5,-2.12093 -0.272023,-3.70819 -0.816005,-4.76178 c -0.537129,-1.06046 -1.346259,-1.59069 -2.427392,-1.5907 m 0,-1.65268 c 1.728433,10e-6 3.047128,0.68518 3.956107,2.05552 c 0.915854,1.36347 1.37378,3.34668 1.373802,5.94964 c -2.2e-5,2.59609 -0.457948,4.5793 -1.373802,5.94965 c -0.908979,1.36346 -2.227674,2.04518 -3.956107,2.04519 c -1.728411,-10e-6 -3.050555,-0.68173 -3.966429,-2.04519 c -0.908958,-1.37035 -1.363458,-3.35356 -1.363458,-5.94965 c 0,-2.60296 0.4545,-4.58617 1.363458,-5.94964 C 31.7655,308.68518 33.087644,308.00001 34.816055,308" /> + d="M 34.816055,309.65268 C 33.74182,309.65269 32.932689,310.18292 32.388685,311.24338 C 31.851578,312.29697 31.583003,313.88423 31.583003,316.00516 C 31.583003,318.11922 31.851578,319.70648 32.388685,320.76694 C 32.932689,321.82052 33.74182,322.34732 34.816055,322.34732 C 35.897188,322.34732 36.706318,321.82052 37.243447,320.76694 C 37.787429,319.70648 38.059431,318.11922 38.059452,316.00516 C 38.059431,313.88423 37.787429,312.29697 37.243447,311.24338 C 36.706318,310.18292 35.897188,309.65269 34.816055,309.65268 M 34.816055,308 C 36.544488,308.00001 37.863183,308.68518 38.772162,310.05552 C 39.688016,311.41899 40.145942,313.4022 40.145964,316.00516 C 40.145942,318.60125 39.688016,320.58446 38.772162,321.95481 C 37.863183,323.31827 36.544488,323.99999 34.816055,324 C 33.087644,323.99999 31.7655,323.31827 30.849626,321.95481 C 29.940668,320.58446 29.486168,318.60125 29.486168,316.00516 C 29.486168,313.4022 29.940668,311.41899 30.849626,310.05552 C 31.7655,308.68518 33.087644,308.00001 34.816055,308" /> + d="M 48.285395,309.65268 C 47.211158,309.65269 46.402028,310.18292 45.858024,311.24338 C 45.320896,312.29697 45.052342,313.88423 45.052342,316.00516 C 45.052342,318.11922 45.320896,319.70648 45.858024,320.76694 C 46.402028,321.82052 47.211158,322.34732 48.285395,322.34732 C 49.366527,322.34732 50.175636,321.82052 50.712765,320.76694 C 51.256769,319.70648 51.528771,318.11922 51.528792,316.00516 C 51.528771,313.88423 51.256769,312.29697 50.712765,311.24338 C 50.175636,310.18292 49.366527,309.65269 48.285395,309.65268 M 48.285395,308 C 50.013828,308.00001 51.332523,308.68518 52.241501,310.05552 C 53.157355,311.41899 53.615282,313.4022 53.615282,316.00516 C 53.615282,318.60125 53.157355,320.58446 52.241501,321.95481 C 51.332523,323.31827 50.013828,323.99999 48.285395,324 C 46.556962,323.99999 45.234819,323.31827 44.318965,321.95481 C 43.409987,320.58446 42.955508,318.60125 42.955508,316.00516 C 42.955508,313.4022 43.409987,311.41899 44.318965,310.05552 C 45.234819,308.68518 46.556962,308.00001 48.285395,308" /> + d="M 57.29249,321.07682 L 59.471974,321.07682 L 59.471974,323.70044 L 57.29249,323.70044 L 57.29249,321.07682" /> + d="M 68.489393,309.65268 C 67.415157,309.65269 66.606027,310.18292 66.062023,311.24338 C 65.524894,312.29697 65.25634,313.88423 65.25634,316.00516 C 65.25634,318.11922 65.524894,319.70648 66.062023,320.76694 C 66.606027,321.82052 67.415157,322.34732 68.489393,322.34732 C 69.570525,322.34732 70.379635,321.82052 70.916764,320.76694 C 71.460767,319.70648 71.732769,318.11922 71.73279,316.00516 C 71.732769,313.88423 71.460767,312.29697 70.916764,311.24338 C 70.379635,310.18292 69.570525,309.65269 68.489393,309.65268 M 68.489393,308 C 70.217826,308.00001 71.536521,308.68518 72.4455,310.05552 C 73.361354,311.41899 73.81928,313.4022 73.81928,316.00516 C 73.81928,318.60125 73.361354,320.58446 72.4455,321.95481 C 71.536521,323.31827 70.217826,323.99999 68.489393,324 C 66.760961,323.99999 65.438818,323.31827 64.522964,321.95481 C 63.614006,320.58446 63.159506,318.60125 63.159506,316.00516 C 63.159506,313.4022 63.614006,311.41899 64.522964,310.05552 C 65.438818,308.68518 66.760961,308.00001 68.489393,308" /> + d="M 81.958732,309.65268 C 80.884497,309.65269 80.075366,310.18292 79.531362,311.24338 C 78.994234,312.29697 78.72568,313.88423 78.72568,316.00516 C 78.72568,318.11922 78.994234,319.70648 79.531362,320.76694 C 80.075366,321.82052 80.884497,322.34732 81.958732,322.34732 C 83.039865,322.34732 83.848974,321.82052 84.386103,320.76694 C 84.930107,319.70648 85.202108,318.11922 85.202108,316.00516 C 85.202108,313.88423 84.930107,312.29697 84.386103,311.24338 C 83.848974,310.18292 83.039865,309.65269 81.958732,309.65268 M 81.958732,308 C 83.687144,308.00001 85.00586,308.68518 85.914839,310.05552 C 86.830692,311.41899 87.28862,313.4022 87.28862,316.00516 C 87.28862,318.60125 86.830692,320.58446 85.914839,321.95481 C 85.00586,323.31827 83.687144,323.99999 81.958732,324 C 80.2303,323.99999 78.908156,323.31827 77.992303,321.95481 C 77.083324,320.58446 76.628845,318.60125 76.628845,316.00516 C 76.628845,313.4022 77.083324,311.41899 77.992303,310.05552 C 78.908156,308.68518 80.2303,308.00001 81.958732,308" /> @@ -2026,7 +2029,8 @@ inkscape:groupmode="layer" id="layer59" inkscape:label="system-panel" - style="display:inline"> + style="display:inline" + sodipodi:insensitive="true"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id="system-frame-type" + transform="translate(-6,0)"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2146,7 +2570,8 @@ inkscape:groupmode="layer" id="layer45" inkscape:label="oplm-panel" - style="display:none"> + style="display:none" + sodipodi:insensitive="true"> @@ -2182,7 +2607,7 @@ sodipodi:end="7.1558499" sodipodi:start="2.268928" transform="matrix(0.86211044,0,0,0.86194421,-20.308987,63.354658)" - d="m 206.05385,346.92456 a 4,4.0625 0 1 1 5.1423,0" + d="M 206.05385,346.92456 A 4,4.0625 0 1 1 211.19615,346.92456" sodipodi:ry="4.0625" sodipodi:rx="4" sodipodi:cy="343.8125" @@ -2198,7 +2623,7 @@ sodipodi:cy="343.8125" sodipodi:rx="4" sodipodi:ry="4.0625" - d="m 206.625,347.33073 a 4,4.0625 0 1 1 4,0" + d="M 206.625,347.33073 A 4,4.0625 0 1 1 210.625,347.33073" transform="matrix(1.4009295,0,0,1.4098503,-132.61235,-125.01936)" sodipodi:start="2.0943951" sodipodi:end="7.3303829" @@ -2243,7 +2668,7 @@ transform="matrix(0.99426257,0.08698671,-0.08748358,0.99994198,80.732904,11.07574)" /> @@ -2270,11 +2695,11 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4785" - d="m 133.42882,312.44292 l -3.95142,7.77485" + d="M 133.42882,312.44292 L 129.4774,320.21777" style="fill:none;stroke:#000000;stroke-width:0.74074072px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> @@ -2282,11 +2707,11 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4789" - d="m 149.24954,324.42277 l -6.3686,5.9558" + d="M 149.24954,324.42277 L 142.88094,330.37857" style="fill:none;stroke:#000000;stroke-width:0.74074072px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> @@ -2305,7 +2730,7 @@ transform="matrix(0.95695029,0.08372205,-0.08414287,0.96175464,81.727104,24.47046)" /> @@ -2313,11 +2738,11 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4797" - d="m 98.60121,306.91389 l 1.360788,8.62041" + d="M 98.60121,306.91389 L 99.961998,315.5343" style="fill:none;stroke:#000000;stroke-width:0.74074072px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> @@ -2325,11 +2750,11 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4801" - d="m 87.076675,310.01949 l 3.118798,8.1479" + d="M 87.076675,310.01949 L 90.195473,318.16739" style="fill:none;stroke:#000000;stroke-width:0.74074072px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> @@ -2337,11 +2762,11 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4805" - d="m 76.44715,315.47142 l 4.734393,7.30915" + d="M 76.44715,315.47142 L 81.181543,322.78057" style="fill:none;stroke:#000000;stroke-width:0.74074072px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> @@ -2349,11 +2774,11 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4809" - d="m 67.173673,323.02142 l 6.15024,6.165" + d="M 67.173673,323.02142 L 73.323913,329.18642" style="fill:none;stroke:#000000;stroke-width:0.74074072px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> @@ -2361,7 +2786,7 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4813" - d="m 59.662758,332.34302 l 7.329767,4.72019" + d="M 59.662758,332.34302 L 66.992525,337.06321" style="fill:none;stroke:#000000;stroke-width:0.74074072px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> @@ -2456,17 +2881,17 @@ inkscape:connector-curvature="0" id="path5240" style="font-size:6px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:condensed;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial Narrow;-inkscape-font-specification:Arial Narrow Bold Condensed" - d="m 84.037888,342.20654 l 0,-1.11621 l -0.922852,0 l 0,-0.77051 l 0.922852,0 l 0,-1.11621 l 0.615234,0 l 0,1.11621 l 0.925781,0 l 0,0.77051 l -0.925781,0 l 0,1.11621 l -0.615234,0" /> + d="M 84.037888,342.20654 L 84.037888,341.09033 L 83.115036,341.09033 L 83.115036,340.31982 L 84.037888,340.31982 L 84.037888,339.20361 L 84.653122,339.20361 L 84.653122,340.31982 L 85.578903,340.31982 L 85.578903,341.09033 L 84.653122,341.09033 L 84.653122,342.20654 L 84.037888,342.20654" /> + d="M 87.720505,342.82471 L 87.046677,342.82471 L 87.046677,339.72217 C 86.794723,340.00537 86.503707,340.21338 86.17363,340.34619 L 86.17363,339.59912 C 86.361129,339.52292 86.555465,339.38721 86.756638,339.19189 C 86.957808,338.99463 87.097457,338.76807 87.175583,338.51221 L 87.720505,338.51221 L 87.720505,342.82471" /> + d="M 89.876755,338.51221 C 90.21855,338.51221 90.494917,338.6753 90.705856,339.00146 C 90.916791,339.32569 91.02226,339.89405 91.022263,340.70654 C 91.02226,341.51709 90.916791,342.08545 90.705856,342.41162 C 90.494917,342.73584 90.219527,342.89795 89.879684,342.89795 C 89.537887,342.89795 89.26152,342.73682 89.050583,342.41455 C 88.839645,342.09229 88.734176,341.52002 88.734177,340.69775 C 88.734176,339.89112 88.839645,339.32569 89.050583,339.00146 C 89.26152,338.6753 89.53691,338.51221 89.876755,338.51221 M 89.876755,339.19482 C 89.743941,339.19483 89.637496,339.28272 89.557419,339.4585 C 89.479289,339.63428 89.44023,340.0503 89.440231,340.70654 C 89.44023,341.36279 89.479291,341.77881 89.557419,341.95459 C 89.637499,342.12842 89.743941,342.21533 89.876755,342.21533 C 90.011519,342.21533 90.117964,342.12743 90.196091,341.95166 C 90.274211,341.77588 90.313276,341.36084 90.313278,340.70654 C 90.313276,340.0503 90.274218,339.63428 90.196091,339.4585 C 90.117961,339.28272 90.011519,339.19483 89.876755,339.19482" /> + d="M 93.76445,342.20654 L 93.76445,341.09033 L 92.841599,341.09033 L 92.841599,340.31982 L 93.76445,340.31982 L 93.76445,339.20361 L 94.379684,339.20361 L 94.379684,340.31982 L 95.305466,340.31982 L 95.305466,341.09033 L 94.379684,341.09033 L 94.379684,342.20654 L 93.76445,342.20654" /> + d="M 98.000778,342.06006 L 98.000778,342.82471 L 95.633591,342.82471 C 95.658981,342.53564 95.73613,342.26123 95.865036,342.00146 C 95.995895,341.73975 96.248824,341.39697 96.623825,340.97314 C 96.920699,340.63526 97.103316,340.40674 97.171677,340.2876 C 97.273237,340.11377 97.324019,339.93897 97.32402,339.76318 C 97.324019,339.57569 97.28203,339.43409 97.198044,339.33838 C 97.114054,339.24268 97.003706,339.19483 96.866989,339.19482 C 96.56816,339.19483 96.407027,339.41846 96.383591,339.86572 L 95.712692,339.78372 C 95.753712,339.34622 95.874801,339.02494 96.075974,338.81985 C 96.279098,338.61478 96.548629,338.51224 96.884567,338.51224 C 97.253706,338.51224 97.532026,338.63236 97.719528,338.87259 C 97.907026,339.11283 98.000776,339.38822 98.000778,339.69876 C 98.000776,339.87454 97.976358,340.04544 97.927538,340.21146 C 97.880658,340.37552 97.807419,340.54154 97.707811,340.7095 C 97.608201,340.87552 97.442185,341.08841 97.209765,341.34817 C 96.992966,341.59232 96.855271,341.75345 96.796679,341.83157 C 96.740039,341.90967 96.694138,341.98587 96.658983,342.06009 L 98.00078,342.06009" /> + d="M 99.603317,338.51221 C 99.945112,338.51221 100.22148,338.6753 100.43242,339.00146 C 100.64335,339.32569 100.74882,339.89405 100.74883,340.70654 C 100.74882,341.51709 100.64335,342.08545 100.43242,342.41162 C 100.22148,342.73584 99.946089,342.89795 99.606247,342.89795 C 99.264449,342.89795 98.988082,342.73682 98.777145,342.41455 C 98.566208,342.09229 98.460739,341.52002 98.460739,340.69775 C 98.460739,339.89112 98.566208,339.32569 98.777145,339.00146 C 98.988082,338.6753 99.263473,338.51221 99.603317,338.51221 M 99.603317,339.19482 C 99.470504,339.19483 99.364058,339.28272 99.283981,339.4585 C 99.205851,339.63428 99.166793,340.0503 99.166794,340.70654 C 99.166793,341.36279 99.205854,341.77881 99.283981,341.95459 C 99.364061,342.12842 99.470504,342.21533 99.603317,342.21533 C 99.738081,342.21533 99.844527,342.12743 99.922653,341.95166 C 100.00078,341.77588 100.03984,341.36084 100.03984,340.70654 C 100.03984,340.0503 100.00074,339.63428 99.922653,339.4585 C 99.844523,339.28272 99.738081,339.19483 99.603317,339.19482" /> + d="M 103.49101,342.20654 L 103.49101,341.09033 L 102.56816,341.09033 L 102.56816,340.31982 L 103.49101,340.31982 L 103.49101,339.20361 L 104.10625,339.20361 L 104.10625,340.31982 L 105.03203,340.31982 L 105.03203,341.09033 L 104.10625,341.09033 L 104.10625,342.20654 L 103.49101,342.20654" /> + d="M 105.42168,341.68506 L 106.075,341.58836 C 106.0926,341.79148 106.1482,341.94676 106.24199,342.05418 C 106.33569,342.1616 106.44609,342.21531 106.57304,342.21531 C 106.71171,342.21531 106.8289,342.15181 106.92461,342.02488 C 107.02031,341.89793 107.06816,341.72215 107.06816,341.49754 C 107.06816,341.28856 107.02226,341.12449 106.93047,341.00535 C 106.83867,340.88621 106.72734,340.82664 106.59648,340.82664 C 106.51058,340.82664 106.408,340.84714 106.28886,340.88814 L 106.36216,340.21725 C 106.53598,340.22125 106.67368,340.17425 106.77524,340.07662 C 106.87484,339.97902 106.92465,339.84127 106.92466,339.66353 C 106.92465,339.5151 106.88856,339.39889 106.81626,339.3149 C 106.74396,339.2309 106.65122,339.18893 106.53794,339.18892 C 106.42466,339.18893 106.32602,339.23772 106.24204,339.33541 C 106.16004,339.43111 106.11118,339.57369 106.09555,339.76314 L 105.47153,339.63424 C 105.53593,339.24166 105.66196,338.95651 105.84946,338.77877 C 106.03696,338.60104 106.27329,338.51217 106.55845,338.51217 C 106.87876,338.51217 107.13266,338.62643 107.32016,338.85494 C 107.50961,339.08346 107.60434,339.33639 107.60434,339.61373 C 107.60434,339.80123 107.56134,339.97018 107.47544,340.12057 C 107.39144,340.27096 107.2645,340.40279 107.09458,340.51607 C 107.29184,340.56877 107.452,340.68502 107.57505,340.86471 C 107.70004,341.0444 107.76254,341.269 107.76255,341.53853 C 107.76254,341.93111 107.64536,342.25631 107.41098,342.51412 C 107.17856,342.76998 106.90122,342.89791 106.57895,342.89791 C 106.27036,342.89791 106.00864,342.78951 105.7938,342.57271 C 105.58091,342.35592 105.45688,342.06002 105.42173,341.68502" /> + d="M 109.32988,338.51221 C 109.67167,338.51221 109.94804,338.6753 110.15898,339.00146 C 110.36992,339.32569 110.47539,339.89405 110.47539,340.70654 C 110.47539,341.51709 110.36992,342.08545 110.15898,342.41162 C 109.94804,342.73584 109.67265,342.89795 109.33281,342.89795 C 108.99101,342.89795 108.71464,342.73682 108.50371,342.41455 C 108.29277,342.09229 108.1873,341.52002 108.1873,340.69775 C 108.1873,339.89112 108.29277,339.32569 108.50371,339.00146 C 108.71464,338.6753 108.99004,338.51221 109.32988,338.51221 M 109.32988,339.19482 C 109.19707,339.19483 109.09062,339.28272 109.01054,339.4585 C 108.93244,339.63428 108.89336,340.0503 108.89336,340.70654 C 108.89336,341.36279 108.93246,341.77881 109.01054,341.95459 C 109.09064,342.12842 109.19707,342.21533 109.32988,342.21533 C 109.46464,342.21533 109.57109,342.12743 109.64922,341.95166 C 109.72732,341.77588 109.7664,341.36084 109.7664,340.70654 C 109.7664,340.0503 109.7273,339.63428 109.64922,339.4585 C 109.57112,339.28272 109.46464,339.19483 109.32988,339.19482" /> + d="M 113.21758,342.20654 L 113.21758,341.09033 L 112.29472,341.09033 L 112.29472,340.31982 L 113.21758,340.31982 L 113.21758,339.20361 L 113.83281,339.20361 L 113.83281,340.31982 L 114.75859,340.31982 L 114.75859,341.09033 L 113.83281,341.09033 L 113.83281,342.20654 L 113.21758,342.20654" /> + d="M 116.4959,342.82471 L 116.4959,341.96045 L 115.05449,341.96045 L 115.05449,341.23975 L 116.58086,338.51221 L 117.14922,338.51221 L 117.14922,341.23682 L 117.58574,341.23682 L 117.58574,341.96045 L 117.14922,341.96045 L 117.14922,342.82471 L 116.4959,342.82471 M 116.4959,341.23682 L 116.4959,339.76904 L 115.6873,341.23682 L 116.4959,341.23682" /> + d="M 119.05644,338.51221 C 119.39824,338.51221 119.6746,338.6753 119.88554,339.00146 C 120.09648,339.32569 120.20195,339.89405 120.20195,340.70654 C 120.20195,341.51709 120.09648,342.08545 119.88554,342.41162 C 119.6746,342.73584 119.39921,342.89795 119.05937,342.89795 C 118.71757,342.89795 118.44121,342.73682 118.23027,342.41455 C 118.01933,342.09229 117.91386,341.52002 117.91386,340.69775 C 117.91386,339.89112 118.01933,339.32569 118.23027,339.00146 C 118.44121,338.6753 118.7166,338.51221 119.05644,338.51221 M 119.05644,339.19482 C 118.92363,339.19483 118.81718,339.28272 118.73711,339.4585 C 118.65901,339.63428 118.61992,340.0503 118.61992,340.70654 C 118.61992,341.36279 118.65902,341.77881 118.73711,341.95459 C 118.81721,342.12842 118.92363,342.21533 119.05644,342.21533 C 119.19121,342.21533 119.29765,342.12743 119.37578,341.95166 C 119.45388,341.77588 119.49296,341.36084 119.49297,340.70654 C 119.49296,340.0503 119.45387,339.63428 119.37578,339.4585 C 119.29768,339.28272 119.19121,339.19483 119.05644,339.19482" /> + d="M 122.94414,342.20654 L 122.94414,341.09033 L 122.02129,341.09033 L 122.02129,340.31982 L 122.94414,340.31982 L 122.94414,339.20361 L 123.55937,339.20361 L 123.55937,340.31982 L 124.48515,340.31982 L 124.48515,341.09033 L 123.55937,341.09033 L 123.55937,342.20654 L 122.94414,342.20654" /> + d="M 124.90996,341.72021 L 125.58379,341.63521 C 125.60139,341.82271 125.65899,341.97018 125.75664,342.0776 C 125.85434,342.18502 125.96171,342.23873 126.0789,342.23873 C 126.21757,342.23873 126.33671,342.17033 126.43633,342.03365 C 126.53593,341.89498 126.58574,341.68307 126.58574,341.39791 C 126.58574,341.12838 126.53594,340.92916 126.43633,340.80025 C 126.33863,340.67135 126.21367,340.6069 126.06133,340.60689 C 125.86796,340.6069 125.69414,340.71139 125.53984,340.92037 L 124.99199,340.82367 L 125.33769,338.58832 L 127.12187,338.58832 L 127.12187,339.35883 L 125.85039,339.35883 L 125.74199,340.08832 C 125.89433,339.99652 126.04863,339.95063 126.20488,339.95062 C 126.48222,339.95063 126.71757,340.06 126.91093,340.27875 C 127.15507,340.55805 127.27714,340.92621 127.27715,341.38324 C 127.27714,341.76019 127.17265,342.10687 126.96367,342.42328 C 126.75664,342.73969 126.45976,342.89789 126.07304,342.89789 C 125.76054,342.89789 125.49882,342.79633 125.28789,342.5932 C 125.0789,342.38812 124.95293,342.09711 124.90996,341.72015" /> + d="M 128.783,338.51221 C 129.1248,338.51221 129.40117,338.6753 129.61211,339.00146 C 129.82304,339.32569 129.92851,339.89405 129.92851,340.70654 C 129.92851,341.51709 129.82304,342.08545 129.61211,342.41162 C 129.40117,342.73584 129.12578,342.89795 128.78593,342.89795 C 128.44414,342.89795 128.16777,342.73682 127.95683,342.41455 C 127.7459,342.09229 127.64043,341.52002 127.64043,340.69775 C 127.64043,339.89112 127.7459,339.32569 127.95683,339.00146 C 128.16777,338.6753 128.44316,338.51221 128.783,338.51221 M 128.783,339.19482 C 128.65019,339.19483 128.54375,339.28272 128.46367,339.4585 C 128.38557,339.63428 128.34648,340.0503 128.34648,340.70654 C 128.34648,341.36279 128.38558,341.77881 128.46367,341.95459 C 128.54377,342.12842 128.65019,342.21533 128.783,342.21533 C 128.91777,342.21533 129.02421,342.12743 129.10234,341.95166 C 129.18044,341.77588 129.21953,341.36084 129.21953,340.70654 C 129.21953,340.0503 129.18043,339.63428 129.10234,339.4585 C 129.02424,339.28272 128.91777,339.19483 128.783,339.19482" /> + d="M 132.6707,342.20654 L 132.6707,341.09033 L 131.74785,341.09033 L 131.74785,340.31982 L 132.6707,340.31982 L 132.6707,339.20361 L 133.28593,339.20361 L 133.28593,340.31982 L 134.21172,340.31982 L 134.21172,341.09033 L 133.28593,341.09033 L 133.28593,342.20654 L 132.6707,342.20654" /> + d="M 136.91289,339.58154 L 136.25957,339.66944 C 136.22837,339.34913 136.10039,339.18898 135.87578,339.18897 C 135.72929,339.18898 135.60722,339.26907 135.50957,339.42921 C 135.41387,339.58937 135.35332,339.91261 135.32793,340.39894 C 135.41193,340.27784 135.50566,340.18702 135.60918,340.12647 C 135.71269,340.06597 135.82695,340.03567 135.95195,340.03567 C 136.22734,340.03568 136.46757,340.16458 136.67265,340.42239 C 136.87773,340.67825 136.98027,341.01907 136.98027,341.44485 C 136.98027,341.89798 136.87187,342.25345 136.65508,342.51126 C 136.43828,342.76907 136.16972,342.89798 135.84941,342.89798 C 135.49785,342.89798 135.20586,342.73099 134.97343,342.397 C 134.74297,342.06107 134.62773,341.5054 134.62773,340.73001 C 134.62773,339.9429 134.74785,339.3765 134.98808,339.03079 C 135.22832,338.68509 135.53691,338.51224 135.91386,338.51224 C 136.17363,338.51224 136.39238,338.60114 136.57011,338.77884 C 136.7498,338.95462 136.86406,339.2222 136.91289,339.58157 M 135.38652,341.37747 C 135.38652,341.64896 135.43632,341.85696 135.53593,342.00149 C 135.6375,342.14407 135.75273,342.21536 135.88164,342.21536 C 136.00664,342.21536 136.11015,342.15576 136.19218,342.03665 C 136.27618,341.91751 136.31816,341.7222 136.31816,341.45071 C 136.31816,341.16947 136.27326,340.96439 136.1834,340.83548 C 136.0935,340.70658 135.98222,340.64212 135.84941,340.64212 C 135.7205,340.64212 135.61113,340.70362 135.52129,340.82669 C 135.43149,340.94974 135.38652,341.13333 135.38652,341.37747" /> + d="M 138.50957,338.51221 C 138.85136,338.51221 139.12773,338.6753 139.33867,339.00146 C 139.5496,339.32569 139.65507,339.89405 139.65508,340.70654 C 139.65507,341.51709 139.5496,342.08545 139.33867,342.41162 C 139.12773,342.73584 138.85234,342.89795 138.5125,342.89795 C 138.1707,342.89795 137.89433,342.73682 137.6834,342.41455 C 137.47246,342.09229 137.36699,341.52002 137.36699,340.69775 C 137.36699,339.89112 137.47246,339.32569 137.6834,339.00146 C 137.89433,338.6753 138.16972,338.51221 138.50957,338.51221 M 138.50957,339.19482 C 138.37675,339.19483 138.27031,339.28272 138.19023,339.4585 C 138.11213,339.63428 138.07304,340.0503 138.07304,340.70654 C 138.07304,341.36279 138.11214,341.77881 138.19023,341.95459 C 138.27033,342.12842 138.37675,342.21533 138.50957,342.21533 C 138.64433,342.21533 138.75078,342.12743 138.8289,341.95166 C 138.907,341.77588 138.94609,341.36084 138.94609,340.70654 C 138.94609,340.0503 138.90699,339.63428 138.8289,339.4585 C 138.7508,339.28272 138.64433,339.19483 138.50957,339.19482" /> @@ -2631,7 +3056,7 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path5528" - d="m 104.08793,312.53421 l 2.73969,52.85567" + d="M 104.08793,312.53421 L 106.82762,365.38988" style="fill:none;stroke:#000000;stroke-width:0.22222222;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> @@ -2646,7 +3071,7 @@ transform="matrix(1.35,0,0,1.35,-60.425521,-102.76587)"> @@ -2771,31 +3196,31 @@ style="font-size:13.50032997px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:0.94117647;stroke:none;font-family:Arial;-inkscape-font-specification:Arial" id="oplm-id-label"> @@ -2809,27 +3234,27 @@ id="oplm-id-text" transform="translate(6,0)"> @@ -3050,7 +3475,7 @@ sodipodi:cy="-18" sodipodi:rx="9" sodipodi:ry="9" - d="m 86,-18 c 0,4.970563 -4.029437,9 -9,9 c -1.57983,0 -3.131827,-0.4158564 -4.5,-1.205771" + d="M 86,-18 C 86,-13.029437 81.970563,-9 77,-9 C 75.42017,-9 73.868173,-9.4158564 72.5,-10.205771" transform="matrix(0.59409,-0.16048456,0.16048456,0.59409,-14.282595,58.387875)" sodipodi:start="0" sodipodi:end="2.0943951" @@ -3060,7 +3485,7 @@ sodipodi:end="2.0943951" sodipodi:start="0" transform="matrix(0.94346447,-0.22256175,0.2922493,0.96228953,-38.3717,70.240727)" - d="m 86,-18 c 0,4.970563 -4.029437,9 -9,9 c -1.57983,0 -3.131827,-0.4158564 -4.5,-1.205771" + d="M 86,-18 C 86,-13.029437 81.970563,-9 77,-9 C 75.42017,-9 73.868173,-9.4158564 72.5,-10.205771" sodipodi:ry="9" sodipodi:rx="9" sodipodi:cy="-18" @@ -3663,7 +4088,7 @@ sodipodi:open="true" sodipodi:end="5.5477076" sodipodi:start="3.8773293" - d="M 238.84479,91.530033 C 279.42114,46.70925 348.64918,43.268451 393.46997,83.844794 c 2.69442,2.439265 5.26569,5.011203 7.70426,7.706256" + d="M 238.84479,91.530033 C 279.42114,46.70925 348.64918,43.268451 393.46997,83.844794 C 396.16439,86.284059 398.73566,88.855997 401.17423,91.55105" sodipodi:ry="109.47147" sodipodi:rx="109.47147" sodipodi:cy="165" @@ -3837,7 +4262,7 @@ transform="translate(0,78)"> Date: Tue, 9 Sep 2014 20:27:01 +0200 Subject: [PATCH 04/11] OP-1435 Add_more_info_PFD : Total distance counter always visible. Check telemetry activity for link status (Smeter real or log replay) --- .../share/openpilotgcs/pfd/default/Info.qml | 1 - .../share/openpilotgcs/pfd/default/Panels.qml | 32 ++++++++++++++++--- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml index f8db82737..d2df20e31 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml @@ -157,7 +157,6 @@ Item { width: scaledBounds.width * sceneItem.width height: scaledBounds.height * sceneItem.height y: Math.floor(scaledBounds.y * sceneItem.height) - visible: OPLinkStatus.LinkState == 4 //OPLink Connected MouseArea { id: total_dist_mouseArea; anchors.fill: parent; cursorShape: Qt.PointingHandCursor; onClicked: reset_distance()} diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml index 0abf4bd16..77ffa661e 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml @@ -72,11 +72,33 @@ Item { property real memory_free : SystemStats.HeapRemaining > 1024 ? SystemStats.HeapRemaining / 1024 : SystemStats.HeapRemaining // Needed to get correctly int8 value, reset value (-127) on disconnect - property int oplm0_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_0 : -127 - property int oplm1_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_1 : -127 - property int oplm2_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_2 : -127 - property int oplm3_db: OPLinkStatus.LinkState == 4 ? OPLinkStatus.PairSignalStrengths_3 : -127 - + property int oplm0_db: telemetry_link == 1 ? OPLinkStatus.PairSignalStrengths_0 : -127 + property int oplm1_db: telemetry_link == 1 ? OPLinkStatus.PairSignalStrengths_1 : -127 + property int oplm2_db: telemetry_link == 1 ? OPLinkStatus.PairSignalStrengths_2 : -127 + property int oplm3_db: telemetry_link == 1 ? OPLinkStatus.PairSignalStrengths_3 : -127 + + property real telemetry_sum + property real telemetry_sum_old + property bool telemetry_link + + // Hack : check if telemetry is active. Works with real link and log replay + function telemetry_check(){ + telemetry_sum = OPLinkStatus.RXRate + OPLinkStatus.RXRate + + if (telemetry_sum != telemetry_sum_old){ + telemetry_link = 1 + } else { + telemetry_link = 0 + } + telemetry_sum_old = telemetry_sum + } + + Timer { + id: telemetry_activity + interval: 700; running: true; repeat: true + onTriggered: telemetry_check() + } + // Filtering for S-meter. Smeter range -127dB <--> -13dB = S9+60dB Timer { From ac16c2722c013bfd4a1a3d7c9bcea0c1807ade56 Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Tue, 9 Sep 2014 20:47:36 +0200 Subject: [PATCH 05/11] OP-1435 Add_more_info_PFD : Increase timer value, remove jitter. Tx/rx rates should be updated every 500ms. --- ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml index 77ffa661e..7f811bb21 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml @@ -95,7 +95,7 @@ Item { Timer { id: telemetry_activity - interval: 700; running: true; repeat: true + interval: 1200; running: true; repeat: true onTriggered: telemetry_check() } From 956e5ad9d07117837a91cb01767983d1c08c4c7f Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Tue, 9 Sep 2014 22:32:28 +0200 Subject: [PATCH 06/11] OP-1435 Add_more_info_PFD : Smeter jitter free when OPLink is really connected --- ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml index 7f811bb21..67a053917 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml @@ -82,10 +82,11 @@ Item { property bool telemetry_link // Hack : check if telemetry is active. Works with real link and log replay + function telemetry_check(){ telemetry_sum = OPLinkStatus.RXRate + OPLinkStatus.RXRate - if (telemetry_sum != telemetry_sum_old){ + if (telemetry_sum != telemetry_sum_old || OPLinkStatus.LinkState == 4){ telemetry_link = 1 } else { telemetry_link = 0 From 7d110d71220cb8f5857d11259cc6cedbcd567b0e Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Thu, 18 Sep 2014 23:25:47 +0200 Subject: [PATCH 07/11] OP-1435 System tab update : FusionAlgorithm, Mag used and Gpstype --- .../share/openpilotgcs/pfd/default/Panels.qml | 93 ++++++ .../share/openpilotgcs/pfd/default/pfd.svg | 299 ++++++++++-------- .../src/plugins/pfdqml/pfdqmlgadgetwidget.cpp | 4 +- 3 files changed, 258 insertions(+), 138 deletions(-) diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml index 67a053917..091fbb6d9 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml @@ -966,6 +966,99 @@ Item { } } + SvgElementPositionItem { + id: system_fusion_algo + elementName: "system-attitude-estimation-algo" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: system_bg.z+1 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: system_fusion_algo; x: Math.floor(scaledBounds.x * sceneItem.width) - (system_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + + Text { + text: ["None", "Complementary", "CompMag", "Comp+Mag+GPS", "EKFIndoor", "EKFOutdoor"][RevoSettings.FusionAlgorithm] + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 1.2) + weight: Font.DemiBold + } + } + } + + SvgElementPositionItem { + id: system_mag_used + elementName: "system-mag-used" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: system_bg.z+1 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: system_mag_used; x: Math.floor(scaledBounds.x * sceneItem.width) - (system_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + + Text { + text: ["Invalid", "OnBoard", "External"][MagState.Source] + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 1.4) + weight: Font.DemiBold + } + } + } + + SvgElementPositionItem { + id: system_gpstype + elementName: "system-gps-type" + sceneSize: panels.sceneSize + y: Math.floor(scaledBounds.y * sceneItem.height) + z: system_bg.z+1 + + states: State { + name: "fading" + when: show_panels !== true + PropertyChanges { target: system_gpstype; x: Math.floor(scaledBounds.x * sceneItem.width) - (system_bg.width * 0.85); } + } + + transitions: Transition { + SequentialAnimation { + PropertyAnimation { property: "x"; duration: 800 } + } + } + + Text { + text: ["Unknown", "NMEA", "UBX", "UBX7", "UBX8"][GPSPositionSensor.SensorType] + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 1.4) + weight: Font.DemiBold + } + } + } + SvgElementImage { id: system_mousearea elementName: "system-panel-mousearea" diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg index efb330d7a..3f5cc4f83 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg @@ -281,11 +281,11 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="2.140049" - inkscape:cx="179.9755" - inkscape:cy="32.445148" + inkscape:zoom="3.0264863" + inkscape:cx="102.91059" + inkscape:cy="69.619044" inkscape:document-units="px" - inkscape:current-layer="svg2" + inkscape:current-layer="layer76" showgrid="false" fit-margin-top="0" fit-margin-left="0" @@ -298,8 +298,8 @@ inkscape:window-maximized="1" showguides="false" inkscape:guide-bbox="true" - inkscape:object-nodes="true" - inkscape:object-paths="true" + inkscape:object-nodes="false" + inkscape:object-paths="false" inkscape:snap-bbox="true" inkscape:bbox-nodes="false" inkscape:snap-bbox-midpoints="true" @@ -311,7 +311,7 @@ inkscape:snap-intersection-paths="true" inkscape:snap-object-midpoints="false" inkscape:snap-center="false" - inkscape:snap-bbox-edge-midpoints="true"> + inkscape:snap-bbox-edge-midpoints="false"> image/svg+xml - + @@ -1405,7 +1405,7 @@ transform="matrix(0.86009397,0,0,0.86009397,0.18825858,65.744733)"> + style="display:inline"> - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id="system-attitude-estimation-algo" + transform="matrix(0.95014749,0,0,0.95014749,12.173664,-35.081741)"> @@ -2429,7 +2452,7 @@ id="path11380" inkscape:connector-curvature="0" /> @@ -2444,7 +2467,7 @@ id="path11386" inkscape:connector-curvature="0" /> @@ -2455,7 +2478,8 @@ inkscape:connector-curvature="0" /> + id="system-mag-used" + transform="translate(10,-52)"> + id="system-gps-type" + transform="matrix(0.79929009,0,0,0.79929009,32.11488,36.677279)"> getObject(); From 0742eb6b7755ec653e6f4b2e550dd5ad8ee25575 Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Fri, 19 Sep 2014 00:00:37 +0200 Subject: [PATCH 08/11] OP-1435 System tab : Right aligned text --- .../share/openpilotgcs/pfd/default/Panels.qml | 12 ++++----- .../share/openpilotgcs/pfd/default/pfd.svg | 27 ++++++++++--------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml index 091fbb6d9..d6e249109 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Panels.qml @@ -892,7 +892,7 @@ Item { text: ["FixedWing", "FixedWingElevon", "FixedWingVtail", "VTOL", "HeliCP", "QuadX", "QuadP", "Hexa+", "Octo+", "Custom", "HexaX", "HexaH", "OctoV", "OctoCoaxP", "OctoCoaxX", "OctoX", "HexaCoax", "Tricopter", "GroundVehicleCar", "GroundVehicleDiff", "GroundVehicleMoto"][SystemSettings.AirframeType] - anchors.centerIn: parent + anchors.right: parent.right color: "white" font { family: "Arial" @@ -925,7 +925,7 @@ Item { // CC3D hack, Cputemp not working text: SystemStats.CPULoad+"% - "+ [String(SystemStats.CPUTemp).charCodeAt(0) == "64" ? "??" : String(SystemStats.CPUTemp).charCodeAt(0)] +"°C" - anchors.centerIn: parent + anchors.right: parent.right color: "white" font { family: "Arial" @@ -956,7 +956,7 @@ Item { Text { text: SystemStats.HeapRemaining > 1024 ? memory_free.toFixed(2) +"Kb" : memory_free +"bytes" - anchors.centerIn: parent + anchors.right: parent.right color: "white" font { family: "Arial" @@ -987,7 +987,7 @@ Item { Text { text: ["None", "Complementary", "CompMag", "Comp+Mag+GPS", "EKFIndoor", "EKFOutdoor"][RevoSettings.FusionAlgorithm] - anchors.centerIn: parent + anchors.right: parent.right color: "white" font { family: "Arial" @@ -1018,7 +1018,7 @@ Item { Text { text: ["Invalid", "OnBoard", "External"][MagState.Source] - anchors.centerIn: parent + anchors.right: parent.right color: "white" font { family: "Arial" @@ -1049,7 +1049,7 @@ Item { Text { text: ["Unknown", "NMEA", "UBX", "UBX7", "UBX8"][GPSPositionSensor.SensorType] - anchors.centerIn: parent + anchors.right: parent.right color: "white" font { family: "Arial" diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg index 3f5cc4f83..c01428733 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg @@ -283,7 +283,7 @@ inkscape:pageshadow="2" inkscape:zoom="3.0264863" inkscape:cx="102.91059" - inkscape:cy="69.619044" + inkscape:cy="114.5056" inkscape:document-units="px" inkscape:current-layer="layer76" showgrid="false" @@ -307,7 +307,7 @@ inkscape:snap-to-guides="false" inkscape:snap-nodes="true" inkscape:bbox-paths="true" - inkscape:snap-global="false" + inkscape:snap-global="true" inkscape:snap-intersection-paths="true" inkscape:snap-object-midpoints="false" inkscape:snap-center="false" @@ -2319,7 +2319,7 @@ style="display:inline"> + transform="translate(32.17869,-1.42917)"> + transform="translate(17.82127,-1.07761)"> + id="system-mem-free" + transform="translate(39.43455,-0.90768)"> + transform="matrix(0.95014749,0,0,0.95014749,11.933934,-35.081741)"> + transform="translate(29.00291,-52.90768)"> + transform="matrix(0.79929009,0,0,0.79929009,48.393534,35.192138)"> - + Date: Fri, 19 Sep 2014 22:45:53 +0200 Subject: [PATCH 09/11] OP-1435 V/A/Consumed displayed on top if Battery module enabled and no PathPlan --- .../share/openpilotgcs/pfd/default/Info.qml | 167 +- .../share/openpilotgcs/pfd/default/pfd.svg | 1594 ++++++++++------- 2 files changed, 1119 insertions(+), 642 deletions(-) diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml index d2df20e31..ab54c6b1f 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml @@ -4,6 +4,9 @@ Item { id: info property variant sceneSize + // Uninitialised, Ok, Warning, Critical, Error + property variant batColors : ["black", "green", "orange", "red", "red"] + // // Waypoint functions // @@ -11,6 +14,8 @@ Item { property real posEast_old property real posNorth_old property real total_distance + property real total_distance_km + property bool init_dist: false property real home_heading: 180/3.1415 * Math.atan2(TakeOffLocation.East - PositionState.East, @@ -44,7 +49,8 @@ Item { 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)); + total_distance += Math.sqrt(Math.pow((posEast - posEast_old ),2) + Math.pow((posNorth - posNorth_old),2)); + total_distance_km = total_distance / 1000; posEast_old = posEast; posNorth_old = posNorth; @@ -107,7 +113,16 @@ Item { // // Waypoint Info (Top) - // + // Only visible when PathPlan is active (WP loaded) + + SvgElementImage { + sceneSize: info.sceneSize + elementName: "waypoint-labels" + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: Math.floor(scaledBounds.y * sceneItem.height) + visible: SystemAlarms.Alarm_PathPlan == 1 + } SvgElementPositionItem { sceneSize: info.sceneSize @@ -157,6 +172,7 @@ Item { width: scaledBounds.width * sceneItem.width height: scaledBounds.height * sceneItem.height y: Math.floor(scaledBounds.y * sceneItem.height) + visible: SystemAlarms.Alarm_PathPlan == 1 MouseArea { id: total_dist_mouseArea; anchors.fill: parent; cursorShape: Qt.PointingHandCursor; onClicked: reset_distance()} @@ -242,6 +258,153 @@ Item { } } + // + // Battery Info (Top) + // Only visible when PathPlan not active and Battery module enabled + + SvgElementImage { + sceneSize: info.sceneSize + elementName: "topbattery-labels" + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: Math.floor(scaledBounds.y * sceneItem.height) + visible: (SystemAlarms.Alarm_PathPlan != 1) && (HwSettings.OptionalModules_Battery == 1) + } + + SvgElementPositionItem { + id: topbattery_volt + sceneSize: info.sceneSize + elementName: "topbattery-volt-text" + + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: scaledBounds.y * sceneItem.height + visible: (SystemAlarms.Alarm_PathPlan != 1) && (HwSettings.OptionalModules_Battery == 1) + + Rectangle { + anchors.fill: parent + color: info.batColors[SystemAlarms.Alarm_Battery] + border.color: info.batColors[SystemAlarms.Alarm_Battery] + border.width: topbattery_volt.width * 0.02 + + Text { + text: FlightBatteryState.Voltage.toFixed(2) + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 0.6) + weight: Font.DemiBold + } + } + } + } + + SvgElementPositionItem { + id: topbattery_amp + sceneSize: info.sceneSize + elementName: "topbattery-amp-text" + + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: scaledBounds.y * sceneItem.height + visible: (SystemAlarms.Alarm_PathPlan != 1) && (HwSettings.OptionalModules_Battery == 1) + + Rectangle { + anchors.fill: parent + color: info.batColors[SystemAlarms.Alarm_Battery] + border.color: info.batColors[SystemAlarms.Alarm_Battery] + border.width: topbattery_volt.width * 0.02 + + Text { + text: FlightBatteryState.Current.toFixed(2) + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 0.6) + weight: Font.DemiBold + } + } + } + } + + SvgElementPositionItem { + id: topbattery_milliamp + sceneSize: info.sceneSize + elementName: "topbattery-milliamp-text" + + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: scaledBounds.y * sceneItem.height + visible: (SystemAlarms.Alarm_PathPlan != 1) && (HwSettings.OptionalModules_Battery == 1) + + Rectangle { + anchors.fill: parent + + // Alarm based on FlightBatteryState.EstimatedFlightTime < 120s orange, < 60s red + color: (FlightBatteryState.EstimatedFlightTime <= 120 && FlightBatteryState.EstimatedFlightTime > 60 ? "orange" : + (FlightBatteryState.EstimatedFlightTime <= 60 ? "red": info.batColors[SystemAlarms.Alarm_Battery])) + + border.color: "white" + border.width: topbattery_volt.width * 0.01 + radius: border.width * 4 + + Text { + text: FlightBatteryState.ConsumedEnergy.toFixed(0) + anchors.centerIn: parent + color: "white" + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 0.6) + weight: Font.DemiBold + } + } + } + } + + // + // Default counter + // Only visible when PathPlan not active + + SvgElementImage { + sceneSize: info.sceneSize + elementName: "topbattery-total-distance-label" + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: Math.floor(scaledBounds.y * sceneItem.height) + visible: SystemAlarms.Alarm_PathPlan != 1 + } + + SvgElementPositionItem { + sceneSize: info.sceneSize + elementName: "topbattery-total-distance-text" + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: Math.floor(scaledBounds.y * sceneItem.height) + visible: SystemAlarms.Alarm_PathPlan != 1 + + MouseArea { id: total_dist_mouseArea2; anchors.fill: parent; cursorShape: Qt.PointingHandCursor; onClicked: reset_distance()} + + Text { + text: total_distance > 1000 ? total_distance_km.toFixed(2) +" Km" : total_distance.toFixed(0)+" m" + anchors.right: parent.right + color: "cyan" + + font { + family: "Arial" + pixelSize: Math.floor(parent.height * 1) + weight: Font.DemiBold + } + } + + Timer { + interval: 1000; running: true; repeat: true; + onTriggered: {if (GPSPositionSensor.Status == 3) compute_distance(PositionState.East,PositionState.North)} + } + } + + SvgElementImage { id: mask_SatBar elementName: "satbar-mask" diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg index c01428733..a07ff5d78 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg @@ -22,6 +22,32 @@ inkscape:export-ydpi="72"> + + + + + + @@ -440,11 +466,11 @@ @@ -466,37 +492,37 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label10R"> @@ -505,36 +531,36 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label20R"> @@ -543,12 +569,12 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label-20R"> @@ -556,23 +582,23 @@ @@ -581,37 +607,37 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label-10R"> @@ -620,12 +646,12 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label30R"> @@ -633,7 +659,7 @@ @@ -659,12 +685,12 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label40R"> @@ -672,11 +698,11 @@ @@ -698,37 +724,37 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label50R"> @@ -737,37 +763,37 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label60R"> @@ -776,12 +802,12 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label70R"> @@ -789,23 +815,23 @@ @@ -814,25 +840,25 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label80R"> @@ -854,12 +880,12 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label90R"> @@ -867,23 +893,23 @@ @@ -892,36 +918,36 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label-40R"> @@ -930,36 +956,36 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label-30R"> @@ -968,12 +994,12 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label-60R"> @@ -981,23 +1007,23 @@ @@ -1006,12 +1032,12 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label-50R"> @@ -1019,23 +1045,23 @@ @@ -1044,36 +1070,36 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label-80R"> @@ -1082,24 +1108,24 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label-70R"> @@ -1107,12 +1133,12 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label-90L"> @@ -1121,12 +1147,12 @@ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" id="pitch_label-90R"> @@ -1718,7 +1744,8 @@ inkscape:groupmode="layer" id="layer85" inkscape:label="battery-bg" - style="display:inline"> + style="display:inline" + sodipodi:insensitive="true"> + style="display:none" + sodipodi:insensitive="true"> + style="display:inline" + sodipodi:insensitive="true"> + style="display:inline" + sodipodi:insensitive="true"> @@ -2571,11 +2602,6 @@ id="path11442" inkscape:connector-curvature="0" /> - @@ -4211,7 +4525,7 @@ id="g4945"> @@ -4288,7 +4602,7 @@ transform="translate(0,78)"> @@ -4315,12 +4629,12 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path6065" - d="m 241.40244,372.02206 l -8.50092,0" + d="M 241.40244,372.02206 L 232.90152,372.02206" style="fill:none;stroke:#ffffff;stroke-width:1.69943166;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" /> @@ -4379,11 +4693,11 @@ inkscape:transform-center-y="-85.40481" inkscape:connector-curvature="0" id="path4980" - d="m 319.99877,294.64611 l 0.16778,9.61226" + d="M 319.99877,294.64611 L 320.16655,304.25837" style="fill:none;stroke:#ffffff;stroke-width:1.69943166;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" /> @@ -5149,12 +5463,12 @@ id="compass330" inkscape:label="#compass330"> @@ -5167,12 +5481,12 @@ id="compass300" inkscape:label="#compass300"> @@ -5184,7 +5498,7 @@ id="compass270" inkscape:label="#compass270"> @@ -5197,12 +5511,12 @@ id="compass240" inkscape:label="#compass240"> @@ -5215,12 +5529,12 @@ id="compass210" inkscape:label="#compass210"> @@ -5232,7 +5546,7 @@ id="compass180" inkscape:label="#compass180"> @@ -5244,12 +5558,12 @@ style="font-size:33.9886322px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Sans" id="compass150"> @@ -5262,12 +5576,12 @@ id="compass120" inkscape:label="#compass120"> @@ -5279,7 +5593,7 @@ id="compass90" inkscape:label="#compass90"> @@ -5291,7 +5605,7 @@ style="font-size:33.9886322px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Sans" id="compass60"> @@ -5304,7 +5618,7 @@ id="compass30" inkscape:label="#compass-30"> @@ -5324,7 +5638,7 @@ inkscape:label="#g4651"> @@ -5352,11 +5666,11 @@ sodipodi:nodetypes="cccccccc" inkscape:connector-curvature="0" id="path5472" - d="m 319.99619,305.5318 l -8.52371,8.73614 l 6.87739,-0.0531 l -4.3e-4,27.16436 l 3.29307,0 l 0,-27.16436 l 6.85084,0.0531 z" + d="M 319.99619,305.5318 L 311.47248,314.26794 L 318.34987,314.21484 L 318.34944,341.3792 L 321.64251,341.3792 L 321.64251,314.21484 L 328.49335,314.26794 z" style="fill:#bf00bf;fill-opacity:1;stroke:none" /> @@ -5373,17 +5687,17 @@ id="compass-text" transform="translate(0,78)"> @@ -5402,13 +5716,13 @@ inkscape:transform-center-y="-72.71875" inkscape:connector-curvature="0" id="path4626" - d="m 320,372.78125 l -3.78125,4.5 l 3.78125,4.5 l 3.78125,-4.5 l -3.78125,-4.5 z" + d="M 320,372.78125 L 316.21875,377.28125 L 320,381.78125 L 323.78125,377.28125 L 320,372.78125 z" style="fill:#00ffff;stroke:none" /> @@ -5420,7 +5734,7 @@ @@ -5429,7 +5743,7 @@ inkscape:groupmode="layer" id="layer17" inkscape:label="speed" - style="display:none" + style="display:inline" transform="translate(0,-4)" sodipodi:insensitive="true"> @@ -5503,17 +5817,17 @@ @@ -5667,27 +5981,27 @@ id="speed-text" transform="translate(0,42)"> @@ -5712,7 +6026,7 @@ id="altitude-unit" transform="translate(0,42)"> @@ -5760,23 +6074,23 @@ style="display:inline"> @@ -5892,7 +6206,7 @@ inkscape:connector-curvature="0" id="path10043" transform="translate(0,4)" - d="m 506.5,144.4375 l 0,12.75 l -9.525,6.5625 l 0,2.5 l 9.525,6.5625 l 0,12.75 l 43,0 L 549.5,165 l 0,-20.5625 z" + d="M 506.5,144.4375 L 506.5,157.1875 L 496.975,163.75 L 496.975,166.25 L 506.5,172.8125 L 506.5,185.5625 L 549.5,185.5625 L 549.5,165 L 549.5,144.4375 z" style="fill:#000000;stroke:#ffffff" /> @@ -5969,7 +6283,7 @@ sodipodi:insensitive="true"> @@ -5997,11 +6311,11 @@ sodipodi:nodetypes="cccccc" inkscape:connector-curvature="0" id="rect4893" - d="m 593.03211,212.93018 l 85.3661,0 l 0,7.977 l -85.3661,0 l -4,-3.9885 z" + d="M 593.03211,212.93018 L 678.39821,212.93018 L 678.39821,220.90718 L 593.03211,220.90718 L 589.03211,216.91868 z" style="fill:#c8c8c8;fill-opacity:1;stroke:#111413;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none" /> @@ -6026,7 +6340,7 @@ sodipodi:insensitive="true"> @@ -6042,7 +6356,7 @@ transform="translate(-18,0)"> @@ -6187,7 +6501,7 @@ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial" id="text5087"> @@ -6196,7 +6510,7 @@ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial" id="text5099"> @@ -6205,7 +6519,7 @@ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial" id="text5103"> @@ -6213,7 +6527,7 @@ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial" id="text5137"> @@ -6222,7 +6536,7 @@ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial" id="text5129"> @@ -6231,7 +6545,7 @@ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial" id="text5133"> @@ -6240,7 +6554,7 @@ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial" id="text5125"> @@ -6249,7 +6563,7 @@ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial" id="text5121"> @@ -6275,7 +6589,7 @@ sodipodi:nodetypes="csssscc" inkscape:connector-curvature="0" id="path4655" - d="m 640.50296,463.50296 l 0,14.99408 c 0,1.108 -0.892,2 -2,2 l -636.9999976,0 c -1.10800005,0 -2.00000005,-0.892 -2.00000005,-2 l 3e-8,-14.99408 c 0,-1.108 640.99999762,0 640.99999762,0 z" + d="M 640.50296,463.50296 L 640.50296,478.49704 C 640.50296,479.60504 639.61096,480.49704 638.50296,480.49704 L 1.5029624,480.49704 C 0.39496235,480.49704 -0.49703765,479.60504 -0.49703765,478.49704 L -0.49703762,463.50296 C -0.49703762,462.39496 640.50296,463.50296 640.50296,463.50296 z" style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0;stroke-miterlimit:4;display:inline" /> @@ -6373,23 +6687,23 @@ + d="M 404.79999,473.51954 L 405.89558,473.42374 C 405.94748,473.86277 406.0672,474.22398 406.25479,474.50735 C 406.44636,474.78674 406.74171,475.01424 407.14083,475.18985 C 407.53995,475.36147 407.98896,475.44728 408.48787,475.44728 C 408.93089,475.44728 409.32202,475.38138 409.66128,475.24972 C 410.00053,475.11801 410.25197,474.9384 410.41562,474.7109 C 410.58324,474.47942 410.66706,474.22797 410.66706,473.95657 C 410.66706,473.68118 410.58726,473.4417 410.42759,473.23815 C 410.26794,473.03061 410.00452,472.85699 409.63733,472.7173 C 409.40185,472.6255 408.881,472.48381 408.07478,472.29223 C 407.26855,472.09667 406.7038,471.91307 406.38051,471.74145 C 405.96143,471.52194 405.64812,471.25053 405.44058,470.92724 C 405.23703,470.59997 405.13525,470.23477 405.13525,469.83166 C 405.13525,469.38864 405.26098,468.97555 405.51242,468.59239 C 405.76387,468.20525 406.13106,467.91189 406.614,467.71233 C 407.09693,467.51277 407.63374,467.41299 408.22445,467.41299 C 408.87501,467.41299 409.44775,467.51876 409.94266,467.73029 C 410.44155,467.93784 410.82471,468.24516 411.09213,468.65225 C 411.35953,469.05936 411.50321,469.52035 411.52318,470.03521 L 410.40963,470.11901 C 410.34973,469.56424 410.14621,469.14517 409.79898,468.86178 C 409.45573,468.57841 408.94685,468.43673 408.27234,468.43672 C 407.56989,468.43673 407.05702,468.56644 406.73373,468.82586 C 406.41443,469.08131 406.25479,469.39062 406.25479,469.75382 C 406.25479,470.06913 406.36853,470.32856 406.59604,470.5321 C 406.81954,470.73566 407.40226,470.9452 408.34418,471.16072 C 409.29009,471.37226 409.93866,471.55785 410.2899,471.71749 C 410.80076,471.95298 411.17793,472.25232 411.4214,472.61551 C 411.66486,472.97472 411.78659,473.38981 411.7866,473.86077 C 411.78659,474.32774 411.65288,474.76877 411.38548,475.18385 C 411.11806,475.59495 410.73291,475.91624 410.23003,476.14773 C 409.73112,476.37523 409.16836,476.48897 408.54175,476.48898 C 407.74749,476.48897 407.08096,476.37323 406.54215,476.14174 C 406.00733,475.91025 405.58626,475.56302 405.27894,475.10004 C 404.97561,474.63307 404.81596,474.10623 404.79999,473.51952" /> + d="M 415.61815,476.33932 L 415.61815,468.59838 L 412.72653,468.59838 L 412.72653,467.56267 L 419.6832,467.56267 L 419.6832,468.59838 L 416.77959,468.59838 L 416.77959,476.33932 L 415.61815,476.33932" /> + d="M 419.05458,476.33932 L 422.42515,467.56267 L 423.6764,467.56267 L 427.26848,476.33932 L 425.9454,476.33932 L 424.92165,473.68118 L 421.25174,473.68118 L 420.28786,476.33932 L 419.05458,476.33932 M 421.587,472.73527 L 424.56244,472.73527 L 423.64646,470.30462 C 423.36707,469.56626 423.15953,468.95959 423.02384,468.48463 C 422.91208,469.0474 422.75443,469.60617 422.55088,470.16094 L 421.587,472.73527" /> + d="M 428.16052,476.33932 L 428.16052,467.56267 L 431.45326,467.56267 C 432.12378,467.56267 432.66059,467.65247 433.06371,467.83207 C 433.47081,468.00769 433.78811,468.28109 434.01561,468.65226 C 434.2471,469.01946 434.36284,469.40461 434.36285,469.80772 C 434.36284,470.1829 434.26107,470.53612 434.05752,470.86738 C 433.85396,471.19866 433.54664,471.46607 433.13555,471.66962 C 433.66638,471.82528 434.07348,472.09069 434.35686,472.46586 C 434.64422,472.84104 434.7879,473.28406 434.78791,473.79493 C 434.7879,474.20603 434.70011,474.58918 434.52449,474.9444 C 434.35286,475.29563 434.13933,475.56703 433.8839,475.7586 C 433.62846,475.95018 433.30717,476.09586 432.92003,476.19564 C 432.53687,476.29144 432.06591,476.33932 431.50714,476.33932 L 428.16052,476.33932 M 429.32196,471.25054 L 431.21977,471.25054 C 431.73464,471.25054 432.10382,471.21664 432.32733,471.14876 C 432.62268,471.06096 432.84419,470.91528 432.99187,470.71173 C 433.14353,470.50818 433.21936,470.25274 433.21937,469.94541 C 433.21936,469.65406 433.14947,469.39863 433.00983,469.1791 C 432.87013,468.9556 432.67057,468.80394 432.41115,468.72411 C 432.15172,468.64031 431.7067,468.59839 431.07609,468.59838 L 429.32196,468.59838 L 429.32196,471.25054 M 429.32196,475.30361 L 431.50714,475.30361 C 431.88231,475.30361 432.14573,475.28961 432.2974,475.26171 C 432.56481,475.21381 432.78831,475.13399 432.96792,475.02224 C 433.14752,474.91049 433.2952,474.74884 433.41095,474.53731 C 433.52668,474.32178 433.58456,474.07433 433.58456,473.79494 C 433.58456,473.46767 433.50076,473.18429 433.33312,472.94482 C 433.16548,472.70136 432.932,472.53173 432.63266,472.43594 C 432.33731,472.33614 431.91025,472.28627 431.35148,472.28627 L 429.32196,472.28627 L 429.32196,475.30362" /> + d="M 443.42089,476.33932 L 442.34326,476.33932 L 442.34326,469.47246 C 442.08383,469.71992 441.74258,469.96737 441.31952,470.21482 C 440.90044,470.46228 440.52327,470.64787 440.18801,470.77159 L 440.18801,469.72989 C 440.79068,469.44652 441.31752,469.10328 441.76853,468.70016 C 442.21953,468.29706 442.53883,467.90592 442.72642,467.52674 L 443.42089,467.52674 L 443.42089,476.33932" /> @@ -6417,47 +6731,47 @@ id="warning-autopilot-label" transform="matrix(1.1017863,0,0,1.1017863,-42.744908,-48.294497)"> @@ -6486,67 +6800,67 @@ inkscape:label="#warning-master-caution-label" transform="matrix(1.1017863,0,0,1.1017863,-33.088618,-48.971446)"> @@ -6576,37 +6890,37 @@ id="warning-rc-input-label" transform="matrix(1.1017863,0,0,1.1017863,-23.124025,-49.099088)"> @@ -6637,15 +6951,15 @@ + d="M 121,476.58899 L 124.48553,467.51299 L 125.77945,467.51299 L 129.49404,476.58899 L 128.12583,476.58899 L 127.06717,473.84019 L 123.27209,473.84019 L 122.27534,476.58899 L 121,476.58899 M 123.61879,472.86201 L 126.69571,472.86201 L 125.74849,470.34847 C 125.45957,469.58492 125.24495,468.95756 125.10463,468.4664 C 124.98906,469.04836 124.82603,469.62619 124.61554,470.19988 L 123.61879,472.86201" /> + d="M 130.4846,476.58899 L 130.4846,467.51299 L 134.50875,467.51299 C 135.3177,467.513 135.93267,467.59559 136.35367,467.76063 C 136.77465,467.9216 137.11102,468.20845 137.3628,468.62118 C 137.61456,469.03392 137.74044,469.48999 137.74045,469.98939 C 137.74044,470.63326 137.53201,471.176 137.11516,471.61762 C 136.69829,472.05925 136.05443,472.33991 135.18357,472.4596 C 135.50137,472.61231 135.74282,472.76296 135.90791,472.91154 C 136.25873,473.23347 136.59098,473.63589 136.90466,474.11878 L 138.48337,476.58899 L 136.97277,476.58899 L 135.77171,474.70074 C 135.42088,474.15593 135.13197,473.73907 134.90497,473.45015 C 134.67796,473.16124 134.47366,472.95901 134.29206,472.84344 C 134.11458,472.72788 133.93298,472.64739 133.74726,472.60199 C 133.61105,472.57309 133.38818,472.55869 133.07863,472.55869 L 131.68566,472.55869 L 131.68566,476.58903 L 130.4846,476.58903 M 131.68566,471.5186 L 134.2673,471.5186 C 134.81623,471.51861 135.24547,471.4629 135.55503,471.35145 C 135.86457,471.23589 136.09983,471.05428 136.2608,470.80664 C 136.42176,470.55488 136.50224,470.28247 136.50225,469.98943 C 136.50224,469.56019 136.3454,469.20731 136.03173,468.93077 C 135.72218,468.65424 135.23103,468.51598 134.55828,468.51597 L 131.68566,468.51597 L 131.68566,471.5186" /> + d="M 139.59156,476.58899 L 139.59156,467.51299 L 141.39933,467.51299 L 143.5476,473.93924 C 143.74571,474.53771 143.89017,474.98552 143.98097,475.28269 C 144.08415,474.9525 144.24512,474.46754 144.46387,473.82781 L 146.63691,467.51299 L 148.25276,467.51299 L 148.25276,476.58899 L 147.09504,476.58899 L 147.09504,468.99264 L 144.45768,476.58899 L 143.37426,476.58899 L 140.74927,468.86263 L 140.74927,476.58899 L 139.59156,476.58899" /> @@ -6760,7 +7074,7 @@ inkscape:groupmode="layer" id="layer13" inkscape:label="pfd-window" - style="display:none" + style="display:inline" transform="translate(0,-4)" sodipodi:insensitive="true"> Date: Sat, 20 Sep 2014 02:01:05 +0200 Subject: [PATCH 10/11] OP-1435 Small fixes. Common background color for Volt/Amp, display Lipo alarm if NbCells is defined. --- .../share/openpilotgcs/pfd/default/Info.qml | 25 +++-- .../share/openpilotgcs/pfd/default/pfd.svg | 100 +++++++++++------- .../src/plugins/pfdqml/pfdqmlgadgetwidget.cpp | 3 +- 3 files changed, 81 insertions(+), 47 deletions(-) diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml index ab54c6b1f..96897fc38 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/Info.qml @@ -262,6 +262,23 @@ Item { // Battery Info (Top) // Only visible when PathPlan not active and Battery module enabled + SvgElementPositionItem { + id: topbattery_voltamp_bg + sceneSize: info.sceneSize + elementName: "topbattery-label-voltamp-bg" + + width: scaledBounds.width * sceneItem.width + height: scaledBounds.height * sceneItem.height + y: scaledBounds.y * sceneItem.height + visible: (SystemAlarms.Alarm_PathPlan != 1) && (HwSettings.OptionalModules_Battery == 1) + + Rectangle { + anchors.fill: parent + color: FlightBatterySettings.NbCells > 0 ? info.batColors[SystemAlarms.Alarm_Battery] : "black" + + } + } + SvgElementImage { sceneSize: info.sceneSize elementName: "topbattery-labels" @@ -283,9 +300,7 @@ Item { Rectangle { anchors.fill: parent - color: info.batColors[SystemAlarms.Alarm_Battery] - border.color: info.batColors[SystemAlarms.Alarm_Battery] - border.width: topbattery_volt.width * 0.02 + color: "transparent" Text { text: FlightBatteryState.Voltage.toFixed(2) @@ -312,9 +327,7 @@ Item { Rectangle { anchors.fill: parent - color: info.batColors[SystemAlarms.Alarm_Battery] - border.color: info.batColors[SystemAlarms.Alarm_Battery] - border.width: topbattery_volt.width * 0.02 + color: "transparent" Text { text: FlightBatteryState.Current.toFixed(2) diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg index a07ff5d78..6c5ba3b8c 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg @@ -22,6 +22,18 @@ inkscape:export-ydpi="72"> + + + + + - + + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccc" /> + transform="translate(0,4)"> - + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccc" /> + transform="matrix(0.7,0,0,0.725,345.2216,-211.375)"> + transform="matrix(0.7,0,0,0.725,345.2216,-211.375)"> + id="g12760" + transform="translate(-1.07066,4.962966)"> - - @@ -4048,14 +4061,14 @@ inkscape:connector-curvature="0" id="path6379-2" style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" - d="M 241.36773,-33.456512 L 250.86882,-33.456512 L 250.86882,-32.359076 L 246.88182,-32.359076 L 246.88182,-23.818429 L 245.35473,-23.818429 L 245.35473,-32.359076 L 241.36773,-32.359076 L 241.36773,-33.456512" /> + d="M 213.32104,29.837108 L 227.243,29.837108 L 227.243,31.445181 L 221.40084,31.445181 L 221.40084,43.959797 L 219.1632,43.959797 L 219.1632,31.445181 L 213.32104,31.445181 L 213.32104,29.837108" /> @@ -4087,7 +4100,7 @@ d="M 626.46764,52 L 628.70735,46.168 L 629.53879,46.168 L 631.92569,52 L 631.04652,52 L 630.36625,50.233692 L 627.92763,50.233692 L 627.28714,52 L 626.46764,52 M 628.15041,49.605141 L 630.12756,49.605141 L 629.5189,47.990003 C 629.33325,47.499366 629.19534,47.096245 629.10517,46.780639 C 629.03087,47.154592 628.92615,47.525887 628.79089,47.894527 L 628.15041,49.605141" /> + style="fill:#373737;fill-opacity:1;stroke:#ffffff;stroke-width:0.59997100000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> + style="fill:url(#linearGradient12811);fill-opacity:1;stroke:#ffffff;stroke-width:0.60000001999999997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> + getObject(); From 46dbf46f05c9c7ee59ea0b0d52416dfbab0f060a Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Tue, 23 Sep 2014 01:02:34 +0200 Subject: [PATCH 11/11] OP-1435 System Tab : Font size issue --- .../share/openpilotgcs/pfd/default/pfd.svg | 43 +++++++++---------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg index 6c5ba3b8c..bde6f6681 100644 --- a/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg +++ b/ground/openpilotgcs/share/openpilotgcs/pfd/default/pfd.svg @@ -328,11 +328,11 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="3.8015741" - inkscape:cx="435.95735" - inkscape:cy="386.51298" + inkscape:zoom="2.1478368" + inkscape:cx="247.68069" + inkscape:cy="165.05075" inkscape:document-units="px" - inkscape:current-layer="layer48" + inkscape:current-layer="layer77" showgrid="false" fit-margin-top="0" fit-margin-left="0" @@ -395,7 +395,7 @@ image/svg+xml - + @@ -2076,14 +2076,12 @@ inkscape:groupmode="layer" id="layer59" inkscape:label="system-panel" - style="display:none" - sodipodi:insensitive="true"> + style="display:inline"> + style="display:inline"> + style="display:inline"> + transform="matrix(1.0095471,0,0,1.0095471,31.242303,-4.7783031)"> + transform="matrix(1.049406,0,0,1.049406,11.986624,-17.045522)"> + transform="matrix(1.0830555,0,0,1.0830555,30.37392,-28.642216)"> + transform="matrix(1.0257274,0,0,1.0257274,0.13365182,-65.562105)"> + transform="matrix(1.0687763,0,0,1.0687763,20.046913,-82.649824)"> + transform="matrix(1.0830555,0,0,1.0830555,6.8095635,-86.863044)">