Files
RTT/main.qml
2019-11-12 16:16:03 +01:00

147 lines
3.5 KiB
QML

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
import Test 1.0
Window {
id: window
objectName: "qmlWindow"
visible: true
width: 640
height: 680
title: qsTr("Hello World")
Connections {
target: mgmt
onNewDistMeas: {
if (cbNUC.currentIndex == idx) {
chart.pushData(value);
lblMean.text = "Mean: " + chart.mean.toFixed(3) + "\nStdDev: " + chart.stdDev.toFixed(3);
lblCount.text = "Count: " + chart.totalCount + "\nMax bin: " + chart.maxBinValue.toFixed(3);
lblRunTime.text = "Time: " + (mgmt.runTimeInMs() / 1000.0).toFixed(0) + "s";
}
}
onIsRunningChanged: {
if (mgmt.isRunning) {
// running
btnTrigger.text = "Stop";
cbNUC.enabled = false;
cbLogToDisk.enabled = false;
cbMeasTime.enabled = false;
} else {
btnTrigger.text = "Start";
cbNUC.enabled = true;
cbLogToDisk.enabled = true;
cbMeasTime.enabled = true;
}
}
}
GridLayout {
anchors.fill: parent;
Row {
Layout.row: 0;
Layout.column: 0;
spacing: 3;
ComboBox {
id: cbNUC;
height: 60;
width: 85;
model: ["NUC1", "NUC2", "NUC3", "NUC4", "NUC5", "NUC6", "NUC7", "NUC8"];
onCurrentIndexChanged: {
chart.reset();
}
}
ComboBox {
id: cbMeasTime;
height: 60;
width: 85;
model: ["Inf", "5s", "10s", "30s", "60s", "120s"];
onCurrentIndexChanged: {
chart.reset();
var maxRuntime = 0;
switch(currentIndex) {
case 0: maxRuntime = 0; break;
case 1: maxRuntime = 5; break;
case 2: maxRuntime = 10; break;
case 3: maxRuntime = 30; break;
case 4: maxRuntime = 60; break;
case 5: maxRuntime = 120; break;
}
mgmt.maxRuntime = maxRuntime * 1000;
}
}
Button {
id: btnTrigger;
text: "Start";
height: 60;
onClicked: {
mgmt.trigger();
}
}
Button {
text: "Reset";
height: 60;
width: 60;
onClicked: {
chart.reset();
chart.update();
}
}
CheckBox {
id: cbLogToDisk;
text: "Log";
onClicked: mgmt.logToDisk = checked
}
}
Row {
Layout.row: 1;
Layout.column: 0;
spacing: 5;
Label {
id: lblMean;
}
Label {
id: lblCount;
}
Label {
id: lblRunTime;
}
}
HistogramChart {
Layout.row: 2;
Layout.column: 0;
Layout.fillHeight: true;
Layout.fillWidth: true;
id: chart
objectName: "qmlChart"
}
}
}