import QtQuick 2.11 import QtQuick.Controls 1.4 import QtQuick.Layouts 1.14 import "modbus.js" as ModbusJs Item { Loader{ id:loader anchors.fill: parent anchors.margins: 5 } function show(){ if(loader.sourceComponent === null){ loader.sourceComponent = componet } loader.item.show() } function exit(){ if(loader.sourceComponent !== null){ loader.item.exit() } } Component{ id:componet GroupBox{ id:groupbox x:width title: "标定模式" //property int readPressure_index: 0; Timer{ id:componetTimer repeat: false interval: 1000 onTriggered: { var ret = ModbusJs.checkModebusDevice(controlSerial,sensorSerial,log) if(ret === false) log.show("自检错误") else{ log.show("自检正常") ModbusJs.closeAllValve(controlSerial) //打开三个传感阀 ModbusJs.highPressureSensorCtrl(controlSerial,true) ModbusJs.lowPressureSensorCtrl(controlSerial,true) ModbusJs.negativePumpPowerCtrl(controlSerial,true) sensorTimer.start() //sensorTimer.running = true } //1000 会造成启动慢 延迟赋值 //gauge.maximumValue = 1 } } Timer{ id:sensorTimer repeat: true triggeredOnStart: false interval: 1000 onTriggered: { var obj if(comboBox1.currentText === "低压传感器"){ obj = ModbusJs.lowPressureSensorReadReq(sensorSerial) if(obj.ret === false){ log.show("低压传感器"+"通讯错误") } else{ gauge_low.value = obj.pressureNumber //parseInt(obj.pressureNumber) //gauge_low.realValue = obj.pressureNumber } }else if(comboBox1.currentText === "高压传感器"){ obj = ModbusJs.highPressureSensorReadReq(sensorSerial) if(obj.ret === false){ log.show("高压传感器"+"通讯错误") } else{ gauge_high.value = obj.pressureNumber//parseInt(obj.pressureNumber) //gauge_high.realValue = obj.pressureNumber } }else if(comboBox1.currentText === "负压传感器"){ obj = ModbusJs.negativePressureSensorReadReq(sensorSerial) if(obj.ret === false){ log.show("负压传感器"+"通讯错误") } else{ gauge_negative.value = obj.pressureNumber // parseInt(obj.pressureNumber) //gauge_negative.realValue = obj.pressureNumber } } } } function show(){ animationShow.running = true componetTimer.start() } function exit(){ sensorTimer.stop() animationExit.running = true ModbusJs.closeAllValve(controlSerial) } //加载任务动画效果 NumberAnimation { id: animationShow target: groupbox property: "x" from: groupbox.x to: 0 duration: 500 } NumberAnimation { id: animationExit target: groupbox property: "x" from: groupbox.x to: 1024 duration: 500 } Column{ anchors.left: parent.left anchors.leftMargin: 2 anchors.top: parent.top anchors.topMargin: 10 spacing: 30 Rectangle{ width: 980 height: 75 color: "white" radius: 6 Row{ //anchors.fill: parent anchors.centerIn: parent.Center spacing: 20 Button{ id:positive_relif text: "打开正压罐泄压阀" //anchors.horizontalCenter: parent.horizontalCenter onClicked: { ModbusJs.positivePressureTankOutputCtrl(controlSerial,true) } } Button{ id:negitive_relif text: "打开负压罐泄压阀" //anchors.horizontalCenter: parent.horizontalCenter onClicked: { ModbusJs.negativePressureTankOutputCtrl(controlSerial,true) } } Row{ spacing: 5 Text { anchors.verticalCenter: parent.verticalCenter text: qsTr("读取压力值:") font.bold: true font.pixelSize: 13 } UserComboBox{ id:comboBox1 anchors.verticalCenter: parent.verticalCenter width: 145 height: 25 bgColor:"#D2D5D9" model: ["不读取","高压传感器","低压传感器", "负压传感器"] onActivated: { if(currentText === "不读取"){ low_zero.enabled = false; high_zero.enabled = false; neg_zero.enabled = false; }else if(currentText === "高压传感器"){ low_zero.enabled = false; high_zero.enabled = true; neg_zero.enabled = false; }else if(currentText === "低压传感器"){ low_zero.enabled = true; high_zero.enabled = false; neg_zero.enabled = false; }else if(currentText === "负压传感器"){ low_zero.enabled = false; high_zero.enabled = false; neg_zero.enabled = true; } } } } } } Row{ x:-10 spacing: 50 anchors.horizontalCenter: parent.horizontalCenter Rectangle{ width: 300*0.75 height: 300 color: "white" radius: 6 anchors.verticalCenter: parent.verticalCenter Column{ anchors.fill: parent spacing: 20 Button{ id:high_zero text: "高压传感器标零" enabled: false anchors.horizontalCenter: parent.horizontalCenter onClicked: { if(ModbusJs.highPressureSetZeroReq(sensorSerial)){ }else{ log.show("高压传感器:"+"标零失败!") } } } Gauge { id:gauge_high width: parent.width height: parent.width //anchors.centerIn: parent value: 0.0 //realValue:0.0 maximumValue: 1000 minimumValue: { return 0 } Behavior on value { NumberAnimation { duration: 1000 }} } } } Rectangle{ width: 300*0.75 height: 300 color: "white" radius: 6 anchors.verticalCenter: parent.verticalCenter Column{ anchors.fill: parent spacing: 20 Button{ id:low_zero text: "低压传感器标零" enabled: false anchors.horizontalCenter: parent.horizontalCenter onClicked: { if(ModbusJs.lowPressureSetZeroReq(sensorSerial)){ }else{ log.show("低压传感器:"+"标零失败!") } } } Gauge { id:gauge_low width: parent.width height: parent.width anchors.centerIn: parent value: 0.0 //realValue:0.0 maximumValue: 1000 minimumValue: { return 0 } Behavior on value { NumberAnimation { duration: 1000 }} } } } Rectangle{ width: 300*0.75 height: 300 color: "white" radius: 6 anchors.verticalCenter: parent.verticalCenter Column{ anchors.fill: parent spacing: 20 Button{ id:neg_zero text: "负压传感器标零" enabled: false anchors.horizontalCenter: parent.horizontalCenter onClicked: { if(ModbusJs.negativePressureSetZeroReq(sensorSerial)){ }else{ log.show("负压传感器:"+"标零失败!") } } } Gauge { id:gauge_negative width: parent.width height: parent.width anchors.centerIn: parent value: 0.0 //realValue:0.0 maximumValue: 900 minimumValue: { return -100 } Behavior on value { NumberAnimation { duration: 1000 }} } } } } } } } }