TelemetryRSSIIndicator.qml 3.84 KB
Newer Older
1 2
/****************************************************************************
 *
Gus Grubba's avatar
Gus Grubba committed
3
 * (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
4 5 6 7 8 9
 *
 * QGroundControl is licensed according to the terms in the file
 * COPYING.md in the root of the source code directory.
 *
 ****************************************************************************/

Gus Grubba's avatar
Gus Grubba committed
10 11
import QtQuick          2.11
import QtQuick.Layouts  1.11
12 13 14 15 16 17 18 19 20

import QGroundControl                       1.0
import QGroundControl.Controls              1.0
import QGroundControl.MultiVehicleManager   1.0
import QGroundControl.ScreenTools           1.0
import QGroundControl.Palette               1.0

//-------------------------------------------------------------------------
//-- Telemetry RSSI
21
Item {
22
    id:             _root
23 24
    anchors.top:    parent.top
    anchors.bottom: parent.bottom
25
    width:          telemIcon.width * 1.1
26

27 28 29 30
    property bool showIndicator: _hasTelemetry

    property var  _activeVehicle:   QGroundControl.multiVehicleManager.activeVehicle
    property bool _hasTelemetry:    _activeVehicle ? _activeVehicle.telemetryLRSSI !== 0 : false
31

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
    Component {
        id: telemRSSIInfo
        Rectangle {
            width:  telemCol.width   + ScreenTools.defaultFontPixelWidth  * 3
            height: telemCol.height  + ScreenTools.defaultFontPixelHeight * 2
            radius: ScreenTools.defaultFontPixelHeight * 0.5
            color:  qgcPal.window
            border.color:   qgcPal.text
            Column {
                id:                 telemCol
                spacing:            ScreenTools.defaultFontPixelHeight * 0.5
                width:              Math.max(telemGrid.width, telemLabel.width)
                anchors.margins:    ScreenTools.defaultFontPixelHeight
                anchors.centerIn:   parent
                QGCLabel {
                    id:             telemLabel
                    text:           qsTr("Telemetry RSSI Status")
                    font.family:    ScreenTools.demiboldFontFamily
                    anchors.horizontalCenter: parent.horizontalCenter
                }
                GridLayout {
                    id:                 telemGrid
                    anchors.margins:    ScreenTools.defaultFontPixelHeight
                    columnSpacing:      ScreenTools.defaultFontPixelWidth
                    columns:            2
                    anchors.horizontalCenter: parent.horizontalCenter
                    QGCLabel { text: qsTr("Local RSSI:") }
59
                    QGCLabel { text: activeVehicle.telemetryLRSSI + " dBm"}
60
                    QGCLabel { text: qsTr("Remote RSSI:") }
61
                    QGCLabel { text: activeVehicle.telemetryRRSSI + " dBm"}
62
                    QGCLabel { text: qsTr("RX Errors:") }
63
                    QGCLabel { text: activeVehicle.telemetryRXErrors }
64
                    QGCLabel { text: qsTr("Errors Fixed:") }
65
                    QGCLabel { text: activeVehicle.telemetryFixed }
66
                    QGCLabel { text: qsTr("TX Buffer:") }
67
                    QGCLabel { text: activeVehicle.telemetryTXBuffer }
68
                    QGCLabel { text: qsTr("Local Noise:") }
69
                    QGCLabel { text: activeVehicle.telemetryLNoise }
70
                    QGCLabel { text: qsTr("Remote Noise:") }
71
                    QGCLabel { text: activeVehicle.telemetryRNoise }
72 73 74 75
                }
            }
        }
    }
76 77 78 79 80 81 82 83 84 85
    QGCColoredImage {
        id:                 telemIcon
        anchors.top:        parent.top
        anchors.bottom:     parent.bottom
        width:              height
        sourceSize.height:  height
        source:             "/qmlimages/TelemRSSI.svg"
        fillMode:           Image.PreserveAspectFit
        color:              qgcPal.buttonText
    }
86 87 88
    MouseArea {
        anchors.fill: parent
        onClicked: {
89
            mainWindow.showIndicatorPopup(_root, telemRSSIInfo)
90 91 92
        }
    }
}