AntiClipSettings/qml/Main.qml

187 lines
6.0 KiB
QML
Raw Normal View History

2024-08-13 09:54:41 +08:00
import QtQuick
2024-08-13 20:06:10 +08:00
import QtQuick.Controls
2024-08-14 20:01:38 +08:00
import QtQuick.Layouts
2024-08-21 09:26:06 +08:00
import QtQuick.Dialogs
2024-08-13 20:06:10 +08:00
import AntiClipSettings
2024-08-13 09:54:41 +08:00
2024-08-13 20:06:10 +08:00
ApplicationWindow {
2024-08-21 09:26:06 +08:00
id: window
2024-08-16 16:24:15 +08:00
width: 1000
height: 640
2024-08-13 09:54:41 +08:00
visible: true
2024-08-21 16:03:49 +08:00
title: qsTr("T009上位机工具")
2024-08-13 20:06:10 +08:00
2024-08-14 20:01:38 +08:00
header: ToolBar {
RowLayout {
anchors.fill: parent
2024-08-21 16:03:49 +08:00
ToolButton {
2024-08-14 20:01:38 +08:00
text: "搜索设备"
2024-08-16 16:24:15 +08:00
onClicked: {
deviceList.currentIndex = -1
2024-08-21 09:26:06 +08:00
App.startSearchDevice()
2024-08-16 16:24:15 +08:00
}
2024-08-14 20:01:38 +08:00
}
2024-08-21 16:03:49 +08:00
Label {
2024-08-20 09:29:49 +08:00
text: `: ${deviceList.count}`
}
2024-08-21 16:03:49 +08:00
Label {
2024-08-14 20:01:38 +08:00
Layout.alignment: Qt.AlignRight
2024-08-21 16:03:49 +08:00
Layout.preferredWidth: 280
text: App.currentFirmware.length > 0 ? `: ${App.currentFirmware}` : ""
2024-08-14 20:01:38 +08:00
}
2024-08-13 20:06:10 +08:00
}
}
2024-08-16 16:24:15 +08:00
ListView {
2024-08-13 20:06:10 +08:00
id: deviceList
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
2024-08-16 16:24:15 +08:00
width: 420
clip: true
model: App.devices
delegate: Rectangle {
width: deviceList.width
height: 40
color: ListView.isCurrentItem ? "#aaddff" : (index % 2 == 0 ? "#ffffff" : "#eeeeee")
Row {
anchors.fill: parent
spacing: 10
Text {
2024-08-20 09:29:49 +08:00
anchors.verticalCenter: parent.verticalCenter
2024-08-16 16:24:15 +08:00
text: deviceId
}
Item {}
Text {
2024-08-20 09:29:49 +08:00
anchors.verticalCenter: parent.verticalCenter
2024-08-16 16:24:15 +08:00
text: ip
}
2024-08-20 09:29:49 +08:00
Rectangle {
anchors.verticalCenter: parent.verticalCenter
2024-08-21 09:26:06 +08:00
color: onlineStatus ? "green" : "black"
2024-08-20 09:29:49 +08:00
width: 10
height: 10
radius: 5
}
2024-08-16 16:24:15 +08:00
}
MouseArea {
anchors.fill: parent
onClicked: {
deviceList.currentIndex = index
}
onDoubleClicked: {
networkPopup.open()
}
}
}
onCurrentIndexChanged: {
2024-08-21 09:26:06 +08:00
// deviceVersion.text = App.devices.get(deviceList.currentIndex).softwareVersion;
2024-08-20 09:29:49 +08:00
App.connectToDevice(deviceList.currentIndex)
2024-08-16 16:24:15 +08:00
}
ProgressBar {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
visible: App.devices.isSearching
from: 0
to: 100
value: App.devices.searchProgress
height: 25
}
2024-08-13 20:06:10 +08:00
}
DeviceView {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: deviceList.right
anchors.right: parent.right
2024-08-22 10:48:28 +08:00
enabled: App.currentDeviceConnected&&(deviceList.currentIndex >= 0)
2024-08-16 16:24:15 +08:00
openDoorAreaWay: App.currentOpenDoorAreaWay
2024-08-13 20:06:10 +08:00
openDoorAreaPoints: App.currentOpenDoorAreaPoints
2024-08-14 20:01:38 +08:00
shieldedAreaEnabled: App.currentShieldedAreaEnabled
shieldedAreaPoints: App.currentShieldedAreaPoints
antiClipAreaEnabled: App.currentAntiClipAreaEnabled
antiClipAreaPoints: App.currentAntiClipAreaPoints
}
2024-08-16 16:24:15 +08:00
NetworkSettingPopup {
id: networkPopup
visible: false
width: 500
}
2024-08-19 09:33:04 +08:00
OtaPopup {
id: otaPopup
}
2024-08-21 09:26:06 +08:00
FolderDialog {
id: folderDialog
onAccepted: {
App.collector.path = folderDialog.selectedFolder
App.collector.start(App.devices.get(deviceList.currentIndex).ip)
}
}
2024-08-14 20:01:38 +08:00
footer: RowLayout {
width: parent.width
Item {}
Button {
2024-08-21 09:26:06 +08:00
text: App.collector.enabled ? "停止采集" : "数据采集"
onClicked: {
if (App.collector.enabled) {
App.collector.stop()
} else {
if (deviceList.currentIndex < 0) {
showMessageDialog(2, "数据采集", "请先选择设备")
return
2024-08-22 10:48:28 +08:00
} else if(!App.currentDeviceConnected){
showMessageDialog(2, "数据采集", "设备已离线,请重新连接设备!")
return
2024-08-21 09:26:06 +08:00
}
if (App.collector.path.length <= 0) {
folderDialog.open()
} else {
App.collector.start(App.devices.get(
deviceList.currentIndex).ip)
}
}
}
2024-08-14 20:01:38 +08:00
}
Item {}
Button {
text: "升级"
2024-08-21 09:26:06 +08:00
onClicked: {
if (deviceList.currentIndex < 0) {
2024-08-22 10:48:28 +08:00
showMessageDialog(2, "OTA升级", "请先选择设备!")
return
}else if(!App.currentDeviceConnected){
showMessageDialog(2, "OTA升级", "设备已离线,请重新连接设备!")
2024-08-21 09:26:06 +08:00
return
}
otaPopup.open()
}
2024-08-14 20:01:38 +08:00
}
Item {}
spacing: (parent.width - (2 * 100)) / 3
2024-08-13 20:06:10 +08:00
}
2024-08-21 09:26:06 +08:00
function showMessageDialog(type, title, message) {
let component = Qt.createComponent("MessageDialog.qml")
if (component.status === Component.Ready) {
let dialog = component.createObject(window, {
"type": type,
"height": 200,
"titleText": title,
"text": message
})
dialog.open()
}
}
2024-08-22 10:48:28 +08:00
Connections {
target: App
function onNewMessage(type, title, message) {
showMessageDialog(type, title, message)
}
}
2024-08-13 09:54:41 +08:00
}