hlp:状态机初版,统一管理回收槽状态,启动和停止打印时的状态
This commit is contained in:
+87
-181
@@ -311,7 +311,7 @@ void InkJetPrinter::showEvent(QShowEvent *e)
|
||||
fpgaReadyTimer = nullptr;
|
||||
}
|
||||
else {
|
||||
qDebug() << "FPGA not connected yet.";
|
||||
// qDebug() << "FPGA not connected yet.";
|
||||
}
|
||||
});
|
||||
|
||||
@@ -789,7 +789,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
checkPressureControl();
|
||||
|
||||
if((QTime::currentTime()>=QTime(00,00,00))&&(QTime::currentTime()<=QTime(00,00,02))&&sysPara->para.Reciclar){
|
||||
if(m_MainWidget->getCurrPrintStatus() != 1){
|
||||
if(sysPara->status.isPrinting == false){
|
||||
m_MainWidget->_on_pushButtonPowerOff_pressed(false);
|
||||
LogInfo::setRunStatusText(tr("定时开机循环完成,准备关机"));
|
||||
}
|
||||
@@ -889,29 +889,6 @@ void InkJetPrinter::timerHandler(void){
|
||||
sysPara->devOp->readFgaStatus();
|
||||
}
|
||||
|
||||
/**************桂澳增加超速提示*****************************/
|
||||
static int logCtrl = 0;
|
||||
if((sysPara->para.printTriggerMode == PRINT_TRIGGER_SYNCHRONIZER || sysPara->para.eleEyeTriggerSynPrintEn)
|
||||
&& sysPara->status.lesslen_warn == 1){ //置1表示超速了
|
||||
if(logCtrl++ % 500 == 0){
|
||||
// LogInfo::setRunStatusText(tr("速度过快,请检查是否漏喷!!!"));
|
||||
qDebug()<<"速度过快,请检查是否漏喷!!!";
|
||||
}
|
||||
|
||||
/*if(msgBox1->isHidden()){ //桂澳的超速提示先保留
|
||||
msgBox1->setText(tr("速度过快,请检查是否漏喷!!!"));
|
||||
msgBox1->show();
|
||||
LogInfo::setRunStatusText(tr("速度过快,请检查是否漏喷!!!"));
|
||||
qDebug()<<"速度过快,请检查是否漏喷!!!";
|
||||
}*/
|
||||
sysPara->devOp->controlRedLight(true);
|
||||
sysPara->devOp->controlGreenLight(false);
|
||||
}
|
||||
else{
|
||||
// if(!msgBox1->isHidden())
|
||||
// sysPara->devOp->controlRedLight(false);
|
||||
}
|
||||
|
||||
sysPara->status.gearPumpRunSpeed = (PulseCnt * 60 * 1000) / (500 * 2);
|
||||
if(!sysPara->para.gearPumpEnable)
|
||||
sysPara->status.PRESSURE *= 5; //响应群众号召,数值放大五倍
|
||||
@@ -923,7 +900,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
|
||||
if(sysPara->status.delay10ms%5 == 0)
|
||||
{//复位发送打印数据
|
||||
if((m_MainWidget->getCurrPrintStatus() == 1)&&sysPara->para.ResetSendData)
|
||||
if(sysPara->status.isPrinting && sysPara->para.ResetSendData)
|
||||
{
|
||||
static bool oneTimeFlag = false;
|
||||
if(sysPara->status.productCnt== 0 && (oneTimeFlag==false))//计米复位发送打印数据
|
||||
@@ -950,7 +927,6 @@ void InkJetPrinter::timerHandler(void){
|
||||
lastProductCount = sysPara->status.productCnt;
|
||||
|
||||
if(vartypeR != 0){ //更新替换变量的值
|
||||
// LogInfo::setRunStatusText("vartypeR");
|
||||
MySleep(100);
|
||||
m_MainWidget->onPreviewScene();
|
||||
m_MainWidget->SendPrintDataToFpga(0);
|
||||
@@ -969,15 +945,6 @@ void InkJetPrinter::timerHandler(void){
|
||||
}
|
||||
|
||||
if (!updateAreas.isEmpty() && m_StackedWidget->currentWidget() == m_MainWidget) {
|
||||
// // 统计追踪更新频率
|
||||
// static QElapsedTimer bnsTimer;
|
||||
// static int toogleCount = 0;
|
||||
// ++toogleCount;
|
||||
// if(toogleCount > 10) {
|
||||
// auto elapsed = bnsTimer.restart();
|
||||
// qDebug() << (QString("timeHandler avg elapsed: %1 s").arg(elapsed / qreal(toogleCount) / 1000.0));
|
||||
// toogleCount = 0;
|
||||
// }
|
||||
m_MainWidget->updatePrintDisplayLabel();
|
||||
}
|
||||
|
||||
@@ -1032,11 +999,10 @@ void InkJetPrinter::timerHandler(void){
|
||||
if(sysPara->status.selfCheckCnt >= MAX_SELF_CHECK_CNT)
|
||||
#endif
|
||||
{
|
||||
sysPara->status.selfCheckDone = true;
|
||||
// 通过状态管理器发送事件,在 onStateChanged 中更新 sysPara
|
||||
// if (m_stateManager && m_stateManager->isState(PrinterState::SELF_CHECK)) {
|
||||
// m_stateManager->requestTransition(PrinterEvent::SelfCheckDone);
|
||||
// }
|
||||
if (m_stateManager && m_stateManager->isState(PrinterState::IDLE)) {
|
||||
m_stateManager->requestTransition(PrinterEvent::PowerOn);
|
||||
}
|
||||
|
||||
// 自检完成后管道恢复正常阻力,重置软启动让压力重新平稳收敛
|
||||
// 不清零 u,从当前控制字开始,避免突变
|
||||
@@ -1049,29 +1015,15 @@ void InkJetPrinter::timerHandler(void){
|
||||
for(int i = 0; i < 10; i++) m_pressureBuf[i] = 0;
|
||||
m_bufIdx = 0;
|
||||
|
||||
m_MainWidget->setReclaimOpenBtnStatus(true);
|
||||
m_MainWidget->setReclaimCloseBtnStatus(false);
|
||||
|
||||
sysPara->devOp->mainInkCtrl();
|
||||
sysPara->status.canRunAirPushing = true;
|
||||
|
||||
// 自检完成后,关闭高电压,不知道为什么,有时候开机自检都有高压
|
||||
sysPara->devOp->highVoltageCtrl(0);
|
||||
|
||||
m_MainWidget->on_m_StopBtn_clicked();
|
||||
|
||||
LogInfo::setRunStatusText(tr("自检完成!!!"));
|
||||
m_MainWidget->setRunStatus(tr("自检完成!!!"));
|
||||
qDebug()<<"自检完成!!!";
|
||||
|
||||
if(sysPara->para.Reciclar)
|
||||
test_flag = 1;
|
||||
}
|
||||
else {
|
||||
if((sysPara->status.selfCheckCnt % 200) == 0)
|
||||
m_MainWidget->setReclaimOpenBtnStatus(false);
|
||||
m_MainWidget->setReclaimCloseBtnStatus(false);
|
||||
}
|
||||
|
||||
}
|
||||
else{
|
||||
@@ -1228,6 +1180,9 @@ void InkJetPrinter::timerHandler(void){
|
||||
|
||||
if(pulse_100ms && sysPara->status.selfCheckDone){
|
||||
detectAndcontrolReclaimTank(); //控制回收槽
|
||||
if (m_stateManager) {
|
||||
m_stateManager->checkReadyState();
|
||||
}
|
||||
}
|
||||
|
||||
/*---------------------------------处理警告--------------------------------------------*/
|
||||
@@ -1838,63 +1793,69 @@ void InkJetPrinter::initStateManager()
|
||||
m_stateManager = PrinterStateManager::instance();
|
||||
|
||||
// 连接状态变化信号 DirectConnection:确保相关状态实时更新
|
||||
// connect(m_stateManager, &PrinterStateManager::sig_stateChanged,
|
||||
// this, &InkJetPrinter::slt_stateChanged, Qt::DirectConnection);
|
||||
connect(m_stateManager, &PrinterStateManager::sig_stateChanged,
|
||||
this, &InkJetPrinter::slt_stateChanged, Qt::DirectConnection);
|
||||
// 使能开始打印、停止打印、开回收槽、关回收槽按钮
|
||||
connect(m_stateManager, &PrinterStateManager::sig_enableStartPrint,
|
||||
this, &InkJetPrinter::slt_enableStartPrint, Qt::DirectConnection);
|
||||
connect(m_stateManager, &PrinterStateManager::sig_enableStopPrint,
|
||||
this, &InkJetPrinter::slt_enableStopPrint, Qt::DirectConnection);
|
||||
connect(m_stateManager, &PrinterStateManager::sig_enableOpenTank,
|
||||
this, &InkJetPrinter::slt_enableOpenTank, Qt::DirectConnection);
|
||||
connect(m_stateManager, &PrinterStateManager::sig_enableCloseTank,
|
||||
this, &InkJetPrinter::slt_enableCloseTank, Qt::DirectConnection);
|
||||
// 更新回收槽状态
|
||||
connect(m_stateManager, &PrinterStateManager::sig_updateReclaimStatus,
|
||||
this, [=](){m_MainWidget->updateReclaimStatus();});
|
||||
|
||||
// ============ 开机时重置状态 ============
|
||||
m_stateManager->initFromSysPara();
|
||||
sysPara->status.selfCheckDone = false; // 自检是否完成
|
||||
sysPara->status.isPrinting = false; // 是否正在打印
|
||||
sysPara->status.powerOffAppending = false; // 是否正在关机
|
||||
|
||||
// 发送 PowerOn 事件进入自检状态
|
||||
// if (!sysPara->status.selfCheckDone) {
|
||||
// m_stateManager->requestTransition(PrinterEvent::PowerOn);
|
||||
// }
|
||||
|
||||
// initStateTimer();
|
||||
}
|
||||
|
||||
void InkJetPrinter::initStateTimer()
|
||||
{
|
||||
// ============ 测试定时器 ============
|
||||
m_testTimer = new QTimer(this);
|
||||
connect(m_testTimer, &QTimer::timeout, this, &InkJetPrinter::slt_stateTest);
|
||||
m_testTimer->start(3000); // 3秒切换一次
|
||||
sysPara->status.powerOffAppending = false; // 是否正在关机
|
||||
m_stateManager->bindSysPara(sysPara);
|
||||
}
|
||||
|
||||
void InkJetPrinter::handleSelfCheck()
|
||||
{
|
||||
sysPara->status.selfCheckDone = false;
|
||||
sysPara->status.selfCheckCnt = 0;
|
||||
m_MainWidget->enablePrintButton(false);
|
||||
// 自检完成,非打印状态,回收槽放下后使能打印按钮
|
||||
if (!sysPara->status.selfCheckDone) {
|
||||
sysPara->status.selfCheckDone = true;
|
||||
LogInfo::setRunStatusText(tr("自检完成!!!"));
|
||||
m_MainWidget->setRunStatus(tr("自检完成!!!"));
|
||||
}
|
||||
}
|
||||
|
||||
void InkJetPrinter::handleReady()
|
||||
{
|
||||
// 自检完成,非打印状态,回收槽放下后使能打印按钮
|
||||
sysPara->status.selfCheckDone = true;
|
||||
sysPara->status.isPrinting = false;
|
||||
if(sysPara->status.reclaimTankstatus == 5) {
|
||||
m_MainWidget->enablePrintButton(true);
|
||||
} else {
|
||||
m_MainWidget->enablePrintButton(false);
|
||||
}
|
||||
|
||||
// MySleep(50);
|
||||
// m_MainWidget->updateReclaimStatus();
|
||||
}
|
||||
|
||||
void InkJetPrinter::handleStartPrint()
|
||||
{
|
||||
sysPara->status.isPrinting = true;
|
||||
sysPara->status.waitHightVolOff = 0;
|
||||
sysPara->status.lastSynColDelay = -1; //目的是为了清空原来的数据
|
||||
sysPara->devOp->highVoltageCtrl(1);
|
||||
sysPara->devOp->setHighVoltageAmplitudetoSTM32();
|
||||
sysPara->status.waitHightVolOff = 0;
|
||||
sysPara->devOp->printCtrl(PRINT_CTRL_START);
|
||||
// MySleep(50);
|
||||
// m_MainWidget->updateReclaimStatus();
|
||||
}
|
||||
|
||||
void InkJetPrinter::handleStopPrint()
|
||||
{
|
||||
sysPara->status.isPrinting = false;
|
||||
// LogInfo::setRunStatusText("Stop print...");
|
||||
sysPara->devOp->printCtrl2(1);
|
||||
sysPara->devOp->printCtrl( PRINT_CTRL_STOP);
|
||||
sysPara->status.waitHightVolOff = 1;
|
||||
sysPara->saveParaToFile(); // 将相关配置保存
|
||||
// 停止完毕后再进入就绪状态,允许开始打印
|
||||
m_stateManager->requestTransition(PrinterEvent::StopComplete);
|
||||
// MySleep(50);
|
||||
// m_MainWidget->updateReclaimStatus();
|
||||
}
|
||||
|
||||
void InkJetPrinter::handlePowerOff()
|
||||
@@ -1903,101 +1864,40 @@ void InkJetPrinter::handlePowerOff()
|
||||
m_MainWidget->checkForPowerOff();
|
||||
}
|
||||
|
||||
void InkJetPrinter::slt_stateTest()
|
||||
{
|
||||
if (!m_stateManager) return;
|
||||
|
||||
PrinterState currentState = m_stateManager->currentState();
|
||||
|
||||
qDebug() << "=== Test Step:" << m_testStep << "Current:" << m_stateManager->stateName();
|
||||
|
||||
// 根据当前状态发送不同的事件
|
||||
switch (currentState) {
|
||||
case PrinterState::IDLE:
|
||||
// IDLE → SELF_CHECK
|
||||
qDebug() << "▶ Send: PowerOn";
|
||||
m_stateManager->requestTransition(PrinterEvent::PowerOn);
|
||||
break;
|
||||
|
||||
case PrinterState::SELF_CHECK:
|
||||
// SELF_CHECK → READY
|
||||
qDebug() << "▶ Send: SelfCheckDone";
|
||||
m_stateManager->requestTransition(PrinterEvent::SelfCheckDone);
|
||||
break;
|
||||
|
||||
case PrinterState::READY:
|
||||
// READY → PRINTING
|
||||
qDebug() << "▶ Send: StartPrint";
|
||||
m_stateManager->requestTransition(PrinterEvent::StartPrint);
|
||||
break;
|
||||
|
||||
case PrinterState::PRINTING:
|
||||
// PRINTING → STOPPING → READY(两步完成)
|
||||
if (m_testStep % 2 == 0) {
|
||||
qDebug() << "▶ Send: StopPrint";
|
||||
m_stateManager->requestTransition(PrinterEvent::StopPrint);
|
||||
} else {
|
||||
qDebug() << "▶ Send: StopComplete";
|
||||
m_stateManager->requestTransition(PrinterEvent::StopComplete);
|
||||
}
|
||||
break;
|
||||
|
||||
case PrinterState::STOPPING:
|
||||
// STOPPING → READY
|
||||
qDebug() << "▶ Send: StopComplete";
|
||||
m_stateManager->requestTransition(PrinterEvent::StopComplete);
|
||||
break;
|
||||
|
||||
case PrinterState::ERROR:
|
||||
// ERROR → READY
|
||||
qDebug() << "▶ Send: ErrorCleared";
|
||||
m_stateManager->requestTransition(PrinterEvent::ErrorCleared);
|
||||
break;
|
||||
|
||||
case PrinterState::POWER_OFF:
|
||||
// POWER_OFF → IDLE
|
||||
qDebug() << "▶ Send: PowerOffDone";
|
||||
m_stateManager->requestTransition(PrinterEvent::PowerOffDone);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
m_testStep++;
|
||||
}
|
||||
|
||||
// ============ 状态机槽函数 ============
|
||||
void InkJetPrinter::slt_stateChanged(PrinterState newState, PrinterState oldState, QString reason)
|
||||
{
|
||||
qDebug() << "State:" << m_stateManager->stateName() << "Reason:" << reason;
|
||||
Q_UNUSED(oldState)
|
||||
LogInfo::setRunStatusText(reason);
|
||||
|
||||
// ============ 统一更新 sysPara 状态 ============
|
||||
switch (newState) {
|
||||
case PrinterState::SELF_CHECK:
|
||||
// 进入自检状态
|
||||
// 进入自检完成状态
|
||||
handleSelfCheck();
|
||||
LogInfo::setRunStatusText("SELF_CHECK_DONE");
|
||||
break;
|
||||
|
||||
case PrinterState::READY:
|
||||
// 进入就绪状态
|
||||
handleReady();
|
||||
LogInfo::setRunStatusText("READY");
|
||||
break;
|
||||
|
||||
case PrinterState::PRINTING:
|
||||
// 进入打印状态
|
||||
handleStartPrint();
|
||||
LogInfo::setRunStatusText("PRINTING");
|
||||
break;
|
||||
|
||||
case PrinterState::STOPPING:
|
||||
// 进入停止状态
|
||||
handleStopPrint();
|
||||
LogInfo::setRunStatusText("STOPPING");
|
||||
break;
|
||||
|
||||
case PrinterState::ERROR:
|
||||
// 进入故障状态
|
||||
// m_MainWidget->setRunStatus("故障!请检查");
|
||||
// m_MainWidget->enablePrintButton(false);
|
||||
break;
|
||||
|
||||
case PrinterState::POWER_OFF:
|
||||
@@ -2008,9 +1908,27 @@ void InkJetPrinter::slt_stateChanged(PrinterState newState, PrinterState oldStat
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 保存参数
|
||||
//sysPara->saveParaToFile();
|
||||
void InkJetPrinter::slt_enableStartPrint(bool able)
|
||||
{
|
||||
m_MainWidget->enabeleStartBtn(able);
|
||||
}
|
||||
|
||||
void InkJetPrinter::slt_enableStopPrint(bool able)
|
||||
{
|
||||
m_MainWidget->enabeleStopBtn(able);
|
||||
}
|
||||
|
||||
// 排气过程中不使能
|
||||
void InkJetPrinter::slt_enableOpenTank(bool able)
|
||||
{
|
||||
m_MainWidget->setReclaimOpenBtnStatus(able);
|
||||
}
|
||||
|
||||
void InkJetPrinter::slt_enableCloseTank(bool able)
|
||||
{
|
||||
m_MainWidget->setReclaimCloseBtnStatus(able);
|
||||
}
|
||||
|
||||
/*************************FPGA通过串口读取状态赋值给status-start******************************************/
|
||||
@@ -2768,60 +2686,47 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
if(sysPara->devOp->isReclaimTankOpenEnable())
|
||||
sysPara->devOp->controlReclaimTankOpen(false); //到头,关闭
|
||||
sysPara->status.reclainTankReachEnd = true;
|
||||
m_MainWidget->setRunStatus(tr("回收槽到头"));
|
||||
m_MainWidget->setReclaimStatus(true, 100);
|
||||
m_MainWidget->enablePrintButton(true); //仅仅在此时能使能打印按钮
|
||||
sysPara->devOp->highVoltageCtrl(0);
|
||||
m_MainWidget->setRunStatus(tr("回收槽到头"));
|
||||
sysPara->devOp->highVoltageCtrl(0);
|
||||
|
||||
m_MainWidget->stopFlashReclaimOpenBtn();
|
||||
m_MainWidget->stopFlashReclaimOpenBtn();
|
||||
|
||||
// emit reclaimTankOpenDone();
|
||||
/*回收槽开关时间校正*/
|
||||
sysPara->para.reclaimTankTime =( sysPara->status.currReclaimTankPos>120 )? sysPara->status.currReclaimTankPos/10-1:12;
|
||||
m_SystemSetting->updateReclaimTime( sysPara->para.reclaimTankTime );
|
||||
/*回收槽开关时间校正*/
|
||||
sysPara->para.reclaimTankTime =( sysPara->status.currReclaimTankPos>120 )? sysPara->status.currReclaimTankPos/10-1:12;
|
||||
m_SystemSetting->updateReclaimTime( sysPara->para.reclaimTankTime );
|
||||
|
||||
qDebug()<<"reclaimTankOpenDone currReclaimTankPos:"<<sysPara->status.currReclaimTankPos;
|
||||
qDebug()<<"reclaimTankOpenDone curr_reclaimTankTime:"<<sysPara->status.curr_reclaimTankTime;
|
||||
|
||||
LogInfo::setRunStatusText("reclaimTankOpenDone currReclaimTankPos:"+QString::number(sysPara->status.currReclaimTankPos));
|
||||
LogInfo::setRunStatusText("reclaimTankOpenDone currReclaimTankPos:"+QString::number(sysPara->status.currReclaimTankPos));
|
||||
}
|
||||
else if(sysPara->status.reclaimTankstatus == 0x11 )//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
|
||||
{
|
||||
sysPara->devOp->controlReclaimTankOpen(false); //卡住,关闭
|
||||
m_MainWidget->stopFlashReclaimOpenBtn();
|
||||
// ui->tabMainWindow->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误"));
|
||||
// ui->tabMainWindow->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误"));
|
||||
}
|
||||
else if(sysPara->status.reclaimTankstatus == 1 || sysPara->status.reclaimTankstatus == 2)//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
|
||||
{
|
||||
auto recliamTime = (sysPara->para.reclaimTankTime != 0 ? sysPara->para.reclaimTankTime : 15.0f) * 10.0f;
|
||||
int rate = qBound(0, 100, int((sysPara->status.currReclaimTankPos / recliamTime) * 100));
|
||||
// auto recliamTime = (sysPara->para.reclaimTankTime != 0 ? sysPara->para.reclaimTankTime : 15.0f) * 10.0f;
|
||||
// int rate = qBound(0, 100, int((sysPara->status.currReclaimTankPos / recliamTime) * 100));
|
||||
|
||||
// 不知道为什么会有rate为0,且 sysPara->status.reclaimTankstatus == 2 ,也就是 关的状态。 回收槽位置在0处,而状态却是 关 ,很奇怪
|
||||
if(sysPara->status.reclaimTankstatus != 2 && rate != 0) {
|
||||
m_MainWidget->setReclaimStatus(sysPara->status.reclaimTankstatus == 1, rate);
|
||||
if(sysPara->status.reclaimTankstatus != 2) {
|
||||
|
||||
#ifdef BNS_DEBUG
|
||||
#ifdef BNS_DEBUG
|
||||
if(rate == 100) {
|
||||
m_MainWidget->enablePrintButton(true);
|
||||
m_MainWidget->stopFlashReclaimOpenBtn();
|
||||
sysPara->status.reclaimTankstatus = 5;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
m_MainWidget->setReclaimOpenBtnStatus(sysPara->status.reclaimTankstatus == 2);
|
||||
m_MainWidget->setReclaimCloseBtnStatus(sysPara->status.reclaimTankstatus == 1);
|
||||
|
||||
sysPara->status.reclaimBlockedCnt = 0;
|
||||
}
|
||||
else if(sysPara->status.reclaimTankstatus == 6 )//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
|
||||
{
|
||||
if(sysPara->devOp->isReclaimTankCloseEnable())
|
||||
sysPara->devOp->controlReclaimTankClose(false); //到头,关闭
|
||||
m_MainWidget->setReclaimStatus(false, 0);
|
||||
m_MainWidget->stopFlashReclaimOpenBtn();
|
||||
//sysPara->status.currReclaimTankPos = 0; //将回收槽的时间置为零
|
||||
// emit reclaimTankCloseDone();
|
||||
sysPara->status.lastRecycleWarn = 0;
|
||||
sysPara->status.HVFaultCloseEn=0;
|
||||
sysPara->status.reclainCloseAppending=false;
|
||||
@@ -2839,6 +2744,7 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
m_MainWidget->setReclaimCloseBtnStatus(true);
|
||||
LogInfo::setRunStatusText("Reclaim tank hold on "+QString::number(sysPara->status.currReclaimTankPos));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void InkJetPrinter::viscosity_timerHandler()
|
||||
|
||||
Reference in New Issue
Block a user