hlp:更新翻译、喷嘴到底后等至少3秒检查相检、状态机统一打印和回收槽状态、修复数字键盘输入bug
This commit is contained in:
+121
-57
@@ -129,6 +129,8 @@ void MainWidget::init()
|
||||
airPushTimer = new QTimer(this);
|
||||
connect(airPushTimer, SIGNAL(timeout()), this, SLOT(airPushingProcess()));
|
||||
|
||||
m_pressureMonitor = new PressureMonitor();
|
||||
|
||||
timerPowerOff = new QTimer(this);
|
||||
connect(timerPowerOff,SIGNAL(timeout()),this,SLOT(sendPowerOffCmd()));
|
||||
|
||||
@@ -144,6 +146,9 @@ void MainWidget::init()
|
||||
}
|
||||
connect(m_setNumDlg, &SetNumDlg::sig_setNum, this, &MainWidget::slt_setNum);
|
||||
connect(m_setNumDlg, &SetNumDlg::sig_clearCnt, this, &MainWidget::slt_clearCnt);
|
||||
|
||||
connect(m_setNumDlg, &SetNumDlg::sig_resetCNT1, this, &MainWidget::slt_resetCNT1);
|
||||
connect(m_setNumDlg, &SetNumDlg::sig_resetCNT2, this, &MainWidget::slt_resetCNT2);
|
||||
}
|
||||
|
||||
void MainWidget::buttonClickedSlot()
|
||||
@@ -185,7 +190,7 @@ void MySleep(unsigned int msec)
|
||||
|
||||
}
|
||||
|
||||
bool MainWidget::generatePrintContent(PicScene *scene)
|
||||
bool MainWidget::generatePrintContent(PicScene *scene, const PrintSettingModel& printSettings)
|
||||
{
|
||||
if(!scene) {
|
||||
qWarning() << "Scene is empty!";
|
||||
@@ -200,7 +205,34 @@ bool MainWidget::generatePrintContent(PicScene *scene)
|
||||
this->pPicScene = scene;
|
||||
onPreviewScene();
|
||||
|
||||
this->printSettingsModel = printSettings;
|
||||
PrintSettingModel::applyToSysPara(printSettings, sysPara);
|
||||
|
||||
SendPrintDataToFpga(0);
|
||||
|
||||
|
||||
// 检查场景内是否有计数器,根据是否有对应计数器,显示或禁用setNumDlg中对应的按钮。
|
||||
bool hasCNT1 = false;
|
||||
bool hasCNT2 = false;
|
||||
auto items = pPicScene->items();
|
||||
for(auto item : items) {
|
||||
auto cntItem = dynamic_cast<PicCounterItem*>(item);
|
||||
if(!cntItem)
|
||||
continue;
|
||||
|
||||
if(cntItem->counterType() == COUNTER_TYPE_1) {
|
||||
hasCNT1 = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
if(cntItem->counterType() == COUNTER_TYPE_2) {
|
||||
hasCNT2 = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
m_setNumDlg->setCNTResetBtnsEnable(hasCNT1, hasCNT2);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1059,6 +1091,10 @@ void MainWidget::SendPrintDataToFpga(unsigned char alterEnable, bool isUpdate)
|
||||
|
||||
void MainWidget::setReclaimOpenBtnStatus(bool enable)
|
||||
{
|
||||
if (airPushTimer && airPushTimer->isActive()) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef __RFID_CARD
|
||||
if(sysPara->RFIDPara.inkCardTimeOut
|
||||
|| sysPara->RFIDPara.solventCardTimeOut
|
||||
@@ -1068,11 +1104,16 @@ void MainWidget::setReclaimOpenBtnStatus(bool enable)
|
||||
#endif
|
||||
|
||||
enable = !sysPara->status.airPushing && enable;
|
||||
|
||||
ui.m_RightBtn->setEnabled(enable);
|
||||
}
|
||||
|
||||
void MainWidget::setReclaimCloseBtnStatus(bool enable)
|
||||
{
|
||||
if (airPushTimer && airPushTimer->isActive()) {
|
||||
return;
|
||||
}
|
||||
|
||||
enable = !sysPara->status.airPushing && enable;
|
||||
ui.m_LeftBtn->setEnabled(enable);
|
||||
}
|
||||
@@ -1104,7 +1145,7 @@ void MainWidget::stopFlashReclaimOpenBtn()
|
||||
flashReclaimOpenBtn();
|
||||
}
|
||||
|
||||
void MainWidget::updateReclaimStatus()
|
||||
void MainWidget::updateReclaimText()
|
||||
{
|
||||
QString strR = "";
|
||||
QString strL = "";
|
||||
@@ -1121,20 +1162,23 @@ void MainWidget::updateReclaimStatus()
|
||||
strR = tr("喷嘴已开启");
|
||||
strL = tr("喷嘴关闭");
|
||||
break;
|
||||
case 0:
|
||||
case 6:
|
||||
strR = tr("喷嘴开启");
|
||||
strL = tr("喷嘴已关闭");
|
||||
break;
|
||||
case 0: // 后续运行中5和6状态之后会自动置为0,所以加额外逻辑
|
||||
strR = ui.lb_RightBtn->text();
|
||||
strL = ui.lb_LeftBtn->text();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
ui.lb_RightBtn->setText(strR);
|
||||
ui.lb_LeftBtn->setText(strL);
|
||||
if (strR!="" && strL!="") {
|
||||
ui.lb_RightBtn->setText(strR);
|
||||
ui.lb_LeftBtn->setText(strL);
|
||||
}
|
||||
}
|
||||
|
||||
static int mainInkPumpCtrlStatus = 0;
|
||||
static int mainInkPumpCtrlCnt = 0;
|
||||
//100ms 为单位
|
||||
void MainWidget::airPushingProcess()
|
||||
{
|
||||
@@ -1153,17 +1197,6 @@ void MainWidget::airPushingProcess()
|
||||
sysPara->saveParaToFile();
|
||||
}
|
||||
|
||||
// 延迟 0.5秒后才开回收槽,正式结束排气阶段
|
||||
if(sysPara->status.airPushingOnTime >= sysPara->para.airPushDurationSec * 1000 + 500){
|
||||
reclaimTanOpen();
|
||||
sysPara->status.airPushingDone = 1;
|
||||
sysPara->status.airPushing = 0;
|
||||
sysPara->status.airPushingOnTime = 0;
|
||||
airPushTimer->stop();
|
||||
setRunStatus(tr("喷嘴开启中"));
|
||||
return;
|
||||
}
|
||||
|
||||
if(sysPara->status.airPushingOnTime >= sysPara->para.airPushDurationSec * 1000){
|
||||
sysPara->devOp->controlViscosityPump(false);
|
||||
sysPara->devOp->controlCycleValve(false);
|
||||
@@ -1171,7 +1204,42 @@ void MainWidget::airPushingProcess()
|
||||
if(!sysPara->devOp->isReclaimPumpOpen())
|
||||
sysPara->devOp->controlReclaimPump(true, false);
|
||||
|
||||
sysPara->status.isPumpValveControledByHand = false;//切换自动让压力回升
|
||||
// 切换回自动模式
|
||||
sysPara->status.isPumpValveControledByHand = false;
|
||||
|
||||
setRunStatus(tr("等待压力稳定..."));
|
||||
|
||||
if(m_pressureMonitor->tick((float)sysPara->status.PRESSURE, (float)sysPara->para.pressure)) {
|
||||
reclaimTanOpen();
|
||||
sysPara->status.airPushingDone = 1;
|
||||
sysPara->status.airPushing = 0;
|
||||
sysPara->status.airPushingOnTime = 0;
|
||||
airPushTimer->stop();
|
||||
bool isTimeout = m_pressureMonitor->wasTimeout();
|
||||
float bufCopy[12];
|
||||
memcpy(bufCopy, m_pressureMonitor->buffer(), sizeof(bufCopy));
|
||||
m_pressureMonitor->reset();
|
||||
setRunStatus(tr("喷嘴开启中"));
|
||||
|
||||
LogInfo::setRunStatusText(isTimeout
|
||||
? "Pressure unstable timeout, fallback open the reclaim tank."
|
||||
: "Pressure has stabled, will open the reclaim tank.");
|
||||
|
||||
QString pressureSet = QString("Pressure buffer: [%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12]")
|
||||
.arg(bufCopy[0], 0, 'f', 1)
|
||||
.arg(bufCopy[1], 0, 'f', 1)
|
||||
.arg(bufCopy[2], 0, 'f', 1)
|
||||
.arg(bufCopy[3], 0, 'f', 1)
|
||||
.arg(bufCopy[4], 0, 'f', 1)
|
||||
.arg(bufCopy[5], 0, 'f', 1)
|
||||
.arg(bufCopy[6], 0, 'f', 1)
|
||||
.arg(bufCopy[7], 0, 'f', 1)
|
||||
.arg(bufCopy[8], 0, 'f', 1)
|
||||
.arg(bufCopy[9], 0, 'f', 1)
|
||||
.arg(bufCopy[10], 0, 'f', 1)
|
||||
.arg(bufCopy[11], 0, 'f', 1);
|
||||
LogInfo::setRunStatusText(pressureSet);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -1190,7 +1258,7 @@ void MainWidget::reclaimTanOpen()
|
||||
sysPara->devOp->controlReclaimTankOpen(!sysPara->devOp->isReclaimTankOpenEnable());
|
||||
sysPara->devOp->highVoltageCtrl(0); /*回收槽动作的时候务必关高压*/
|
||||
sysPara->status.reclaimTankstatus = 1;
|
||||
updateReclaimStatus();
|
||||
// updateReclaimStatus();
|
||||
|
||||
sysPara->status.currReclaimOperationCnt = 0;
|
||||
sysPara->status.reclainTankReachEnd = false;
|
||||
@@ -1341,6 +1409,15 @@ void MainWidget::on_m_RightBtn_clicked()
|
||||
sysPara->status.airPushingOnTime = 0;
|
||||
|
||||
airPushTimer->start(100); // 100ms
|
||||
m_pressureMonitor->reset();
|
||||
|
||||
// 喷嘴开启中
|
||||
if (m_reclaimOpenBtnFlashTimer && !m_reclaimOpenBtnFlashTimer->isActive()){
|
||||
ui.lb_RightBtn->setText(tr("正在排气..."));
|
||||
m_reclaimFlashState = true;
|
||||
m_reclaimOpenBtnFlashTimer->start();
|
||||
LogInfo::setRunStatusText("m_reclaimOpenBtnFlashTimer start");
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -1358,13 +1435,7 @@ void MainWidget::on_m_RightBtn_clicked()
|
||||
}
|
||||
}
|
||||
|
||||
// 喷嘴开启中
|
||||
if (m_reclaimOpenBtnFlashTimer && !m_reclaimOpenBtnFlashTimer->isActive()){
|
||||
ui.lb_RightBtn->setText(tr("正在排气..."));
|
||||
m_reclaimFlashState = true;
|
||||
m_reclaimOpenBtnFlashTimer->start();
|
||||
LogInfo::setRunStatusText("m_reclaimOpenBtnFlashTimer start");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2054,25 +2125,22 @@ void MainWidget::updatePrintDisplayLabel()
|
||||
m_PrintDisplay->update();
|
||||
}
|
||||
|
||||
static short recycleWarnTimes = 0;
|
||||
void MainWidget::RefreshStatusLight(){//100ms
|
||||
if(sysPara){
|
||||
if(sysPara->status.lastStatWarn != sysPara->status.statWarn || flagOfClearHighVltageWarnning){
|
||||
if(!(sysPara->status.statWarn & WARN_STATUS_INK_SWINT)){//墨线开关
|
||||
// ui->labelStatusInkSwint->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMGreen.PNG")));
|
||||
alarmStatus.inkSwint = DEV_STATUS_GREEN;
|
||||
}
|
||||
else {
|
||||
// ui->labelStatusInkSwint->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMRed.PNG")));
|
||||
alarmStatus.inkSwint = DEV_STATUS_RED;
|
||||
}
|
||||
|
||||
|
||||
if(!(sysPara->status.statWarn & WARN_STATUS_SUMP_WARN)){ //液位渗漏,高电平警告
|
||||
// ui->labelStatusInkLeak->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMGreen.PNG")));
|
||||
alarmStatus.inkLeak = DEV_STATUS_GREEN;
|
||||
}
|
||||
else {
|
||||
// ui->labelStatusInkLeak->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMRed.PNG")));
|
||||
alarmStatus.inkLeak = DEV_STATUS_RED;
|
||||
strTitle = tr("墨水缸满报警");
|
||||
if(sysPara->devOp->isMixValveOpen()) {
|
||||
@@ -2080,69 +2148,56 @@ void MainWidget::RefreshStatusLight(){//100ms
|
||||
}
|
||||
}
|
||||
if(!(sysPara->status.statWarn & WARN_STATUS_INK_WARN)){
|
||||
// ui->labelStatusInkWaterLevel->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMGreen.PNG")));
|
||||
alarmStatus.inkWaterLevel = DEV_STATUS_GREEN;
|
||||
}
|
||||
else {
|
||||
// ui->labelStatusInkWaterLevel->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMRed.PNG")));
|
||||
alarmStatus.inkWaterLevel = DEV_STATUS_RED;
|
||||
strTitle = tr("墨水液位报警");
|
||||
|
||||
|
||||
strTitle = tr("墨水液位报警");
|
||||
}
|
||||
if(!(sysPara->status.statWarn & WARN_STATUS_SOLV_WARN)){
|
||||
// ui->labelStatusSolvLevelWarn->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMGreen.PNG")));
|
||||
alarmStatus.solveLevelWarn = DEV_STATUS_GREEN;
|
||||
}
|
||||
else {
|
||||
// ui->labelStatusSolvLevelWarn->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMRed.PNG")));
|
||||
alarmStatus.solveLevelWarn = DEV_STATUS_RED;
|
||||
strTitle = tr("溶剂液位报警");
|
||||
|
||||
}
|
||||
|
||||
if(!(sysPara->status.statWarn & WARN_STATUS_RECYCLE_FAULT) ){
|
||||
// ui->labelStatusRecycleWarn->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMGreen.PNG")));
|
||||
alarmStatus.recycleWarn = DEV_STATUS_GREEN;
|
||||
|
||||
recycleWarnTimes = 0;
|
||||
}
|
||||
else {
|
||||
// ui->labelStatusRecycleWarn->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMRed.PNG")));
|
||||
alarmStatus.recycleWarn = DEV_STATUS_RED;
|
||||
// 实际使用中这个报警很容易触发,决定添加防抖
|
||||
if (recycleWarnTimes++ > 30) {
|
||||
alarmStatus.recycleWarn = DEV_STATUS_RED;
|
||||
}
|
||||
}
|
||||
|
||||
//static int HVfaultCnt=0;
|
||||
if(!(sysPara->status.statWarn & WARN_STATUS_POWER_MON)){
|
||||
if(!sysPara->status.lastHighVoltageFault)
|
||||
{
|
||||
flagOfClearHighVltageWarnning = false;
|
||||
// ui->labelStatusHighVoltageFault->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMGreen.PNG")));
|
||||
alarmStatus.highVoltageFault = DEV_STATUS_GREEN;
|
||||
alarmStatus.highVoltageFault = DEV_STATUS_GREEN;
|
||||
}
|
||||
// HVfaultCnt=0;
|
||||
//sysPara->status.HVFaultCloseEn=0;
|
||||
}
|
||||
else {
|
||||
// ui->labelStatusHighVoltageFault->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMRed.PNG")));
|
||||
alarmStatus.highVoltageFault = DEV_STATUS_RED;
|
||||
if(sysPara->status.isPrinting){ //已经在打印,则暂停打印 2013-9-15高压报警停止充电
|
||||
on_m_StopBtn_clicked();
|
||||
LogInfo::setRunStatusText(tr("高压故障,暂停打印"));
|
||||
setRunStatus(tr("高压故障,暂停打印"));
|
||||
|
||||
strTitle = tr("高压故障,暂停打印.");
|
||||
|
||||
sysPara->status.lastHighVoltageFault = true;
|
||||
}
|
||||
|
||||
if((sysPara->status.currReclaimTankPos != 0) && sysPara->para.HVFaultCloseEn )
|
||||
{
|
||||
//HVfaultCnt++;
|
||||
// 高压故障关回收槽
|
||||
if(sysPara->status.HVFaultCloseEn==0){
|
||||
sysPara->status.reclaimTankBlockedAppending=0;
|
||||
sysPara->status.reclaimCloseCnt=100;
|
||||
// on_pushButtonReclaimTankClose_pressed();
|
||||
on_m_LeftBtn_clicked();
|
||||
sysPara->status.reclaimTankBlockedAppending=1;
|
||||
LogInfo::setRunStatusText(tr("高压故障,关回收槽"));
|
||||
@@ -2158,17 +2213,14 @@ void MainWidget::RefreshStatusLight(){//100ms
|
||||
sysPara->status.lastStatWarn = sysPara->status.statWarn;
|
||||
if(sysPara->status.lastViscosityFault != sysPara->status.viscosityFault){
|
||||
if(sysPara->status.viscosityFault==0){
|
||||
// ui->labelStatusViscosityWarn->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMGreen.PNG")));
|
||||
alarmStatus.viscosityWarn = DEV_STATUS_GREEN;
|
||||
}
|
||||
else {
|
||||
if(sysPara->status.viscosityFault==1){
|
||||
|
||||
// ui->labelStatusViscosityWarn->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMRed.PNG")));
|
||||
alarmStatus.viscosityWarn = DEV_STATUS_RED;
|
||||
}
|
||||
else if(sysPara->status.viscosityFault==2) {
|
||||
// ui->labelStatusViscosityWarn->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMYellow.PNG")));
|
||||
alarmStatus.viscosityWarn = DEV_STATUS_YELLOW;
|
||||
}
|
||||
}
|
||||
@@ -2178,7 +2230,6 @@ void MainWidget::RefreshStatusLight(){//100ms
|
||||
if(!(sysPara->status.statWarn & WARN_STATUS_RECYCLE_FAULT)){ //20140211 nie
|
||||
if(sysPara->status.RecycleWarnCnt)
|
||||
alarmStatus.recycleWarn = DEV_STATUS_GREEN;
|
||||
// ui->labelStatusRecycleWarn->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMGreen.PNG")));
|
||||
sysPara->status.RecycleWarnCnt = 0;
|
||||
sysPara->status.lastRecycleWarn = 0;
|
||||
}
|
||||
@@ -2189,7 +2240,6 @@ void MainWidget::RefreshStatusLight(){//100ms
|
||||
{
|
||||
sysPara->status.lastRecycleWarn = RECYCLE_WARN_DELAY;//5s
|
||||
alarmStatus.recycleWarn = DEV_STATUS_RED;
|
||||
// ui->labelStatusRecycleWarn->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMRed.PNG")));
|
||||
sysPara->status.reclaimCloseCnt=100;
|
||||
if(sysPara->para.RecycleWarnAction)
|
||||
{
|
||||
@@ -2244,7 +2294,7 @@ bool MainWidget::updatePhaseIndicatorLight(){
|
||||
if(sysPara==0) return 0;
|
||||
|
||||
/*------------------------------------------喷头盖未关或回收槽未全部打开的时候不报相位故障-------------------------------------------------*/
|
||||
if((!sysPara->status.flight_tm_error && !sysPara->status.detect_phase_error) || (sysPara->status.statWarn & WARN_STATUS_HDINT) || !sysPara->status.reclainTankReachEnd){
|
||||
if((!sysPara->status.flight_tm_error && !sysPara->status.detect_phase_error) || !sysPara->status.reclainTankReachEnd){
|
||||
//故障后必须等手动按故障恢复才会继续
|
||||
if(!sysPara->para.suspendAfterPhaseFault && !sysPara->para.powerOffAfterPhaseFault){
|
||||
if(sysPara->status.lastPhaseFault){
|
||||
@@ -2522,6 +2572,20 @@ void MainWidget::onLabelFaultRusumePressed(){
|
||||
}
|
||||
}
|
||||
|
||||
void MainWidget::slt_resetCNT1()
|
||||
{
|
||||
sysPara->para.cnt1CurrValue = printSettingsModel.cnt1Settings.currValue;
|
||||
sysPara->para.cnt2CurrValue = QString::number(sysPara->status.calandar_and_dat.cnt2CurrValue,16).toInt();
|
||||
sysPara->devOp->writeFpgaCalandar(false);
|
||||
}
|
||||
|
||||
void MainWidget::slt_resetCNT2()
|
||||
{
|
||||
sysPara->para.cnt1CurrValue = QString::number(sysPara->status.calandar_and_dat.cnt1CurrValue,16).toInt();
|
||||
sysPara->para.cnt2CurrValue = printSettingsModel.cnt2Settings.currValue;
|
||||
sysPara->devOp->writeFpgaCalandar(false);
|
||||
}
|
||||
|
||||
extern int baudRateValue;
|
||||
void MainWidget::UpdateUIVersion(){
|
||||
int fpgaType = sysPara->status.fpgaVersionNum>>12;
|
||||
|
||||
Reference in New Issue
Block a user