From a20552e8d076d3227542f2441d407fe5c3a181e1 Mon Sep 17 00:00:00 2001 From: Byons Date: Fri, 28 Aug 2026 17:19:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5VX4=E7=9A=84=E6=8E=92?= =?UTF-8?q?=E6=B0=94=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SysPara.cpp | 5 +++ SysPara.h | 2 ++ SystemSetting.cpp | 5 +++ mainwindow.cpp | 91 +++++++++++++---------------------------------- systemsetting.ui | 32 +++++++++++++++++ 5 files changed, 69 insertions(+), 66 deletions(-) diff --git a/SysPara.cpp b/SysPara.cpp index 32edd39..1d5ce19 100644 --- a/SysPara.cpp +++ b/SysPara.cpp @@ -30,6 +30,9 @@ SysPara::SysPara(void): memset(¶,0,sizeof(para)); memset(&status,0,sizeof(status)); + + para.airPushDurationSec = 4; + //qDebug("start to loadParaFromFile."); loadParaFromFile(); //qDebug("loadParaFromFile ok."); @@ -174,6 +177,8 @@ void SysPara::loadDefaultPara(){ para.enableChargeFullTime = 1;//充电占空百分比 para.mixValveisNewVersion = 1;//混和阀是否是新管路 + + para.airPushDurationSec = 4; } void SysPara::saveParaToFile(){ diff --git a/SysPara.h b/SysPara.h index bbf8cd0..a6a5deb 100644 --- a/SysPara.h +++ b/SysPara.h @@ -815,6 +815,8 @@ typedef struct { unsigned short moduleSelection; bool flagOfAdjustVoltage; unsigned short currSelectVolPara; + + int airPushDurationSec; // 排气时间,单位 秒 /* */ // 1108Bytes }sysPara_t; diff --git a/SystemSetting.cpp b/SystemSetting.cpp index c3c56c3..4998e92 100644 --- a/SystemSetting.cpp +++ b/SystemSetting.cpp @@ -132,6 +132,8 @@ void SystemSetting::updateSysParaToUI(){ ui->comboBoxDiameter->setCurrentIndex(sysPara->para.diameter); ui->comboBoxDiaphramOffset->setCurrentIndex(sysPara->para.diaphramOffset/5-1); + ui->spinBoxAirPushDuration->setValue(sysPara->para.airPushDurationSec); + if(sysPara->para.EditMode>SCENE) sysPara->para.EditMode=TXTFILE; ui->comboBoxEditMode->setCurrentIndex(sysPara->para.EditMode); @@ -171,6 +173,9 @@ void SystemSetting::applyUIPara(){ sysPara->para.septalPostion = ui->spinBoxSeptalPostion->value(); quint16 diaphramOffset = 5*(ui->comboBoxDiaphramOffset->currentIndex()+1); sysPara->para.diaphramOffset = diaphramOffset; + + sysPara->para.airPushDurationSec = ui->spinBoxAirPushDuration->value(); + //sysPara->para.mixValveisNewVersion = ui->radioButtonMixValveNewVersion->isChecked(); if(sysPara->devOp->writeFpgaPrintPara() != -1){ QMessageBox::information(this,tr("提示"),tr("应用成功")); diff --git a/mainwindow.cpp b/mainwindow.cpp index 8d40487..8c64bbf 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -2049,78 +2049,37 @@ void MainWindow::airPushingProcess() { if(sysPara){ if (sysPara->status.airPushing) { - //qDebug()<< "start airPushingProcess "<status.airPushingOnTime; - // 执行排气 7 秒 + setRunStatus(tr("正在排气 ...............")); - ++sysPara->status.airPushingOnTime; - if(sysPara->status.airPushingOnTime >= 50) { - static int delayCount = 0; - ++delayCount; - m_2sFlag = true; - //sysPara->devOp->controlInkValve(false); //关供墨阀 - if(delayCount >= 40) - { - m_2sFlag = false; - } - - if(delayCount >= 60) - { - delayCount = 0; - airPushTimer->stop(); - sysPara->devOp->controlViscosityPump(false); - reclaimTanOpen(); - //qDebug()<< "start stop"; - sysPara->status.airPushingDone = 1; - sysPara->status.airPushing = 0; - sysPara->status.airPushingOnTime = 0; - } + //qDebug()<< "start airPushingProcess "<status.airPushingOnTime; + // 执行排气 4 秒 + sysPara->status.airPushingOnTime += 100; + + if(sysPara->para.airPushDurationSec <= 0 || sysPara->para.airPushDurationSec > 30) { + sysPara->para.airPushDurationSec = 4; + sysPara->saveParaToFile(); + } + // 延迟 半秒后才开回收槽,正式结束排气阶段 + if(sysPara->status.airPushingOnTime >= sysPara->para.airPushDurationSec * 1000 + 500){ + //qDebug()<< "start stop"; + reclaimTanOpen(); + sysPara->status.airPushingDone = 1; + sysPara->status.airPushing = 0; + sysPara->status.airPushingOnTime = 0; + airPushTimer->stop(); return; } - if (sysPara->status.airPushingOnTime%10 >= 5) { - sysPara->devOp->controlCycleValve(true); - } - else { + if(sysPara->status.airPushingOnTime >= sysPara->para.airPushDurationSec * 1000){ + sysPara->devOp->controlViscosityPump(false); sysPara->devOp->controlCycleValve(false); - } - if (mainInkPumpCtrlStatus == 0) { - if(++mainInkPumpCtrlCnt > 15) { //100ms 为单位, 时间到关闭 - sysPara->devOp->controlMainInkPump(false); - sysPara->devOp->mainInkCtrl(); - mainInkPumpCtrlStatus = 1; - mainInkPumpCtrlCnt = 0; - } - } - else if (mainInkPumpCtrlStatus == 1) { //100ms 为单位, 时间到开启 - sysPara->devOp->controlMainInkPump(true); - sysPara->devOp->mainInkCtrl(); - mainInkPumpCtrlStatus = 2; - } - else if (mainInkPumpCtrlStatus == 2) { - if(++mainInkPumpCtrlCnt>7) { - sysPara->devOp->controlMainInkPump(false); - sysPara->devOp->mainInkCtrl(); - mainInkPumpCtrlStatus = 3; - mainInkPumpCtrlCnt = 0; - } - } - else if (mainInkPumpCtrlStatus == 3) { - if(++mainInkPumpCtrlCnt>8) { - sysPara->devOp->controlMainInkPump(true); - sysPara->devOp->mainInkCtrl(); - mainInkPumpCtrlStatus = 4; - mainInkPumpCtrlCnt = 0; - } - } - else if (mainInkPumpCtrlStatus == 4) { - if(++mainInkPumpCtrlCnt>8) { - sysPara->devOp->controlMainInkPump(false); - sysPara->devOp->mainInkCtrl(); - mainInkPumpCtrlStatus = 3; - mainInkPumpCtrlCnt = 0; - } + + if(!sysPara->devOp->isReclaimPumpOpen()) + sysPara->devOp->controlReclaimPump(true, false); + + return; } } } @@ -2188,7 +2147,7 @@ void MainWindow::on_pushButtonReclaimTanOpen_pressed() sysPara->status.isPumpValveControledByHand = true; sysPara->devOp->mainInkCtrl(); sysPara->devOp->controlCycleValve(true); - sysPara->devOp->controlViscosityPump(false);//关粘度泵 + sysPara->devOp->controlViscosityPump(true);//关粘度泵 sysPara->devOp->controlMainInkPump(true);//主墨泵敞开 sysPara->devOp->mainInkCtrl(); sysPara->devOp->controlReclaimPump(true, false); // 回收泵开 diff --git a/systemsetting.ui b/systemsetting.ui index 0d18315..6a70a8e 100644 --- a/systemsetting.ui +++ b/systemsetting.ui @@ -828,6 +828,38 @@ + + + + 排气时间(秒): + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 37 + + + + QAbstractSpinBox::NoButtons + + + 1 + + + 300 + + + 4 + + +