diff options
Diffstat (limited to 'jetting-interface/CommandsPage.qml')
| -rw-r--r-- | jetting-interface/CommandsPage.qml | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/jetting-interface/CommandsPage.qml b/jetting-interface/CommandsPage.qml new file mode 100644 index 0000000..5a084e6 --- /dev/null +++ b/jetting-interface/CommandsPage.qml @@ -0,0 +1,213 @@ +pragma ComponentBehavior: Bound + +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Xpl2 + +ColumnLayout { + id: commandsPage + + required property int demoPhCount + required property ListModel phModel + + spacing: 12 + + // --- JC Version --- + GroupBox { + Layout.fillWidth: true + enabled: Xpl2Client.connected + title: "Jetting Controller" + + RowLayout { + anchors.fill: parent + + 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" + } + } + } + + // --- Control --- + GroupBox { + Layout.fillWidth: true + enabled: Xpl2Client.connected + title: "Control" + + GridLayout { + anchors.fill: parent + columns: 4 + + Button { + text: "Jetting All On" + + onClicked: Xpl2Client.jettingAllOn() + } + + Button { + text: "Jetting Off" + + onClicked: Xpl2Client.jettingOff() + } + + Button { + text: "JC LED On" + + onClicked: Xpl2Client.jcIdLedOn() + } + + Button { + text: "JC LED Off" + + onClicked: Xpl2Client.jcIdLedOff() + } + + Button { + text: "JC Calibration" + + onClicked: Xpl2Client.jcCalibration() + } + + Button { + text: "Reset Fault Codes" + + onClicked: Xpl2Client.jcResetFaultCodes() + } + } + } + + // --- Configuration --- + GroupBox { + Layout.fillWidth: true + enabled: Xpl2Client.connected + title: "Configuration" + + GridLayout { + anchors.fill: parent + columns: 4 + + Button { + text: "Save All Settings" + + onClicked: Xpl2Client.jcSaveAllPrintheadSettings() + } + + Button { + text: "Reboot All PHs" + + onClicked: Xpl2Client.jcRebootAllPrintheads() + } + + Button { + text: "Restart JC" + + onClicked: Xpl2Client.jcRestart() + } + + Button { + text: "Shutdown JC" + + onClicked: Xpl2Client.jcShutdown() + } + } + } + + // --- Imaging --- + GroupBox { + Layout.fillWidth: true + enabled: Xpl2Client.connected + title: "Imaging" + + GridLayout { + anchors.fill: parent + columns: 4 + + Button { + text: "Start Imaging" + + onClicked: Xpl2Client.imagingStart(1.0) + } + + Button { + text: "Stop Imaging" + + onClicked: Xpl2Client.imagingStop() + } + + Button { + text: "Image Count" + + onClicked: Xpl2Client.imageCount() + } + } + } + + // --- Printheads --- + GroupBox { + Layout.fillHeight: true + Layout.fillWidth: true + enabled: Xpl2Client.connected + title: "Printheads (%1)".arg(commandsPage.demoPhCount) + + ColumnLayout { + anchors.fill: parent + + Button { + text: "Get All PH Versions" + + onClicked: { + for (let i = 0; i < commandsPage.phModel.count; ++i) + Xpl2Client.getPhVersion(commandsPage.phModel.get(i).phId); + } + } + + ScrollView { + Layout.fillHeight: true + Layout.fillWidth: true + + ListView { + model: commandsPage.phModel + spacing: 4 + + delegate: RowLayout { + id: phDelegate + + required property int phId + required property string versionInfo + + width: ListView.view.width + + Label { + Layout.preferredWidth: 50 + font.bold: true + text: "PH %1".arg(phDelegate.phId) + } + + Button { + text: "Version" + + onClicked: Xpl2Client.getPhVersion(phDelegate.phId) + } + + Label { + Layout.fillWidth: true + elide: Text.ElideRight + text: phDelegate.versionInfo || "—" + } + } + } + } + } + } +} |
