2026年7月16日 缓存
This commit is contained in:
+106
-32
@@ -113,6 +113,29 @@ void InkJetPrinter::init()
|
||||
// TestPrintWidget::sendButtonClickedSignal(16) 转由 openDatetimeEditor 处理
|
||||
connect(m_TestPrintWidget, &TestPrintWidget::sig_showEditDateTime, this, &InkJetPrinter::openDatetimeEditor);
|
||||
connect(m_TestPrintWidget, &TestPrintWidget::sig_updatePrintContent, this, &InkJetPrinter::slt_updatePrintContent);
|
||||
|
||||
#ifndef FPGA_TEST
|
||||
// 调入文件喷印时,主动重启打印
|
||||
connect(m_TestPrintWidget, &TestPrintWidget::sig_stopPrint, m_MainWidget, [this](){
|
||||
auto isPrinting = sysPara->status.isPrinting;
|
||||
if(isPrinting) {
|
||||
m_MainWidget->on_m_StopBtn_clicked();
|
||||
|
||||
QTimer::singleShot(500, [this](){
|
||||
|
||||
m_PrintSetting->applyPrintSettingsToSysPara(false);
|
||||
|
||||
m_MainWidget->on_m_StartBtn_clicked();
|
||||
LogInfo::setRunStatusText("Restarting the print because the work file was switched.");
|
||||
});
|
||||
}
|
||||
else {
|
||||
QTimer::singleShot(300, [this](){
|
||||
m_PrintSetting->applyPrintSettingsToSysPara(false);
|
||||
});
|
||||
}
|
||||
});
|
||||
#endif
|
||||
|
||||
// 班时元素与编辑 连接
|
||||
connect(m_TestPrintWidget, &TestPrintWidget::sig_showScheduleShiftsEditor, this, &InkJetPrinter::showScheduleShiftsEditor);
|
||||
@@ -985,7 +1008,8 @@ void InkJetPrinter::timerHandler(void){
|
||||
}
|
||||
|
||||
// byons: 时间类型图元更新 @2026年4月11日
|
||||
if (m_MainWidget->dateTimeItemsDotUpdate()) {
|
||||
auto updateArea = m_MainWidget->variableItemsUpdate();
|
||||
if (!updateArea.isNull()) {
|
||||
// // 统计追踪更新频率
|
||||
// static QElapsedTimer bnsTimer;
|
||||
// static int toogleCount = 0;
|
||||
@@ -997,7 +1021,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
// }
|
||||
|
||||
if(sysPara->status.isPrinting) {
|
||||
m_MainWidget->SendPrintDataToFpga(0, true);
|
||||
m_MainWidget->SendPrintDataToFpga(0, updateArea.left(), updateArea.width());
|
||||
}
|
||||
|
||||
if(m_StackedWidget->currentWidget() == m_MainWidget) {
|
||||
@@ -1013,11 +1037,14 @@ void InkJetPrinter::timerHandler(void){
|
||||
if(gearPumpRunFlag || sysPara->para.gearPumpEnable == 0)
|
||||
{
|
||||
if(!sysPara->status.selfCheckDone && sysPara->status.isPrinting){
|
||||
sysPara->status.selfCheckDone = true;
|
||||
// sysPara->status.selfCheckDone = true;
|
||||
m_MainWidget->updatePrintDisplayLabel();
|
||||
// sysPara->status.flagOfAbnormalStatus = true;
|
||||
qDebug()<<"打印过程中死机了!!!";
|
||||
|
||||
m_MainWidget->on_m_StopBtn_clicked();
|
||||
}
|
||||
|
||||
if(!sysPara->status.selfCheckDone)
|
||||
{
|
||||
/*开机自检*/
|
||||
@@ -1075,19 +1102,20 @@ void InkJetPrinter::timerHandler(void){
|
||||
|
||||
// 自检结束发送打印设置
|
||||
qInfo() << "Self check done and send print para to FPGA";
|
||||
sysPara->devOp->setHighVoltageAmplitudetoSTM32();
|
||||
sysPara->devOp->writeFpgaCalandar(0);
|
||||
sysPara->devOp->writeFpgaPrintPara(true);
|
||||
// sysPara->devOp->setHighVoltageAmplitudetoSTM32();
|
||||
// sysPara->devOp->writeFpgaCalandar(0);
|
||||
// sysPara->devOp->writeFpgaPrintPara(true);
|
||||
|
||||
#ifdef __RFID_CARD
|
||||
// 刷卡判定
|
||||
if(sysPara->RFIDPara.inkCardTimeOut
|
||||
|| sysPara->RFIDPara.solventCardTimeOut
|
||||
|| sysPara->RFIDPara.needMaintenance) {
|
||||
m_MainWidget->setReclaimOpenBtnStatus(false);
|
||||
LogInfo::setRunStatusText(tr("Need maintenance."));
|
||||
}
|
||||
#endif
|
||||
// 自检完成后,关闭高电压,不知道为什么,有时候开机自检都有高压
|
||||
sysPara->devOp->highVoltageCtrl(0);
|
||||
|
||||
// 自检完成后,写入一遍打印设置和内容,不然好像直接开始打印不行
|
||||
if(m_PrintSetting)
|
||||
m_PrintSetting->applyPrintSettingsToSysPara(false);
|
||||
|
||||
m_MainWidget->SendPrintDataToFpga(0);
|
||||
|
||||
m_MainWidget->on_m_StopBtn_clicked();
|
||||
|
||||
if(sysPara->para.Reciclar)
|
||||
test_flag = 1;
|
||||
@@ -1172,7 +1200,8 @@ void InkJetPrinter::timerHandler(void){
|
||||
|
||||
#endif
|
||||
if(pulse_300ms){
|
||||
sysPara->devOp->readCalandarDat(); //务必读一下此数据
|
||||
sysPara->devOp->readCalandarDat(); //务必读一下此数据
|
||||
|
||||
if(sysPara->status.RandomNum>0)
|
||||
sysPara->devOp->Read_RanddomFromFpga();
|
||||
#ifdef COUNTER1_BY_GROUP /* 分段计米 */
|
||||
@@ -1291,6 +1320,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
// warningHandler(3);
|
||||
// }
|
||||
// LogInfo::setRunStatusText(tr("处理警告:%1").arg(QDateTime::currentDateTime()));
|
||||
|
||||
handleWarnInk(); // 处理墨水警告
|
||||
handleWarnSolvent(); // 处理溶剂警告
|
||||
#endif
|
||||
@@ -1495,6 +1525,7 @@ void InkJetPrinter::getTestPrintWidgetButtonClickedSlot(int index)
|
||||
m_StackedWidget->setCurrentWidget(m_MainWidget);
|
||||
MySleep(200);
|
||||
m_MainWidget->onPreviewScene();
|
||||
m_MainWidget->SendPrintDataToFpga(0);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1852,6 +1883,13 @@ void InkJetPrinter::saveFPGACalandarAndDat(unsigned char *data){
|
||||
for(int i=0;i<len;i++){
|
||||
target[i]=data[7+i];
|
||||
}
|
||||
|
||||
QString hexStr = QString::number(sysPara->status.calandar_and_dat.cnt1CurrValue, 16);
|
||||
bool ok;
|
||||
sysPara->para.cnt1CurrValue = hexStr.toUInt(&ok, 10);
|
||||
|
||||
hexStr = QString::number(sysPara->status.calandar_and_dat.cnt2CurrValue, 16);
|
||||
sysPara->para.cnt2CurrValue = hexStr.toUInt(&ok, 10);
|
||||
}
|
||||
|
||||
void InkJetPrinter::saveFPGACnt3CurrValue(unsigned char *data){
|
||||
@@ -2454,7 +2492,6 @@ void InkJetPrinter::autoControlHeater(){
|
||||
* 控制回收槽
|
||||
*
|
||||
* */
|
||||
|
||||
void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
sysPara->status.currReclaimTankPos =10*sysPara->status.curr_reclaimTankTime;
|
||||
sysPara->status.reclaimTankBlockedAppending =0;
|
||||
@@ -2471,6 +2508,7 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
sysPara->devOp->controlReclaimTankOpen(false);
|
||||
}
|
||||
|
||||
m_MainWidget->stopFlashReclaimOpenBtn();
|
||||
}
|
||||
else if(sysPara->status.reclaimTankstatus == 5 )//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
|
||||
{
|
||||
@@ -2480,7 +2518,10 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
m_MainWidget->setRunStatus(tr("回收槽到头"));
|
||||
m_MainWidget->setReclaimStatus(true, 100);
|
||||
m_MainWidget->enablePrintButton(true); //仅仅在此时能使能打印按钮
|
||||
sysPara->devOp->highVoltageCtrl(1);
|
||||
// sysPara->devOp->highVoltageCtrl(1);
|
||||
|
||||
m_MainWidget->stopFlashReclaimOpenBtn();
|
||||
|
||||
// emit reclaimTankOpenDone();
|
||||
/*回收槽开关时间校正*/
|
||||
sysPara->para.reclaimTankTime =( sysPara->status.currReclaimTankPos>120 )? sysPara->status.currReclaimTankPos/10-1:12;
|
||||
@@ -2494,13 +2535,21 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
else if(sysPara->status.reclaimTankstatus == 0x11 )//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
|
||||
{
|
||||
sysPara->devOp->controlReclaimTankOpen(false); //卡住,关闭
|
||||
m_MainWidget->stopFlashReclaimOpenBtn();
|
||||
// ui->tabMainWindow->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误"));
|
||||
}
|
||||
else if(sysPara->status.reclaimTankstatus == 1 || sysPara->status.reclaimTankstatus == 2)//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
|
||||
{
|
||||
auto recliamTime = (sysPara->para.reclaimTankTime != 0 ? sysPara->para.reclaimTankTime : 15.0f) * 10.0f;
|
||||
int rate = qBound(0, 100, int((sysPara->status.currReclaimTankPos / recliamTime) * 100));
|
||||
m_MainWidget->setReclaimStatus(sysPara->status.reclaimTankstatus == 1, rate);
|
||||
|
||||
// 不知道为什么会有rate为0,且 sysPara->status.reclaimTankstatus == 2 ,也就是 关的状态。 回收槽位置在0处,而状态却是 关 ,很奇怪
|
||||
if(sysPara->status.reclaimTankstatus != 2 && rate != 0) {
|
||||
m_MainWidget->setReclaimStatus(sysPara->status.reclaimTankstatus == 1, rate);
|
||||
}
|
||||
|
||||
m_MainWidget->setReclaimOpenBtnStatus(sysPara->status.reclaimTankstatus == 2);
|
||||
m_MainWidget->setReclaimCloseBtnStatus(sysPara->status.reclaimTankstatus == 1);
|
||||
|
||||
sysPara->status.reclaimBlockedCnt = 0;
|
||||
}
|
||||
@@ -2509,14 +2558,13 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
if(sysPara->devOp->isReclaimTankCloseEnable())
|
||||
sysPara->devOp->controlReclaimTankClose(false); //到头,关闭
|
||||
m_MainWidget->setReclaimStatus(false, 0);
|
||||
m_MainWidget->stopFlashReclaimOpenBtn();
|
||||
//sysPara->status.currReclaimTankPos = 0; //将回收槽的时间置为零
|
||||
// emit reclaimTankCloseDone();
|
||||
sysPara->status.lastRecycleWarn = 0;
|
||||
sysPara->status.HVFaultCloseEn=0;
|
||||
sysPara->status.reclainCloseAppending=false;
|
||||
sysPara->status.canRunAirPushing = true; //下次开回收槽就执行排气程序
|
||||
|
||||
LogInfo::setRunStatusText("reclaimTankCloseDone currReclaimTankPos:"+QString::number(sysPara->status.currReclaimTankPos));
|
||||
}
|
||||
else if(sysPara->status.reclaimTankstatus == 0x12 )//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
|
||||
{
|
||||
@@ -2524,6 +2572,12 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
LogInfo::setRunStatusText(tr("回收槽卡住或者回收槽开关时间设置错误"));
|
||||
m_MainWidget->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误"));
|
||||
}
|
||||
else if(sysPara->status.reclaimTankstatus == 4 )
|
||||
{
|
||||
m_MainWidget->setReclaimOpenBtnStatus(true);
|
||||
m_MainWidget->setReclaimCloseBtnStatus(true);
|
||||
LogInfo::setRunStatusText("Reclaim tank hold on "+QString::number(sysPara->status.currReclaimTankPos));
|
||||
}
|
||||
}
|
||||
|
||||
void InkJetPrinter::viscosity_timerHandler()
|
||||
@@ -2562,7 +2616,7 @@ void InkJetPrinter::rebootApp()
|
||||
sysPara->devOp->controlInkValve(false);
|
||||
sysPara->devOp->controlInkValvePWM(false);
|
||||
}
|
||||
m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒...............").arg(i));
|
||||
m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒......").arg(i));
|
||||
MySleep(1000);
|
||||
}
|
||||
}
|
||||
@@ -2595,7 +2649,7 @@ void InkJetPrinter::rebootApp()
|
||||
{
|
||||
if(i==9)
|
||||
sysPara->devOp->controlReclaimTankOpen(false);
|
||||
m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒...............").arg(i));
|
||||
m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒......").arg(i));
|
||||
MySleep(1000);
|
||||
}
|
||||
}
|
||||
@@ -2621,7 +2675,7 @@ void InkJetPrinter::rebootApp()
|
||||
sysPara->para.gearPumpValue = 0;
|
||||
sysPara->devOp->WriteMoterPump();
|
||||
}
|
||||
m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒...............").arg(i));
|
||||
m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒......").arg(i));
|
||||
MySleep(1000);
|
||||
}
|
||||
}
|
||||
@@ -2719,11 +2773,12 @@ void InkJetPrinter::warningHandler(int type){
|
||||
if (!sysPara->RFIDPara.inkCardTimeOut)
|
||||
inkTime = 48- dateTimeDiff/60/60;
|
||||
}
|
||||
if(sysPara->RFIDPara.inkCardTimeOut){
|
||||
if(sysPara->RFIDPara.inkCardTimeOut && flagOfWarning){
|
||||
if(++sysPara->status.showInkWarningNumber >= INTERVAL_AFTER48H){
|
||||
warningShow(CARD_TYPE::INK,49);
|
||||
sysPara->status.showInkWarningNumber = 0;//是否有必要保存?
|
||||
sysPara->saveRFIDPara();
|
||||
flagOfWarning = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -2736,18 +2791,21 @@ void InkJetPrinter::warningHandler(int type){
|
||||
if (dateTimeDiff > 60*60*24*2) {
|
||||
sysPara->RFIDPara.solventCardTimeOut = true;
|
||||
}
|
||||
|
||||
if (!sysPara->RFIDPara.solventCardTimeOut)
|
||||
solventTime = 48- dateTimeDiff/60/60;
|
||||
solventTime = 48- dateTimeDiff / 60 / 60;
|
||||
}
|
||||
|
||||
if(sysPara->RFIDPara.solventCardTimeOut){
|
||||
if(sysPara->RFIDPara.solventCardTimeOut && flagOfWarning){
|
||||
if(++sysPara->status.showSolventWarningNumber >= INTERVAL_AFTER48H){
|
||||
warningShow(CARD_TYPE::SOLVENT,49);
|
||||
sysPara->status.showSolventWarningNumber = 0;
|
||||
sysPara->saveRFIDPara();
|
||||
flagOfWarning = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
sysPara->saveRFIDPara();
|
||||
}
|
||||
/***********处理保养到期提示start******************/
|
||||
@@ -2856,6 +2914,7 @@ int InkJetPrinter::updateWarningTime(int type){
|
||||
// 读取文件内容
|
||||
QTextStream in(&file);
|
||||
QString starTime = in.readAll(); // 第一次提示的时间
|
||||
starTime = starTime.trimmed();
|
||||
// 关闭文件
|
||||
file.close();
|
||||
inkWarnTime = QDateTime::fromString(starTime,"yyyy-MM-dd HH::mm::ss");
|
||||
@@ -2873,6 +2932,7 @@ int InkJetPrinter::updateWarningTime(int type){
|
||||
// 读取文件内容
|
||||
QTextStream in(&file);
|
||||
QString starTime = in.readAll(); // 第一次提示的时间
|
||||
starTime = starTime.trimmed();
|
||||
// 关闭文件
|
||||
file.close();
|
||||
solventWarnTime = QDateTime::fromString(starTime,"yyyy-MM-dd HH::mm::ss");
|
||||
@@ -2968,7 +3028,6 @@ void InkJetPrinter::handleWarnInk()
|
||||
|
||||
if(sysPara->status.inkWarningCnt >= DETECT_WARNING_TIME){
|
||||
sysPara->para.flagOfInkWarning = true;
|
||||
sysPara->RFIDPara.needInkCard = true;
|
||||
manager_rfid->setInkCardFirstPrompt(true);
|
||||
QString strCurDateTime = QDateTime::currentDateTime().toString("yyMMddhhmmss");
|
||||
LogInfo::setRunStatusText("Ink warning.");
|
||||
@@ -3007,7 +3066,7 @@ void InkJetPrinter::handleWarnInk()
|
||||
QDateTime curDateTime = QDateTime::currentDateTime();
|
||||
QByteArray curDateTimestr = curDateTime.toString("yyyy-MM-dd HH::mm::ss").toUtf8();
|
||||
QFile file("/home/plg/inkRFIDTime.txt");
|
||||
if(!file.open(QIODevice::WriteOnly)){
|
||||
if(!file.open(QIODevice::WriteOnly | QIODevice::Truncate)){
|
||||
qDebug()<<"Open inkRFIDTime Failure.";
|
||||
LogInfo::setRunStatusText("Open inkRFIDTime Failure.");
|
||||
}
|
||||
@@ -3046,7 +3105,6 @@ void InkJetPrinter::handleWarnSolvent()
|
||||
|
||||
if(sysPara->status.solventWarningCnt >= DETECT_WARNING_TIME){
|
||||
sysPara->para.flagOfSolventWarning = true;
|
||||
sysPara->RFIDPara.needSolventCard = true;
|
||||
manager_rfid->setSolventCardFirstPrompt(true);
|
||||
QDateTime curDateTime = QDateTime::currentDateTime();
|
||||
QString strCurDateTime = curDateTime.toString("yyMMddhhmmss");
|
||||
@@ -3084,7 +3142,7 @@ void InkJetPrinter::handleWarnSolvent()
|
||||
QDateTime curDateTime = QDateTime::currentDateTime();
|
||||
QByteArray curDateTimestr = curDateTime.toString("yyyy-MM-dd HH::mm::ss").toUtf8();
|
||||
QFile file("/home/plg/solventRFIDTime.txt");
|
||||
if(!file.open(QIODevice::WriteOnly)){
|
||||
if(!file.open(QIODevice::WriteOnly | QIODevice::Truncate)){
|
||||
qDebug()<<"Open solventRFIDTime Failure.";
|
||||
LogInfo::setRunStatusText("Open solventRFIDTime Failure.");
|
||||
}
|
||||
@@ -3113,8 +3171,24 @@ void InkJetPrinter::handleWarnSolvent()
|
||||
|
||||
void InkJetPrinter::slt_showMsg(QString msg)
|
||||
{
|
||||
static QList<QMessageBox*> msgPool;
|
||||
|
||||
QMessageBox * msgBox = new QMessageBox(QMessageBox::NoIcon, tr("提示"), msg, QMessageBox::StandardButton::Ok);
|
||||
connect(msgBox, &QMessageBox::finished, msgBox, &QMessageBox::deleteLater);
|
||||
msgPool.push_back(msgBox);
|
||||
connect(msgBox, &QMessageBox::finished, [this, msgBox, &msgPool](){
|
||||
auto idx = msgPool.lastIndexOf(msgBox);
|
||||
if(idx != -1) {
|
||||
msgPool.removeAt(idx);
|
||||
}
|
||||
|
||||
msgBox->deleteLater();
|
||||
});
|
||||
|
||||
msgBox->show();
|
||||
|
||||
if(msgPool.size() > 3) {
|
||||
msgPool.takeFirst()->deleteLater();
|
||||
}
|
||||
|
||||
LogInfo::setRunStatusText(msg);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user