blob: db015e3a4617e855fda8a18c7a792e8a0466fe4d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Xpl2
ApplicationWindow {
id: root
height: 600
title: "XPL2 Demo"
visible: true
width: 800
Connections {
function onConnectedChanged() {
debugConsole.appendLog(Xpl2Client.connected ? "Connected" :
"Disconnected");
}
function onErrorOccurred(error: string) {
debugConsole.appendLog("ERROR: " + error);
}
function onStatusMessage(message: string) {
debugConsole.appendLog(message);
}
target: Xpl2Client
}
ColumnLayout {
anchors.fill: parent
spacing: 0
ColumnLayout {
Layout.fillHeight: true
Layout.fillWidth: true
Layout.margins: 16
spacing: 12
// --- Connection ---
GroupBox {
Layout.fillWidth: true
title: "Connection"
RowLayout {
anchors.fill: parent
Label {
text: "Host:"
}
TextField {
id: hostField
Layout.fillWidth: true
text: Xpl2Client.host
onEditingFinished: Xpl2Client.host = text
}
Button {
text: Xpl2Client.connected ? "Disconnect" : "Connect"
onClicked: {
if (Xpl2Client.connected)
Xpl2Client.disconnectFromServer();
else
Xpl2Client.connectToServer();
}
}
}
}
// --- Protocol Commands ---
GroupBox {
Layout.fillWidth: true
enabled: Xpl2Client.connected
title: "Protocol Commands"
ColumnLayout {
anchors.fill: parent
RowLayout {
Button {
text: "Get JC Version"
onClicked: Xpl2Client.getJcVersion()
}
Label {
text: Xpl2Client.controllerId > 0
? "Controller: %1 | FW: %2 | HW: %3 | PHs: %4".arg(
Xpl2Client.controllerId).arg(
Xpl2Client.firmwareVersion).arg(
Xpl2Client.hardwareVersion).arg(
Xpl2Client.printheadCount) :
"No version data"
}
}
}
}
// --- Spacer ---
Item {
Layout.fillHeight: true
}
}
// --- Debug Console ---
Rectangle {
id: debugConsole
function appendLog(msg: string): void {
let ts = new Date().toLocaleTimeString(Qt.locale(),
"HH:mm:ss.zzz");
debugLog.text += "[" + ts + "] " + msg + "\n";
debugLog.cursorPosition = debugLog.text.length;
}
Layout.fillWidth: true
Layout.preferredHeight: 160
border.color: "#444"
color: "#1e1e1e"
radius: 4
ScrollView {
anchors.fill: parent
anchors.margins: 4
TextArea {
id: debugLog
background: null
color: "#cccccc"
font.family: "monospace"
font.pointSize: 9
readOnly: true
wrapMode: TextEdit.Wrap
}
}
}
}
}
|