diff --git a/.gitignore b/.gitignore index 8934108..128b702 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,4 @@ QtUI.r668 800X600_New_SystemProject-_NewInterface.zip bnsTest.png printSceneView.png +docs/ \ No newline at end of file diff --git a/CustomDoubleSpinBox.h b/CustomDoubleSpinBox.h new file mode 100644 index 0000000..fe85eea --- /dev/null +++ b/CustomDoubleSpinBox.h @@ -0,0 +1,24 @@ + +#ifndef _CUSTOM_DOUBLE_SPIN_BOX_H_ +#define _CUSTOM_DOUBLE_SPIN_BOX_H_ + +#include +#include + +class CustomDoubleSpinBox : public QDoubleSpinBox { +public: + explicit CustomDoubleSpinBox(QWidget *parent = nullptr) : QDoubleSpinBox(parent) { + // 设置一个较大的最大位数,让用户有足够的输入精度 + setDecimals(10); + } + +protected: + // 重写此方法,自定义数值如何显示在输入框中 + QString textFromValue(double value) const override { + // 使用 'g' 格式可以自动去掉末尾不必要的零 + // 或者使用 QString::number 配合手动处理 + return QString::number(value, 'g', decimals()); + } +}; + +#endif // _CUSTOM_DOUBLE_SPIN_BOX_H_ \ No newline at end of file diff --git a/DigitalInput.cpp b/DigitalInput.cpp index b4b69d8..78086ee 100644 --- a/DigitalInput.cpp +++ b/DigitalInput.cpp @@ -3,7 +3,9 @@ #include "MyInputMethod.h" #include #include +#include #include +#include #include #include @@ -52,8 +54,7 @@ DigitalInput::~DigitalInput() void DigitalInput::onCharPressed(){ QPushButton * button = qobject_cast(sender()); QString ch = button->text(); - - if (!m_currSpinBox) { + if (!m_currSpinBox && !m_currDoubleSpinBox) { ui->traceEdit->insert(ch); return; } @@ -62,34 +63,60 @@ void DigitalInput::onCharPressed(){ QString currentText = ui->traceEdit->text(); QString newText = currentText.left(cursorPos) + ch + currentText.mid(cursorPos); - if (newText.isEmpty()) { + if (newText.isEmpty()) { + ui->traceEdit->insert(ch); + return; + } + + if(m_currDoubleSpinBox) { + // 用正则表达式判定 newText是否是一个浮点数或部分浮点输入。 + // 允许的示例: 0.2251, 15.335, 15, -924.02, 5. (末尾点为临时状态), .5 + // 也允许单独的正负号作为正在输入中的状态: "-" 或 "+" + QString simulated = newText; + + // Allow single sign while typing + if (simulated == "-" || simulated == "+") { + ui->traceEdit->insert(ch); + return; + } + + // Regular expression: optional sign, then either digits with optional dot+digits, or dot+digits, or digits+dot (partial) + // 不限制小数位数;最终的最小/最大以及精度由 hideEvent 写回时决定 + QRegularExpression re("^[+-]?((\\d+(\\.\\d*)?)|(\\.\\d*))$"); + QRegularExpressionMatch match = re.match(simulated); + if (!match.hasMatch()) { + // not a valid float format (even partial) -> reject + return; + } + + // acceptable -> insert + ui->traceEdit->insert(ch); + return; + } + + if(ch == "." && m_currSpinBox) { + // SpinBox不能输入 . + return; + } + + if(ch == "-" && m_currSpinBox->minimum() < 0 && currentText.isEmpty()) { ui->traceEdit->insert(ch); return; } bool ok = false; int value = newText.toInt(&ok); - if (!ok) { - ui->traceEdit->insert(ch); + if (!ok) { return; } int max = m_currSpinBox->maximum(); - if (value <= max) { + if (value <= max) { ui->traceEdit->insert(ch); } } void DigitalInput::onKeyBackspacePressed(){ - -// if(m_currSpinBox && QString::number(m_currSpinBox->value()).size() == 1) { -// ui->traceEdit->clear(); -// } - -// #ifndef Q_OS_WIN32 -// //QWSServer::sendKeyEvent(0,Qt::Key_Backspace,Qt::NoModifier,true,false); //锟斤拷系统锟斤拷锟酵硷拷锟斤拷锟铰硷拷 -// MyInputMethod::sendEvent(Qt::Key_Backspace,Qt::NoModifier); -// #endif int cursorPos = ui->traceEdit->cursorPosition(); if (cursorPos > 0) { QString text = ui->traceEdit->text(); @@ -131,12 +158,6 @@ void DigitalInput::onEnterPressed() void DigitalInput::onClrPressed() { - // if(m_currSpinBox) { - // m_currSpinBox->setValue(std::min(m_currSpinBox->maximum(), std::max(m_currSpinBox->minimum(), 0))); - // ui->traceEdit->setText(m_currSpinBox->value()); - // // ui->traceEdit->setFocus(); - // } - ui->traceEdit->clear(); ui->traceEdit->setFocus(); } @@ -147,14 +168,28 @@ void DigitalInput::showEvent(QShowEvent *event) raise(); auto focusWidget = qApp->focusWidget(); + + QDoubleSpinBox* dbox = dynamic_cast(focusWidget); + if (dbox) { + m_currDoubleSpinBox = dbox; + m_currSpinBox = nullptr; + // Show value without padding trailing zeros (avoid decimals() padding) + ui->traceEdit->setText(QString::number(dbox->value(), 'g', 15)); + ui->traceEdit->setFocus(); + qDebug() << "The traceEdit has connected to the QDoubleSpinBox: " << dbox->objectName(); + return; + } + QSpinBox* box = dynamic_cast(focusWidget); if(!box) { - qWarning() << "focusWidget is not QSpinBox"; + qWarning() << "focusWidget is not QSpinBox or QDoubleSpinBox"; m_currSpinBox = nullptr; + m_currDoubleSpinBox = nullptr; return; } m_currSpinBox = box; + m_currDoubleSpinBox = nullptr; ui->traceEdit->setText(box->text()); // focusWidget->clearFocus(); ui->traceEdit->setFocus(); @@ -167,6 +202,18 @@ void DigitalInput::hideEvent(QHideEvent * event) { QWidget::hideEvent(event); + if (m_currDoubleSpinBox) { + bool ok = false; + double value = ui->traceEdit->text().toDouble(&ok); + if (!ok) value = m_currDoubleSpinBox->value(); + double min = m_currDoubleSpinBox->minimum(); + double max = m_currDoubleSpinBox->maximum(); + value = qBound(min, value, max); + m_currDoubleSpinBox->setValue(value); + m_currDoubleSpinBox->clearFocus(); + return; + } + if(m_currSpinBox) { int value = ui->traceEdit->text().toInt(); int min = m_currSpinBox->minimum(); @@ -175,4 +222,4 @@ void DigitalInput::hideEvent(QHideEvent * event) m_currSpinBox->setValue(value); m_currSpinBox->clearFocus(); } -} \ No newline at end of file +} diff --git a/DigitalInput.h b/DigitalInput.h index 2d6c864..fa4044b 100644 --- a/DigitalInput.h +++ b/DigitalInput.h @@ -3,6 +3,7 @@ #include #include +#include class MyInputMethod; namespace Ui { @@ -36,6 +37,7 @@ private: MyInputMethod *myInputMethod; QSpinBox* m_currSpinBox = nullptr; + QDoubleSpinBox* m_currDoubleSpinBox = nullptr; }; #endif // DIGITALINPUT_H diff --git a/InkJetPrinter.cpp b/InkJetPrinter.cpp index 9baa0ca..249ef8b 100644 --- a/InkJetPrinter.cpp +++ b/InkJetPrinter.cpp @@ -1806,7 +1806,13 @@ void InkJetPrinter::initStateManager() this, &InkJetPrinter::slt_enableCloseTank, Qt::DirectConnection); // 更新回收槽状态 connect(m_stateManager, &PrinterStateManager::sig_updateReclaimStatus, - this, [=](){m_MainWidget->updateReclaimStatus();}); + this, [=](){m_MainWidget->updateReclaimText();}); + // 不能进入准备状态,关回收槽 + connect(m_stateManager, &PrinterStateManager::sig_closeTank, + this, [=](){m_MainWidget->on_m_LeftBtn_clicked();}); + // 信息 + connect(m_stateManager, &PrinterStateManager::sig_infoMsg, + this, [=](QString msg){m_MainWidget->setRunStatus(msg);}); // ============ 开机时重置状态 ============ m_stateManager->initFromSysPara(); @@ -2555,7 +2561,7 @@ void InkJetPrinter::autoControlViscosityPumpForSelfCheck(int selfCheckCnt) if(!sysPara->devOp->isViscosityPumpOpen()) { sysPara->devOp->controlViscosityPump(true); qDebug() << "Start test viscosity pump."; - LogInfo::setRunStatusText("Start test viscosity pump."); +// LogInfo::setRunStatusText("Start test viscosity pump."); } } @@ -2563,7 +2569,7 @@ void InkJetPrinter::autoControlViscosityPumpForSelfCheck(int selfCheckCnt) if(sysPara->devOp->isViscosityPumpOpen()) { sysPara->devOp->controlViscosityPump(false); qDebug() << "Stop test viscosity pump."; - LogInfo::setRunStatusText("Stop test viscosity pump."); +// LogInfo::setRunStatusText("Stop test viscosity pump."); } } } @@ -2913,7 +2919,7 @@ bool InkJetPrinter::loadWorkFileAndPreparePrint(const QString &filename) PrintSettingModel::applyToSysPara(model, sysPara); - ret = m_MainWidget->generatePrintContent(scene); + ret = m_MainWidget->generatePrintContent(scene, model); if(!ret) { LogInfo::setRunStatusText(QString("Failed to generate print content from work file: %1").arg(filename)); delete scene; diff --git a/MyInputMethod.cpp b/MyInputMethod.cpp index 6f34389..3f45cf6 100644 --- a/MyInputMethod.cpp +++ b/MyInputMethod.cpp @@ -124,7 +124,7 @@ void MyInputMethod::updateHandler ( int type ){ switch(type){ case 0:break; case 1: - if(widget && (dynamic_cast(widget))){ + if(widget && (dynamic_cast(widget) || dynamic_cast(widget))){ if(digitalInput->isHidden()){ QWidget *hostWindow = widget->window(); QRect rec = QApplication::desktop()->screenGeometry(); diff --git a/PressureMonitor.cpp b/PressureMonitor.cpp new file mode 100644 index 0000000..2a34e02 --- /dev/null +++ b/PressureMonitor.cpp @@ -0,0 +1,111 @@ +#include "PressureMonitor.h" +#include + +PressureMonitor::PressureMonitor() + : m_tickCounter(0) + , m_sampleCount(0) + , m_bufIdx(0) + , m_totalTickCount(0) + , m_timeout(false) +{ + for (int i = 0; i < BUF_SIZE; i++) { + m_buf[i] = 0.0f; + } +} + +bool PressureMonitor::tick(float realtimePressure, float calibratedPressure) +{ + m_totalTickCount++; + + if (m_totalTickCount >= TIMEOUT_TICKS) { + m_timeout = true; + return true; + } + + if (m_tickCounter != 0) { + m_tickCounter = (m_tickCounter + 1) % SAMPLE_INTERVAL_TICKS; + return false; + } + m_tickCounter = (m_tickCounter + 1) % SAMPLE_INTERVAL_TICKS; + + if (calibratedPressure <= 0.0f) { + return false; + } + + m_buf[m_bufIdx] = realtimePressure; + m_bufIdx = (m_bufIdx + 1) % BUF_SIZE; + m_sampleCount++; + + if (m_sampleCount < BUF_SIZE) { + return false; + } + + float rangeMin = calibratedPressure - 10.0f; + float rangeMax = calibratedPressure + 10.0f; + + if (!checkFirst4InRange(rangeMin, rangeMax)) { + return false; + } + + float avg = computeTrimmedMean(); + return (avg >= rangeMin && avg <= rangeMax); +} + +void PressureMonitor::reset() +{ + m_tickCounter = 0; + m_sampleCount = 0; + m_bufIdx = 0; + m_totalTickCount = 0; + m_timeout = false; + for (int i = 0; i < BUF_SIZE; i++) { + m_buf[i] = 0.0f; + } +} + +bool PressureMonitor::isCurrentlyInRange() const +{ + return (m_sampleCount >= BUF_SIZE); +} + +int PressureMonitor::stableTickCount() const +{ + return m_sampleCount; +} + +bool PressureMonitor::wasTimeout() const +{ + return m_timeout; +} + +const float* PressureMonitor::buffer() const +{ + return m_buf; +} + +bool PressureMonitor::checkFirst4InRange(float rangeMin, float rangeMax) const +{ + for (int i = 0; i < 4; i++) { + float val = m_buf[(m_bufIdx + i) % BUF_SIZE]; + if (val < rangeMin || val > rangeMax) { + return false; + } + } + return true; +} + +float PressureMonitor::computeTrimmedMean() const +{ + float minVal = m_buf[0]; + float maxVal = m_buf[0]; + float sum = 0.0f; + + for (int i = 0; i < BUF_SIZE; i++) { + float val = m_buf[i]; + sum += val; + if (val < minVal) minVal = val; + if (val > maxVal) maxVal = val; + } + + return (sum - minVal - maxVal) / (float)(BUF_SIZE - 2); +} \ No newline at end of file diff --git a/PressureMonitor.h b/PressureMonitor.h new file mode 100644 index 0000000..d4f1b88 --- /dev/null +++ b/PressureMonitor.h @@ -0,0 +1,47 @@ +#ifndef PRESSUREMONITOR_H +#define PRESSUREMONITOR_H + +class PressureMonitor +{ +public: + PressureMonitor(); + + // 每个100ms tick 调用一次(外部调用频率不变) + // realtimePressure: 实时压力 (sysPara->status.PRESSURE) + // calibratedPressure: 标定压力 (sysPara->para.pressure) + // + // 内部逻辑:每500ms采样一次,维护最近12个采样的环形缓冲区。 + // 缓冲区满12个后,先检查最旧的4个采样是否各自在标定值 ±10 范围内, + // 满足后去掉全部12个中的最大值和最小值取平均,判断均值是否在 ±10 内。 + // 每次新采样入队、最旧采样出队后立即重新判定。 + // 返回 true 表示: + // 1) 前4入界且去极值均值在 ±10 范围内,或 + // 2) 超过 2 分钟仍未稳定,兜底超时结束 + bool tick(float realtimePressure, float calibratedPressure); + + void reset(); + + bool isCurrentlyInRange() const; + int stableTickCount() const; + bool wasTimeout() const; + + // 返回环形缓冲区(12个压力值) + const float* buffer() const; + +private: + float computeTrimmedMean() const; + bool checkFirst4InRange(float rangeMin, float rangeMax) const; + + static const int SAMPLE_INTERVAL_TICKS = 5; // 500ms / 100ms + static const int BUF_SIZE = 12; // 缓冲区大小 + static const int TIMEOUT_TICKS = 1200; // 2分钟 / 100ms + + int m_tickCounter; // 100ms tick 计数,==0 时采样 + int m_sampleCount; // 已采集样本总数 + int m_bufIdx; // 环形缓冲区下一次写入位置 + float m_buf[12]; // 环形缓冲区 + int m_totalTickCount; // 超时用总 tick 计数 + bool m_timeout; // 是否已超时 +}; + +#endif // PRESSUREMONITOR_H \ No newline at end of file diff --git a/Printsetting.cpp b/Printsetting.cpp index c34c4a8..9a9fcbf 100644 --- a/Printsetting.cpp +++ b/Printsetting.cpp @@ -89,6 +89,14 @@ void PrintSetting::init() if(b) on_radioButtonSynTriggerExternal_clicked(); }); + + connect(ui->dsb_diameter, QOverload::of(&QDoubleSpinBox::valueChanged), this, [this](double v){ + updateTriggerPPM(); + }); + + connect(ui->dsb_pulsePerCycle, QOverload::of(&QDoubleSpinBox::valueChanged), this, [this](double v){ + updateTriggerPPM(); + }); } extern void MySleep(unsigned int msec); @@ -124,8 +132,13 @@ void PrintSetting::updateModelFromUI(){ m_model.eleEyeTriggerPrintDelay = ui->spinBoxEleEyeTriggerPrintDelay->value(); m_model.timeTriggerPrintMode = 0; m_model.triggerInterval = ui->spinBoxEleEyeTriggerIntervalMs->value(); + + updateTriggerPPM(); m_model.encoderPulsePerMm = ui->lineEditTriggerPulsePerMm->text().toFloat(); + m_model.encoderDiameter = ui->dsb_diameter->value(); + m_model.encoderPulsePerCycle = ui->dsb_pulsePerCycle->value(); + if(ui->eleEyeEdgetTriggerExternal->isChecked() && ui->radioButtonSynTriggerExternal->isChecked()) { m_model.triggerMode = ui->radioButtonEleEyeEdgetTrigger->isChecked() ? PRINT_TRIGGER_ELEC_EYE_EDGE : PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL; } @@ -215,7 +228,16 @@ void PrintSetting::TriggerupdateModelToUI() ui->spinBoxEleEyeTriggerRepeatCnt->setValue(m_model.eleEyeRepeatCnt); ui->spinBoxSynTriggerPrintLen->setText(QString::number(m_model.triggerInterval)); - ui->lineEditTriggerPulsePerMm->setText(QString::number((double)m_model.encoderPulsePerMm)); + + auto b = ui->dsb_diameter->blockSignals(true); + ui->dsb_diameter->setValue(m_model.encoderDiameter); + ui->dsb_diameter->blockSignals(b); + + b = ui->dsb_pulsePerCycle->blockSignals(true); + ui->dsb_pulsePerCycle->setValue(m_model.encoderPulsePerCycle); + ui->dsb_pulsePerCycle->blockSignals(b); + + updateTriggerPPM(); ui->comboBoxEleEyeMakeClean->setCurrentIndex(0); @@ -241,10 +263,10 @@ void PrintSetting::TriggerupdateModelToUI() void PrintSetting::updateSysStatusToUI(){ } -void PrintSetting::on_pushButtonApplyPulseFix_clicked() +void PrintSetting::updateTriggerPPM() { - float circle = ui->lineEditDiameter->text().toFloat() * 3.1415926; - float pulseNum = ui->lineEditPulsePerCycle->text().toFloat(); + double circle = ui->dsb_diameter->value() * 3.1415926; + double pulseNum = ui->dsb_pulsePerCycle->value(); if(circle != 0){ auto pulseNumPerMM = 4*pulseNum/circle; //电路和Fpga做了4倍频处理,这里乘以4是为了匹配4倍频的处理进行正确的显示 m_model.encoderPulsePerMm = pulseNumPerMM; @@ -252,15 +274,6 @@ void PrintSetting::on_pushButtonApplyPulseFix_clicked() ui->lineEditTriggerPulsePerMm->setText(QString::number(pulseNumPerMM)); ui->lineEditTriggerPulsePerMm->blockSignals(b); } - - return; - - if(!sysPara) - return; - - pulseNumFix->bindSysPara(sysPara); - pulseNumFix->hide(); - pulseNumFix->show(); } void PrintSetting::onPulseNumFixDone(float value){ @@ -304,16 +317,6 @@ void PrintSetting::on_radioButtonEleEyeLevelTrigger_pressed() void PrintSetting::on_radioButtonSynTrigger_pressed() { setTriggerUI(PRINT_TRIGGER_SYNCHRONIZER); - //edit@11-19 - // const unsigned short &FpgaVer=sysPara->status.build_dat.builTime; - // //72版本禁用字符宽度 - // if(72 == FpgaVer){ - // ui->spinBoxSynTriggerPrintLenRatio->setValue(0); - // ui->spinBoxSynTriggerPrintLenRatio->setEnabled(0); - // }else if (67 == FpgaVer) - // ui->spinBoxSynTriggerPrintLenRatio->setEnabled(1); - // emit synDisableFontWidth(true); - } void PrintSetting::on_checkEyeTriggerSynPrintEn_clicked(bool checked) @@ -327,16 +330,6 @@ void PrintSetting::on_checkEyeTriggerSynPrintEn_clicked(bool checked) #ifndef NON_CABLE // ui->spinBoxSynTriggerPrintLen->setEnabled(1); #endif - // ui->labelSynTriggerPrintLen->setEnabled(1); - // ui->lineEditTriggerPulsePerMm->setEnabled(1); - // ui->labelTriggerPulsePerMm->setEnabled(1); - // ui->spinBoxSynTriggerPrintLenRatio->setEnabled(1); - // ui->labelSynTriggerPrintLenRatio->setEnabled(1); - // ui->checkBoxEleEyeMakeClean->setEnabled(1); - // ui->pushButtonApplyPulseFix->setEnabled(1); - // ui->comboBoxSynPrintMode->setEnabled(1); - // ui->labelSynPrintMode->setEnabled(1); - // ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(0); ui->labelEleEyeTriggerPrintDelay->setText(tr("触发延时(毫米)")); ui->labelEleEyeTriggerIntervalMs->setText(tr("重复间隔(毫米)")); ui->labelEleMaskTime->setText(tr("抑止距离(毫米)")); @@ -351,16 +344,6 @@ void PrintSetting::on_checkEyeTriggerSynPrintEn_clicked(bool checked) #ifndef NON_CABLE // ui->spinBoxSynTriggerPrintLen->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); #endif - // ui->labelSynTriggerPrintLen->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); - // ui->lineEditTriggerPulsePerMm->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); - // ui->labelTriggerPulsePerMm->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); - // ui->spinBoxSynTriggerPrintLenRatio->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); - // ui->labelSynTriggerPrintLenRatio->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); - // ui->checkBoxEleEyeMakeClean->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); - // ui->pushButtonApplyPulseFix->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); - // ui->comboBoxSynPrintMode->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); - // ui->labelSynPrintMode->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); - // ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(1); ui->labelEleEyeTriggerPrintDelay->setText(tr("触发延时(毫秒)")); ui->labelEleEyeTriggerIntervalMs->setText(tr("重复间隔(毫秒)")); ui->labelEleMaskTime->setText(tr("抑止距离(毫秒)")); @@ -602,8 +585,8 @@ void PrintSetting::on_eleEyeEdgetTriggerExternal_clicked() void PrintSetting::setEnableSynTriggerSetting(bool flag){ // ui->labelTriggerPulsePerMm->setEnabled(flag); - ui->lineEditTriggerPulsePerMm->setEnabled(flag); - ui->pushButtonApplyPulseFix->setEnabled(flag); + ui->lineEditTriggerPulsePerMm->setEnabled(false); + // ui->pushButtonApplyPulseFix->setEnabled(flag); // ui->labelSynTriggerPrintLen->setEnabled(flag); ui->spinBoxSynTriggerPrintLen->setEnabled(flag); ui->comboBoxSyncActType->setEnabled(flag); @@ -732,6 +715,8 @@ void PrintSettingModel::loadFromXml(PrintSettingModel& model, const QXmlStreamAt model.unlimitedRepeat = attrs.value("unlimitedRepeat").toInt() != 0; model.triggerMode = attrs.value("triggerMode").toUInt(); model.encoderPulsePerMm = attrs.value("encoderPulsePerMm").toFloat(); + model.encoderDiameter = attrs.value("encoderDiameter").toDouble(); + model.encoderPulsePerCycle = attrs.value("encoderPulsePerCycle").toDouble(); model.printColDelay = attrs.value("printColDelay").toUInt(); model.volParaIndex = (unsigned short)attrs.value("volParaIndex").toUInt(); model.eleEyeTriggerPrintDelay = (unsigned short)attrs.value("eleEyeTriggerPrintDelay").toUInt(); @@ -773,6 +758,8 @@ void PrintSettingModel::saveToXml(const PrintSettingModel& model, QXmlStreamWrit writer.writeAttribute("unlimitedRepeat", QString::number(model.unlimitedRepeat)); writer.writeAttribute("triggerMode", QString::number(model.triggerMode)); writer.writeAttribute("encoderPulsePerMm", QString::number((double)model.encoderPulsePerMm)); + writer.writeAttribute("encoderPulsePerCycle", QString::number(model.encoderPulsePerCycle)); + writer.writeAttribute("encoderDiameter", QString::number(model.encoderDiameter)); writer.writeAttribute("printColDelay", QString::number(model.printColDelay)); writer.writeAttribute("volParaIndex", QString::number(model.volParaIndex)); writer.writeAttribute("eleEyeTriggerPrintDelay", QString::number(model.eleEyeTriggerPrintDelay)); diff --git a/Printsetting.h b/Printsetting.h index fe1b159..5aa99c9 100644 --- a/Printsetting.h +++ b/Printsetting.h @@ -42,6 +42,10 @@ struct PrintSettingModel float encoderPulsePerMm = 40; // 编码器的每毫米脉冲数 + double encoderDiameter = 10; // 编码器的直径,单位毫米 + + double encoderPulsePerCycle = 5000; // 编码器每圈的脉冲数 + unsigned printColDelay = 6; // 打印列延迟,(字宽) unsigned short volParaIndex = 0; // 喷印模式的索引, 决定选择哪组电压参数 @@ -145,7 +149,7 @@ public: private slots: void buttonClickedSlot(); - void on_pushButtonApplyPulseFix_clicked(); + void updateTriggerPPM(); void onPulseNumFixDone(float); diff --git a/Printsetting.ui b/Printsetting.ui index 912f867..b2df729 100644 --- a/Printsetting.ui +++ b/Printsetting.ui @@ -592,6 +592,9 @@ + + false + 0 @@ -816,19 +819,6 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - 400 - 220 - 161 - 31 - - - - Qt::ImhNone - - @@ -861,49 +851,57 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - + 400 170 - 161 + 171 31 - - Qt::ImhNone + + QAbstractSpinBox::NoButtons + + + 10 + + + 1.000000000000000 + + + 10000000.000000000000000 + + + 100.000000000000000 + + + 5000.000000000000000 - + 400 - 260 - 161 - 37 + 220 + 171 + 31 - - - 0 - 0 - + + QAbstractSpinBox::NoButtons - - - 150 - 0 - + + 10 - - Qt::LeftToRight + + 5.000000000000000 - - 脉冲数修正 + + 10000.000000000000000 - - - :/icon/pulse.png:/icon/pulse.png + + 100.000000000000000 @@ -1484,6 +1482,11 @@ pressed() + + CustomDoubleSpinBox + QDoubleSpinBox +
CustomDoubleSpinBox.h
+
diff --git a/QtUI.pro b/QtUI.pro index c62631b..5e5d599 100644 --- a/QtUI.pro +++ b/QtUI.pro @@ -96,6 +96,7 @@ HEADERS += Public.h \ # ParaSettingUI.h \ DevOp.h \ posix_qextserialport.h \ + PressureMonitor.h \ rfid/sm4.h \ rfid/sm3.h \ rfid/rfidfunction.h \ @@ -184,7 +185,8 @@ HEADERS += Public.h \ runtimectrl.h \ dump.h \ DlgCanvasHeightEditor.h \ - StateMachine/PrinterStateManager.h + StateMachine/PrinterStateManager.h \ + CustomDoubleSpinBox.h FORMS += \ @@ -253,6 +255,7 @@ SOURCES +=\ # ParaSettingUI.cpp \ DevOp.cpp \ posix_qextserialport.cpp \ + PressureMonitor.cpp \ rfid/sm4.cpp \ rfid/sm3.cpp \ rfid/rfidfunction.cpp \ @@ -394,4 +397,4 @@ if(contains(DEFINES,__2451WIFI__)) #SOURCES += /home/student/newDisk/2451_linux/wpa_supplicant_hostapd/wpa_supplicant_hostapd-0.8/src/common/wpa_ctrl.c #INCLUDEPATH += /home/student/newDisk/2451_linux/wpa_supplicant_hostapd/wpa_supplicant_hostapd-0.8/src #INCLUDEPATH += /home/student/newDisk/2451_linux/wpa_supplicant_hostapd/wpa_supplicant_hostapd-0.8/src/utils -} +} \ No newline at end of file diff --git a/StateMachine/printerstatemanager.cpp b/StateMachine/printerstatemanager.cpp index be00e15..d3caa41 100644 --- a/StateMachine/printerstatemanager.cpp +++ b/StateMachine/printerstatemanager.cpp @@ -31,17 +31,6 @@ PrinterStateManager::~PrinterStateManager() } } -void PrinterStateManager::initTimer() -{ - if (m_updateUITimer == NULL) { - m_updateUITimer = new QTimer(); - connect(m_updateUITimer, &QTimer::timeout, this, - &PrinterStateManager::slt_timeout); - m_updateUITimer->setInterval(50); - m_updateUITimer->setSingleShot(true); - } -} - QString PrinterStateManager::stateName() const { switch (m_currentState) { @@ -149,30 +138,23 @@ void PrinterStateManager::requestTransition(PrinterEvent event) setState(trans->toState, trans->description); } -static int f = 0; void PrinterStateManager::checkReadyState() { // 自检完成后,随时检查能否进入READY状态 if (m_currentState == PrinterState::SELF_CHECK) { if (m_sysPara) { - if (f ++ > 50) { - f = 0; - LogInfo::setRunStatusText - (QString("%3:%1---airPushing:%2") - .arg(m_sysPara->status.reclaimTankstatus) - .arg(m_sysPara->status.airPushing) - .arg(stateName())); - } - + // 现在还有个压力稳定期,期间也不能切换状态 if (m_sysPara->status.airPushing) { - emit sig_enableOpenTank(false); - emit sig_enableCloseTank(false); return; } switch (m_sysPara->status.reclaimTankstatus) { case 5: - setState(PrinterState::READY, "READY"); + emit sig_updateReclaimStatus(); + // 检测压力波动 -10~10,检测 3 秒,相位故障 检测3秒,总时长不超过60秒 + if (!isState(PrinterState::READY)) { + if (m_canReadyTimer) m_canReadyTimer->start(); + } break; default: // 回收槽状态变化后就更新一次 @@ -202,8 +184,9 @@ void PrinterStateManager::setState(PrinterState newState, const QString& reason) qDebug() << "State changed:" << stateName() << "Reason:" << reason; - if (m_updateUITimer && !m_updateUITimer->isActive()) + if (m_updateUITimer && !m_updateUITimer->isActive()) { m_updateUITimer->start(); + } // 发送信号通知外部 emit sig_stateChanged(newState, m_previousState, reason); @@ -227,30 +210,22 @@ QString PrinterStateManager::stateNameFromEnum(PrinterState state) const // ============ 守卫条件函数 ============ -static char times = 0; bool PrinterStateManager::guardReclaimTankOpen() { if (!m_sysPara) return false; - if (times ++ > 50) { - times = 0; - LogInfo::setRunStatusText(QString("guardReclaimTankOpen:%1").arg(m_sysPara->status.reclainTankReachEnd)); - LogInfo::setRunStatusText(QString("reclaimTankstatus:%1").arg(m_sysPara->status.reclaimTankstatus)); - } - + // 开完成和关完成后,回收槽状态会变成0 return m_sysPara->status.reclainTankReachEnd || (m_sysPara->status.reclaimTankstatus == 5); } bool PrinterStateManager::guardInkSwintOpen() { if (!m_sysPara) return false; - LogInfo::setRunStatusText("guardInkSwintOpen:" + !(m_sysPara->status.statWarn & WARN_STATUS_INK_SWINT)); return !(m_sysPara->status.statWarn & WARN_STATUS_INK_SWINT); } bool PrinterStateManager::guardNoError() { if (!m_sysPara) return false; - LogInfo::setRunStatusText("guardNoError:" + (m_sysPara->status.statWarn == 0)); return m_sysPara->status.statWarn == 0; } @@ -269,8 +244,7 @@ bool PrinterStateManager::guardNoSolventWarn() bool PrinterStateManager::guardSelfCheckDone() { if (!m_sysPara) return false; - LogInfo::setRunStatusText("guardSelfCheckDone:" + m_sysPara->status.selfCheckDone); - return m_sysPara->status.selfCheckDone == true; + return m_sysPara->status.selfCheckDone; } bool PrinterStateManager::guardCanStartPrint() @@ -282,15 +256,34 @@ bool PrinterStateManager::guardCanStartPrint() guardNoError() && guardSelfCheckDone(); } -void PrinterStateManager::slt_timeout() +void PrinterStateManager::initTimer() +{ + if (m_updateUITimer == NULL) { + m_updateUITimer = new QTimer(); + connect(m_updateUITimer, &QTimer::timeout, this, + &PrinterStateManager::slt_timeoutUI); + m_updateUITimer->setInterval(50); + m_updateUITimer->setSingleShot(true); + } + if (m_canReadyTimer == NULL) { + m_canReadyTimer = new QTimer(); + connect(m_canReadyTimer, &QTimer::timeout, this, + &PrinterStateManager::slt_timeoutReady); + m_canReadyTimer->setInterval(500); + } +} + +void PrinterStateManager::slt_timeoutUI() { if (m_sysPara) { - LogInfo::setRunStatusText(QString("slt_timeout ENTER:%1--state:%2--airPushing:%3") + LogInfo::setRunStatusText(QString("slt_timeout ENTER:%1--state:%2") .arg(stateName()) - .arg(m_sysPara->status.reclaimTankstatus) - .arg(m_sysPara->status.airPushing)); + .arg(m_sysPara->status.reclaimTankstatus)); switch (m_sysPara->status.reclaimTankstatus) { + case 0: + emit sig_updateReclaimStatus(); + break; case 1: // 开 emit sig_enableOpenTank(false); emit sig_enableCloseTank(true); @@ -303,8 +296,6 @@ void PrinterStateManager::slt_timeout() case 4: break; case 5: // 开完成 -// emit sig_enableStartPrint(true); -// emit sig_enableStopPrint(true); emit sig_enableOpenTank(false); emit sig_enableCloseTank(true); break; @@ -342,3 +333,32 @@ void PrinterStateManager::slt_timeout() // 避免发出太多信号 if (m_updateUITimer) m_updateUITimer->stop(); } + +static short allTimes = 0; +static short checkTimes = 0; +void PrinterStateManager::slt_timeoutReady() +{ + allTimes++; //3s(checkTimes=6)一个周期,不超过60秒 + if (allTimes > 120) { + if (m_canReadyTimer) m_canReadyTimer->stop(); + + allTimes = 0; + checkTimes = 0; + emit sig_closeTank(); + emit sig_infoMsg(tr("相位故障,回收喷嘴")); + } + + emit sig_infoMsg(tr("检查相位中...")); + + // 检查相位,如果有一个错误,就重新开始累计 + if (m_sysPara->status.lastPhaseFault) { checkTimes = 0; } + + // 累计6次(3秒)后,再进入READY状态 + if (checkTimes++ > 5){ + if (m_canReadyTimer) m_canReadyTimer->stop(); + + checkTimes = 0; + setState(PrinterState::READY, "READY"); + emit sig_infoMsg(tr("检查完毕")); + } +} diff --git a/StateMachine/printerstatemanager.h b/StateMachine/printerstatemanager.h index b21f896..b952ec6 100644 --- a/StateMachine/printerstatemanager.h +++ b/StateMachine/printerstatemanager.h @@ -69,6 +69,11 @@ signals: // 更新回收槽状态 void sig_updateReclaimStatus(); + + // 收回收槽 + void sig_closeTank(); + // 提示信息 + void sig_infoMsg(QString); private: PrinterStateManager(); ~PrinterStateManager(); @@ -79,9 +84,6 @@ private: PrinterState m_currentState = PrinterState::IDLE; PrinterState m_previousState = PrinterState::IDLE; - QTimer* m_updateUITimer = NULL; - void initTimer(); - // 状态转移表 // 守卫条件函数类型 using GuardFunc = std::function; @@ -129,7 +131,12 @@ private: // 检查是否满足所有打印条件 bool guardCanStartPrint(); +private: + QTimer* m_updateUITimer = NULL; //更新按钮UI + QTimer* m_canReadyTimer = NULL; //回收槽到底后检查是否满足打印条件 + void initTimer(); private slots: - void slt_timeout(); + void slt_timeoutUI(); + void slt_timeoutReady(); }; #endif // PRINTERSTATEMANAGER_H diff --git a/SysPara.h b/SysPara.h index e356320..34aaacb 100644 --- a/SysPara.h +++ b/SysPara.h @@ -1115,7 +1115,7 @@ typedef struct{ int viscosityFault;// 0 正常,1-粘度值高,2-粘度值低 int lastViscosityFault; //用来记录上一次的粘度错误状态 int lastStatWarn; - int lastPhaseFault; + int lastPhaseFault; //相位 int phaseErrorCnt; /* Yang */ diff --git a/SystemManage.cpp b/SystemManage.cpp index ce7614a..2f40a4c 100644 --- a/SystemManage.cpp +++ b/SystemManage.cpp @@ -568,15 +568,14 @@ fi\n" ; void SystemManage::on_pushButtonUpdateSoftware_pressed() { if(sysPara->status.updateSoftEN==0){ - QWidget *p = dialogUpateMm->parentWidget(); - if (p) { - QPoint topLeft = p->mapToGlobal(QPoint(0, 0)); - int x = topLeft.x() + (p->width() - dialogUpateMm->width()) / 2; - int y = topLeft.y() + (p->height() - dialogUpateMm->height()) / 2 - 100; - dialogUpateMm->move(x, y); - } dialogUpateMm->clearAuth(); dialogUpateMm->show(); + + QPoint topLeft = this->mapToGlobal(QPoint(0, 0)); + int x = topLeft.x() + (this->width() - dialogUpateMm->width()) / 2; + int y = topLeft.y() + (this->height() - dialogUpateMm->height()) / 2 - 200; + dialogUpateMm->move(x, y); + } else ondialogAuthorizationAccepted(); } diff --git a/TestPrintWidget.ui b/TestPrintWidget.ui index 1a1fdab..9e4b491 100644 --- a/TestPrintWidget.ui +++ b/TestPrintWidget.ui @@ -498,6 +498,39 @@
+ + + + QPushButton { + background: qlineargradient(x1: 0.5, y1: 0, x2: 0.5, y2: 1, stop: 0 #6F9CD6, stop: 1 #FFFFFF); + border: 1px solid #a0a0a0; + border-radius: 8px; + padding: 8px 12px; + min-width: 90px; + min-height: 50px; + } + QPushButton:hover { + background-color: #d0d0d0; + } + QPushButton:pressed { + background-color: #c0c0c0; + } + + + 另存为 + + + + :/image/saveAs.png:/image/saveAs.png + + + + 62 + 62 + + + + diff --git a/VerBVersion.h b/VerBVersion.h index 59bbc36..e43c0a4 100644 --- a/VerBVersion.h +++ b/VerBVersion.h @@ -6,7 +6,7 @@ */ #define UP_PRINTER_MAJOR_VER 6 #define UP_PRINTER_MINOR_VER 9 -#define UP_PRINTER_RIVISION_VER 1 +#define UP_PRINTER_RIVISION_VER 5 #define SUB_VERSION "_KOR" #ifdef __RFID_OLD #define SUB_RFID "_RO" diff --git a/chinese.ts b/chinese.ts index 90612e9..6df7879 100644 --- a/chinese.ts +++ b/chinese.ts @@ -1921,25 +1921,25 @@ - + 开始自检,请等待%1秒... - - - + + + 自检完成!!! - + 警告 - + 提示 @@ -1954,20 +1954,20 @@ - + 开始自检,请等待60秒... - - - + + + 正在准备重启,请等待%1秒...... - + 压力泄漏或压力传感器故障! @@ -1993,125 +1993,125 @@ - - + + 缺少墨水,喷码机不能正常工作! - - + + 停止打印,自动关闭高压. - + flagOfPowerOnMode: %1 - - + + 电机故障 - + 回收槽到头 - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - - - + + + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - - - + + + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷墨水卡成功, 请及时将该墨水卡对应的墨水添加到机器中 - + 刷墨水卡成功! - + 刷溶剂卡成功, 请及时将该溶剂卡对应的溶剂添加到机器中 - + 刷溶剂卡成功! - + 请及时使用墨水盒附带的IC卡激活墨水盒 - + 墨水液位报警超过%1小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请及时使用溶剂盒附带的IC卡激活溶剂盒 - + 溶剂液位报警超过%1小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + File not found: %1 - + 刷卡倒计时起始时间文件不存在 @@ -3084,6 +3084,7 @@ + 喷嘴开启 @@ -3091,7 +3092,8 @@ - + + 喷嘴关闭 @@ -3111,277 +3113,282 @@ - - - - + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - - - + + + 正在准备关机,请等待%1秒... - + 准备关机... - + 关机失败!!! - - - - - + + + + + 错误 - + 喷印间隔过短,应高于%1! - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - + 喷嘴已开启 - - + + 喷嘴开启中 - + 喷嘴已关闭 - + 喷嘴关闭中 - - + + print:%1--print:%2--state:%3 + + + + + stop:%1--print:%2--state:%3 + + + + + 正在排气... - - + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - - + + 正常 - + 相位故障, 关闭回收槽 - - + + 相位故障,关闭回收槽 - - 提示 + + 等待压力稳定... - - 随机码文本将展出到U盘,请插入U盘 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + 高压故障,关回收槽和墨线 - - + + 回收故障,关闭回收槽,关墨线 - + 回收故障. - + 回收异常,墨线可能偏离.(%1) - + 正在喷印....... - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - - + + + 相位故障,准备关机 - - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - - + + 相位故障,屏蔽充电 @@ -3749,12 +3756,12 @@ p, li { white-space: pre-wrap; } - + 喷印间隔(毫米): - + 同步喷印模式: @@ -3774,100 +3781,100 @@ p, li { white-space: pre-wrap; } - + 脉冲信号值: - + 无镜像打印 - + 自动水平翻转 - + 自动垂直翻转 - + 中心对称旋转 - - + + 延时(毫秒): - - + + 触发延时(毫秒) - + 脉冲输出使能 - + 禁止电眼清零 - + 允许电眼复位 - + 允许电眼立即复位 - + 电眼清零 - + 字符宽度: - + 产生脉冲所需计数: - + 间隔模式: - + 行末<->行首 - + 行首<->行首 - - + + 重复间隔(毫秒) - + 封锁时间(毫秒) @@ -3878,13 +3885,13 @@ p, li { white-space: pre-wrap; } - + 内部 - + 外部 @@ -3904,163 +3911,176 @@ p, li { white-space: pre-wrap; } - - 脉冲数修正 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 带补偿的正转打印 - + 带补偿的反转打印 - + 同步器来源 - + 同步器直径(毫米): - + 脉冲数/转: - + 其他设置 - + 镜象交替类型: - + 镜像交替间隔: - + 调试设置 - + 开启墨点飞行补偿 - + 墨点飞行补偿统计窗口(系统时钟周期), 0表示使用相检得到的飞行时间 - + 启用加减速预测 - + ✕ - + ✓ - - + + 提示 - + 应用成功 - - + + 延时(毫米): - - - + + + 触发延时(毫米) - + 默认设置已保存 - - - + + + 重复间隔(毫米) - - + + 抑止距离(毫米) - + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) + + PrinterStateManager + + + 相位故障,回收喷嘴 + + + + + 检查相位中... + + + + + 检查完毕 + + + PulseNumFix @@ -4733,6 +4753,16 @@ p, li { white-space: pre-wrap; } 清空产品计数 + + + 重置计数器1 + + + + + 重置计数器2 + + SystemManage @@ -4764,14 +4794,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -4802,7 +4832,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -4844,9 +4874,9 @@ p, li { white-space: pre-wrap; } - - - + + + 自动 @@ -4858,15 +4888,15 @@ p, li { white-space: pre-wrap; } - - - - - - - - - + + + + + + + + + 开 @@ -4878,29 +4908,29 @@ p, li { white-space: pre-wrap; } - - - - - - - - - - + + + + + + + + + + 关 - - - - - - - + + + + + + + 警告 @@ -4916,309 +4946,309 @@ p, li { white-space: pre-wrap; } - - - + + + 手动 - + 请先移开喷头盖! - - - - - - - - + + + + + + + + 启动 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + 提示 - - - - + + + + 密码不正确! - + Application - + 是否确认更新字库? - + 没找到对应字库,更新失败! - + 更新字库成功,重启后生效! - + 恢复出厂设置成功,请重新关机上电 - + 校准触摸屏 - + 是否确认开始校准程序?请小心进行校准! - + 是否确认更新软件? - - - - - + + + + + + - 错误 - + 更新失败! - + 软件更新成功,重启后生效! - + 找不到更新软件! - + 是否确认更新系统? - + 系统更新成功,重启后生效! - + 文件不存在! - + 如果开始清洗,务必确认回收槽已经打开10毫米以上,并且在一分钟后将停止清洗 - + 开始清洗 - + 停止清洗 - + 压力 - + autoclean cancel or status: - + (2/3) Cleaning - + (3/3) Cleaning - + 是否确认导出配置到U盘? - + 检测不到U盘 - + 成功导出配置到U盘 - + 是否确认从U盘导入配置? - + 配置文件/udisk/sysPara.bin不存在! - + 从U盘成功导入配置,重启后生效! - + autoclean start - + 是否确认重启? - + 是否开始电机测试? - + Cancel - + 正在排气,是否停止? - + 确定要升级FPGA软件吗? - + 没有FPGA升级文件 - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -5655,13 +5685,13 @@ p, li { white-space: pre-wrap; } - + background-color:#828E9E; - + QPushButton { background: qlineargradient(x1: 0.5, y1: 0, x2: 0.5, y2: 1, stop: 0 #6F9CD6, stop: 1 #FFFFFF); border: 1px solid #a0a0a0; @@ -5679,13 +5709,13 @@ p, li { white-space: pre-wrap; } - + background-color:#C4C5C9; - - + + QPushButton { background-color: #ffffff; border: 1px solid #a8a8a8; @@ -5737,77 +5767,82 @@ p, li { white-space: pre-wrap; } - 打印设置 + 另存为 + 打印设置 + + + + 图元设置 - + 复制 - + 粘贴 - + 删除 - + 5 dot - + 7 dot - + 9 dot - + 12 dot - + 16 dot - + 24 dot - + 32 dot - + UK - + US - - + + QPushButton { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5826,19 +5861,19 @@ p, li { white-space: pre-wrap; } - + << - + >> - - - + + + QLabel { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5851,20 +5886,20 @@ p, li { white-space: pre-wrap; } - + Y:9 - + X:105 - - - - + + + + QPushButton { background-color: #87CEEB; border: 1px solid #4682B4; @@ -5884,32 +5919,32 @@ p, li { white-space: pre-wrap; } - + ↑ - + ← - + → - + ↓ - + ID:1 - + ✓ diff --git a/english.ts b/english.ts index 90612e9..6df7879 100644 --- a/english.ts +++ b/english.ts @@ -1921,25 +1921,25 @@ - + 开始自检,请等待%1秒... - - - + + + 自检完成!!! - + 警告 - + 提示 @@ -1954,20 +1954,20 @@ - + 开始自检,请等待60秒... - - - + + + 正在准备重启,请等待%1秒...... - + 压力泄漏或压力传感器故障! @@ -1993,125 +1993,125 @@ - - + + 缺少墨水,喷码机不能正常工作! - - + + 停止打印,自动关闭高压. - + flagOfPowerOnMode: %1 - - + + 电机故障 - + 回收槽到头 - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - - - + + + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - - - + + + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷墨水卡成功, 请及时将该墨水卡对应的墨水添加到机器中 - + 刷墨水卡成功! - + 刷溶剂卡成功, 请及时将该溶剂卡对应的溶剂添加到机器中 - + 刷溶剂卡成功! - + 请及时使用墨水盒附带的IC卡激活墨水盒 - + 墨水液位报警超过%1小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请及时使用溶剂盒附带的IC卡激活溶剂盒 - + 溶剂液位报警超过%1小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + File not found: %1 - + 刷卡倒计时起始时间文件不存在 @@ -3084,6 +3084,7 @@ + 喷嘴开启 @@ -3091,7 +3092,8 @@ - + + 喷嘴关闭 @@ -3111,277 +3113,282 @@ - - - - + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - - - + + + 正在准备关机,请等待%1秒... - + 准备关机... - + 关机失败!!! - - - - - + + + + + 错误 - + 喷印间隔过短,应高于%1! - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - + 喷嘴已开启 - - + + 喷嘴开启中 - + 喷嘴已关闭 - + 喷嘴关闭中 - - + + print:%1--print:%2--state:%3 + + + + + stop:%1--print:%2--state:%3 + + + + + 正在排气... - - + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - - + + 正常 - + 相位故障, 关闭回收槽 - - + + 相位故障,关闭回收槽 - - 提示 + + 等待压力稳定... - - 随机码文本将展出到U盘,请插入U盘 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + 高压故障,关回收槽和墨线 - - + + 回收故障,关闭回收槽,关墨线 - + 回收故障. - + 回收异常,墨线可能偏离.(%1) - + 正在喷印....... - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - - + + + 相位故障,准备关机 - - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - - + + 相位故障,屏蔽充电 @@ -3749,12 +3756,12 @@ p, li { white-space: pre-wrap; } - + 喷印间隔(毫米): - + 同步喷印模式: @@ -3774,100 +3781,100 @@ p, li { white-space: pre-wrap; } - + 脉冲信号值: - + 无镜像打印 - + 自动水平翻转 - + 自动垂直翻转 - + 中心对称旋转 - - + + 延时(毫秒): - - + + 触发延时(毫秒) - + 脉冲输出使能 - + 禁止电眼清零 - + 允许电眼复位 - + 允许电眼立即复位 - + 电眼清零 - + 字符宽度: - + 产生脉冲所需计数: - + 间隔模式: - + 行末<->行首 - + 行首<->行首 - - + + 重复间隔(毫秒) - + 封锁时间(毫秒) @@ -3878,13 +3885,13 @@ p, li { white-space: pre-wrap; } - + 内部 - + 外部 @@ -3904,163 +3911,176 @@ p, li { white-space: pre-wrap; } - - 脉冲数修正 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 带补偿的正转打印 - + 带补偿的反转打印 - + 同步器来源 - + 同步器直径(毫米): - + 脉冲数/转: - + 其他设置 - + 镜象交替类型: - + 镜像交替间隔: - + 调试设置 - + 开启墨点飞行补偿 - + 墨点飞行补偿统计窗口(系统时钟周期), 0表示使用相检得到的飞行时间 - + 启用加减速预测 - + ✕ - + ✓ - - + + 提示 - + 应用成功 - - + + 延时(毫米): - - - + + + 触发延时(毫米) - + 默认设置已保存 - - - + + + 重复间隔(毫米) - - + + 抑止距离(毫米) - + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) + + PrinterStateManager + + + 相位故障,回收喷嘴 + + + + + 检查相位中... + + + + + 检查完毕 + + + PulseNumFix @@ -4733,6 +4753,16 @@ p, li { white-space: pre-wrap; } 清空产品计数 + + + 重置计数器1 + + + + + 重置计数器2 + + SystemManage @@ -4764,14 +4794,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -4802,7 +4832,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -4844,9 +4874,9 @@ p, li { white-space: pre-wrap; } - - - + + + 自动 @@ -4858,15 +4888,15 @@ p, li { white-space: pre-wrap; } - - - - - - - - - + + + + + + + + + 开 @@ -4878,29 +4908,29 @@ p, li { white-space: pre-wrap; } - - - - - - - - - - + + + + + + + + + + 关 - - - - - - - + + + + + + + 警告 @@ -4916,309 +4946,309 @@ p, li { white-space: pre-wrap; } - - - + + + 手动 - + 请先移开喷头盖! - - - - - - - - + + + + + + + + 启动 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + 提示 - - - - + + + + 密码不正确! - + Application - + 是否确认更新字库? - + 没找到对应字库,更新失败! - + 更新字库成功,重启后生效! - + 恢复出厂设置成功,请重新关机上电 - + 校准触摸屏 - + 是否确认开始校准程序?请小心进行校准! - + 是否确认更新软件? - - - - - + + + + + + - 错误 - + 更新失败! - + 软件更新成功,重启后生效! - + 找不到更新软件! - + 是否确认更新系统? - + 系统更新成功,重启后生效! - + 文件不存在! - + 如果开始清洗,务必确认回收槽已经打开10毫米以上,并且在一分钟后将停止清洗 - + 开始清洗 - + 停止清洗 - + 压力 - + autoclean cancel or status: - + (2/3) Cleaning - + (3/3) Cleaning - + 是否确认导出配置到U盘? - + 检测不到U盘 - + 成功导出配置到U盘 - + 是否确认从U盘导入配置? - + 配置文件/udisk/sysPara.bin不存在! - + 从U盘成功导入配置,重启后生效! - + autoclean start - + 是否确认重启? - + 是否开始电机测试? - + Cancel - + 正在排气,是否停止? - + 确定要升级FPGA软件吗? - + 没有FPGA升级文件 - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -5655,13 +5685,13 @@ p, li { white-space: pre-wrap; } - + background-color:#828E9E; - + QPushButton { background: qlineargradient(x1: 0.5, y1: 0, x2: 0.5, y2: 1, stop: 0 #6F9CD6, stop: 1 #FFFFFF); border: 1px solid #a0a0a0; @@ -5679,13 +5709,13 @@ p, li { white-space: pre-wrap; } - + background-color:#C4C5C9; - - + + QPushButton { background-color: #ffffff; border: 1px solid #a8a8a8; @@ -5737,77 +5767,82 @@ p, li { white-space: pre-wrap; } - 打印设置 + 另存为 + 打印设置 + + + + 图元设置 - + 复制 - + 粘贴 - + 删除 - + 5 dot - + 7 dot - + 9 dot - + 12 dot - + 16 dot - + 24 dot - + 32 dot - + UK - + US - - + + QPushButton { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5826,19 +5861,19 @@ p, li { white-space: pre-wrap; } - + << - + >> - - - + + + QLabel { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5851,20 +5886,20 @@ p, li { white-space: pre-wrap; } - + Y:9 - + X:105 - - - - + + + + QPushButton { background-color: #87CEEB; border: 1px solid #4682B4; @@ -5884,32 +5919,32 @@ p, li { white-space: pre-wrap; } - + ↑ - + ← - + → - + ↓ - + ID:1 - + ✓ diff --git a/farsi.ts b/farsi.ts index 90612e9..6df7879 100644 --- a/farsi.ts +++ b/farsi.ts @@ -1921,25 +1921,25 @@ - + 开始自检,请等待%1秒... - - - + + + 自检完成!!! - + 警告 - + 提示 @@ -1954,20 +1954,20 @@ - + 开始自检,请等待60秒... - - - + + + 正在准备重启,请等待%1秒...... - + 压力泄漏或压力传感器故障! @@ -1993,125 +1993,125 @@ - - + + 缺少墨水,喷码机不能正常工作! - - + + 停止打印,自动关闭高压. - + flagOfPowerOnMode: %1 - - + + 电机故障 - + 回收槽到头 - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - - - + + + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - - - + + + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷墨水卡成功, 请及时将该墨水卡对应的墨水添加到机器中 - + 刷墨水卡成功! - + 刷溶剂卡成功, 请及时将该溶剂卡对应的溶剂添加到机器中 - + 刷溶剂卡成功! - + 请及时使用墨水盒附带的IC卡激活墨水盒 - + 墨水液位报警超过%1小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请及时使用溶剂盒附带的IC卡激活溶剂盒 - + 溶剂液位报警超过%1小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + File not found: %1 - + 刷卡倒计时起始时间文件不存在 @@ -3084,6 +3084,7 @@ + 喷嘴开启 @@ -3091,7 +3092,8 @@ - + + 喷嘴关闭 @@ -3111,277 +3113,282 @@ - - - - + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - - - + + + 正在准备关机,请等待%1秒... - + 准备关机... - + 关机失败!!! - - - - - + + + + + 错误 - + 喷印间隔过短,应高于%1! - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - + 喷嘴已开启 - - + + 喷嘴开启中 - + 喷嘴已关闭 - + 喷嘴关闭中 - - + + print:%1--print:%2--state:%3 + + + + + stop:%1--print:%2--state:%3 + + + + + 正在排气... - - + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - - + + 正常 - + 相位故障, 关闭回收槽 - - + + 相位故障,关闭回收槽 - - 提示 + + 等待压力稳定... - - 随机码文本将展出到U盘,请插入U盘 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + 高压故障,关回收槽和墨线 - - + + 回收故障,关闭回收槽,关墨线 - + 回收故障. - + 回收异常,墨线可能偏离.(%1) - + 正在喷印....... - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - - + + + 相位故障,准备关机 - - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - - + + 相位故障,屏蔽充电 @@ -3749,12 +3756,12 @@ p, li { white-space: pre-wrap; } - + 喷印间隔(毫米): - + 同步喷印模式: @@ -3774,100 +3781,100 @@ p, li { white-space: pre-wrap; } - + 脉冲信号值: - + 无镜像打印 - + 自动水平翻转 - + 自动垂直翻转 - + 中心对称旋转 - - + + 延时(毫秒): - - + + 触发延时(毫秒) - + 脉冲输出使能 - + 禁止电眼清零 - + 允许电眼复位 - + 允许电眼立即复位 - + 电眼清零 - + 字符宽度: - + 产生脉冲所需计数: - + 间隔模式: - + 行末<->行首 - + 行首<->行首 - - + + 重复间隔(毫秒) - + 封锁时间(毫秒) @@ -3878,13 +3885,13 @@ p, li { white-space: pre-wrap; } - + 内部 - + 外部 @@ -3904,163 +3911,176 @@ p, li { white-space: pre-wrap; } - - 脉冲数修正 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 带补偿的正转打印 - + 带补偿的反转打印 - + 同步器来源 - + 同步器直径(毫米): - + 脉冲数/转: - + 其他设置 - + 镜象交替类型: - + 镜像交替间隔: - + 调试设置 - + 开启墨点飞行补偿 - + 墨点飞行补偿统计窗口(系统时钟周期), 0表示使用相检得到的飞行时间 - + 启用加减速预测 - + ✕ - + ✓ - - + + 提示 - + 应用成功 - - + + 延时(毫米): - - - + + + 触发延时(毫米) - + 默认设置已保存 - - - + + + 重复间隔(毫米) - - + + 抑止距离(毫米) - + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) + + PrinterStateManager + + + 相位故障,回收喷嘴 + + + + + 检查相位中... + + + + + 检查完毕 + + + PulseNumFix @@ -4733,6 +4753,16 @@ p, li { white-space: pre-wrap; } 清空产品计数 + + + 重置计数器1 + + + + + 重置计数器2 + + SystemManage @@ -4764,14 +4794,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -4802,7 +4832,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -4844,9 +4874,9 @@ p, li { white-space: pre-wrap; } - - - + + + 自动 @@ -4858,15 +4888,15 @@ p, li { white-space: pre-wrap; } - - - - - - - - - + + + + + + + + + 开 @@ -4878,29 +4908,29 @@ p, li { white-space: pre-wrap; } - - - - - - - - - - + + + + + + + + + + 关 - - - - - - - + + + + + + + 警告 @@ -4916,309 +4946,309 @@ p, li { white-space: pre-wrap; } - - - + + + 手动 - + 请先移开喷头盖! - - - - - - - - + + + + + + + + 启动 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + 提示 - - - - + + + + 密码不正确! - + Application - + 是否确认更新字库? - + 没找到对应字库,更新失败! - + 更新字库成功,重启后生效! - + 恢复出厂设置成功,请重新关机上电 - + 校准触摸屏 - + 是否确认开始校准程序?请小心进行校准! - + 是否确认更新软件? - - - - - + + + + + + - 错误 - + 更新失败! - + 软件更新成功,重启后生效! - + 找不到更新软件! - + 是否确认更新系统? - + 系统更新成功,重启后生效! - + 文件不存在! - + 如果开始清洗,务必确认回收槽已经打开10毫米以上,并且在一分钟后将停止清洗 - + 开始清洗 - + 停止清洗 - + 压力 - + autoclean cancel or status: - + (2/3) Cleaning - + (3/3) Cleaning - + 是否确认导出配置到U盘? - + 检测不到U盘 - + 成功导出配置到U盘 - + 是否确认从U盘导入配置? - + 配置文件/udisk/sysPara.bin不存在! - + 从U盘成功导入配置,重启后生效! - + autoclean start - + 是否确认重启? - + 是否开始电机测试? - + Cancel - + 正在排气,是否停止? - + 确定要升级FPGA软件吗? - + 没有FPGA升级文件 - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -5655,13 +5685,13 @@ p, li { white-space: pre-wrap; } - + background-color:#828E9E; - + QPushButton { background: qlineargradient(x1: 0.5, y1: 0, x2: 0.5, y2: 1, stop: 0 #6F9CD6, stop: 1 #FFFFFF); border: 1px solid #a0a0a0; @@ -5679,13 +5709,13 @@ p, li { white-space: pre-wrap; } - + background-color:#C4C5C9; - - + + QPushButton { background-color: #ffffff; border: 1px solid #a8a8a8; @@ -5737,77 +5767,82 @@ p, li { white-space: pre-wrap; } - 打印设置 + 另存为 + 打印设置 + + + + 图元设置 - + 复制 - + 粘贴 - + 删除 - + 5 dot - + 7 dot - + 9 dot - + 12 dot - + 16 dot - + 24 dot - + 32 dot - + UK - + US - - + + QPushButton { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5826,19 +5861,19 @@ p, li { white-space: pre-wrap; } - + << - + >> - - - + + + QLabel { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5851,20 +5886,20 @@ p, li { white-space: pre-wrap; } - + Y:9 - + X:105 - - - - + + + + QPushButton { background-color: #87CEEB; border: 1px solid #4682B4; @@ -5884,32 +5919,32 @@ p, li { white-space: pre-wrap; } - + ↑ - + ← - + → - + ↓ - + ID:1 - + ✓ diff --git a/image.qrc b/image.qrc index e498a19..96569ca 100644 --- a/image.qrc +++ b/image.qrc @@ -149,5 +149,6 @@ image/up_white.png image/RePipeClose.png image/RePipeOpen.png + image/saveAs.png diff --git a/image/saveAs.png b/image/saveAs.png new file mode 100644 index 0000000..18bd729 Binary files /dev/null and b/image/saveAs.png differ diff --git a/korean.ts b/korean.ts index a76ada9..260e27c 100644 --- a/korean.ts +++ b/korean.ts @@ -3228,25 +3228,25 @@ FPGA 통신 복구 - + 开始自检,请等待60秒... 자체 진단 시작 60초 대기 - + 开始自检,请等待%1秒... 자체 진단 시작 %1초 대기 - - - + + + 自检完成!!! 자체 진단 완료!!! - - + + 缺少墨水,喷码机不能正常工作! 잉크 부족으로 작동 불가! @@ -3279,8 +3279,8 @@ 압력 변동이 설정값 5 초과 - - + + 停止打印,自动关闭高压. 인쇄 중지, 고전압 자동 종료 @@ -3310,7 +3310,7 @@ - + 提示 팁 @@ -3376,7 +3376,7 @@ - + 压力泄漏或压力传感器故障! 압력 누출 또는 압력 센서 고장 @@ -3402,7 +3402,7 @@ 솔벤트 TAG을 리드하겠습니까? %1초 후 자동 확인 - + 刷溶剂卡成功! 确认要刷卡吗? 솔벤트 TAG 리드 성공! @@ -3424,7 +3424,7 @@ 먼저 잉크을 보충한 후 TAG을 사용하십시오! - + 刷墨水卡成功! 잉크 TAG 리드 성공! @@ -3470,29 +3470,29 @@ 재부팅을 준비하는 중입니다. %1 초 동안 기다려 주십시오... - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 유지보수 주기 만료까지 %1일 남았습니다. 제때 유지보수를 실시하십시오. - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 유지보수 주기가 %1일 초과되었습니다. 잉크젯 프린터의 정상 사용을 복구하려면 유지보수를 실시하십시오. - - - + + + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! 잉크 TAG를 인식해 주세요. 정품 잉크를 사용해 주세요. 그렇지 않을 경우 %1시간 후 사용이 중지됩니다! - + flagOfPowerOnMode: %1 flagOfPowerOnMode: %1 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 압력이 너무 높습니다. 배관이 막혔는지 확인한 후 오류 복구 버튼을 누르십시오. @@ -3597,54 +3597,54 @@ 기어 펌프 회전 속도가 너무 높습니다. 즉시 정지하고 공급업체에 연락하십시오. - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! 잉크 레벨 경보가 48시간을 초과했습니다. 장비의 정상 작동을 복구하기 위해 잉크를 추가하고 잉크 TAG을 리드하세요 - - - + + + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! 솔벤트 TAG를 리드하시고 정품 솔벤트를 사용하십시오. 그렇지 않으면 %1시간 후에 장비 사용이 금지됩니다! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! 솔벤트 수위 경보가 48시간을 초과했습니다. 장비의 정상 작동을 복구하기 위해 솔벤트를 추가하고 솔벤트 TAG를 리드하세요 - + 刷墨水卡成功, 请及时将该墨水卡对应的墨水添加到机器中 잉크 TAG 리드 성공, 해당 잉크 카드에 대응하는 잉크를 장비에 즉시 보충해 주세요 - + 刷溶剂卡成功, 请及时将该溶剂卡对应的溶剂添加到机器中 솔벤트 TAG 리드 성공, 해당 솔벤트 카드에 대응하는 솔벤트를 장비에 즉시 보충해 주세요 - + 请及时使用墨水盒附带的IC卡激活墨水盒 잉크 용기에 동봉된 IC 카드로 잉크 용기를 즉시 활성화해 주세요 - + 墨水液位报警超过%1小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请及时使用溶剂盒附带的IC卡激活溶剂盒 솔벤트 용기에 동봉된 IC 카드로 솔벤트 용기를 즉시 활성화해 주세요 - + 溶剂液位报警超过%1小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + File not found: %1 File not found: %1 @@ -3653,7 +3653,7 @@ 유지보수 주기가 %1일 초과되었습니다. 제때 유지보수를 실시하십시오. 그렇지 않으면 잉크젯 프린터가 손상될 수 있습니다. - + 刷卡倒计时起始时间文件不存在 카드 사용 카운트다운 시작 시간 파일이 존재하지 않습니다. @@ -3838,7 +3838,7 @@ 잉크 선 빠른 닫기 완료 - + 警告 경고 @@ -3917,9 +3917,9 @@ %1/%2/%3 - - - + + + 正在准备重启,请等待%1秒...... 재시작 준비 중, %1초 대기... @@ -3960,8 +3960,8 @@ 오류!!!!!!!!!!!점도 이상 - - + + 电机故障 모터 에러 @@ -3970,13 +3970,13 @@ 모터 에러!!! - + 回收槽到头 거터 최대 위치 도달 - - + + 回收槽卡住或者回收槽开关时间设置错误 거터가 걸렸거나 거터 개폐 시간 설정이 잘못되었습니다. @@ -5183,6 +5183,7 @@ Char + 喷嘴开启 노즐 켜짐 @@ -5190,7 +5191,8 @@ Char - + + 喷嘴关闭 노즐 닫힘 @@ -5226,20 +5228,20 @@ Char border:0px; - - - - + + + + 警告 경고 - + 回收槽未关,是否关闭回收槽后关机! 거터 미복귀, 거터를 닫은 후 시스템을 종료하시겠습니까? - + 是否确认关机? 시스템을 종료하시겠습니까? @@ -5252,19 +5254,19 @@ Char 시스템 종료 준비 중...... - - - + + + 正在准备关机,请等待%1秒... 시스템 종료 준비 중, %1초 후 종료됩니다... - + 准备关机... 시스템 종료 준비 중... - + 关机失败!!! 시스템 종료 실패!!! @@ -5285,36 +5287,36 @@ Char 경고: 인터페이스에 일부 변수가 표시되지 않습니다. - - - - - + + + + + 错误 오류 - + 喷印间隔过短,应高于%1! 인쇄 간격이 너무 짧습니다. %1 이상으로 설정하세요! - + 喷头盖未关,请先关喷头盖! 헤드 커버 닫기 필요! - + 墨线未开,请先开墨线开关! 잉크 스위치 켜십시오! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 최대 %2열 지원, 현재 %1열 → 길이 축소 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms 트리거 간격 %1ms → %2ms 이상 필요 @@ -5323,83 +5325,98 @@ Char 열기 중지 - + 喷嘴已开启 노즐 열림 - - + + 喷嘴开启中 노즐 열기 중 - + 喷嘴已关闭 노즐 닫힘 - + 喷嘴关闭中 노즐 닫기 중 - - + + print:%1--print:%2--state:%3 + + + + + stop:%1--print:%2--state:%3 + + + + + 正在排气... 블리딩 중... - - + + 等待压力稳定... + 압력 안정 대기 중... + + + + 高压故障 고전압에러 - - + + 相位故障 위상 에러 - - + + 粘度故障 점도 에러 - - + + 回收故障 석션 에러 - - + + 溶液液位 솔벤트 레벨 - - + + 墨水液位 잉크 레벨 오류 - - + + 墨水缸满 잉크 통 가득 참 - - + + 墨线开关 잉크선 스위치 - - + + 正常 정상 @@ -5408,14 +5425,12 @@ Char 인쇄 시작 1 - 提示 - 팁 + 팁 - 随机码文本将展出到U盘,请插入U盘 - 랜덤 코드를 USB에 저장합니다. USB를 삽입하세요. + 랜덤 코드를 USB에 저장합니다. USB를 삽입하세요. 正在排气 ............... @@ -5430,8 +5445,8 @@ Char 열기 중지 - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? 거터가 이전에 걸렸거나 거터 개폐 시간 설정이 잘못되었습니다. 현재 위치를 강제로 상한 위치로 설정하시겠습니까? @@ -5444,8 +5459,8 @@ Char 닫기 중지 - - + + %1.%2 %1.%2 @@ -5466,105 +5481,105 @@ Char 프린트 헤드 커버가 열려 인쇄 불가! - + 墨水缸满报警 잉크통 만료 경보 - + 墨水液位报警 잉크 레벨 경보 - + 溶剂液位报警 솔벤트 레벨 경보 - - + + 高压故障,暂停打印 고전압 오류로 인쇄 일시 정지 - + 高压故障,暂停打印. 고전압 고장, 인쇄 일시정지 - + 高压故障,关回收槽 고전압 오류로 수집기 자동 종료 - + 高压故障,关回收槽和墨线 고압 오류가 발생했습니다. 거터를 닫고 잉크 선을 정지하십시오. - - + + 回收故障,关闭回收槽,关墨线 회수 오류가 발생했습니다. 거터를 닫고 잉크 선을 정지하십시오. - + 回收故障. 회수 에러 - + 回收异常,墨线可能偏离.(%1) 회수 이상, 잉크 선 편향 가능성 (%1) - + 正在喷印....... 인쇄 중... - + 相位故障:飞行时间错误! 위상 이상: 비행 시간 오류! - + 相位故障:相位检测错误! 위상 이상: 검출 오류! - - - + + + 相位故障,准备关机 위상 오류로 시스템 종료 준비 - - - + + + 相位故障,暂停打印 위상 오류로 인쇄 일시 정지 - + 相位故障,屏蔽DAC输出 위상 오류로 DAC 출력 차단 - - + + 相位故障,屏蔽充电 위상 오류로 충전 차단 - + 相位故障, 关闭回收槽 Phase fault, close the reclaim tank - - + + 相位故障,关闭回收槽 Phase fault, close the reclaim tank @@ -8000,27 +8015,27 @@ configuration. PrintGo 신호 페이지 1 - + 脉冲信号值: 펄스 신호 값: - + 无镜像打印 미러 없음 - + 自动水平翻转 자동 수평 반전 - + 自动垂直翻转 자동 수직 반전 - + 中心对称旋转 중심 대칭 회전 @@ -8029,8 +8044,8 @@ configuration. 미러 모드 - - + + 延时(毫秒): 지연(ms): @@ -8039,18 +8054,18 @@ configuration. 미러 교대 간격 - - + + 触发延时(毫秒) 트리거 지연(ms) - + 脉冲输出使能 펄스 출력 활성화 - + 禁止电眼清零 센서 초기화 금지 @@ -8065,47 +8080,47 @@ configuration. 무한길이 - + 带补偿的正转打印 보정 정방향 인쇄 - + 带补偿的反转打印 보정 역방향 인쇄 - + 同步器直径(毫米): 엔코더 직경(mm): - + 脉冲数/转: 펄스 수/회전: - + 允许电眼复位 센서 리셋 허용 - + 允许电眼立即复位 센서 즉시 리셋 허용 - + 电眼清零 센서 카운터 초기화 - + 字符宽度: 문자 너비: - + 产生脉冲所需计数: 펄스 생성 필요 카운트: @@ -8167,13 +8182,13 @@ configuration. - + 内部 내부 - + 外部 외부 @@ -8192,22 +8207,22 @@ configuration. 펄스/mm: - + 喷印间隔(毫米): 인쇄 간격(mm): - + 同步喷印模式: 동기 인쇄 모드: - + 镜象交替类型: 미러 교대 모드: - + 镜像交替间隔: 미러 교대 간격: @@ -8217,9 +8232,8 @@ configuration. 펄스/mm - 脉冲数修正 - 펄스 수 보정 + 펄스 수 보정 喷印间隔(毫米) @@ -8230,27 +8244,27 @@ configuration. 동기 인쇄 모드 - + 按字符宽度 글자 너비 기준 - + 按喷印比例 인쇄 비율 기준 - + 同步器正反转打印 엔코더 정/역방향 인쇄 - + 同步器只正转打印 엔코더 정방향 인쇄만 허용 - + 同步器只反转打印 엔코더 역방향 인쇄만 허용 @@ -8259,8 +8273,8 @@ configuration. 반복 횟수 - - + + 重复间隔(毫秒) 반복 간격(ms) @@ -8269,7 +8283,7 @@ configuration. 엔코더 인쇄 활성화 - + 封锁时间(毫秒) 트리거 신호 무시(ms) @@ -8278,52 +8292,52 @@ configuration. 엔코더 카운터 초기화 - + 间隔模式: 간격 모드: - + 行末<->行首 행 끝 ↔ 행 시작 - + 行首<->行首 행 시작 ↔ 행 시작 - + 同步器来源 엔코더 - + 调试设置 디버깅 설정 - + 开启墨点飞行补偿 잉크 점 비행 보정 활성화 - + 墨点飞行补偿统计窗口(系统时钟周期), 0表示使用相检得到的飞行时间 잉크 점 비행 보정 통계 창(시스템 클럭 사이클), 0은 상관 검사에서 얻은 비행 시간 사용을 의미합니다. - + 启用加减速预测 가속/감속 예측 활성화 - + ✕ ✕ - + ✓ ✓ @@ -8505,13 +8519,13 @@ configuration. 조건: (반복 횟수 + 시작 위치) < 교대 간격 - - + + 提示 팁 - + 应用成功 적용 성공 @@ -8524,38 +8538,38 @@ configuration. 요구사항: 트리거 길이는 인쇄 간격보다 작아야 함 - - + + 延时(毫米): 지연(mm): - - - + + + 触发延时(毫米) 트리거 지연(mm) - + 默认设置已保存 기본 설정 저장 - - - + + + 重复间隔(毫米) 반복 간격(mm) - - + + 抑止距离(毫米) 인쇄신호 제어 거리(mm) - + 抑止距离(毫秒) 인쇄 신호 제어 거리(ms) @@ -8568,12 +8582,12 @@ configuration. 잠금 간격(ms) - + 字符宽度 문자 너비 - + 喷印比例(%) 인쇄 비율(%) @@ -8634,7 +8648,7 @@ configuration. 권한 해제 - + 其他设置 기타 설정 @@ -8767,6 +8781,24 @@ configuration. 도트 간격 전압 미세 조정 + + PrinterStateManager + + + 相位故障,回收喷嘴 + 위상 오류, 노즐 회수 + + + + 检查相位中... + 위상 검사 중... + + + + 检查完毕 + 검사 완료 + + PulseNumFix @@ -9685,6 +9717,16 @@ configuration. 清空产品计数 제품 수 초기화 + + + 重置计数器1 + 카운터1 리셋 + + + + 重置计数器2 + 카운터2 리셋 + 当前值: 현재 값: @@ -9718,14 +9760,14 @@ configuration. - - - - - - - - + + + + + + + + 停止 정지 @@ -9768,7 +9810,7 @@ configuration. - + 压缩机 압축기 @@ -9886,7 +9928,7 @@ configuration. 기계 코드 설정 - + Cancel 취소 @@ -9902,15 +9944,15 @@ configuration. - - - - - - - - - + + + + + + + + + 开 열림 @@ -9922,34 +9964,34 @@ configuration. - - - - - - - - - - + + + + + + + + + + 关 꺼짐 - - - - - - - + + + + + + + 警告 경고 - + 请先移开喷头盖! 프린트 헤드 커버를 제거하세요! @@ -9965,45 +10007,45 @@ configuration. - - - + + + 手动 수동 - - - + + + 自动 자동 - - - - - - - - + + + + + + + + 启动 시작 - + Application 애플리케이션 - + 是否确认更新字库? 폰트 라이브러리를 업데이트하시겠습니까? - + 更新字库成功,重启后生效! 폰트 라이브러리 업데이트 성공, 재시작 후 적용됩니다! @@ -10012,17 +10054,17 @@ configuration. 공장 초기화를 복원하시겠습니까? - + 恢复出厂设置成功,请重新关机上电 공장 초기화 성공, 장비를 재시작하세요. - + 校准触摸屏 터치스크린 보정 - + 是否确认开始校准程序?请小心进行校准! 터치스크린 보정을 시작하시겠습니까? 주의해서 조작하세요. @@ -10031,163 +10073,163 @@ configuration. 스크립트 생성 실패 - - - - + + + + 密码不正确! 비밀번호 오류! - + 是否确认更新软件? 소프트웨어를 업데이트하시겠습니까? - + 软件更新成功,重启后生效! 소프트웨어 업데이트 성공, 재시작 후 적용됩니다! - - - - - + + + + + + - 错误 오류 - + 没找到对应字库,更新失败! 해당 폰트 라이브러리를 찾을 수 없어 업데이트 실패! - + 更新失败! 업데이트 실패! - + 找不到更新软件! 업데이트 소프트웨어를 찾을 수 없습니다! - + 是否确认更新系统? 시스템을 업데이트하시겠습니까? - + 系统更新成功,重启后生效! 시스템 업데이트 성공, 재시작 후 적용됩니다! - + 文件不存在! 파일이 존재하지 않습니다! - + 压力 압력 - + autoclean cancel or status: 자동 세척 취소 또는 상태: - + (2/3) Cleaning (2/3) 세척 중 - + (3/3) Cleaning (3/3) 세척 완료 - + 是否确认重启? 재부팅을 확인하시겠습니까? - + 确定要升级FPGA软件吗? FPGA 소프트웨어를 업데이트하시겠습니까? - + 没有FPGA升级文件 FPGA 업데이트 파일이 없습니다 - + 找不到 lib.tar! lib.tar을 찾을 수 없습니다! - + 无法删除旧的 lib.tar! 이전 lib.tar을 삭제할 수 없습니다! - + 复制 tar 包失败! tar 패키지 복사 실패! - + 解压失败,请检查权限! 압축 해제 실패, 권한을 확인하세요! - + 移动库文件失败! 라이브러리 파일 이동 실패! - + 环境配置成功! 환경 설정 성공! - + 切换失败! 전환 실패! - + 切换成功,重启后生效! 전환 성공, 재시작 후 적용됩니다! - + 找不到软件! 소프트웨어를 찾을 수 없습니다! - + 找到多个软件,请删除多余的文件,只保留一个! 여러 소프트웨어를 찾았습니다, 중복 파일을 삭제하고 하나만 남겨주세요! - + 确定要升级单片机软件吗? 단일 칩 소프트웨어를 업데이트하시겠습니까? - + 升级成功,请重启QtUI! 업데이트 성공, QtUI를 재시작하세요! - + 升级失败! 업데이트 실패! @@ -10229,12 +10271,12 @@ configuration. 혼합 밸브 3 열기: - + 配置文件/udisk/sysPara.bin不存在! 설정 파일 /udisk/sysPara.bin이 존재하지 않습니다! - + autoclean start 자동 세척 시작 @@ -10263,12 +10305,12 @@ configuration. 폰트 라이브러리 내보내기 완료! - + 是否开始电机测试? 모터 테스트를 시작하시겠습니까? - + 正在排气,是否停止? 배기 중입니다. 중지하시겠습니까? @@ -10289,29 +10331,29 @@ configuration. 백업 작업 실패! - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + 提示 팁 @@ -10336,37 +10378,37 @@ configuration. 잉크 공급 밸브 - + 如果开始清洗,务必确认回收槽已经打开10毫米以上,并且在一分钟后将停止清洗 세척 시작 시 거터가 10mm 이상 열려 있는지 확인하세요. 1분 후 중지됩니다. - + 开始清洗 세척 시작 - + 停止清洗 세척 중지 - + 是否确认导出配置到U盘? 설정을 USB로 내보내시겠습니까? - + 检测不到U盘 USB가 감지되지 않습니다. - + 成功导出配置到U盘 설정 USB로 내보내기 성공 - + 是否确认从U盘导入配置? USB에서 설정을 가져오시겠습니까? @@ -10375,7 +10417,7 @@ configuration. 설정 파일 /udisk/sysPara.bin이 존재하지 않습니다! - + 从U盘成功导入配置,重启后生效! 설정 가져오기 성공, 재시작 후 적용됩니다! @@ -11004,17 +11046,17 @@ configuration. - + background-color:#828E9E; - + UK UK - + US US @@ -11082,8 +11124,13 @@ configuration. 저장 - + + 另存为 + 다른 이름으로 저장 + + + QPushButton { background: qlineargradient(x1: 0.5, y1: 0, x2: 0.5, y2: 1, stop: 0 #6F9CD6, stop: 1 #FFFFFF); border: 1px solid #a0a0a0; @@ -11101,23 +11148,23 @@ configuration. - + 打印设置 인쇄 설정 - + 图元设置 설정 - + background-color:#C4C5C9; - - + + QPushButton { background-color: #ffffff; border: 1px solid #a8a8a8; @@ -11133,52 +11180,52 @@ configuration. - + 复制 복사 - + 粘贴 붙여넣기 - + 删除 Delete - + 5 dot - + 7 dot - + 9 dot - + 12 dot - + 16 dot - + 24 dot - + 32 dot @@ -11187,8 +11234,8 @@ configuration. JET2neo-TEST - - + + QPushButton { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -11207,19 +11254,19 @@ configuration. - + << << - + >> - - - + + + QLabel { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -11232,20 +11279,20 @@ configuration. - + Y:9 Y:9 - + X:105 X:105 - - - - + + + + QPushButton { background-color: #87CEEB; border: 1px solid #4682B4; @@ -11265,32 +11312,32 @@ configuration. - + ↑ - + ← - + → - + ↓ - + ID:1 - + ✓ ✓ diff --git a/mainwidget.cpp b/mainwidget.cpp index bf64475..7866ddb 100644 --- a/mainwidget.cpp +++ b/mainwidget.cpp @@ -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(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; diff --git a/mainwidget.h b/mainwidget.h index 611ac08..e4daf33 100644 --- a/mainwidget.h +++ b/mainwidget.h @@ -29,6 +29,8 @@ #include "fileManage/FileManageWidget.h" #include "setnumdlg.h" +#include "PrintSetting.h" +#include "PressureMonitor.h" class MainWidget : public QWidget { @@ -45,9 +47,10 @@ public: * @brief 生成打印内容,并发送打印内容到 FPGA * * @param pPicScene 包含打印内容的场景 + * @param printSettings 打印内容所需要的打印设置 * @return 成功返回true,否则false,查看日志 */ - bool generatePrintContent(PicScene* pPicScene); + bool generatePrintContent(PicScene* pPicScene, const PrintSettingModel& printSettings); /** * @brief 重新生成打印内容,所用场景是由调用 generatePrintContent 时设置的,generatePrintContent 也会调用此函数 @@ -107,7 +110,7 @@ public: /** * @brief 设置回收槽开关状态 */ - void updateReclaimStatus(); + void updateReclaimText(); void updateSysStatusToUI(); //重载 //Mainwindow获取机器总状态 @@ -160,8 +163,11 @@ private: int r_ExpiryDay; QTimer *airPushTimer; + PressureMonitor *m_pressureMonitor = nullptr; + PicScene *pPicScene = nullptr; QGraphicsView *view; + PrintSettingModel printSettingsModel; FileManageWidget *m_fileManageWidget = nullptr; @@ -189,7 +195,8 @@ public slots: void _on_pushButtonPowerOff_pressed(bool notice); void onLabelFaultRusumePressed(); - + void slt_resetCNT1(); + void slt_resetCNT2(); void UpdateUIVersion(); void on_m_RightBtn_clicked(); diff --git a/setnumdlg.cpp b/setnumdlg.cpp index 80a70f4..305bfca 100644 --- a/setnumdlg.cpp +++ b/setnumdlg.cpp @@ -14,6 +14,12 @@ SetNumDlg::SetNumDlg(QWidget *parent) : ui->btn_confirm->setAutoDefault(false); // 禁止回车自动触发 ui->btn_confirm->setDefault(false); // 彻底取消默认按钮 + + connect(ui->btn_resetCnt1, &QPushButton::clicked, this, &SetNumDlg::sig_resetCNT1); + connect(ui->btn_resetCnt2, &QPushButton::clicked, this, &SetNumDlg::sig_resetCNT2); + + // 默认禁用 重置计数器1 重置计数器2 的按钮 + setCNTResetBtnsEnable(false, false); } SetNumDlg::~SetNumDlg() @@ -40,6 +46,12 @@ void SetNumDlg::on_btn_confirm_clicked() emit sig_setNum(); } +void SetNumDlg::setCNTResetBtnsEnable(bool cnt1Btn, bool cnt2Btn) +{ + ui->btn_resetCnt1->setEnabled(cnt1Btn); + ui->btn_resetCnt2->setEnabled(cnt2Btn); +} + void SetNumDlg::on_btn_clearProductCnt_clicked() { emit sig_clearCnt(); diff --git a/setnumdlg.h b/setnumdlg.h index 5343600..45bf318 100644 --- a/setnumdlg.h +++ b/setnumdlg.h @@ -19,6 +19,14 @@ public: int getNum(); + /** + * @brief 设置对话框中,重置计数器1/2 的两个按钮的可用性 + * + * @param cnt1Btn 重置计数器1 按钮的可用性 + * @param cnt2Btn 重置计数器2 按钮的可用性 + */ + void setCNTResetBtnsEnable(bool cnt1Btn, bool cnt2Btn); + private slots: void on_btn_confirm_clicked(); @@ -34,6 +42,10 @@ signals: void sig_setNum(); void sig_clearCnt(); + + void sig_resetCNT1(); + + void sig_resetCNT2(); }; #endif // SETNUMDLG_H diff --git a/setnumdlg.ui b/setnumdlg.ui index d95eb7e..14ef7b3 100644 --- a/setnumdlg.ui +++ b/setnumdlg.ui @@ -87,7 +87,7 @@ 20 - 160 + 130 111 61 @@ -96,6 +96,32 @@ 清空产品计数 + + + + 20 + 220 + 131 + 41 + + + + 重置计数器1 + + + + + + 160 + 220 + 131 + 41 + + + + 重置计数器2 + + cb_setNum diff --git a/spanish.ts b/spanish.ts index 90612e9..6df7879 100644 --- a/spanish.ts +++ b/spanish.ts @@ -1921,25 +1921,25 @@ - + 开始自检,请等待%1秒... - - - + + + 自检完成!!! - + 警告 - + 提示 @@ -1954,20 +1954,20 @@ - + 开始自检,请等待60秒... - - - + + + 正在准备重启,请等待%1秒...... - + 压力泄漏或压力传感器故障! @@ -1993,125 +1993,125 @@ - - + + 缺少墨水,喷码机不能正常工作! - - + + 停止打印,自动关闭高压. - + flagOfPowerOnMode: %1 - - + + 电机故障 - + 回收槽到头 - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - - - + + + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - - - + + + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷墨水卡成功, 请及时将该墨水卡对应的墨水添加到机器中 - + 刷墨水卡成功! - + 刷溶剂卡成功, 请及时将该溶剂卡对应的溶剂添加到机器中 - + 刷溶剂卡成功! - + 请及时使用墨水盒附带的IC卡激活墨水盒 - + 墨水液位报警超过%1小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请及时使用溶剂盒附带的IC卡激活溶剂盒 - + 溶剂液位报警超过%1小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + File not found: %1 - + 刷卡倒计时起始时间文件不存在 @@ -3084,6 +3084,7 @@ + 喷嘴开启 @@ -3091,7 +3092,8 @@ - + + 喷嘴关闭 @@ -3111,277 +3113,282 @@ - - - - + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - - - + + + 正在准备关机,请等待%1秒... - + 准备关机... - + 关机失败!!! - - - - - + + + + + 错误 - + 喷印间隔过短,应高于%1! - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - + 喷嘴已开启 - - + + 喷嘴开启中 - + 喷嘴已关闭 - + 喷嘴关闭中 - - + + print:%1--print:%2--state:%3 + + + + + stop:%1--print:%2--state:%3 + + + + + 正在排气... - - + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - - + + 正常 - + 相位故障, 关闭回收槽 - - + + 相位故障,关闭回收槽 - - 提示 + + 等待压力稳定... - - 随机码文本将展出到U盘,请插入U盘 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + 高压故障,关回收槽和墨线 - - + + 回收故障,关闭回收槽,关墨线 - + 回收故障. - + 回收异常,墨线可能偏离.(%1) - + 正在喷印....... - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - - + + + 相位故障,准备关机 - - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - - + + 相位故障,屏蔽充电 @@ -3749,12 +3756,12 @@ p, li { white-space: pre-wrap; } - + 喷印间隔(毫米): - + 同步喷印模式: @@ -3774,100 +3781,100 @@ p, li { white-space: pre-wrap; } - + 脉冲信号值: - + 无镜像打印 - + 自动水平翻转 - + 自动垂直翻转 - + 中心对称旋转 - - + + 延时(毫秒): - - + + 触发延时(毫秒) - + 脉冲输出使能 - + 禁止电眼清零 - + 允许电眼复位 - + 允许电眼立即复位 - + 电眼清零 - + 字符宽度: - + 产生脉冲所需计数: - + 间隔模式: - + 行末<->行首 - + 行首<->行首 - - + + 重复间隔(毫秒) - + 封锁时间(毫秒) @@ -3878,13 +3885,13 @@ p, li { white-space: pre-wrap; } - + 内部 - + 外部 @@ -3904,163 +3911,176 @@ p, li { white-space: pre-wrap; } - - 脉冲数修正 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 带补偿的正转打印 - + 带补偿的反转打印 - + 同步器来源 - + 同步器直径(毫米): - + 脉冲数/转: - + 其他设置 - + 镜象交替类型: - + 镜像交替间隔: - + 调试设置 - + 开启墨点飞行补偿 - + 墨点飞行补偿统计窗口(系统时钟周期), 0表示使用相检得到的飞行时间 - + 启用加减速预测 - + ✕ - + ✓ - - + + 提示 - + 应用成功 - - + + 延时(毫米): - - - + + + 触发延时(毫米) - + 默认设置已保存 - - - + + + 重复间隔(毫米) - - + + 抑止距离(毫米) - + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) + + PrinterStateManager + + + 相位故障,回收喷嘴 + + + + + 检查相位中... + + + + + 检查完毕 + + + PulseNumFix @@ -4733,6 +4753,16 @@ p, li { white-space: pre-wrap; } 清空产品计数 + + + 重置计数器1 + + + + + 重置计数器2 + + SystemManage @@ -4764,14 +4794,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -4802,7 +4832,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -4844,9 +4874,9 @@ p, li { white-space: pre-wrap; } - - - + + + 自动 @@ -4858,15 +4888,15 @@ p, li { white-space: pre-wrap; } - - - - - - - - - + + + + + + + + + 开 @@ -4878,29 +4908,29 @@ p, li { white-space: pre-wrap; } - - - - - - - - - - + + + + + + + + + + 关 - - - - - - - + + + + + + + 警告 @@ -4916,309 +4946,309 @@ p, li { white-space: pre-wrap; } - - - + + + 手动 - + 请先移开喷头盖! - - - - - - - - + + + + + + + + 启动 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + 提示 - - - - + + + + 密码不正确! - + Application - + 是否确认更新字库? - + 没找到对应字库,更新失败! - + 更新字库成功,重启后生效! - + 恢复出厂设置成功,请重新关机上电 - + 校准触摸屏 - + 是否确认开始校准程序?请小心进行校准! - + 是否确认更新软件? - - - - - + + + + + + - 错误 - + 更新失败! - + 软件更新成功,重启后生效! - + 找不到更新软件! - + 是否确认更新系统? - + 系统更新成功,重启后生效! - + 文件不存在! - + 如果开始清洗,务必确认回收槽已经打开10毫米以上,并且在一分钟后将停止清洗 - + 开始清洗 - + 停止清洗 - + 压力 - + autoclean cancel or status: - + (2/3) Cleaning - + (3/3) Cleaning - + 是否确认导出配置到U盘? - + 检测不到U盘 - + 成功导出配置到U盘 - + 是否确认从U盘导入配置? - + 配置文件/udisk/sysPara.bin不存在! - + 从U盘成功导入配置,重启后生效! - + autoclean start - + 是否确认重启? - + 是否开始电机测试? - + Cancel - + 正在排气,是否停止? - + 确定要升级FPGA软件吗? - + 没有FPGA升级文件 - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -5655,13 +5685,13 @@ p, li { white-space: pre-wrap; } - + background-color:#828E9E; - + QPushButton { background: qlineargradient(x1: 0.5, y1: 0, x2: 0.5, y2: 1, stop: 0 #6F9CD6, stop: 1 #FFFFFF); border: 1px solid #a0a0a0; @@ -5679,13 +5709,13 @@ p, li { white-space: pre-wrap; } - + background-color:#C4C5C9; - - + + QPushButton { background-color: #ffffff; border: 1px solid #a8a8a8; @@ -5737,77 +5767,82 @@ p, li { white-space: pre-wrap; } - 打印设置 + 另存为 + 打印设置 + + + + 图元设置 - + 复制 - + 粘贴 - + 删除 - + 5 dot - + 7 dot - + 9 dot - + 12 dot - + 16 dot - + 24 dot - + 32 dot - + UK - + US - - + + QPushButton { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5826,19 +5861,19 @@ p, li { white-space: pre-wrap; } - + << - + >> - - - + + + QLabel { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5851,20 +5886,20 @@ p, li { white-space: pre-wrap; } - + Y:9 - + X:105 - - - - + + + + QPushButton { background-color: #87CEEB; border: 1px solid #4682B4; @@ -5884,32 +5919,32 @@ p, li { white-space: pre-wrap; } - + ↑ - + ← - + → - + ↓ - + ID:1 - + ✓ diff --git a/testprintwidget.cpp b/testprintwidget.cpp index 7213ef7..b247db6 100644 --- a/testprintwidget.cpp +++ b/testprintwidget.cpp @@ -201,6 +201,8 @@ TestPrintWidget::TestPrintWidget(QWidget* parent) // 网络通信,暂时屏蔽 // ui.btnList->hide(); + + connect(ui.btnSaveAs, &QPushButton::clicked, this, &TestPrintWidget::onBtnSaveAsClicked); } void TestPrintWidget::bindSysPara(SysPara *sysPara) @@ -1159,3 +1161,18 @@ void TestPrintWidget::on_btn_paste_clicked() { pasteCopiedLayer(); } + +void TestPrintWidget::onBtnSaveAsClicked() +{ + dialogSaveFile->refreshListView(SCENE); + dialogSaveFile->setEnterFileName(""); + auto ret = dialogSaveFile->exec(); + + if(ret == QDialog::Accepted) { + auto filename = dialogSaveFile->filename(); + if(!filename.endsWith(".xml",Qt::CaseInsensitive)) + filename += ".xml"; + + saveFile(filename); + } +} diff --git a/testprintwidget.h b/testprintwidget.h index 01c2c56..f1163d0 100644 --- a/testprintwidget.h +++ b/testprintwidget.h @@ -108,6 +108,8 @@ private slots: // 粘贴 void on_btn_paste_clicked(); + void onBtnSaveAsClicked(); + private: // UI对象 Ui::TestPrintWidget ui; diff --git a/thai.ts b/thai.ts index 90612e9..6df7879 100644 --- a/thai.ts +++ b/thai.ts @@ -1921,25 +1921,25 @@ - + 开始自检,请等待%1秒... - - - + + + 自检完成!!! - + 警告 - + 提示 @@ -1954,20 +1954,20 @@ - + 开始自检,请等待60秒... - - - + + + 正在准备重启,请等待%1秒...... - + 压力泄漏或压力传感器故障! @@ -1993,125 +1993,125 @@ - - + + 缺少墨水,喷码机不能正常工作! - - + + 停止打印,自动关闭高压. - + flagOfPowerOnMode: %1 - - + + 电机故障 - + 回收槽到头 - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - - - + + + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - - - + + + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷墨水卡成功, 请及时将该墨水卡对应的墨水添加到机器中 - + 刷墨水卡成功! - + 刷溶剂卡成功, 请及时将该溶剂卡对应的溶剂添加到机器中 - + 刷溶剂卡成功! - + 请及时使用墨水盒附带的IC卡激活墨水盒 - + 墨水液位报警超过%1小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请及时使用溶剂盒附带的IC卡激活溶剂盒 - + 溶剂液位报警超过%1小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + File not found: %1 - + 刷卡倒计时起始时间文件不存在 @@ -3084,6 +3084,7 @@ + 喷嘴开启 @@ -3091,7 +3092,8 @@ - + + 喷嘴关闭 @@ -3111,277 +3113,282 @@ - - - - + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - - - + + + 正在准备关机,请等待%1秒... - + 准备关机... - + 关机失败!!! - - - - - + + + + + 错误 - + 喷印间隔过短,应高于%1! - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - + 喷嘴已开启 - - + + 喷嘴开启中 - + 喷嘴已关闭 - + 喷嘴关闭中 - - + + print:%1--print:%2--state:%3 + + + + + stop:%1--print:%2--state:%3 + + + + + 正在排气... - - + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - - + + 正常 - + 相位故障, 关闭回收槽 - - + + 相位故障,关闭回收槽 - - 提示 + + 等待压力稳定... - - 随机码文本将展出到U盘,请插入U盘 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + 高压故障,关回收槽和墨线 - - + + 回收故障,关闭回收槽,关墨线 - + 回收故障. - + 回收异常,墨线可能偏离.(%1) - + 正在喷印....... - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - - + + + 相位故障,准备关机 - - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - - + + 相位故障,屏蔽充电 @@ -3749,12 +3756,12 @@ p, li { white-space: pre-wrap; } - + 喷印间隔(毫米): - + 同步喷印模式: @@ -3774,100 +3781,100 @@ p, li { white-space: pre-wrap; } - + 脉冲信号值: - + 无镜像打印 - + 自动水平翻转 - + 自动垂直翻转 - + 中心对称旋转 - - + + 延时(毫秒): - - + + 触发延时(毫秒) - + 脉冲输出使能 - + 禁止电眼清零 - + 允许电眼复位 - + 允许电眼立即复位 - + 电眼清零 - + 字符宽度: - + 产生脉冲所需计数: - + 间隔模式: - + 行末<->行首 - + 行首<->行首 - - + + 重复间隔(毫秒) - + 封锁时间(毫秒) @@ -3878,13 +3885,13 @@ p, li { white-space: pre-wrap; } - + 内部 - + 外部 @@ -3904,163 +3911,176 @@ p, li { white-space: pre-wrap; } - - 脉冲数修正 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 带补偿的正转打印 - + 带补偿的反转打印 - + 同步器来源 - + 同步器直径(毫米): - + 脉冲数/转: - + 其他设置 - + 镜象交替类型: - + 镜像交替间隔: - + 调试设置 - + 开启墨点飞行补偿 - + 墨点飞行补偿统计窗口(系统时钟周期), 0表示使用相检得到的飞行时间 - + 启用加减速预测 - + ✕ - + ✓ - - + + 提示 - + 应用成功 - - + + 延时(毫米): - - - + + + 触发延时(毫米) - + 默认设置已保存 - - - + + + 重复间隔(毫米) - - + + 抑止距离(毫米) - + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) + + PrinterStateManager + + + 相位故障,回收喷嘴 + + + + + 检查相位中... + + + + + 检查完毕 + + + PulseNumFix @@ -4733,6 +4753,16 @@ p, li { white-space: pre-wrap; } 清空产品计数 + + + 重置计数器1 + + + + + 重置计数器2 + + SystemManage @@ -4764,14 +4794,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -4802,7 +4832,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -4844,9 +4874,9 @@ p, li { white-space: pre-wrap; } - - - + + + 自动 @@ -4858,15 +4888,15 @@ p, li { white-space: pre-wrap; } - - - - - - - - - + + + + + + + + + 开 @@ -4878,29 +4908,29 @@ p, li { white-space: pre-wrap; } - - - - - - - - - - + + + + + + + + + + 关 - - - - - - - + + + + + + + 警告 @@ -4916,309 +4946,309 @@ p, li { white-space: pre-wrap; } - - - + + + 手动 - + 请先移开喷头盖! - - - - - - - - + + + + + + + + 启动 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + 提示 - - - - + + + + 密码不正确! - + Application - + 是否确认更新字库? - + 没找到对应字库,更新失败! - + 更新字库成功,重启后生效! - + 恢复出厂设置成功,请重新关机上电 - + 校准触摸屏 - + 是否确认开始校准程序?请小心进行校准! - + 是否确认更新软件? - - - - - + + + + + + - 错误 - + 更新失败! - + 软件更新成功,重启后生效! - + 找不到更新软件! - + 是否确认更新系统? - + 系统更新成功,重启后生效! - + 文件不存在! - + 如果开始清洗,务必确认回收槽已经打开10毫米以上,并且在一分钟后将停止清洗 - + 开始清洗 - + 停止清洗 - + 压力 - + autoclean cancel or status: - + (2/3) Cleaning - + (3/3) Cleaning - + 是否确认导出配置到U盘? - + 检测不到U盘 - + 成功导出配置到U盘 - + 是否确认从U盘导入配置? - + 配置文件/udisk/sysPara.bin不存在! - + 从U盘成功导入配置,重启后生效! - + autoclean start - + 是否确认重启? - + 是否开始电机测试? - + Cancel - + 正在排气,是否停止? - + 确定要升级FPGA软件吗? - + 没有FPGA升级文件 - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -5655,13 +5685,13 @@ p, li { white-space: pre-wrap; } - + background-color:#828E9E; - + QPushButton { background: qlineargradient(x1: 0.5, y1: 0, x2: 0.5, y2: 1, stop: 0 #6F9CD6, stop: 1 #FFFFFF); border: 1px solid #a0a0a0; @@ -5679,13 +5709,13 @@ p, li { white-space: pre-wrap; } - + background-color:#C4C5C9; - - + + QPushButton { background-color: #ffffff; border: 1px solid #a8a8a8; @@ -5737,77 +5767,82 @@ p, li { white-space: pre-wrap; } - 打印设置 + 另存为 + 打印设置 + + + + 图元设置 - + 复制 - + 粘贴 - + 删除 - + 5 dot - + 7 dot - + 9 dot - + 12 dot - + 16 dot - + 24 dot - + 32 dot - + UK - + US - - + + QPushButton { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5826,19 +5861,19 @@ p, li { white-space: pre-wrap; } - + << - + >> - - - + + + QLabel { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5851,20 +5886,20 @@ p, li { white-space: pre-wrap; } - + Y:9 - + X:105 - - - - + + + + QPushButton { background-color: #87CEEB; border: 1px solid #4682B4; @@ -5884,32 +5919,32 @@ p, li { white-space: pre-wrap; } - + ↑ - + ← - + → - + ↓ - + ID:1 - + ✓ diff --git a/turkey.ts b/turkey.ts index 90612e9..6df7879 100644 --- a/turkey.ts +++ b/turkey.ts @@ -1921,25 +1921,25 @@ - + 开始自检,请等待%1秒... - - - + + + 自检完成!!! - + 警告 - + 提示 @@ -1954,20 +1954,20 @@ - + 开始自检,请等待60秒... - - - + + + 正在准备重启,请等待%1秒...... - + 压力泄漏或压力传感器故障! @@ -1993,125 +1993,125 @@ - - + + 缺少墨水,喷码机不能正常工作! - - + + 停止打印,自动关闭高压. - + flagOfPowerOnMode: %1 - - + + 电机故障 - + 回收槽到头 - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - - - + + + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - - - + + + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷墨水卡成功, 请及时将该墨水卡对应的墨水添加到机器中 - + 刷墨水卡成功! - + 刷溶剂卡成功, 请及时将该溶剂卡对应的溶剂添加到机器中 - + 刷溶剂卡成功! - + 请及时使用墨水盒附带的IC卡激活墨水盒 - + 墨水液位报警超过%1小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请及时使用溶剂盒附带的IC卡激活溶剂盒 - + 溶剂液位报警超过%1小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + File not found: %1 - + 刷卡倒计时起始时间文件不存在 @@ -3084,6 +3084,7 @@ + 喷嘴开启 @@ -3091,7 +3092,8 @@ - + + 喷嘴关闭 @@ -3111,277 +3113,282 @@ - - - - + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - - - + + + 正在准备关机,请等待%1秒... - + 准备关机... - + 关机失败!!! - - - - - + + + + + 错误 - + 喷印间隔过短,应高于%1! - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - + 喷嘴已开启 - - + + 喷嘴开启中 - + 喷嘴已关闭 - + 喷嘴关闭中 - - + + print:%1--print:%2--state:%3 + + + + + stop:%1--print:%2--state:%3 + + + + + 正在排气... - - + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - - + + 正常 - + 相位故障, 关闭回收槽 - - + + 相位故障,关闭回收槽 - - 提示 + + 等待压力稳定... - - 随机码文本将展出到U盘,请插入U盘 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + 高压故障,关回收槽和墨线 - - + + 回收故障,关闭回收槽,关墨线 - + 回收故障. - + 回收异常,墨线可能偏离.(%1) - + 正在喷印....... - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - - + + + 相位故障,准备关机 - - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - - + + 相位故障,屏蔽充电 @@ -3749,12 +3756,12 @@ p, li { white-space: pre-wrap; } - + 喷印间隔(毫米): - + 同步喷印模式: @@ -3774,100 +3781,100 @@ p, li { white-space: pre-wrap; } - + 脉冲信号值: - + 无镜像打印 - + 自动水平翻转 - + 自动垂直翻转 - + 中心对称旋转 - - + + 延时(毫秒): - - + + 触发延时(毫秒) - + 脉冲输出使能 - + 禁止电眼清零 - + 允许电眼复位 - + 允许电眼立即复位 - + 电眼清零 - + 字符宽度: - + 产生脉冲所需计数: - + 间隔模式: - + 行末<->行首 - + 行首<->行首 - - + + 重复间隔(毫秒) - + 封锁时间(毫秒) @@ -3878,13 +3885,13 @@ p, li { white-space: pre-wrap; } - + 内部 - + 外部 @@ -3904,163 +3911,176 @@ p, li { white-space: pre-wrap; } - - 脉冲数修正 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 带补偿的正转打印 - + 带补偿的反转打印 - + 同步器来源 - + 同步器直径(毫米): - + 脉冲数/转: - + 其他设置 - + 镜象交替类型: - + 镜像交替间隔: - + 调试设置 - + 开启墨点飞行补偿 - + 墨点飞行补偿统计窗口(系统时钟周期), 0表示使用相检得到的飞行时间 - + 启用加减速预测 - + ✕ - + ✓ - - + + 提示 - + 应用成功 - - + + 延时(毫米): - - - + + + 触发延时(毫米) - + 默认设置已保存 - - - + + + 重复间隔(毫米) - - + + 抑止距离(毫米) - + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) + + PrinterStateManager + + + 相位故障,回收喷嘴 + + + + + 检查相位中... + + + + + 检查完毕 + + + PulseNumFix @@ -4733,6 +4753,16 @@ p, li { white-space: pre-wrap; } 清空产品计数 + + + 重置计数器1 + + + + + 重置计数器2 + + SystemManage @@ -4764,14 +4794,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -4802,7 +4832,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -4844,9 +4874,9 @@ p, li { white-space: pre-wrap; } - - - + + + 自动 @@ -4858,15 +4888,15 @@ p, li { white-space: pre-wrap; } - - - - - - - - - + + + + + + + + + 开 @@ -4878,29 +4908,29 @@ p, li { white-space: pre-wrap; } - - - - - - - - - - + + + + + + + + + + 关 - - - - - - - + + + + + + + 警告 @@ -4916,309 +4946,309 @@ p, li { white-space: pre-wrap; } - - - + + + 手动 - + 请先移开喷头盖! - - - - - - - - + + + + + + + + 启动 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + 提示 - - - - + + + + 密码不正确! - + Application - + 是否确认更新字库? - + 没找到对应字库,更新失败! - + 更新字库成功,重启后生效! - + 恢复出厂设置成功,请重新关机上电 - + 校准触摸屏 - + 是否确认开始校准程序?请小心进行校准! - + 是否确认更新软件? - - - - - + + + + + + - 错误 - + 更新失败! - + 软件更新成功,重启后生效! - + 找不到更新软件! - + 是否确认更新系统? - + 系统更新成功,重启后生效! - + 文件不存在! - + 如果开始清洗,务必确认回收槽已经打开10毫米以上,并且在一分钟后将停止清洗 - + 开始清洗 - + 停止清洗 - + 压力 - + autoclean cancel or status: - + (2/3) Cleaning - + (3/3) Cleaning - + 是否确认导出配置到U盘? - + 检测不到U盘 - + 成功导出配置到U盘 - + 是否确认从U盘导入配置? - + 配置文件/udisk/sysPara.bin不存在! - + 从U盘成功导入配置,重启后生效! - + autoclean start - + 是否确认重启? - + 是否开始电机测试? - + Cancel - + 正在排气,是否停止? - + 确定要升级FPGA软件吗? - + 没有FPGA升级文件 - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -5655,13 +5685,13 @@ p, li { white-space: pre-wrap; } - + background-color:#828E9E; - + QPushButton { background: qlineargradient(x1: 0.5, y1: 0, x2: 0.5, y2: 1, stop: 0 #6F9CD6, stop: 1 #FFFFFF); border: 1px solid #a0a0a0; @@ -5679,13 +5709,13 @@ p, li { white-space: pre-wrap; } - + background-color:#C4C5C9; - - + + QPushButton { background-color: #ffffff; border: 1px solid #a8a8a8; @@ -5737,77 +5767,82 @@ p, li { white-space: pre-wrap; } - 打印设置 + 另存为 + 打印设置 + + + + 图元设置 - + 复制 - + 粘贴 - + 删除 - + 5 dot - + 7 dot - + 9 dot - + 12 dot - + 16 dot - + 24 dot - + 32 dot - + UK - + US - - + + QPushButton { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5826,19 +5861,19 @@ p, li { white-space: pre-wrap; } - + << - + >> - - - + + + QLabel { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5851,20 +5886,20 @@ p, li { white-space: pre-wrap; } - + Y:9 - + X:105 - - - - + + + + QPushButton { background-color: #87CEEB; border: 1px solid #4682B4; @@ -5884,32 +5919,32 @@ p, li { white-space: pre-wrap; } - + ↑ - + ← - + → - + ↓ - + ID:1 - + ✓ diff --git a/vena.ts b/vena.ts index 90612e9..6df7879 100644 --- a/vena.ts +++ b/vena.ts @@ -1921,25 +1921,25 @@ - + 开始自检,请等待%1秒... - - - + + + 自检完成!!! - + 警告 - + 提示 @@ -1954,20 +1954,20 @@ - + 开始自检,请等待60秒... - - - + + + 正在准备重启,请等待%1秒...... - + 压力泄漏或压力传感器故障! @@ -1993,125 +1993,125 @@ - - + + 缺少墨水,喷码机不能正常工作! - - + + 停止打印,自动关闭高压. - + flagOfPowerOnMode: %1 - - + + 电机故障 - + 回收槽到头 - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - - - + + + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - - - + + + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷墨水卡成功, 请及时将该墨水卡对应的墨水添加到机器中 - + 刷墨水卡成功! - + 刷溶剂卡成功, 请及时将该溶剂卡对应的溶剂添加到机器中 - + 刷溶剂卡成功! - + 请及时使用墨水盒附带的IC卡激活墨水盒 - + 墨水液位报警超过%1小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请及时使用溶剂盒附带的IC卡激活溶剂盒 - + 溶剂液位报警超过%1小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + File not found: %1 - + 刷卡倒计时起始时间文件不存在 @@ -3084,6 +3084,7 @@ + 喷嘴开启 @@ -3091,7 +3092,8 @@ - + + 喷嘴关闭 @@ -3111,277 +3113,282 @@ - - - - + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - - - + + + 正在准备关机,请等待%1秒... - + 准备关机... - + 关机失败!!! - - - - - + + + + + 错误 - + 喷印间隔过短,应高于%1! - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - + 喷嘴已开启 - - + + 喷嘴开启中 - + 喷嘴已关闭 - + 喷嘴关闭中 - - + + print:%1--print:%2--state:%3 + + + + + stop:%1--print:%2--state:%3 + + + + + 正在排气... - - + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - - + + 正常 - + 相位故障, 关闭回收槽 - - + + 相位故障,关闭回收槽 - - 提示 + + 等待压力稳定... - - 随机码文本将展出到U盘,请插入U盘 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + 高压故障,关回收槽和墨线 - - + + 回收故障,关闭回收槽,关墨线 - + 回收故障. - + 回收异常,墨线可能偏离.(%1) - + 正在喷印....... - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - - + + + 相位故障,准备关机 - - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - - + + 相位故障,屏蔽充电 @@ -3749,12 +3756,12 @@ p, li { white-space: pre-wrap; } - + 喷印间隔(毫米): - + 同步喷印模式: @@ -3774,100 +3781,100 @@ p, li { white-space: pre-wrap; } - + 脉冲信号值: - + 无镜像打印 - + 自动水平翻转 - + 自动垂直翻转 - + 中心对称旋转 - - + + 延时(毫秒): - - + + 触发延时(毫秒) - + 脉冲输出使能 - + 禁止电眼清零 - + 允许电眼复位 - + 允许电眼立即复位 - + 电眼清零 - + 字符宽度: - + 产生脉冲所需计数: - + 间隔模式: - + 行末<->行首 - + 行首<->行首 - - + + 重复间隔(毫秒) - + 封锁时间(毫秒) @@ -3878,13 +3885,13 @@ p, li { white-space: pre-wrap; } - + 内部 - + 外部 @@ -3904,163 +3911,176 @@ p, li { white-space: pre-wrap; } - - 脉冲数修正 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 带补偿的正转打印 - + 带补偿的反转打印 - + 同步器来源 - + 同步器直径(毫米): - + 脉冲数/转: - + 其他设置 - + 镜象交替类型: - + 镜像交替间隔: - + 调试设置 - + 开启墨点飞行补偿 - + 墨点飞行补偿统计窗口(系统时钟周期), 0表示使用相检得到的飞行时间 - + 启用加减速预测 - + ✕ - + ✓ - - + + 提示 - + 应用成功 - - + + 延时(毫米): - - - + + + 触发延时(毫米) - + 默认设置已保存 - - - + + + 重复间隔(毫米) - - + + 抑止距离(毫米) - + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) + + PrinterStateManager + + + 相位故障,回收喷嘴 + + + + + 检查相位中... + + + + + 检查完毕 + + + PulseNumFix @@ -4733,6 +4753,16 @@ p, li { white-space: pre-wrap; } 清空产品计数 + + + 重置计数器1 + + + + + 重置计数器2 + + SystemManage @@ -4764,14 +4794,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -4802,7 +4832,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -4844,9 +4874,9 @@ p, li { white-space: pre-wrap; } - - - + + + 自动 @@ -4858,15 +4888,15 @@ p, li { white-space: pre-wrap; } - - - - - - - - - + + + + + + + + + 开 @@ -4878,29 +4908,29 @@ p, li { white-space: pre-wrap; } - - - - - - - - - - + + + + + + + + + + 关 - - - - - - - + + + + + + + 警告 @@ -4916,309 +4946,309 @@ p, li { white-space: pre-wrap; } - - - + + + 手动 - + 请先移开喷头盖! - - - - - - - - + + + + + + + + 启动 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + 提示 - - - - + + + + 密码不正确! - + Application - + 是否确认更新字库? - + 没找到对应字库,更新失败! - + 更新字库成功,重启后生效! - + 恢复出厂设置成功,请重新关机上电 - + 校准触摸屏 - + 是否确认开始校准程序?请小心进行校准! - + 是否确认更新软件? - - - - - + + + + + + - 错误 - + 更新失败! - + 软件更新成功,重启后生效! - + 找不到更新软件! - + 是否确认更新系统? - + 系统更新成功,重启后生效! - + 文件不存在! - + 如果开始清洗,务必确认回收槽已经打开10毫米以上,并且在一分钟后将停止清洗 - + 开始清洗 - + 停止清洗 - + 压力 - + autoclean cancel or status: - + (2/3) Cleaning - + (3/3) Cleaning - + 是否确认导出配置到U盘? - + 检测不到U盘 - + 成功导出配置到U盘 - + 是否确认从U盘导入配置? - + 配置文件/udisk/sysPara.bin不存在! - + 从U盘成功导入配置,重启后生效! - + autoclean start - + 是否确认重启? - + 是否开始电机测试? - + Cancel - + 正在排气,是否停止? - + 确定要升级FPGA软件吗? - + 没有FPGA升级文件 - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -5655,13 +5685,13 @@ p, li { white-space: pre-wrap; } - + background-color:#828E9E; - + QPushButton { background: qlineargradient(x1: 0.5, y1: 0, x2: 0.5, y2: 1, stop: 0 #6F9CD6, stop: 1 #FFFFFF); border: 1px solid #a0a0a0; @@ -5679,13 +5709,13 @@ p, li { white-space: pre-wrap; } - + background-color:#C4C5C9; - - + + QPushButton { background-color: #ffffff; border: 1px solid #a8a8a8; @@ -5737,77 +5767,82 @@ p, li { white-space: pre-wrap; } - 打印设置 + 另存为 + 打印设置 + + + + 图元设置 - + 复制 - + 粘贴 - + 删除 - + 5 dot - + 7 dot - + 9 dot - + 12 dot - + 16 dot - + 24 dot - + 32 dot - + UK - + US - - + + QPushButton { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5826,19 +5861,19 @@ p, li { white-space: pre-wrap; } - + << - + >> - - - + + + QLabel { background-color: #e5e5e5; border: 1px solid #a8a8a8; @@ -5851,20 +5886,20 @@ p, li { white-space: pre-wrap; } - + Y:9 - + X:105 - - - - + + + + QPushButton { background-color: #87CEEB; border: 1px solid #4682B4; @@ -5884,32 +5919,32 @@ p, li { white-space: pre-wrap; } - + ↑ - + ← - + → - + ↓ - + ID:1 - + ✓