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