hlp:修复隐藏功能m显示不全的问题,需要搭配等宽的小数点,空格,数字和字母m使用,修改版本号为GuiLin版本

This commit is contained in:
kite_lucs
2026-09-07 09:48:31 +08:00
committed by byons
parent 9eebd81d51
commit b96e36a6a6
6 changed files with 373 additions and 363 deletions
+348 -337
View File
@@ -26,7 +26,7 @@ InkJetPrinter::InkJetPrinter(QWidget *parent) :
ui(new Ui::InkJetPrinter) ui(new Ui::InkJetPrinter)
{ {
// 隐藏系统任务栏,隐藏后,如果需要激活任务栏,则需要呼出QtUI中的任意弹出式、非全屏窗口,然后使用鼠标将光标移动至屏幕最左侧或最顶部则可以呼出任务栏 // 隐藏系统任务栏,隐藏后,如果需要激活任务栏,则需要呼出QtUI中的任意弹出式、非全屏窗口,然后使用鼠标将光标移动至屏幕最左侧或最顶部则可以呼出任务栏
int ret = system("xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior -s 2"); int ret = system("xfconf-query -c xfce4-panel -p /panels/panel-1/autohide-behavior -s 2");
qInfo() << "Hide system panel ret:" << ret; qInfo() << "Hide system panel ret:" << ret;
// system("ifconfig eth1 down"); // system("ifconfig eth1 down");
@@ -52,13 +52,14 @@ InkJetPrinter::InkJetPrinter(QWidget *parent) :
m_serialThreadFPGA = new QThread; m_serialThreadFPGA = new QThread;
serialFPGA = new Serial("/dev/ttyAS5"); serialFPGA = new Serial("/dev/ttyAS5");
connect(m_serialThreadFPGA,&QThread::started,serialFPGA,&Serial::startInitSlot);
serialFPGA->moveToThread(m_serialThreadFPGA); serialFPGA->moveToThread(m_serialThreadFPGA);
connect(serialFPGA,SIGNAL(sendQueueData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendFPGADate(int,int,unsigned char*,int,int))); connect(serialFPGA,SIGNAL(sendQueueData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendFPGADate(int,int,unsigned char*,int,int)));
connect(serialFPGA,SIGNAL(resendFPGAData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendFPGADate(int,int,unsigned char*,int,int))); connect(serialFPGA,SIGNAL(resendFPGAData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendFPGADate(int,int,unsigned char*,int,int)));
connect(sysPara->devOp,SIGNAL(sendSerialDataToFPGA(int,int,unsigned char*,int,int)),serialFPGA,SLOT(sendSerialData(int,int,unsigned char*,int,int)),Qt::QueuedConnection); connect(sysPara->devOp,SIGNAL(sendSerialDataToFPGA(int,int,unsigned char*,int,int)),serialFPGA,SLOT(sendSerialData(int,int,unsigned char*,int,int)),Qt::QueuedConnection);
connect(serialFPGA,SIGNAL(getFPGAVersion(uint)),this,SLOT(saveFPGAVersionNum(uint))); connect(serialFPGA,SIGNAL(getFPGAVersion(uint)),this,SLOT(saveFPGAVersionNum(uint)));
connect(m_serialThreadFPGA,&QThread::started,serialFPGA,&Serial::startInitSlot);
connect(serialFPGA,SIGNAL(stopSendData(bool)),this,SLOT(stopSendFPGAData(bool))); connect(serialFPGA,SIGNAL(stopSendData(bool)),this,SLOT(stopSendFPGAData(bool)));
connect(serialFPGA,SIGNAL(getFPGAPhaseDetectHighTm(unsigned char*)),this,SLOT(saveFPGAPhaseDetectHighTm(unsigned char*))); connect(serialFPGA,SIGNAL(getFPGAPhaseDetectHighTm(unsigned char*)),this,SLOT(saveFPGAPhaseDetectHighTm(unsigned char*)));
connect(serialFPGA,SIGNAL(getFPGAStatus(unsigned char*)),this,SLOT(saveFPGAStatus(unsigned char*))); connect(serialFPGA,SIGNAL(getFPGAStatus(unsigned char*)),this,SLOT(saveFPGAStatus(unsigned char*)));
@@ -74,6 +75,9 @@ InkJetPrinter::InkJetPrinter(QWidget *parent) :
m_serialThreadSTM32 = new QThread(); m_serialThreadSTM32 = new QThread();
serialSTM32 = new Serial("/dev/ttyAS2"); serialSTM32 = new Serial("/dev/ttyAS2");
connect(m_serialThreadSTM32,&QThread::started,serialSTM32,&Serial::startInitSlot);
serialSTM32->moveToThread(m_serialThreadSTM32); serialSTM32->moveToThread(m_serialThreadSTM32);
connect(serialSTM32,SIGNAL(sendQueueData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendSTM32Date(int,int,unsigned char*,int,int))); connect(serialSTM32,SIGNAL(sendQueueData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendSTM32Date(int,int,unsigned char*,int,int)));
connect(sysPara->devOp,SIGNAL(sendSerialDataToSTM32(int,int,unsigned char*,int,int)),serialSTM32,SLOT(sendSerialData(int,int,unsigned char*,int,int))); connect(sysPara->devOp,SIGNAL(sendSerialDataToSTM32(int,int,unsigned char*,int,int)),serialSTM32,SLOT(sendSerialData(int,int,unsigned char*,int,int)));
@@ -84,7 +88,7 @@ InkJetPrinter::InkJetPrinter(QWidget *parent) :
connect(serialSTM32,SIGNAL(getSTM32Time(unsigned char*)),this,SLOT(saveSTM32Time(unsigned char*))); connect(serialSTM32,SIGNAL(getSTM32Time(unsigned char*)),this,SLOT(saveSTM32Time(unsigned char*)));
connect(serialSTM32,SIGNAL(stopSendData(bool)),this,SLOT(stopSendSTM32Data(bool))); connect(serialSTM32,SIGNAL(stopSendData(bool)),this,SLOT(stopSendSTM32Data(bool)));
connect(serialSTM32,SIGNAL(powerOffReady()),ui->tabMainWindow,SLOT(powerOffConfirmed())); connect(serialSTM32,SIGNAL(powerOffReady()),ui->tabMainWindow,SLOT(powerOffConfirmed()));
connect(m_serialThreadSTM32,&QThread::started,serialSTM32,&Serial::startInitSlot);
connect(serialSTM32,SIGNAL(queueSizeSTM32(int)),ui->tabMainWindow,SLOT(showSTM32queuesize(int))); connect(serialSTM32,SIGNAL(queueSizeSTM32(int)),ui->tabMainWindow,SLOT(showSTM32queuesize(int)));
connect(ui->tabSystemManage,SIGNAL(upgradeSTM32(QString)),serialSTM32,SLOT(upgradeSTM32File(QString))); connect(ui->tabSystemManage,SIGNAL(upgradeSTM32(QString)),serialSTM32,SLOT(upgradeSTM32File(QString)));
connect(ui->tabSystemManage,SIGNAL(enableClick(bool)),this,SLOT(enableInkJetTabClick(bool))); connect(ui->tabSystemManage,SIGNAL(enableClick(bool)),this,SLOT(enableInkJetTabClick(bool)));
@@ -183,9 +187,11 @@ InkJetPrinter::InkJetPrinter(QWidget *parent) :
connect(ui->tabSystemSetting,SIGNAL(pressureAdjust()),this,SLOT(pressureAdjustForsystemseeting())); connect(ui->tabSystemSetting,SIGNAL(pressureAdjust()),this,SLOT(pressureAdjustForsystemseeting()));
#ifdef COUNTER1_BY_GROUP /* 分段计米 */ #ifdef COUNTER1_BY_GROUP /* 分段计米 */
connect(this,SIGNAL(updateCnt1GroupDisp(bool)),ui->tabPrintSetting,SLOT(onUpdateCnt1GroupDisp(bool))); connect(this,SIGNAL(updateCnt1GroupDisp(bool)),
ui->tabPrintSetting,SLOT(onUpdateCnt1GroupDisp(bool)));
#endif #endif
initCntGroup(); initCntGroup();
msgtest = new QMessageBox(this); msgtest = new QMessageBox(this);
connect(msgtest, SIGNAL(finished(int)), this, SLOT(OnFinished(int))); connect(msgtest, SIGNAL(finished(int)), this, SLOT(OnFinished(int)));
msgBox1 = new QMessageBox(this); msgBox1 = new QMessageBox(this);
@@ -253,7 +259,7 @@ initCntGroup();
sysPara->status.FileChangeRestCntFlag=0; sysPara->status.FileChangeRestCntFlag=0;
sysPara->status.HVFaultCloseEn=0; sysPara->status.HVFaultCloseEn=0;
sysPara->devOp->printCtrl( PRINT_CTRL_STOP); sysPara->devOp->printCtrl( PRINT_CTRL_STOP);
sysPara->devOp->writeFpgaCalandar(1);// sysPara->devOp->writeFpgaCalandar(1);
//qDebug()<<sysPara->para.calandar_and_dat.year; //qDebug()<<sysPara->para.calandar_and_dat.year;
sysPara->status.cnt1GroupRunningIndex=0; sysPara->status.cnt1GroupRunningIndex=0;
//sysPara->status.cnt1RepeatCurrent=0; //sysPara->status.cnt1RepeatCurrent=0;
@@ -267,31 +273,31 @@ initCntGroup();
//JSON data //JSON data
#ifdef MODBUS #ifdef MODBUS
modbus = NULL; modbus = NULL;
memset((uint8_t *)&sysPara->modbusParas, 0, sizeof(sysPara->modbusParas)); memset((uint8_t *)&sysPara->modbusParas, 0, sizeof(sysPara->modbusParas));
sysPara->modbusStatus.receiveEnbleFlag = 1; sysPara->modbusStatus.receiveEnbleFlag = 1;
snprintf((char *)sysPara->modbusParas.selectFileName, sizeof(sysPara->modbusParas.selectFileName), "%s",QFileInfo(sysPara->para.lastOpenedFileName).fileName().toLatin1().constData()); snprintf((char *)sysPara->modbusParas.selectFileName, sizeof(sysPara->modbusParas.selectFileName), "%s",QFileInfo(sysPara->para.lastOpenedFileName).fileName().toLatin1().constData());
modbus = new ModbusTcp(&sysPara->modbusParas, &sysPara->modbusStatus); modbus = new ModbusTcp(&sysPara->modbusParas, &sysPara->modbusStatus);
m_thread = new QThread(); m_thread = new QThread();
modbus->moveToThread(m_thread); modbus->moveToThread(m_thread);
connect(m_thread, SIGNAL(started()),modbus,SLOT(pvPollingThread())); connect(m_thread, SIGNAL(started()),modbus,SLOT(pvPollingThread()));
connect(modbus, SIGNAL(updateQRcode()), ui->tabMainWindow, SLOT(modbusUpdateQRCode()), Qt::QueuedConnection); connect(modbus, SIGNAL(updateQRcode()), ui->tabMainWindow, SLOT(modbusUpdateQRCode()), Qt::QueuedConnection);
connect(modbus, SIGNAL(openFile(QString,bool)), ui->tabMainWindow->getTexteditOption(), SLOT(onFileOpen(QString,bool)), Qt::QueuedConnection); connect(modbus, SIGNAL(openFile(QString,bool)), ui->tabMainWindow->getTexteditOption(), SLOT(onFileOpen(QString,bool)), Qt::QueuedConnection);
connect(modbus, SIGNAL(startPrint()), ui->tabMainWindow, SLOT(on_pushButtonStartPrint_pressed()), Qt::QueuedConnection); connect(modbus, SIGNAL(startPrint()), ui->tabMainWindow, SLOT(on_pushButtonStartPrint_pressed()), Qt::QueuedConnection);
connect(modbus, SIGNAL(pausePrint()), ui->tabMainWindow, SLOT(on_pushButtonPausePrint_pressed()), Qt::QueuedConnection);//暂时屏蔽排除问题 connect(modbus, SIGNAL(pausePrint()), ui->tabMainWindow, SLOT(on_pushButtonPausePrint_pressed()), Qt::QueuedConnection);//暂时屏蔽排除问题
connect(modbus,SIGNAL(stopPrint()),ui->tabMainWindow,SLOT(on_pushButtonStopPrint_pressed()), Qt::QueuedConnection); connect(modbus,SIGNAL(stopPrint()),ui->tabMainWindow,SLOT(on_pushButtonStopPrint_pressed()), Qt::QueuedConnection);
connect(modbus,SIGNAL(writeCalendar()),this,SLOT(onModbusWriteCalendar()), Qt::QueuedConnection); connect(modbus,SIGNAL(writeCalendar()),this,SLOT(onModbusWriteCalendar()), Qt::QueuedConnection);
connect(modbus,SIGNAL(writeCalendar1()),this,SLOT(onModbusWriteCalendar1CurrValue()), Qt::QueuedConnection); connect(modbus,SIGNAL(writeCalendar1()),this,SLOT(onModbusWriteCalendar1CurrValue()), Qt::QueuedConnection);
connect(modbus,SIGNAL(writeCalendar1EndValue()),this,SLOT(onModbusWriteCalendar1EndValue()), Qt::QueuedConnection); connect(modbus,SIGNAL(writeCalendar1EndValue()),this,SLOT(onModbusWriteCalendar1EndValue()), Qt::QueuedConnection);
connect(modbus,SIGNAL(writeCalendar2EndValue()),this,SLOT(onModbusWriteCalendar2EndValue()), Qt::QueuedConnection); connect(modbus,SIGNAL(writeCalendar2EndValue()),this,SLOT(onModbusWriteCalendar2EndValue()), Qt::QueuedConnection);
connect(modbus,SIGNAL(writeCalendar2RepeatValue()),this,SLOT(onModbusWriteCalendar2RepeatValue()), Qt::QueuedConnection); connect(modbus,SIGNAL(writeCalendar2RepeatValue()),this,SLOT(onModbusWriteCalendar2RepeatValue()), Qt::QueuedConnection);
connect(modbus,SIGNAL(writeCalendar2InitValue()),this,SLOT(onModbusWriteCalendar2InitValue()), Qt::QueuedConnection); connect(modbus,SIGNAL(writeCalendar2InitValue()),this,SLOT(onModbusWriteCalendar2InitValue()), Qt::QueuedConnection);
connect(modbus,SIGNAL(CNTResetNow()),ui->tabMainWindow,SLOT(onModbusCNTResetNowPressed()), Qt::QueuedConnection); connect(modbus,SIGNAL(CNTResetNow()),ui->tabMainWindow,SLOT(onModbusCNTResetNowPressed()), Qt::QueuedConnection);
connect(modbus,SIGNAL(faultResume()),ui->tabMainWindow,SLOT(onLabelFaultRusumePressed()), Qt::QueuedConnection); connect(modbus,SIGNAL(faultResume()),ui->tabMainWindow,SLOT(onLabelFaultRusumePressed()), Qt::QueuedConnection);
connect(modbus,SIGNAL(mbLineAndCharSpace(int, int)),ui->tabMainWindow->getTexteditOption(),SLOT(onMbSetLineAndChar(int, int)), Qt::QueuedConnection); connect(modbus,SIGNAL(mbLineAndCharSpace(int, int)),ui->tabMainWindow->getTexteditOption(),SLOT(onMbSetLineAndChar(int, int)), Qt::QueuedConnection);
connect(this,SIGNAL(updataPara2UI()),ui->tabPrintSetting,SLOT( PrintupdateSysParaToUI() ), Qt::QueuedConnection); connect(this,SIGNAL(updataPara2UI()),ui->tabPrintSetting,SLOT( PrintupdateSysParaToUI() ), Qt::QueuedConnection);
connect(this, SIGNAL(openFile(QString,bool)), ui->tabMainWindow->getTexteditOption(), SLOT(onFileOpen(QString,bool)), Qt::QueuedConnection); connect(this, SIGNAL(openFile(QString,bool)), ui->tabMainWindow->getTexteditOption(), SLOT(onFileOpen(QString,bool)), Qt::QueuedConnection);
connect(this, SIGNAL(startPrint()), ui->tabMainWindow, SLOT(on_pushButtonStartPrint_pressed()), Qt::QueuedConnection); connect(this, SIGNAL(startPrint()), ui->tabMainWindow, SLOT(on_pushButtonStartPrint_pressed()), Qt::QueuedConnection);
#endif #endif
ui->tabMainWindow->enableReclaimCtrlButton(false); ui->tabMainWindow->enableReclaimCtrlButton(false);
@@ -704,6 +710,7 @@ void InkJetPrinter::initCntGroup()
connect(this, &InkJetPrinter::sig_updateDisp, connect(this, &InkJetPrinter::sig_updateDisp,
SectionalManager::instance(), &SectionalManager::sig_updateCntGroupDisp); SectionalManager::instance(), &SectionalManager::sig_updateCntGroupDisp);
} }
float PID_realize(float speed); float PID_realize(float speed);
struct _pid{ struct _pid{
@@ -757,7 +764,7 @@ float PID_realize2(float speed, float act){
pid.err = pid.SetSpeed - pid.ActualSpeed; pid.err = pid.SetSpeed - pid.ActualSpeed;
float delta_u = pid.Kp * (pid.err - pid.err_last) float delta_u = pid.Kp * (pid.err - pid.err_last)
+ pid.Ki * pid.err; + pid.Ki * pid.err;
// 自适应非对称限幅: // 自适应非对称限幅:
// 压力严重偏高(err < -30):允许快速减速,限制慢速加速 // 压力严重偏高(err < -30):允许快速减速,限制慢速加速
@@ -836,7 +843,7 @@ void InkJetPrinter::pressureAdj()
if(m_pumpState != DPUMP_STOPPED) { if(m_pumpState != DPUMP_STOPPED) {
u = 0.0f; u = 0.0f;
sysPara->para.gearPumpValue = 0; sysPara->para.gearPumpValue = 0;
sysPara->devOp->WriteMoterPump(); sysPara->devOp->WriteMoterPump();
m_pumpState = DPUMP_STOPPED; m_pumpState = DPUMP_STOPPED;
m_stateChangeCount = 0; m_stateChangeCount = 0;
m_adjSkip = 0; m_adjSkip = 0;
@@ -880,7 +887,7 @@ void InkJetPrinter::handleStoppedState(int err, bool canSwitch)
// 启动爬升状态处理:从低转速逐步提升到工作转速 // 启动爬升状态处理:从低转速逐步提升到工作转速
void InkJetPrinter::handleStartingState(int err, int actual, int target) void InkJetPrinter::handleStartingState(int err, int actual, int target)
{ {
const int STARTING_TO_RUNNING_RANGE = 30; // 进入目标±50范围转到运行状态 const int STARTING_TO_RUNNING_RANGE = 30; // 进入目标±50范围转到运行状态
const float MAX_WORKING_SPEED = 350.0f; // 最大工作转速 const float MAX_WORKING_SPEED = 350.0f; // 最大工作转速
const float START_SPEED_STEP_LARGE = 40.0f; const float START_SPEED_STEP_LARGE = 40.0f;
@@ -891,11 +898,11 @@ void InkJetPrinter::handleStartingState(int err, int actual, int target)
// 每800ms调整一次(8个100ms周期) // 每800ms调整一次(8个100ms周期)
if(m_adjSkip < 8) { if(m_adjSkip < 8) {
sysPara->para.gearPumpValue = (unsigned short)(int)u; sysPara->para.gearPumpValue = (unsigned short)(int)u;
sysPara->devOp->WriteMoterPump(); sysPara->devOp->WriteMoterPump();
return; return;
} }
m_adjSkip = 0; m_adjSkip = 0;
// 判断是否进入运行状态 // 判断是否进入运行状态
int absErr = (err >= 0) ? err : -err; int absErr = (err >= 0) ? err : -err;
@@ -908,15 +915,15 @@ void InkJetPrinter::handleStartingState(int err, int actual, int target)
m_lastActualPressure = actual; m_lastActualPressure = actual;
m_stateChangeCount = 0; // 重置计数器 m_stateChangeCount = 0; // 重置计数器
return; return;
} }
// 继续爬升:根据误差自适应增速 // 继续爬升:根据误差自适应增速
float step; float step;
if(err > 100) step = START_SPEED_STEP_LARGE; if(err > 100) step = START_SPEED_STEP_LARGE;
else if(err > 50) step = START_SPEED_STEP_MED; else if(err > 50) step = START_SPEED_STEP_MED;
else step = START_SPEED_STEP_SMALL; else step = START_SPEED_STEP_SMALL;
u += step; u += step;
if(u > MAX_WORKING_SPEED) u = MAX_WORKING_SPEED; if(u > MAX_WORKING_SPEED) u = MAX_WORKING_SPEED;
sysPara->para.gearPumpValue = (unsigned short)(int)u; sysPara->para.gearPumpValue = (unsigned short)(int)u;
@@ -926,7 +933,7 @@ void InkJetPrinter::handleStartingState(int err, int actual, int target)
// 运行微调状态处理:使用增量式控制算法 // 运行微调状态处理:使用增量式控制算法
void InkJetPrinter::handleRunningState(int err, bool canSwitch) void InkJetPrinter::handleRunningState(int err, bool canSwitch)
{ {
const int RUN_TO_STOP_THRESHOLD = 5; // 压力高于目标10准备停泵(扩大滞环) const int RUN_TO_STOP_THRESHOLD = 5; // 压力高于目标10准备停泵(扩大滞环)
const int EMERGENCY_STOP_THRESHOLD = 10; // 压力高于目标20立即停泵(不受800ms限制) const int EMERGENCY_STOP_THRESHOLD = 10; // 压力高于目标20立即停泵(不受800ms限制)
@@ -950,7 +957,7 @@ void InkJetPrinter::handleRunningState(int err, bool canSwitch)
m_stateChangeCount = 0; m_stateChangeCount = 0;
m_adjSkip = 0; m_adjSkip = 0;
return; return;
} }
// === 增量式微调控制(每200ms调整一次)=== // === 增量式微调控制(每200ms调整一次)===
m_adjSkip++; m_adjSkip++;
@@ -968,10 +975,10 @@ void InkJetPrinter::handleRunningState(int err, bool canSwitch)
// 死区:误差≤0.5不调整 // 死区:误差≤0.5不调整
if(absErr < 0.5f) { if(absErr < 0.5f) {
m_lastActualPressure = actual; m_lastActualPressure = actual;
sysPara->para.gearPumpValue = (unsigned short)(int)u; sysPara->para.gearPumpValue = (unsigned short)(int)u;
sysPara->devOp->WriteMoterPump(); sysPara->devOp->WriteMoterPump();
return; return;
} }
// 计算压力变化率(微分项) // 计算压力变化率(微分项)
int pressureChange = actual - m_lastActualPressure; int pressureChange = actual - m_lastActualPressure;
@@ -1002,7 +1009,7 @@ void InkJetPrinter::handleRunningState(int err, bool canSwitch)
if(delta_u < -maxDelta) delta_u = -maxDelta; if(delta_u < -maxDelta) delta_u = -maxDelta;
// 更新控制量 // 更新控制量
u += delta_u; u += delta_u;
// 限制范围 // 限制范围
const float MIN_RUNNING_SPEED = 30.0f; // 最低运行转速(低于此值泵不转) const float MIN_RUNNING_SPEED = 30.0f; // 最低运行转速(低于此值泵不转)
@@ -1012,7 +1019,7 @@ void InkJetPrinter::handleRunningState(int err, bool canSwitch)
if(u > MAX_WORKING_SPEED) u = MAX_WORKING_SPEED; if(u > MAX_WORKING_SPEED) u = MAX_WORKING_SPEED;
sysPara->para.gearPumpValue = (unsigned short)(int)u; sysPara->para.gearPumpValue = (unsigned short)(int)u;
sysPara->devOp->WriteMoterPump(); sysPara->devOp->WriteMoterPump();
} }
@@ -1223,10 +1230,6 @@ void InkJetPrinter::timerHandler(void){
static float gearPumpRunNormalValue = 0.0; static float gearPumpRunNormalValue = 0.0;
if(sysPara){ if(sysPara){
xxxm=1; xxxm=1;
if(sysPara->para.flagOfModuleDecimal || sysPara->para.flagOfModuleHide){
sysPara->para.flagOfModuleDecimal = 0;
sysPara->para.flagOfModuleHide = 0;
}
sysPara->para.ReadFileErrorCnt=0; // 正常打开文件 sysPara->para.ReadFileErrorCnt=0; // 正常打开文件
@@ -1552,47 +1555,57 @@ void InkJetPrinter::timerHandler(void){
} }
} }
if(gearPumpRunFlag || sysPara->para.gearPumpEnable == 0) if(gearPumpRunFlag || sysPara->para.gearPumpEnable == 0)
{ {
if(!sysPara->status.selfCheckDone && sysPara->status.isPrinting){ if(!sysPara->status.selfCheckDone && sysPara->status.isPrinting){
sysPara->status.selfCheckDone = true; sysPara->status.selfCheckDone = true;
ui->tabMainWindow->updatePrintDisplayLabel(); ui->tabMainWindow->updatePrintDisplayLabel();
sysPara->status.flagOfAbnormalStatus = true; sysPara->status.flagOfAbnormalStatus = true;
static bool onceLog = true;
if(onceLog) {
LogInfo::setRunStatusText(tr("打印过程中死机了!!!")); LogInfo::setRunStatusText(tr("打印过程中死机了!!!"));
qDebug()<<"打印过程中死机了!!!"; qDebug()<<"打印过程中死机了!!!";
onceLog = false;
ui->tabMainWindow->updatePrintDisplayLabel();
} }
if(!sysPara->status.selfCheckDone)
ui->tabMainWindow->on_pushButtonStopPrint_pressed();
}
if(!sysPara->status.selfCheckDone)
{
/*开机自检*/
autoControlValvePump();
if(pulse_100ms){
pressureAdj();
}
/*-----------------------------------------------------*/
if(!sysPara->status.selfCheckCnt) {
LogInfo::setRunStatusText(tr("开始自检,请等待60秒..............."));
ui->tabMainWindow->enableReclaimCtrlButton(false);
ui->tabMainWindow->enablePrintButton(false);
sysPara->devOp->mainInkCtrl();
sysPara->para.TrunOnPowerCnt++;// 20151218 开机次数加1
sysPara->saveParaToFile(); // 保存开机次数值
sysPara->status.lastProductCnt = sysPara->status.productCnt ; //这会让产品计数显示出来
ui->tabMainWindow->updateTotalCnt(0);
}
if((++sysPara->status.selfCheckCnt % 100) == 0){
ui->tabMainWindow->setRunStatus(tr("开始自检,请等待%1秒...............").arg((MAX_SELF_CHECK_CNT - sysPara->status.selfCheckCnt)/100));
}
if(sysPara->status.selfCheckCnt >= MAX_SELF_CHECK_CNT)
{ {
/*开机自检*/ sysPara->status.selfCheckDone = 1;
autoControlValvePump(); u = (float)sysPara->para.gearPumpValue;
if(pulse_100ms){
pressureAdj();
}
/*-----------------------------------------------------*/
if(!sysPara->status.selfCheckCnt) {
LogInfo::setRunStatusText(tr("开始自检,请等待60秒..............."));
ui->tabMainWindow->enableReclaimCtrlButton(false);
ui->tabMainWindow->enablePrintButton(false);
sysPara->devOp->mainInkCtrl();
sysPara->para.TrunOnPowerCnt++;// 20151218 开机次数加1
sysPara->saveParaToFile(); // 保存开机次数值
sysPara->status.lastProductCnt = sysPara->status.productCnt ; //这会让产品计数显示出来
ui->tabMainWindow->updateTotalCnt(0);
}
if((++sysPara->status.selfCheckCnt % 100) == 0){
ui->tabMainWindow->setRunStatus(tr("开始自检,请等待%1秒...............").arg((MAX_SELF_CHECK_CNT - sysPara->status.selfCheckCnt)/100));
}
if(sysPara->status.selfCheckCnt >= MAX_SELF_CHECK_CNT)
{
sysPara->status.selfCheckDone = 1;
u = (float)sysPara->para.gearPumpValue;
// 自检完成后管道恢复正常阻力,重置状态机让压力重新平稳收敛 // 自检完成后管道恢复正常阻力,重置状态机让压力重新平稳收敛
// 不清零 u,从当前控制字开始,避免突变 // 不清零 u,从当前控制字开始,避免突变
if(u > 40.0f) { if(u > 40.0f) {
m_pumpState = DPUMP_RUNNING; // 如果当前有转速,进入运行状态 m_pumpState = DPUMP_RUNNING; // 如果当前有转速,进入运行状态
} else { } else {
@@ -1602,68 +1615,68 @@ void InkJetPrinter::timerHandler(void){
m_adjSkip = 0; m_adjSkip = 0;
m_lastActualPressure = 0; m_lastActualPressure = 0;
m_bufValidCount = 0; m_bufValidCount = 0;
for(int i = 0; i < 10; i++) m_pressureBuf[i] = 0; for(int i = 0; i < 10; i++) m_pressureBuf[i] = 0;
m_bufIdx = 0; m_bufIdx = 0;
LogInfo::setRunStatusText(tr("自检完成!!!")); LogInfo::setRunStatusText(tr("自检完成!!!"));
ui->tabMainWindow->setRunStatus(tr("自检完成!!!")); ui->tabMainWindow->setRunStatus(tr("自检完成!!!"));
qDebug()<<"自检完成!!!"; qDebug()<<"自检完成!!!";
ui->tabPrintSetting->PrintSettingLog(); ui->tabPrintSetting->PrintSettingLog();
ui->tabMainWindow->enableReclaimCtrlButton(true); ui->tabMainWindow->enableReclaimCtrlButton(true);
sysPara->devOp->mainInkCtrl(); sysPara->devOp->mainInkCtrl();
sysPara->status.canRunAirPushing = true; sysPara->status.canRunAirPushing = true;
if(sysPara->para.Reciclar)
test_flag = 1;
}
else {
if((sysPara->status.selfCheckCnt % 200) == 0)
// sysPara->devOp->controlReclaimTankOpen(false);
ui->tabMainWindow->enableReclaimCtrlButton(false);
}
if(sysPara->para.Reciclar)
test_flag = 1;
} }
else{ else {
// 开机自检完成的前提下 if((sysPara->status.selfCheckCnt % 200) == 0)
if (!sysPara->status.airPushing || ui->tabMainWindow->m_2sFlag) { // sysPara->devOp->controlReclaimTankOpen(false);
autoControlValvePump(); ui->tabMainWindow->enableReclaimCtrlButton(false);
} }
// 检测回收泵模式切换,切换时重置泄漏保护学习状态和软启动状态
if(m_lastReclaimMode != sysPara->para.flagOfReclaimPumEnable) }
{ else{
m_lastReclaimMode = sysPara->para.flagOfReclaimPumEnable; // 开机自检完成的前提下
gearPumpRunNormalFlag = false; // 泄漏保护重新学习 if (!sysPara->status.airPushing || ui->tabMainWindow->m_2sFlag) {
gearPumpRunNormalValue = 0.0f; autoControlValvePump();
}
// 检测回收泵模式切换,切换时重置泄漏保护学习状态和软启动状态
if(m_lastReclaimMode != sysPara->para.flagOfReclaimPumEnable)
{
m_lastReclaimMode = sysPara->para.flagOfReclaimPumEnable;
gearPumpRunNormalFlag = false; // 泄漏保护重新学习
gearPumpRunNormalValue = 0.0f;
// 重置隔膜泵状态机,适应新模式 // 重置隔膜泵状态机,适应新模式
m_pumpState = DPUMP_STOPPED; m_pumpState = DPUMP_STOPPED;
m_stateChangeCount = 0; m_stateChangeCount = 0;
m_adjSkip = 0; m_adjSkip = 0;
m_lastActualPressure = 0; m_lastActualPressure = 0;
m_bufValidCount = 0; m_bufValidCount = 0;
for(int i = 0; i < 10; i++) m_pressureBuf[i] = 0; for(int i = 0; i < 10; i++) m_pressureBuf[i] = 0;
m_bufIdx = 0; m_bufIdx = 0;
} }
if(pulse_100ms && sysPara->para.gearPumpEnable && !sysPara->status.isPumpValveControledByHand && ControledSwitchFlag ) { if(pulse_100ms && sysPara->para.gearPumpEnable && !sysPara->status.isPumpValveControledByHand && ControledSwitchFlag ) {
pressureAdj(); pressureAdj();
}
} }
} }
else{ }
static bool flag = 1; else{
if(delay3s){ static bool flag = 1;
if(flag){ if(delay3s){
flag = 0; if(flag){
LogInfo::setRunStatusText(tr("缺少墨水,喷码机不能正常工作!")); flag = 0;
qDebug()<<"缺少墨水,喷码机不能正常工作!"; LogInfo::setRunStatusText(tr("缺少墨水,喷码机不能正常工作!"));
} qDebug()<<"缺少墨水,喷码机不能正常工作!";
ui->tabMainWindow->setRunStatus(tr("缺少墨水,喷码机不能正常工作!"));
} }
ui->tabMainWindow->setRunStatus(tr("缺少墨水,喷码机不能正常工作!"));
} }
/*----------------------------控制温度--------------------------------------*/ }
if(pulse_300ms){ /*----------------------------控制温度--------------------------------------*/
autoControlHeater(); if(pulse_300ms){
sysPara->devOp->readSyncCounterAtZero(); autoControlHeater();
} sysPara->devOp->readSyncCounterAtZero();
}
sysPara->status.lostCommuFlag = lostCommuFlag; //务必放在后面 sysPara->status.lostCommuFlag = lostCommuFlag; //务必放在后面
static unsigned int lastProductCnt =0; static unsigned int lastProductCnt =0;
@@ -1697,18 +1710,17 @@ void InkJetPrinter::timerHandler(void){
if(pulse_300ms){ if(pulse_300ms){
if (manager_rfid) if (manager_rfid)
manager_rfid->handleCheck(addr); manager_rfid->handleCheck(addr);
} }
#endif #endif
if(pulse_300ms){ if(pulse_300ms){
sysPara->devOp->readCalandarDat(); //务必读一下此数据 sysPara->devOp->readCalandarDat(); //务必读一下此数据
if(sysPara->status.RandomNum>0) if(sysPara->status.RandomNum>0)
sysPara->devOp->Read_RanddomFromFpga(); sysPara->devOp->Read_RanddomFromFpga();
#ifdef COUNTER1_BY_GROUP /* 分段计米 */ #ifdef COUNTER1_BY_GROUP /* 分段计米 */
// cnt1GroupCheck();//分段计米 cnt1GroupCheck();//分段计米
cntGroupCheck();//分段计米
#endif #endif
cntGroupCheck();//分段计米
QWidget *widget = this->currentWidget(); QWidget *widget = this->currentWidget();
static bool read_flag = false; static bool read_flag = false;
@@ -1775,12 +1787,12 @@ void InkJetPrinter::timerHandler(void){
if(sysPara->para.speedoverPaushPrint) { if(sysPara->para.speedoverPaushPrint) {
ui->tabMainWindow->on_pushButtonPausePrint_pressed();// 2014-03-19 ui->tabMainWindow->on_pushButtonPausePrint_pressed();// 2014-03-19
// emit OnSpeedOver(2);//QMessageBox::warning(NULL,tr("警告"),tr("喷印速度过快!无法喷印完全,自动暂停喷印!!!")); // emit OnSpeedOver(2);//QMessageBox::warning(NULL,tr("警告"),tr("喷印速度过快!无法喷印完全,自动暂停喷印!!!"));
ui->tabMainWindow->setRunStatus(tr("喷印速度过快!无法喷印完全,自动暂停喷印!!!")); ui->tabMainWindow->setRunStatus(tr("喷印速度过快!无法喷印完全,自动暂停喷印!!!"));
} }
else { else {
// emit OnSpeedOver(1);//QMessageBox::warning(NULL,tr("警告"),tr("喷印速度过快!无法喷印完全!!!")); // emit OnSpeedOver(1);//QMessageBox::warning(NULL,tr("警告"),tr("喷印速度过快!无法喷印完全!!!"));
ui->tabMainWindow->setRunStatus(tr("喷印速度过快!无法喷印完全!!!")); ui->tabMainWindow->setRunStatus(tr("喷印速度过快!无法喷印完全!!!"));
} }
@@ -1814,14 +1826,14 @@ void InkJetPrinter::timerHandler(void){
} }
#ifdef __RFID_CARD #ifdef __RFID_CARD
/*****************墨水刷卡控制start**********************************************/ /*****************墨水刷卡控制start**********************************************/
/*墨水刷卡新的控制逻辑*/ /*墨水刷卡新的控制逻辑*/
/* 1.任何时候,打印墨点数达到2.3billion之后,提示24小时内刷卡,否则禁止使用机器*/ /* 1.任何时候,打印墨点数达到2.3billion之后,提示24小时内刷卡,否则禁止使用机器*/
/*2.当墨水液位后,持续提示刷卡,24小时后如果还没有刷卡,禁止使用机器*/ /*2.当墨水液位后,持续提示刷卡,24小时后如果还没有刷卡,禁止使用机器*/
static bool logFlag4 = 1; static bool logFlag4 = 1;
static int warnNum1 = 0; static int warnNum1 = 0;
if(!(sysPara->status.statWarn & WARN_STATUS_INK_WARN)) if(!(sysPara->status.statWarn & WARN_STATUS_INK_WARN))
warnNum1 = 0; warnNum1 = 0;
if((sysPara->status.statWarn & WARN_STATUS_INK_WARN) || sysPara->para.RFIDInkWarn){ if((sysPara->status.statWarn & WARN_STATUS_INK_WARN) || sysPara->para.RFIDInkWarn){
if(!sysPara->para.RFIDInkWarn){ if(!sysPara->para.RFIDInkWarn){
if(++warnNum1 >6){ if(++warnNum1 >6){
@@ -1861,28 +1873,28 @@ void InkJetPrinter::timerHandler(void){
if(sysPara->RFIDPara.PrintInkDots >= MAX_INK_DOTS || sysPara->para.RFIDInkWarn){ if(sysPara->RFIDPara.PrintInkDots >= MAX_INK_DOTS || sysPara->para.RFIDInkWarn){
sysPara->status.flagOfNeedInkCard = true; sysPara->status.flagOfNeedInkCard = true;
if(sysPara->RFIDPara.InkRFIDCnt == 0){ if(sysPara->RFIDPara.InkRFIDCnt == 0){
msgtest->setText(tr("请使用原厂墨水,然后刷墨水卡,否则机器将在24小时后禁止使用!")); msgtest->setText(tr("请使用原厂墨水,然后刷墨水卡,否则机器将在24小时后禁止使用!"));
msgtest->show(); msgtest->show();
ui->tabMainWindow->setRunStatus(tr("请使用原厂墨水,然后刷墨水卡,否则机器将在24小时后禁止使用!")); ui->tabMainWindow->setRunStatus(tr("请使用原厂墨水,然后刷墨水卡,否则机器将在24小时后禁止使用!"));
LogInfo::setRunStatusText(tr("请使用原厂墨水,然后刷墨水卡,否则机器将在24小时后禁止使用!")); LogInfo::setRunStatusText(tr("请使用原厂墨水,然后刷墨水卡,否则机器将在24小时后禁止使用!"));
} }
int timeRemain = (MAX_INK_RFIDTIME - sysPara->RFIDPara.InkRFIDCnt)/60; int timeRemain = (MAX_INK_RFIDTIME - sysPara->RFIDPara.InkRFIDCnt)/60;
if(timeRemain > 60){ if(timeRemain > 60){
if(sysPara->RFIDPara.PrintInkDots >= MAX_INK_DOTS) if(sysPara->RFIDPara.PrintInkDots >= MAX_INK_DOTS)
ui->tabMainWindow->setRunStatus(tr("1.请使用原厂墨水,然后刷墨水卡,否则机器将在%1小时后禁止使用!").arg(timeRemain/60)); ui->tabMainWindow->setRunStatus(tr("1.请使用原厂墨水,然后刷墨水卡,否则机器将在%1小时后禁止使用!").arg(timeRemain/60));
else else
ui->tabMainWindow->setRunStatus(tr("2.请使用原厂墨水,然后刷墨水卡,否则机器将在%1小时后禁止使用!").arg(timeRemain/60)); ui->tabMainWindow->setRunStatus(tr("2.请使用原厂墨水,然后刷墨水卡,否则机器将在%1小时后禁止使用!").arg(timeRemain/60));
} }
else if(timeRemain > 0){ else if(timeRemain > 0){
if(sysPara->RFIDPara.PrintInkDots >= MAX_INK_DOTS) if(sysPara->RFIDPara.PrintInkDots >= MAX_INK_DOTS)
ui->tabMainWindow->setRunStatus(tr("1.请使用原厂墨水,然后刷墨水卡,否则机器将在%1分钟后禁止使用!").arg(timeRemain)); ui->tabMainWindow->setRunStatus(tr("1.请使用原厂墨水,然后刷墨水卡,否则机器将在%1分钟后禁止使用!").arg(timeRemain));
else else
ui->tabMainWindow->setRunStatus(tr("2.请使用原厂墨水,然后刷墨水卡,否则机器将在%1分钟后禁止使用!").arg(timeRemain)); ui->tabMainWindow->setRunStatus(tr("2.请使用原厂墨水,然后刷墨水卡,否则机器将在%1分钟后禁止使用!").arg(timeRemain));
} }
if(sysPara->RFIDPara.InkRFIDCnt % 300 == 0) if(sysPara->RFIDPara.InkRFIDCnt % 300 == 0)
sysPara->saveRFIDPara(); sysPara->saveRFIDPara();
if(++sysPara->RFIDPara.InkRFIDCnt >= MAX_INK_RFIDTIME) if(++sysPara->RFIDPara.InkRFIDCnt >= MAX_INK_RFIDTIME)
sysPara->status.flagOfInkMaxDot = true; sysPara->status.flagOfInkMaxDot = true;
} }
if(sysPara->status.flagOfInkMaxDot){ if(sysPara->status.flagOfInkMaxDot){
@@ -1914,7 +1926,7 @@ void InkJetPrinter::timerHandler(void){
/*****************溶剂刷卡控制start**********************************************/ /*****************溶剂刷卡控制start**********************************************/
/*溶剂刷卡新的控制逻辑*/ /*溶剂刷卡新的控制逻辑*/
/* 1.任何时候,混合阀打开次数达到360次,提示2小时关机,必须刷卡才能恢复*/ /* 1.任何时候,混合阀打开次数达到360次,提示2小时关机,必须刷卡才能恢复*/
/*2.溶剂液位报警后,提示刷卡,允许有10次的混合阀打开次数,必须刷卡才能恢复*/ /*2.溶剂液位报警后,提示刷卡,允许有10次的混合阀打开次数,必须刷卡才能恢复*/
if(sysPara->RFIDPara.solventNumber >= MAX_SOLV_OPENNUM){ //混合阀打开次数达到360次 if(sysPara->RFIDPara.solventNumber >= MAX_SOLV_OPENNUM){ //混合阀打开次数达到360次
sysPara->status.flagOfNeedSolventCard = true; sysPara->status.flagOfNeedSolventCard = true;
@@ -1935,7 +1947,7 @@ void InkJetPrinter::timerHandler(void){
static bool logFlag5 = 1; static bool logFlag5 = 1;
static int warnNum2 = 0; static int warnNum2 = 0;
if(!(sysPara->status.statWarn & WARN_STATUS_SOLV_WARN)) if(!(sysPara->status.statWarn & WARN_STATUS_SOLV_WARN))
warnNum2 = 0; warnNum2 = 0;
if((sysPara->status.statWarn & WARN_STATUS_SOLV_WARN) || sysPara->para.RFIDSolventWarn){ if((sysPara->status.statWarn & WARN_STATUS_SOLV_WARN) || sysPara->para.RFIDSolventWarn){
if(!sysPara->para.RFIDSolventWarn){ if(!sysPara->para.RFIDSolventWarn){
if(++warnNum2 > 6){ if(++warnNum2 > 6){
@@ -1983,7 +1995,7 @@ void InkJetPrinter::timerHandler(void){
ui->tabMainWindow->on_pushButtonStopPrint_pressed(); ui->tabMainWindow->on_pushButtonStopPrint_pressed();
static bool logFlag3 = true; static bool logFlag3 = true;
if(sysPara->para.RFIDSolventWarnMixCnt>=10){ if(sysPara->para.RFIDSolventWarnMixCnt>=10){
ui->tabMainWindow->setRunStatus(tr("请刷溶剂卡以恢复机器的正常功能")); ui->tabMainWindow->setRunStatus(tr("请刷溶剂卡以恢复机器的正常功能"));
if(logFlag3){ if(logFlag3){
logFlag3 = false; logFlag3 = false;
msgtest->setText(tr("请刷溶剂卡以恢复机器的正常功能!")); msgtest->setText(tr("请刷溶剂卡以恢复机器的正常功能!"));
@@ -2101,7 +2113,7 @@ void InkJetPrinter::timerHandler(void){
if(pulse_100ms) if(pulse_100ms)
{ {
if(pre_hvcurrent>150 && ( sysPara->status.HV_DETOUT> pre_hvcurrent+20) && (sysPara->status.waitHightVolOn==8 || sysPara->status.waitHightVolOff==1) && sysPara->status.isPrinting ) if(pre_hvcurrent>150 && ( sysPara->status.HV_DETOUT> pre_hvcurrent+20) && (sysPara->status.waitHightVolOn==8 || sysPara->status.waitHightVolOff==1) && sysPara->status.isPrinting )
pre_hvcurrent = sysPara->status.HV_DETOUT; pre_hvcurrent = sysPara->status.HV_DETOUT;
if(sysPara->status.waitHightVolOn<8)sysPara->status.waitHightVolOn++; if(sysPara->status.waitHightVolOn<8)sysPara->status.waitHightVolOn++;
if(sysPara->status.isPrinting==0) sysPara->status.waitHightVolOn=0; if(sysPara->status.isPrinting==0) sysPara->status.waitHightVolOn=0;
@@ -2125,16 +2137,16 @@ void InkJetPrinter::timerHandler(void){
else{ else{
pulse_30s++; pulse_30s++;
if(pulse_30s >= 30){ if(pulse_30s >= 30){
sysPara->status.flagOfSpeedAlarm = true; sysPara->status.flagOfSpeedAlarm = true;
sysPara->devOp->color_flag = 2; sysPara->devOp->color_flag = 2;
if(pulse_30s % 500 == 0){ if(pulse_30s % 500 == 0){
LogInfo::setRunStatusText(tr("泵转速异常过高,请立即停机并联系供应商!")); LogInfo::setRunStatusText(tr("泵转速异常过高,请立即停机并联系供应商!"));
qDebug()<<"泵转速异常过高,请立即停机并联系供应商!"; qDebug()<<"泵转速异常过高,请立即停机并联系供应商!";
} }
ui->tabMainWindow->setRunStatus(tr("泵转速异常过高,请立即停机并联系供应商!")); ui->tabMainWindow->setRunStatus(tr("泵转速异常过高,请立即停机并联系供应商!"));
sysPara->devOp->controlRedLight(true); sysPara->devOp->controlRedLight(true);
if(sysPara->status.isPrinting) if(sysPara->status.isPrinting)
ui->tabMainWindow->on_pushButtonStopPrint_pressed(); ui->tabMainWindow->on_pushButtonStopPrint_pressed();
} }
if(pulse_30s % 10 == 0) if(pulse_30s % 10 == 0)
qDebug()<<"粘度: "<<QString::number(sysPara->status.viscosity); qDebug()<<"粘度: "<<QString::number(sysPara->status.viscosity);
@@ -2352,34 +2364,34 @@ void InkJetPrinter::autoControlValvePump(void)
} }
/*-----------------------------------主墨泵------------------------------------------*/ /*-----------------------------------主墨泵------------------------------------------*/
if(sysPara->status.SEPTAL_POSITION < (sysPara->para.septalPostion - DIFF_SEPTAL_POSITION)) if(sysPara->status.SEPTAL_POSITION < (sysPara->para.septalPostion - DIFF_SEPTAL_POSITION))
sysPara->status.septalPositionOverFlowCnt ++; sysPara->status.septalPositionOverFlowCnt ++;
else else
sysPara->status.septalPositionOverFlowCnt = 0; sysPara->status.septalPositionOverFlowCnt = 0;
if(sysPara->status.septalPositionOverFlowCnt > 2 && !sysPara->status.mainInkPumpError){ //主墨泵 if(sysPara->status.septalPositionOverFlowCnt > 2 && !sysPara->status.mainInkPumpError){ //主墨泵
if(!sysPara->devOp->isMainInkPumpOpen()){ if(!sysPara->devOp->isMainInkPumpOpen()){
sysPara->devOp->controlMainInkPump(true); sysPara->devOp->controlMainInkPump(true);
sysPara->status.mainInkPumpRunTmCnt = 0; sysPara->status.mainInkPumpRunTmCnt = 0;
}
else if(sysPara->status.selfCheckDone){
if(sysPara->status.mainInkPumpRunTmCnt < MAX_MAIN_INK_PUMP_RUN_TIME){ //
sysPara->status.mainInkPumpRunTmCnt ++;
} }
else if(sysPara->status.selfCheckDone){ else {
if(sysPara->status.mainInkPumpRunTmCnt < MAX_MAIN_INK_PUMP_RUN_TIME){ // if(!sysPara->para.gearPumpEnable)
sysPara->status.mainInkPumpRunTmCnt ++; {
} sysPara->status.mainInkPumpError = true;
else { sysPara->devOp->controlMainInkPump(false);
if(!sysPara->para.gearPumpEnable) LogInfo::setRunStatusText(tr("错误!!!!!!!!!!!主墨泵故障"));
{ ui->tabMainWindow->setRunStatus(tr("主墨泵故障!!!"));
sysPara->status.mainInkPumpError = true;
sysPara->devOp->controlMainInkPump(false);
LogInfo::setRunStatusText(tr("错误!!!!!!!!!!!主墨泵故障"));
ui->tabMainWindow->setRunStatus(tr("主墨泵故障!!!"));
}
} }
} }
} }
else if(sysPara->status.SEPTAL_POSITION > sysPara->para.septalPostion){ }
if(sysPara->devOp->isMainInkPumpOpen()) else if(sysPara->status.SEPTAL_POSITION > sysPara->para.septalPostion){
sysPara->devOp->controlMainInkPump(false); if(sysPara->devOp->isMainInkPumpOpen())
} sysPara->devOp->controlMainInkPump(false);
}
/*-----------------------------------压缩机------------------------------------------*/ /*-----------------------------------压缩机------------------------------------------*/
if((sysPara->para.pressure - sysPara->status.PRESSURE > MAX_PRESSURE_DIFF) && !sysPara->status.compressPumpError){ //压缩机 if((sysPara->para.pressure - sysPara->status.PRESSURE > MAX_PRESSURE_DIFF) && !sysPara->status.compressPumpError){ //压缩机
@@ -2411,130 +2423,130 @@ void InkJetPrinter::autoControlValvePump(void)
/*------------------------------------粘度泵,混合阀-----------------------------------------*/ /*------------------------------------粘度泵,混合阀-----------------------------------------*/
/*-----------------------------每30s打开一次粘度泵以及相关处理--------------------------------------*/ /*-----------------------------每30s打开一次粘度泵以及相关处理--------------------------------------*/
static bool hasDetectedBellow = false; // 检测到下位灯 static bool hasDetectedBellow = false; // 检测到下位灯
static bool hasDetectedTop = false; // 检测到上位灯 static bool hasDetectedTop = false; // 检测到上位灯
static int viscosity_low = 0; //统计粘度连续偏低10%次数 static int viscosity_low = 0; //统计粘度连续偏低10%次数
static unsigned char Mixing_valve_open = 0; //统计粘度连续偏高5%次数 static unsigned char Mixing_valve_open = 0; //统计粘度连续偏高5%次数
static unsigned char viscosity_faulty_num = 0; //统计粘度连续偏高13%次数 static unsigned char viscosity_faulty_num = 0; //统计粘度连续偏高13%次数
static bool flag = 0; static bool flag = 0;
if(sysPara->status.cycleValveOpenCntAfterSWintOff) { //关闭墨线的时候要提前开粘度泵 if(sysPara->status.cycleValveOpenCntAfterSWintOff) { //关闭墨线的时候要提前开粘度泵
sysPara->status.viscosityDelayCnt = sysPara->para.viscosityPumpInterval*100 + 100; sysPara->status.viscosityDelayCnt = sysPara->para.viscosityPumpInterval*100 + 100;
} }
++sysPara->status.viscosityDelayCnt; ++sysPara->status.viscosityDelayCnt;
int mixer_open_threshold = (105*sysPara->para.viscosity)/100; int mixer_open_threshold = (105*sysPara->para.viscosity)/100;
int viscosity_faulty_threshold =(113*sysPara->para.viscosity)/100; int viscosity_faulty_threshold =(113*sysPara->para.viscosity)/100;
if(sysPara->status.viscosityDelayCnt >= sysPara->para.viscosityPumpInterval*100 && flag == 0) if(sysPara->status.viscosityDelayCnt >= sysPara->para.viscosityPumpInterval*100 && flag == 0)
{
flag=1;
if (!sysPara->devOp->isViscosityPumpOpen())
{ {
flag=1; sysPara->devOp->controlViscosityPump(true);
if (!sysPara->devOp->isViscosityPumpOpen()) viscosity_timer->start(10000);
{ qDebug()<<"粘度: "<<QString::number(sysPara->status.viscosity);
sysPara->devOp->controlViscosityPump(true);
viscosity_timer->start(10000);
qDebug()<<"粘度: "<<QString::number(sysPara->status.viscosity);
}
if((sysPara->status.viscosity >= 90*sysPara->para.viscosity/100) && (sysPara->status.viscosity <= mixer_open_threshold))
{
sysPara->status.viscosityFault = 0;
viscosity_low=0;
Mixing_valve_open = 0;
viscosity_faulty_num = 0;
}
if(sysPara->status.viscosity < 90*sysPara->para.viscosity/100)
{
viscosity_low++;
viscosity_faulty_num = 0;
Mixing_valve_open = 0;
}
if(sysPara->status.viscosity > mixer_open_threshold && sysPara->status.viscosity <= viscosity_faulty_threshold)
{
Mixing_valve_open++;
viscosity_low = 0;
viscosity_faulty_num = 0;
}
if(sysPara->status.viscosity > viscosity_faulty_threshold){
Mixing_valve_open++;
viscosity_faulty_num++;
viscosity_low = 0;
}
if((!sysPara->devOp->isMixValveOpen()) && (((Mixing_valve_open > 1) && (!sysPara->para.gearPumpEnable)) || ((Mixing_valve_open > 4) && sysPara->para.gearPumpEnable))) { //
sysPara->devOp->controlMixValve(true);
Mixing_valve_open = 0;
LogInfo::setRunStatusText(tr("添加溶剂:")+QString::number(sysPara->status.viscosity));
qDebug()<<"添加溶剂";
}
if(viscosity_low >= 60)
{
LogInfo::setRunStatusText(tr("警告!!!!!!!!!!!粘度值偏低")+QString::number(sysPara->status.viscosity));
qDebug()<<"粘度值偏低";
sysPara->status.viscosityFault = 2;
if(sysPara->devOp->isMixValveOpen()) {
sysPara->devOp->controlMixValve(false);
}
}
if(viscosity_faulty_num >= 5)
{
LogInfo::setRunStatusText(tr("错误!!!!!!!!!!!粘度偏大故障")+QString::number(sysPara->status.viscosity));
qDebug()<<"粘度偏大故障";
sysPara->status.viscosityFault = 1;
}
} }
if((sysPara->status.viscosityDelayCnt >= (sysPara->para.viscosityPumpInterval*100+120)) && flag==1) if((sysPara->status.viscosity >= 90*sysPara->para.viscosity/100) && (sysPara->status.viscosity <= mixer_open_threshold))
{ {
sysPara->status.viscosityFault = 0;
viscosity_low=0;
Mixing_valve_open = 0;
viscosity_faulty_num = 0;
}
if(sysPara->status.viscosity < 90*sysPara->para.viscosity/100)
{
viscosity_low++;
viscosity_faulty_num = 0;
Mixing_valve_open = 0;
}
if(sysPara->status.viscosity > mixer_open_threshold && sysPara->status.viscosity <= viscosity_faulty_threshold)
{
Mixing_valve_open++;
viscosity_low = 0;
viscosity_faulty_num = 0;
}
if(sysPara->status.viscosity > viscosity_faulty_threshold){
Mixing_valve_open++;
viscosity_faulty_num++;
viscosity_low = 0;
}
if((!sysPara->devOp->isMixValveOpen()) && (((Mixing_valve_open > 1) && (!sysPara->para.gearPumpEnable)) || ((Mixing_valve_open > 4) && sysPara->para.gearPumpEnable))) { //
sysPara->devOp->controlMixValve(true);
Mixing_valve_open = 0;
LogInfo::setRunStatusText(tr("添加溶剂:")+QString::number(sysPara->status.viscosity));
qDebug()<<"添加溶剂";
}
if(viscosity_low >= 60)
{
LogInfo::setRunStatusText(tr("警告!!!!!!!!!!!粘度值偏低")+QString::number(sysPara->status.viscosity));
qDebug()<<"粘度值偏低";
sysPara->status.viscosityFault = 2;
if(sysPara->devOp->isMixValveOpen()) { if(sysPara->devOp->isMixValveOpen()) {
sysPara->devOp->controlMixValve(false); sysPara->devOp->controlMixValve(false);
} }
} }
if(viscosity_faulty_num >= 5)
if((sysPara->status.viscosityDelayCnt >= (sysPara->para.viscosityPumpInterval*100+130)) && flag==1)
{ {
if (sysPara->devOp->isViscosityPumpOpen()) { LogInfo::setRunStatusText(tr("错误!!!!!!!!!!!粘度偏大故障")+QString::number(sysPara->status.viscosity));
sysPara->devOp->controlViscosityPump(false); qDebug()<<"粘度偏大故障";
} sysPara->status.viscosityFault = 1;
sysPara->status.viscosityDelayCnt = 0;
flag=0;
} }
if(sysPara->status.statWarn & WARN_STATUS_VISCOTITY_MEASURE_READY){ //上位灯检测标志位 }
viscosity_timer->stop(); if((sysPara->status.viscosityDelayCnt >= (sysPara->para.viscosityPumpInterval*100+120)) && flag==1)
{
if(sysPara->devOp->isMixValveOpen()) {
sysPara->devOp->controlMixValve(false);
} }
}
if(sysPara->status.viscosityDelayCnt < sysPara->para.viscosityPumpInterval*100) { if((sysPara->status.viscosityDelayCnt >= (sysPara->para.viscosityPumpInterval*100+130)) && flag==1)
static int detectBelow = 0; {
if (++detectBelow%400 == 0) { if (sysPara->devOp->isViscosityPumpOpen()) {
if(sysPara->status.statWarn & WARN_STATUS_VISCOTITY_MEASURE_READY) sysPara->devOp->controlViscosityPump(false);
{ }
if(sysPara->status.rWarnViscoReady>=15){ sysPara->status.viscosityDelayCnt = 0;
sysPara->status.viscosityFault = 1; flag=0;
sysPara->status.viscosity=0; }
if(!firstTime)
qDebug()<<"错误!粘度计下位灯故障."+QString::number(sysPara->status.viscosity); if(sysPara->status.statWarn & WARN_STATUS_VISCOTITY_MEASURE_READY){ //上位灯检测标志位
// LogInfo::setRunStatusText(tr("错误!粘度计下位灯故障.")+QString::number(sysPara->status.viscosity)); viscosity_timer->stop();
hasDetectedBellow = true; }
}
else sysPara->status.rWarnViscoReady++; if(sysPara->status.viscosityDelayCnt < sysPara->para.viscosityPumpInterval*100) {
} static int detectBelow = 0;
else { if (++detectBelow%400 == 0) {
sysPara->status.rWarnViscoReady = 0; if(sysPara->status.statWarn & WARN_STATUS_VISCOTITY_MEASURE_READY)
sysPara->status.viscosityFault = 0; {
if(sysPara->status.rWarnViscoReady>=15){
sysPara->status.viscosityFault = 1;
sysPara->status.viscosity=0;
if(!firstTime)
qDebug()<<"错误!粘度计下位灯故障."+QString::number(sysPara->status.viscosity);
// LogInfo::setRunStatusText(tr("错误!粘度计下位灯故障.")+QString::number(sysPara->status.viscosity));
hasDetectedBellow = true;
} }
else sysPara->status.rWarnViscoReady++;
}
else {
sysPara->status.rWarnViscoReady = 0;
sysPara->status.viscosityFault = 0;
} }
} }
if(hasDetectedBellow && hasDetectedTop) }
{ if(hasDetectedBellow && hasDetectedTop)
if(sysPara->devOp->isMixValveOpen()) { // {
sysPara->devOp->controlMixValve(false); //如果检测不到上下位灯就关掉混合阀 if(sysPara->devOp->isMixValveOpen()) { //
} sysPara->devOp->controlMixValve(false); //如果检测不到上下位灯就关掉混合阀
} }
if(sysPara->status.viscosityFault==0) }
{ if(sysPara->status.viscosityFault==0)
hasDetectedBellow = false; {
hasDetectedTop = false; hasDetectedBellow = false;
} hasDetectedTop = false;
// } }
// }
/*-----------------------------------回收泵------------------------------------------*/ /*-----------------------------------回收泵------------------------------------------*/
if(!sysPara->status.autoCtlReclaimAfterSWintOff) if(!sysPara->status.autoCtlReclaimAfterSWintOff)
@@ -2650,10 +2662,10 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
sysPara->status.currReclaimTankPos =10*sysPara->status.curr_reclaimTankTime; sysPara->status.currReclaimTankPos =10*sysPara->status.curr_reclaimTankTime;
sysPara->status.reclaimTankBlockedAppending =0; sysPara->status.reclaimTankBlockedAppending =0;
//qDebug()<<sysPara->status.reclaimTankstatus; //qDebug()<<sysPara->status.reclaimTankstatus;
// if(sysPara->status.currReclaimTankPos == 0) // if(sysPara->status.currReclaimTankPos == 0)
// ui->tabMainWindow->setReBootQtUIEnable(false); // ui->tabMainWindow->setReBootQtUIEnable(false);
// else // else
// ui->tabMainWindow->setReBootQtUIEnable(true); // ui->tabMainWindow->setReBootQtUIEnable(true);
if(sysPara->status.reclaimTankstatus == 0x10) //7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作 if(sysPara->status.reclaimTankstatus == 0x10) //7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
{ {
@@ -3038,7 +3050,7 @@ bool InkJetPrinter::eventFilter(QObject *watched, QEvent *event)
{ {
if(sysPara->status.flagOfKeyBoardType) if(sysPara->status.flagOfKeyBoardType)
return QTabWidget::eventFilter(watched,event); return QTabWidget::eventFilter(watched,event);
QSpinBox *qsb=dynamic_cast<QSpinBox*>(watched); QSpinBox *qsb=dynamic_cast<QSpinBox*>(watched);
QLineEdit *qle=dynamic_cast<QLineEdit*>(watched); QLineEdit *qle=dynamic_cast<QLineEdit*>(watched);
@@ -3069,19 +3081,19 @@ void InkJetPrinter::sendDataManual(QString cmdstr,QString addrstr,QString datast
QByteArray data; QByteArray data;
data.resize(datastr.length() / 2); data.resize(datastr.length() / 2);
for (int i = 0; i < datastr.length(); i += 2) { for (int i = 0; i < datastr.length(); i += 2) {
// 提取每两个字符 // 提取每两个字符
QString byteString = datastr.mid(i, 2); QString byteString = datastr.mid(i, 2);
// 将16进制字符串转换为unsigned char // 将16进制字符串转换为unsigned char
bool ok; bool ok;
unsigned char byte = static_cast<unsigned char>(byteString.toUInt(&ok, 16)); unsigned char byte = static_cast<unsigned char>(byteString.toUInt(&ok, 16));
data[i / 2] = byte; data[i / 2] = byte;
} }
// quint16 data1[] = {68, 90, 108, 125, 141, 156, 170, 170, 180, 193, 204, 214}; // quint16 data1[] = {68, 90, 108, 125, 141, 156, 170, 170, 180, 193, 204, 214};
const char* charData = data.constData(); const char* charData = data.constData();
// 转换为 unsigned char 指针 // 转换为 unsigned char 指针
const unsigned char* unsignedCharData = reinterpret_cast<const unsigned char*>(charData); const unsigned char* unsignedCharData = reinterpret_cast<const unsigned char*>(charData);
} }
void InkJetPrinter::slt_showMsg(QString msg) void InkJetPrinter::slt_showMsg(QString msg)
@@ -3293,14 +3305,14 @@ void InkJetPrinter::checkPressureControl(){ //1s
highPressureCnt = 0; highPressureCnt = 0;
if(highPressureCnt >= 4 && sysPara->status.PRESSURE > 1000){ if(highPressureCnt >= 4 && sysPara->status.PRESSURE > 1000){
QString str = tr("压力过高,请检查管路是否堵塞,然后点击故障恢复按钮"); QString str = tr("压力过高,请检查管路是否堵塞,然后点击故障恢复按钮");
showMessage(str); showMessage(str);
sysPara->para.gearPumpValue = 0; sysPara->para.gearPumpValue = 0;
sysPara->devOp->WriteMoterPump(); sysPara->devOp->WriteMoterPump();
sysPara->status.isPumpValveControledByHand = true; sysPara->status.isPumpValveControledByHand = true;
sysPara->devOp->mainInkCtrl(); sysPara->devOp->mainInkCtrl();
sysPara->status.flagOfPressureFault = true; sysPara->status.flagOfPressureFault = true;
} }
} }
void InkJetPrinter::showMessage(QString str){ void InkJetPrinter::showMessage(QString str){
@@ -3392,4 +3404,3 @@ void InkJetPrinter::restartSerialPort(){
flagOfSerialThreadStratEn = true; flagOfSerialThreadStratEn = true;
} }
+2 -2
View File
@@ -417,13 +417,13 @@ void PrintSetting::showMachInfo(QString Mac)
{ {
QString VernonBach; QString VernonBach;
VernonBach.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER); VernonBach.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER);
VernonBach = VernonBach + (QString) Public::DateToString(__DATE__)+"_";//+UP_PRINTER_STAGE_VER; VernonBach = VernonBach + (QString) Public::DateToString(__DATE__)+"_"+SUB_VER;
} }
void PrintSetting::showRemoteControl(QString SuperNodeIP,QString EdgeIP) void PrintSetting::showRemoteControl(QString SuperNodeIP,QString EdgeIP)
{ {
QString VernonBach; QString VernonBach;
VernonBach.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER); VernonBach.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER);
VernonBach = VernonBach + (QString) Public::DateToString(__DATE__)+"_";//+UP_PRINTER_STAGE_VER; VernonBach = VernonBach + (QString) Public::DateToString(__DATE__)+"_"+SUB_VER;
} }
void PrintSetting::applyUIPara(){ void PrintSetting::applyUIPara(){
+5
View File
@@ -434,6 +434,11 @@ void SectionalWid::on_Cnt3AddRowBtn_2_clicked()
} }
ui->tableWidget_2->setRowCount(rowCnt+1); ui->tableWidget_2->setRowCount(rowCnt+1);
rowWidgetCreate2(rowCnt); rowWidgetCreate2(rowCnt);
// 获取新行第2列(索引为1)的 QSpinBox,设置值为 1
QSpinBox *spinBox = qobject_cast<QSpinBox*>(ui->tableWidget_2->cellWidget(rowCnt, 1));
if (spinBox) {
spinBox->setValue(1);
}
} }
void SectionalWid::on_Cnt3InsertRowBtn_2_clicked() void SectionalWid::on_Cnt3InsertRowBtn_2_clicked()
+6 -4
View File
@@ -648,10 +648,8 @@ bool TextEditOption::maybeSave(){
SectionalManager::instance()->emitCancelSection(); SectionalManager::instance()->emitCancelSection();
return true; return true;
} }
else { else
return false; return false;
}
return true; return true;
} }
@@ -666,12 +664,13 @@ void TextEditOption::on_bottonNew_pressed()
textEdit->clear(); textEdit->clear();
fileName = ""; fileName = "";
sysPara->sysFile = ""; sysPara->sysFile = "";
QFile file(fileName); QFile file(fileName);
emit fileNameChanged(QFileInfo(fileName).fileName()); emit fileNameChanged(QFileInfo(fileName).fileName());
} }
#ifdef VARCOLOR #ifdef VARCOLOR
textEdit->insertHtml(QString("<span style='background:#ffffff;color=#000000;'> &nbsp;<span />")); textEdit->insertHtml(QString("<span style='background:#ffffff;color=#000000;'> &nbsp;<span />"));
#endif #endif
} }
void TextEditOption::onOpenNewFile() void TextEditOption::onOpenNewFile()
@@ -756,6 +755,9 @@ void TextEditOption::on_buttonInsertVari_pressed()
unsigned char splitMode = sysPara->para.ExpirySplitMode; unsigned char splitMode = sysPara->para.ExpirySplitMode;
dialogInsertVari->getValue(&varType,&digitalNum,&splitMode); dialogInsertVari->getValue(&varType,&digitalNum,&splitMode);
if(sysPara->para.flagOfModuleDecimal || sysPara->para.flagOfModuleHide){
digitalNum += 1;
}
fmt = textEdit->currentCharFormat(); fmt = textEdit->currentCharFormat();
+4 -8
View File
@@ -2,12 +2,13 @@
#define VERBVERSION_H #define VERBVERSION_H
#include "myinclude.h" #include "myinclude.h"
/* /*
VX5.D.0826.0100-C VX5.D.0826.0100_Std(-C)
MACHINAE_VER.PUMP_VER.MMdd.SUB_VER+SUB_RFID MACHINAE_VER.PUMP_VER.MMdd.SUB_VER+SUB_RFID
*/ */
#define MACHINAE_VER "VX5" #define MACHINAE_VER "VX5"
#define PUMP_VER "D" #define PUMP_VER "D"
#define SUB_VER "0100" //#define SUB_VER "0100"
#define SUB_VER "GuiLin"
#ifdef __RFID_OLD #ifdef __RFID_OLD
#define SUB_RFID "_RO" #define SUB_RFID "_RO"
@@ -17,14 +18,9 @@
#ifdef __RFID_CARD #ifdef __RFID_CARD
#undef SUB_RFID #undef SUB_RFID
#define SUB_RFID "_RFID" #define SUB_RFID "-C"
#endif #endif
//#define UP_PRINTER_STAGE_VER "Std"
//#define UP_PRINTER_STAGE_VER "Beta"
//#define UP_PRINTER_STAGE_VER "RC"
//#define UP_PRINTER_STAGE_VER "Release"
#define VERNONBACH_VERSION(a,b,c) (((a)<<16) + ((b)<<8) + (c)) #define VERNONBACH_VERSION(a,b,c) (((a)<<16) + ((b)<<8) + (c))
+3 -7
View File
@@ -2046,16 +2046,11 @@ void MainWindow::enablePrintButton(bool enable){
ui->pushButtonStopPrint->setEnabled(enable); ui->pushButtonStopPrint->setEnabled(enable);
} }
static int mainInkPumpCtrlStatus = 0;
static int mainInkPumpCtrlCnt = 0;
//100ms 为单位
void MainWindow::airPushingProcess() void MainWindow::airPushingProcess()
{ {
if(sysPara){ if(sysPara){
if (sysPara->status.airPushing) { if (sysPara->status.airPushing) {
setRunStatus(tr("正在排气 ...............")); setRunStatus(tr("正在排气 ..............."));
//qDebug()<< "start airPushingProcess "<<sysPara->status.airPushingOnTime; //qDebug()<< "start airPushingProcess "<<sysPara->status.airPushingOnTime;
// 执行排气 4 秒 // 执行排气 4 秒
sysPara->status.airPushingOnTime += 100; sysPara->status.airPushingOnTime += 100;
@@ -4590,8 +4585,9 @@ void MainWindow::UpdateUIVersion(){
QString STM32Ver = QString("S:%1.%2.%3_B%4").arg((sysPara->status.stm32Verion>>16)&0x7F) QString STM32Ver = QString("S:%1.%2.%3_B%4").arg((sysPara->status.stm32Verion>>16)&0x7F)
.arg((sysPara->status.stm32Verion>>8) & 0xFF).arg(sysPara->status.stm32Verion&0xFF).arg(baudRateValue); .arg((sysPara->status.stm32Verion>>8) & 0xFF).arg(sysPara->status.stm32Verion&0xFF).arg(baudRateValue);
QString VernonBach = SUB_RFID; QString VernonBach;
// VernonBach.sprintf("A%d.%d.%02d%s%s", UP_PRINTER_MAJOR_VER, UP_PRINTER_MINOR_VER,UP_PRINTER_RIVISION_VER,SUB_VERSION,SUB_RFID); VernonBach.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER);
VernonBach = VernonBach + (QString) Public::DateToString(__DATE__)+"_"+SUB_VER;
QString Mac = QString::number(sysPara->status.machineMac); QString Mac = QString::number(sysPara->status.machineMac);
LogInfo::showVerionInformation(Mac,VernonBach,fpgaVersion,STM32Ver,sysPara->status.flagOfPowerOnMode); LogInfo::showVerionInformation(Mac,VernonBach,fpgaVersion,STM32Ver,sysPara->status.flagOfPowerOnMode);