优化RFID流程逻辑、修改自检流程,关闭循环阀

This commit is contained in:
2026-08-18 11:32:05 +08:00
parent cc5789f8b2
commit 5fc755d13f
21 changed files with 1651 additions and 1598 deletions
+46 -65
View File
@@ -544,8 +544,8 @@ void RFIDManager::initRFIDMoudle(unsigned int addr, SysPara *sysPara)
setICReaderModeFlag = false;
//报警定时器一定要在初始化之后启动,不然就崩
#ifdef __RFID_CARD
if (warningTimer)
warningTimer->start(3000);
// if (warningTimer)
// warningTimer->start(3000);
#endif
}
@@ -566,37 +566,28 @@ void RFIDManager::handleCheck(unsigned int addr)
|| strRevdata.left(3) == QString("100C"))
{
if(strRevdata.at(3) == 'A') {
if (sysPara->RFIDPara.cardInk) {
emit sig_showMsg(tr("已经刷过墨水卡,需添加墨水"));
if(!m_needInkCard) {
emit sig_showMsg(tr("不需要刷墨水卡!"));
return;
}
if(!sysPara->RFIDPara.needInkCard){
emit sig_showMsg(tr("不需要刷墨水卡!"));
}
else {
auto blockData = strRevdata;
cardTouchConfirmAsync(tr("确认要刷墨水卡吗?"), tr("确认要刷墨水卡吗? %1 秒后将自动确认"), [this, blockData]{
markInkCard(blockData);
});
}
auto blockData = strRevdata;
cardTouchConfirmAsync(tr("确认要刷墨水卡吗?"), tr("确认要刷墨水卡吗? %1 秒后将自动确认"), [this, blockData]{
markInkCard(blockData);
});
}
else if(strRevdata.at(3) == 'B')
{
if (sysPara->RFIDPara.cardSolvent) {
emit sig_showMsg(tr("已经刷过溶剂卡,需添加溶剂"));
if(!m_needSolventCard) {
emit sig_showMsg(tr("不需要刷溶剂卡!"));
return;
}
if(!sysPara->RFIDPara.needSolventCard){
emit sig_showMsg(tr("不需要刷溶剂卡!"));
}
else {
auto blockData = strRevdata;
cardTouchConfirmAsync(tr("确认要刷溶剂卡吗?"), tr("确认要刷溶剂卡吗? %1 秒后将自动确认"), [this, blockData](){
markSolventCard(blockData);
});
}
auto blockData = strRevdata;
cardTouchConfirmAsync(tr("确认要刷溶剂卡吗?"), tr("确认要刷溶剂卡吗? %1 秒后将自动确认"), [this, blockData](){
markSolventCard(blockData);
});
}
else if(strRevdata.at(3) == 'C')
@@ -1052,9 +1043,9 @@ void RFIDManager::initTimer()
}
if (warningTimer == nullptr) {
warningTimer = new QTimer(this);
connect(warningTimer, &QTimer::timeout,
this, &RFIDManager::slt_intervalTimerHandle);
// warningTimer = new QTimer(this);
// connect(warningTimer, &QTimer::timeout,
// this, &RFIDManager::slt_intervalTimerHandle);
}
}
@@ -1111,9 +1102,9 @@ void RFIDManager::markInkCard(const QString &blockData)
auto ret = RFIDmarkCardUsedAsync(0, blockData);
if(ret >= 0 || ret == -11){
const QString msg = sysPara->RFIDPara.addedInk ? tr("刷墨水卡成功!") : tr("刷墨水卡成功, 请及时将该墨水卡对应的墨水添加到机器中");
emit sig_showMsg(msg);
sysPara->RFIDPara.cardInk = true;
sysPara->saveRFIDPara();
m_hasInkCardBeenSwiped = true;
m_needInkCard = false;
emit sig_inkCardProgressFinished();
}
else if(ret == -10) {
emit sig_showMsg(tr("刷超级墨水卡失败,请联系厂商。"));
@@ -1125,9 +1116,9 @@ void RFIDManager::markSolventCard(const QString &blockData)
auto ret = RFIDmarkCardUsedAsync(1, blockData);
if(ret >= 0 || ret == -11) {
const QString msg = sysPara->RFIDPara.addedSolvent ? tr("刷溶剂卡成功!") : tr("刷溶剂卡成功, 请及时将该溶剂卡对应的溶剂添加到机器中");
emit sig_showMsg(msg);
sysPara->RFIDPara.cardSolvent = true;
sysPara->saveRFIDPara();
m_hasSolventCardBeenSwiped = true;
m_needSolventCard = false;
emit sig_solventProgressFinished();
}
else if(ret == -10) {
emit sig_showMsg(tr("刷超级溶剂水卡失败,请联系厂商。"));
@@ -1139,8 +1130,6 @@ void RFIDManager::markMaintenanceCard(const QString &blockData)
auto ret = RFIDmarkCardUsedAsync(2, blockData);
if(ret >= 0 || ret == -11) {//把卡数据清零
emit sig_maintenanceShow();
sysPara->RFIDPara.needMaintenance = false;
sysPara->status.needMaintenanceRemind = false;
@@ -1148,10 +1137,12 @@ void RFIDManager::markMaintenanceCard(const QString &blockData)
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;
sysPara->RFIDPara.runtimeMs = 0;
RunTimeCtrl::instance()->updatePara(&sysPara->RFIDPara);
sysPara->saveRFIDPara();
// emit sig_showMsg(tr("刷保养卡成功!"));
emit sig_maintenanceShow();
}
else if(ret == -10) {
emit sig_showMsg(tr("刷超级保养卡失败,请联系厂商。"));
@@ -1280,34 +1271,6 @@ void RFIDManager::slt_timerHandle()
}
}
//static int totalTime = 0;
void RFIDManager::slt_intervalTimerHandle()
{
updateStatus();
if(status.addedInk && !status.cardInk && status.firstPromptInkCard){
emit sig_showMsg(tr("请及时使用墨水盒附带的IC卡激活墨水盒"));
status.firstPromptInkCard = false;
}
if(status.addedSolvent && !status.cardSolvent && status.firstPromptSolventCard){
emit sig_showMsg(tr("请及时使用溶剂盒附带的IC卡激活溶剂盒"));
status.firstPromptSolventCard = false;
}
//不需要通知先后,成功即可
auto res = waitStatus();
if (res == 1) {
LogInfo::setRunStatusText("Ink progress finished, and the ink card has been used.");
emit sig_inkCardProgressFinished();
return;
}
if (res == 2) {
LogInfo::setRunStatusText("Solvent progress finished, and the solvent card has been used.");
emit sig_solventProgressFinished();
return;
}
}
int RFIDManager::RFIDQueryWalletAsync()
{
if (!comForRFID || !comForRFID->isOpen()) {
@@ -1425,4 +1388,22 @@ int RFIDManager::RFIDQueryWalletAsync()
LogInfo::setRunStatusText(("Failed to query card balance, logic error"));
qDebug() << "Failed to query card balance, logic error";
return -1;
}
}
void RFIDManager::requireInkCard(bool required)
{
m_needInkCard = required;
m_hasInkCardBeenSwiped = false;
}
void RFIDManager::requireSolventCard(bool required)
{
m_needSolventCard = required;
m_hasSolventCardBeenSwiped = false;
}
void RFIDManager::requireMaintenanceCard(bool required)
{
m_needMaintenanceCard = required;
m_hasMaintenanceCardBeenSwiped = false;
}