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 || "—" } } } } } } }