2026年5月23日暂存

This commit is contained in:
2026-05-23 14:16:57 +08:00
parent c8a5a121c9
commit 1cb9d5ac42
59 changed files with 15774 additions and 8662 deletions
+86 -86
View File
@@ -28,6 +28,7 @@ InkJetPrinter::InkJetPrinter(QWidget* parent)
// 初始化业务逻辑(仅保留原init中的非UI创建部分)
init();
initRunTimeCtrl();
QThread::sleep(3);
qApp->installEventFilter(this);
@@ -95,6 +96,7 @@ void InkJetPrinter::init()
jd_timer->start(500);
msgtest = new QMessageBox(this);
msgtest->setWindowTitle(tr("提示"));
connect(msgtest, SIGNAL(finished(int)), this, SLOT(OnFinished(int)));
// 信号槽连接(原逻辑完全不变)
@@ -278,35 +280,6 @@ void InkJetPrinter::init()
connect(m_QRCodeDlg, &dlgQrCode::sig_qrCodeClose,
m_TestPrintWidget, &TestPrintWidget::slt_QRCodeItemDone);
#ifdef __RFID_CARD
curPowerOnDateTime = QDateTime::currentDateTime();
QDate curDate = QDate::currentDate();
unsigned int curDateInt = curDate.toString("yyMMdd").toInt();
if(sysPara->RFIDPara.maintenanceDate == 0){
sysPara->RFIDPara.maintenanceDate = curDateInt;
sysPara->RFIDPara.maintenanceInterval = 6;
QDate mtEndDate = curDate.addMonths(sysPara->RFIDPara.maintenanceInterval);
sysPara->RFIDPara.maintenanceEndDate = mtEndDate.toString("yyMMdd").toInt();
}
QString mtEndDatestr = "20" + QString::number(sysPara->RFIDPara.maintenanceEndDate);
QDate mtEndDate = QDate::fromString(mtEndDatestr,"yyyyMMdd");
timeoutDay = curDate.daysTo(mtEndDate);
LogInfo::setRunStatusText(tr("mtDate: %1").arg(sysPara->RFIDPara.maintenanceDate));
LogInfo::setRunStatusText(tr("mtInterval: %1").arg(sysPara->RFIDPara.maintenanceInterval));
LogInfo::setRunStatusText(tr("mtEndDate: %1").arg(sysPara->RFIDPara.maintenanceEndDate));
LogInfo::setRunStatusText(tr("mtFlag: %1").arg(sysPara->RFIDPara.needMaintenance));
LogInfo::setRunStatusText(tr("timeoutDay: %1").arg(timeoutDay));
qDebug()<<"mtDate: "<<sysPara->RFIDPara.maintenanceDate;
qDebug()<<"mtInterval: "<<sysPara->RFIDPara.maintenanceInterval;
qDebug()<<"mtEndDate: "<<sysPara->RFIDPara.maintenanceEndDate;
qDebug()<<"mtFlog: "<<sysPara->RFIDPara.needMaintenance;
qDebug()<<"timeoutDay: "<<timeoutDay;
if(timeoutDay <= 0 && !sysPara->RFIDPara.needMaintenance)
sysPara->RFIDPara.needMaintenance = true;
if(timeoutDay <= 30)
sysPara->status.needMaintenanceRemind = true;
#endif
sysPara->status.machineMac = m_MainInstruction->dlgInputAddr->jd.addr;
sysPara->para.rfidCountDown = 5;
}
@@ -354,6 +327,33 @@ void InkJetPrinter::slt_editCounter(CounterViewModel vm)
}
}
void InkJetPrinter::slt_warningMaintenance()
{
// 新逻辑的时间跨度更短,优先判断
if (timeoutDay >= 30) {
double runHours = sysPara->RFIDPara.runTime / 60.0 / 60.0;
double hours = sysPara->RFIDPara.maintenanceHours - runHours;
QString str;
if (hours >= 0) {
str = tr("保养期还有%1小时到期,请及时保养,否则喷码机容易损坏")
.arg(QString::number(hours, 'f', 2));
} else {
hours = hours * (-1);
str = tr("保养期已超过%1小时,请及时保养,否则喷码机容易损坏")
.arg(QString::number(hours, 'f', 2));
}
msgtest->setText(str);
msgtest->show();
// m_MainWidget->setRunStatus(str);
LogInfo::setRunStatusText(str);
return;
} else {
warningHandler(3);
return;
}
}
void InkJetPrinter::enableInkJetTabClick(bool flag){
this->setEnabled(flag);
}
@@ -681,7 +681,6 @@ void InkJetPrinter::timerHandler(void){
if(m_MainWidget->getCurrPrintStatus() != 1){
m_MainWidget->_on_pushButtonPowerOff_pressed(false);
LogInfo::setRunStatusText(tr("测试时间结束,准备关机"));
// m_MainWidget->setRunStatus(tr("测试时间结束,准备关机")); hlp
}
}
if(sysPara->status.selfCheckDone && sysPara->para.Reciclar && test_flag){
@@ -874,9 +873,8 @@ void InkJetPrinter::timerHandler(void){
{
if(!sysPara->status.selfCheckDone && sysPara->status.isPrinting){
sysPara->status.selfCheckDone = true;
// m_MainWidget->updatePrintDisplayLabel();hlp
m_MainWidget->updatePrintDisplayLabel();
// sysPara->status.flagOfAbnormalStatus = true;
// LogInfo::setRunStatusText(tr("打印过程中死机了!!!"));
qDebug()<<"打印过程中死机了!!!";
}
if(!sysPara->status.selfCheckDone)
@@ -888,7 +886,7 @@ void InkJetPrinter::timerHandler(void){
}
/*-----------------------------------------------------*/
if(!sysPara->status.selfCheckCnt) {
LogInfo::setRunStatusText(tr("开始自检,请等待60秒..............."));
LogInfo::setRunStatusText(tr("开始自检,请等待60秒..."));
m_MainWidget->enableReclaimCtrlButton(false);
m_MainWidget->enablePrintButton(false);
sysPara->devOp->mainInkCtrl();
@@ -912,7 +910,6 @@ void InkJetPrinter::timerHandler(void){
LogInfo::setRunStatusText(tr("自检完成!!!"));
m_MainWidget->setRunStatus(tr("自检完成!!!"));
qDebug()<<"自检完成!!!";
// ui->tabPrintSetting->PrintSettingLog();
m_MainWidget->enableReclaimCtrlButton(true);
sysPara->devOp->mainInkCtrl();
sysPara->status.canRunAirPushing = true;
@@ -922,7 +919,6 @@ void InkJetPrinter::timerHandler(void){
}
else {
if((sysPara->status.selfCheckCnt % 200) == 0)
// sysPara->devOp->controlReclaimTankOpen(false);
m_MainWidget->enableReclaimCtrlButton(false);
}
@@ -1032,7 +1028,7 @@ void InkJetPrinter::timerHandler(void){
sysPara->saveRFIDPara();
msgtest->setText(tr("刷墨水卡成功!"));
msgtest->show();
// m_MainWidget->setRunStatus(tr("刷墨水卡成功!")); hlp
m_MainWidget->setRunStatus(tr("刷墨水卡成功!"));
LogInfo::setRunStatusText(tr("刷墨水卡成功!"));
qDebug()<<"刷墨水卡成功";
sysPara->para.flagOfInkWarning = false;
@@ -1070,7 +1066,7 @@ void InkJetPrinter::timerHandler(void){
sysPara->saveRFIDPara();
msgtest->setText(tr("刷溶剂卡成功!"));
msgtest->show();
// m_MainWidget->setRunStatus(tr("刷溶剂卡成功!")); hlp
m_MainWidget->setRunStatus(tr("刷溶剂卡成功!"));
LogInfo::setRunStatusText(tr("刷溶剂卡成功!"));
qDebug()<<"刷溶剂卡成功";
sysPara->para.flagOfSolventWarning = false;
@@ -1092,14 +1088,15 @@ void InkJetPrinter::timerHandler(void){
sysPara->RFIDPara.needMaintenance = false;
sysPara->status.needMaintenanceRemind = false;
QDate curDate = QDate::currentDate();
sysPara->RFIDPara.maintenanceDate = curDate.toString("yyMMdd").toInt();
QDate mtEndDate = curDate.addMonths(sysPara->RFIDPara.maintenanceInterval);
sysPara->RFIDPara.maintenanceEndDate = mtEndDate.toString("yyMMdd").toInt();
sysPara->RFIDPara.runTime = 0;
ctrl_runTime->updatePara(&sysPara->RFIDPara);
sysPara->saveRFIDPara();
// msgtest->setText(tr("刷保养卡成功!"));
// msgtest->show();
// m_MainWidget->setRunStatus(tr("刷保养卡成功!")); hlp
m_MainWidget->setRunStatus(tr("刷保养卡成功!"));
LogInfo::setRunStatusText(tr("刷保养卡成功!"));
qDebug()<<"刷保养卡成功";
}
@@ -1121,7 +1118,7 @@ void InkJetPrinter::timerHandler(void){
}
else
{
LogInfo::setRunStatusText(tr("card data: %1").arg(sysPara->devOp->strRevdata));
// LogInfo::setRunStatusText(tr("card data: %1").arg(sysPara->devOp->strRevdata));
QString str1 = QString::number(sysPara->devOp->strRevdata.mid(0,2).toInt(0,16)).rightJustified(2,'0');
QString str2 =QString::number(sysPara->devOp->strRevdata.mid(2,2).toInt(0,16)).rightJustified(2,'0');
QString str3 = QString::number(sysPara->devOp->strRevdata.mid(4,2).toInt(0,16)).rightJustified(2,'0');
@@ -1253,8 +1250,9 @@ void InkJetPrinter::timerHandler(void){
}
#ifdef __RFID_CARD
// hlp 0513 :甲方要求提示越来越频繁
if(sysPara->status.needMaintenanceRemind){
warningHandler(3);
// warningHandler(3);
}
static bool logFlagCard1 = 1;
if(!sysPara->para.flagOfInkWarning){
@@ -1379,7 +1377,7 @@ void InkJetPrinter::timerHandler(void){
sysPara->status.beeperOnFlag = true;
if(sysPara->status.gearPumpRunStopFlag && pushButtonStartFlag)
{
// m_MainWidget->setRunStatus(tr("压力泄漏或压力传感器故障!")); hlp
m_MainWidget->setRunStatus(tr("压力泄漏或压力传感器故障!"));
}
if(!resumeFlag)
{
@@ -1839,16 +1837,16 @@ void InkJetPrinter::slt_counterVarUpdate()
// m_TestPrintWidget->onEditItemCounterDone();
}
void InkJetPrinter::showScheduleShiftsEditor(PicScheduleShiftItem* item)
void InkJetPrinter::showScheduleShiftsEditor(QVector<ScheduleModel> schedules, TextItemModel txtModel)
{
m_StackedWidget->setCurrentWidget(m_scheduleShiftsEditor);
m_scheduleShiftsEditor->edit(item);
m_scheduleShiftsEditor->setItemModel(schedules, txtModel);
}
void InkJetPrinter::onScheduleShiftsEditDone()
{
m_StackedWidget->setCurrentWidget(m_TestPrintWidget);
m_TestPrintWidget->addScheduleShiftsItem(m_scheduleShiftsEditor->dataModel());
m_TestPrintWidget->addScheduleShiftsItem(m_scheduleShiftsEditor->scheduleModel(), m_scheduleShiftsEditor->textItemModel());
}
bool InkJetPrinter::eventFilter(QObject *watched, QEvent *event)
@@ -1897,7 +1895,7 @@ void InkJetPrinter::saveFPGAStatus(unsigned char *data){
}
if(sysPara->status.dummy != sysPara->status.isPrinting){
sysPara->status.isPrinting = sysPara->status.dummy;
// m_MainWidget->updatePrintDisplayLabel(); hlp
m_MainWidget->updatePrintDisplayLabel();
}
}
@@ -2500,21 +2498,15 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
sysPara->status.reclaimTankBlockedAppending =0;
if(sysPara->status.reclaimTankstatus == 0x10) //7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
{
LogInfo::setRunStatusText(tr("电机故障"));
m_MainWidget->setRunStatus(tr("电机故障"));
if(sysPara->devOp->isReclaimTankCloseEnable())
{
LogInfo::setRunStatusText(tr("电机故障"));
// m_MainWidget->setRunStatus(tr("电机故障")); hlp
sysPara->devOp->controlReclaimTankClose(false);
// ui->tabMainWindow->resetReclaimCtrlButtonText();
// emit reclaimTankBlock();
}
else {
LogInfo::setRunStatusText(tr("电机故障"));
// m_MainWidget->setRunStatus(tr("电机故障!!!")); hlp
if(sysPara->devOp->isReclaimTankOpenEnable())
sysPara->devOp->controlReclaimTankOpen(false);
// ui->tabMainWindow->resetReclaimCtrlButtonText();
// emit reclaimTankBlock();
}
}
@@ -2523,10 +2515,9 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
if(sysPara->devOp->isReclaimTankOpenEnable())
sysPara->devOp->controlReclaimTankOpen(false); //到头,关闭
sysPara->status.reclainTankReachEnd = true;
/*应要求去掉多余到信息 LogInfo::setRunStatusText(tr("回收槽到头"));*/
m_MainWidget->setRunStatus(tr("回收槽到头"));
m_MainWidget->enablePrintButton(true); //仅仅在此时能使能打印按钮
// ui->tabMainWindow->resetReclaimCtrlButtonText();
// m_MainWidget->setRunStatus(tr("回收槽到头"));
m_MainWidget->setReclaimStatus(true, 100);
m_MainWidget->enablePrintButton(true); //仅仅在此时能使能打印按钮
sysPara->devOp->highVoltageCtrl(1);
// emit reclaimTankOpenDone();
/*回收槽开关时间校正*/
@@ -2539,14 +2530,10 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
else if(sysPara->status.reclaimTankstatus == 0x11 )//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
{
sysPara->devOp->controlReclaimTankOpen(false); //卡住,关闭
// ui->tabMainWindow->resetReclaimCtrlButtonText();
// LogInfo::setRunStatusText(tr("回收槽卡住或者回收槽开关时间设置错误"));
// ui->tabMainWindow->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误"));
// emit reclaimTankBlock();
}
else if(sysPara->status.reclaimTankstatus == 1 || sysPara->status.reclaimTankstatus == 2)//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
{
// emit setReclaimTankCurrentPos(sysPara->status.currReclaimTankPos);
sysPara->status.reclaimBlockedCnt = 0;
}
@@ -2554,10 +2541,8 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
{
if(sysPara->devOp->isReclaimTankCloseEnable())
sysPara->devOp->controlReclaimTankClose(false); //到头,关闭
/*应要求去掉多余到信息 LogInfo::setRunStatusText(tr("回收槽到头"));*/
m_MainWidget->setRunStatus(tr("回收槽到头"));
m_MainWidget->setReclaimStatus(false, 0);
//sysPara->status.currReclaimTankPos = 0; //将回收槽的时间置为零
// ui->tabMainWindow->resetReclaimCtrlButtonText();
// emit reclaimTankCloseDone();
sysPara->status.lastRecycleWarn = 0;
sysPara->status.HVFaultCloseEn=0;
@@ -2572,13 +2557,7 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
{
sysPara->devOp->controlReclaimTankOpen(false); //到头,关闭
LogInfo::setRunStatusText(tr("回收槽卡住或者回收槽开关时间设置错误"));
// m_MainWidget->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误")); hlp
// ui->tabMainWindow->resetReclaimCtrlButtonText();
// emit reclaimTankBlock();
}
else // if(sysPara->status.reclaimTankstatus == 7 )//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
{
// emit setReclaimTankCurrentPos(sysPara->status.currReclaimTankPos);
m_MainWidget->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误"));
}
}
@@ -2627,7 +2606,7 @@ void InkJetPrinter::showMessage(QString str){
qDebug()<<str;
}
sysPara->devOp->color_flag = 2;
// m_MainWidget->setRunStatus(str); hlp
m_MainWidget->setRunStatus(str);
}
void InkJetPrinter::resetPressureCnt(){
@@ -2739,7 +2718,7 @@ void InkJetPrinter::warningShow(int type,int num){
str = tr("墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作!");
msgtest->setText(str);
msgtest->show();
// m_MainWidget->setRunStatus(str); hlp
// m_MainWidget->setRunStatus(str);
LogInfo::setRunStatusText(str);
qDebug()<<str;
}
@@ -2750,7 +2729,7 @@ void InkJetPrinter::warningShow(int type,int num){
str = tr("溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作!");
msgtest->setText(str);
msgtest->show();
// m_MainWidget->setRunStatus(str); hlp
// m_MainWidget->setRunStatus(str);
LogInfo::setRunStatusText(str);
qDebug()<<str;
}
@@ -2761,7 +2740,7 @@ void InkJetPrinter::warningShow(int type,int num){
str = tr("保养期已超过%1天,请进行保养以恢复喷码机的正常使用").arg(num*(-1));
msgtest->setText(str);
msgtest->show();
// m_MainWidget->setRunStatus(str); hlp
// m_MainWidget->setRunStatus(str);
LogInfo::setRunStatusText(str);
qDebug()<<str;
}
@@ -2799,7 +2778,7 @@ bool InkJetPrinter::cardTouchConfirm(QString msgTxt, QString variableMsgTxt)
{
QMessageBox box(QMessageBox::Warning, tr("警告"),
msgTxt, QMessageBox::Ok | QMessageBox::Cancel,
this, Qt::Dialog | Qt::Tool | Qt::FramelessWindowHint | Qt::BypassWindowManagerHint );
this);
int rfidCountDown = sysPara->para.rfidCountDown;
QTimer msgTimer;
@@ -2818,15 +2797,36 @@ bool InkJetPrinter::cardTouchConfirm(QString msgTxt, QString variableMsgTxt)
msgTimer.start(1000);
}
// 为边框设置圆角和边框颜色
box.setStyleSheet(R"(
QDialog {
border-radius: 5px;
border: 2px solid #333333;
}
)");
box.exec();
return box.result() == QMessageBox::Ok || box.result() == QMessageBox::Accepted;
}
void InkJetPrinter::initRunTimeCtrl()
{
if (ctrl_runTime == nullptr) {
ctrl_runTime = RunTimeCtrl::instance();
#ifdef __RFID_CARD
connect(ctrl_runTime, &RunTimeCtrl::sig_updateTimeoutDay, this, [=](int days) {
// timeoutDay:仅适用于原来月份的处理
this->timeoutDay = days;
if(timeoutDay <= 30)
sysPara->status.needMaintenanceRemind = true;
});
connect(ctrl_runTime, &RunTimeCtrl::sig_saveRunTime, this, [=]() {
// 运行时间处理
sysPara->RFIDPara.runTime += 30;
sysPara->saveRFIDPara();
});
// 弹窗提示
connect(ctrl_runTime, &RunTimeCtrl::sig_alertTimeout,
this, &InkJetPrinter::slt_warningMaintenance);
curPowerOnDateTime = QDateTime::currentDateTime();
if (sysPara)
ctrl_runTime->loadConfig(&sysPara->RFIDPara);
ctrl_runTime->start();
#endif
}
}