DisplayStatusBar.qml
author sl
Wed, 28 May 2014 15:23:41 +0200
changeset 9 52372bbbc0f8
parent 8 9543e1703afb
child 11 b935de604982
permissions -rw-r--r--
Now supporting read request for device ID, firmware version and power status.
sl@8
     1
import QtQuick 2.0
sl@8
     2
import QtQuick.Controls 1.2
sl@8
     3
import QtQuick.Layouts 1.1
sl@8
     4
sl@8
     5
sl@8
     6
sl@8
     7
StatusBar {
sl@8
     8
sl@8
     9
    Component.onCompleted: {
sl@9
    10
        display.closed.connect(onDisplayClosed);
sl@9
    11
        display.opened.connect(onDisplayOpened);
sl@8
    12
        display.openError.connect(updateDisplayStatusError);
sl@9
    13
        display.powerStatus.connect(updatePowerStatus);
sl@9
    14
        display.deviceId.connect(updateDeviceId);
sl@9
    15
        display.firmwareVersion.connect(updateFirmwareVersion);
sl@8
    16
    }
sl@8
    17
sl@9
    18
    function updatePowerStatus(powerOn)
sl@9
    19
    {
sl@9
    20
        if (powerOn)
sl@9
    21
        {
sl@9
    22
            labelDisplayPowerStatus.text=qsTr("Power: ON");
sl@9
    23
        }
sl@9
    24
        else
sl@9
    25
        {
sl@9
    26
            labelDisplayPowerStatus.text=qsTr("Power: OFF");
sl@9
    27
        }
sl@9
    28
    }
sl@9
    29
sl@9
    30
    function updateDeviceId(deviceId)
sl@9
    31
    {
sl@9
    32
        labelDisplayDeviceId.text = deviceId;
sl@9
    33
        display.requestFirmwareVersion();
sl@9
    34
    }
sl@9
    35
sl@9
    36
    function updateFirmwareVersion(version)
sl@9
    37
    {
sl@9
    38
        labelDisplayFirmwareVersion.text = "Firmware v" + version;
sl@9
    39
        display.requestPowerStatus();
sl@9
    40
    }
sl@9
    41
sl@9
    42
    function onDisplayOpened()
sl@9
    43
    {
sl@9
    44
        updateDisplayStatus();
sl@9
    45
        //
sl@9
    46
        display.requestDeviceId();
sl@9
    47
    }
sl@9
    48
sl@9
    49
    function onDisplayClosed()
sl@9
    50
    {
sl@9
    51
        updateDisplayStatus();
sl@9
    52
        labelDisplayDeviceId.text="";
sl@9
    53
        labelDisplayFirmwareVersion.text="";
sl@9
    54
        labelDisplayPowerStatus.text="";
sl@9
    55
    }
sl@9
    56
sl@9
    57
sl@8
    58
    function updateDisplayStatusError()
sl@8
    59
    {
sl@8
    60
        updateDisplayStatus();
sl@8
    61
        labelDisplayStatus.text=qsTr("Connection error");
sl@8
    62
    }
sl@8
    63
sl@8
    64
    function updateDisplayStatus()
sl@8
    65
    {
sl@8
    66
        if (display.isOpen)
sl@8
    67
        {
sl@8
    68
            labelDisplayStatus.text=qsTr("Connected");
sl@8
    69
        }
sl@8
    70
        else
sl@8
    71
        {
sl@8
    72
            labelDisplayStatus.text=qsTr("Disconnected");
sl@8
    73
        }
sl@8
    74
sl@8
    75
        labelDisplayVendor.text=display.vendor;
sl@8
    76
        labelDisplayProduct.text=display.product;
sl@8
    77
        labelDisplaySerialNumber.text=display.serialNumber;
sl@8
    78
    }
sl@8
    79
sl@8
    80
sl@8
    81
    RowLayout {
sl@8
    82
        Label {
sl@8
    83
            id: labelDisplayStatus
sl@8
    84
            text: qsTr("Disconnected")
sl@8
    85
        }
sl@8
    86
sl@8
    87
        Label {
sl@8
    88
            id: labelDisplayVendor
sl@8
    89
            text: qsTr("")
sl@8
    90
        }
sl@8
    91
sl@8
    92
        Label {
sl@8
    93
            id: labelDisplayProduct
sl@8
    94
            text: qsTr("")
sl@8
    95
        }
sl@8
    96
sl@8
    97
        Label {
sl@8
    98
            id: labelDisplaySerialNumber
sl@8
    99
            visible: false //We don't want to display that. GP1212A01A does not even provide a proper string.
sl@8
   100
            text: qsTr("")
sl@8
   101
        }
sl@9
   102
sl@9
   103
        Label {
sl@9
   104
            id: labelDisplayDeviceId
sl@9
   105
            text: qsTr("")
sl@9
   106
        }
sl@9
   107
sl@9
   108
        Label {
sl@9
   109
            id: labelDisplayFirmwareVersion
sl@9
   110
            text: qsTr("")
sl@9
   111
        }
sl@9
   112
sl@9
   113
        Label {
sl@9
   114
            id: labelDisplayPowerStatus
sl@9
   115
            text: qsTr("")
sl@9
   116
        }
sl@9
   117
sl@8
   118
    }
sl@8
   119
}