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


11 12 13
import QtQuick          2.3
import QtQuick.Controls 1.2
import QtQuick.Layouts  1.2
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

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
QGCColoredImage {
    anchors.top:        parent.top
    anchors.bottom:     parent.bottom
    sourceSize.height:  height
    source:             "/qmlimages/TelemRSSI.svg"
    fillMode:           Image.PreserveAspectFit
    color:              qgcPal.buttonText
30 31 32 33
    visible:            _activeVehicle ? (_activeVehicle.telemetryLRSSI < 0) : false

    property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle

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 59 60
    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:") }
61
                    QGCLabel { text: _activeVehicle.telemetryLRSSI + " dBm" }
62
                    QGCLabel { text: qsTr("Remote RSSI:") }
63
                    QGCLabel { text: _activeVehicle.telemetryRRSSI + " dBm" }
64
                    QGCLabel { text: qsTr("RX Errors:") }
65
                    QGCLabel { text: _activeVehicle.telemetryRXErrors }
66
                    QGCLabel { text: qsTr("Errors Fixed:") }
67
                    QGCLabel { text: _activeVehicle.telemetryFixed }
68
                    QGCLabel { text: qsTr("TX Buffer:") }
69
                    QGCLabel { text: _activeVehicle.telemetryTXBuffer }
70
                    QGCLabel { text: qsTr("Local Noise:") }
71
                    QGCLabel { text: _activeVehicle.telemetryLNoise }
72
                    QGCLabel { text: qsTr("Remote Noise:") }
73
                    QGCLabel { text: _activeVehicle.telemetryRNoise }
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
                }
            }
            Component.onCompleted: {
                var pos = mapFromItem(toolBar, centerX - (width / 2), toolBar.height)
                x = pos.x
                y = pos.y + ScreenTools.defaultFontPixelHeight
            }
        }
    }
    MouseArea {
        anchors.fill: parent
        onClicked: {
            var centerX = mapToItem(toolBar, x, y).x + (width / 2)
            mainWindow.showPopUp(telemRSSIInfo, centerX)
        }
    }
}