diff --git a/CounterVarSet.cpp b/CounterVarSet.cpp index 351e1e1..72ad604 100644 --- a/CounterVarSet.cpp +++ b/CounterVarSet.cpp @@ -377,6 +377,59 @@ void CounterVarSet::applyStyleSheet() box-shadow: 0 -3px 8px rgba(44, 125, 232, 0.25); } + QRadioButton::indicator { + width: 25px; + height: 25px; + } + + QSpinBox::down-button { + width: 23px; /* 图标显示宽度 */ + height: 23px; /* 图标显示高度 */ + border: 1px solid #333333; + border-radius: 3px; + background-color: #5396C1; + } + + QSpinBox::down-arrow { + image: url(image/down_white.png); + height: 18px; + width: 18px; + } + + QSpinBox::up-button { + width: 23px; /* 图标显示宽度 */ + height: 23px; /* 图标显示高度 */ + border: 1px solid #333333; + border-radius: 3px; + background-color: #5396C1; + } + + QSpinBox::up-arrow { + image: url(image/up_white.png); + height: 18px; + width: 18px; + } + + QSpinBox { + border: 1px solid #333333; + } + + QCheckBox { + color: #000000; + } + + QCheckBox::indicator { + width: 15px; + height: 15px; + border: 1px solid #96A0A9; + border-radius: 8px; + background-color: #ffffff; + } + + QCheckBox::indicator:checked { + background-color: #95B2D4; + border-color: #95B2D4; + } )"; this->setStyleSheet(styleSheet); diff --git a/DevOp.cpp b/DevOp.cpp index 99d776e..3aabac4 100644 --- a/DevOp.cpp +++ b/DevOp.cpp @@ -3642,16 +3642,19 @@ void DevOp::comForRFID_init(void) comForRFID->setPortName("/dev/ttyUSB0"); #endif + LogInfo::setRunStatusText("RFID port dev name: " + comForRFID->portName()); comForRFID->setBaudRate(9600); comForRFID->setDataBits(QSerialPort::Data8); comForRFID->setParity(QSerialPort::NoParity); comForRFID->setStopBits(QSerialPort::OneStop); comForRFID->setFlowControl(QSerialPort::NoFlowControl); if (comForRFID->open(QIODevice::ReadWrite)) { - qDebug() << "RFID串口打开成功"; + qInfo() << "RFID串口打开成功"; connect(comForRFID,SIGNAL(readyRead()),this,SLOT(readRFIDData())); + LogInfo::setRunStatusText("Successed to open RFID port"); } else { qDebug() << "RFID串口打开失败: " << comForRFID->errorString(); + LogInfo::setRunStatusText("Failed to open RFID port"); } } @@ -3710,7 +3713,7 @@ int DevOp::comReadRFID_data() //CardDataRwLock.lockForWrite(); strRevdata = QString((const char*)temp); // CardDataRwLock.unlock(); - qDebug() << "读数据块成功,数据块6" << "数据为:" << temp << endl << endl; +// qDebug() << "读数据块成功,数据块6" << "数据为:" << temp << endl << endl; return 1; } } @@ -3807,6 +3810,7 @@ int DevOp::RFIDmarkCardUsedAsync(int type) qDebug()<<"Cmd["<0) + if(n>2) { recResponse = RFIDReadData; RFIDReadData.clear(); @@ -4015,7 +4019,7 @@ int DevOp::setRFIDReaderKey(int mac,int type) } QElapsedTimer elapsedTimer; elapsedTimer.start(); - while(comForRFID->bytesAvailable() < 8 && !elapsedTimer.hasExpired(2000)) { + while(comForRFID->bytesAvailable() < 8 && !elapsedTimer.hasExpired(20000)) { QApplication::processEvents(QEventLoop::AllEvents, 100); } @@ -4025,7 +4029,7 @@ int DevOp::setRFIDReaderKey(int mac,int type) connect(comForRFID, &QSerialPort::readyRead, this, &DevOp::readRFIDData); if(n < 8) { - qDebug() << "读取数据失败, 数据长度不足8字节" << endl << endl; + LogInfo::setRunStatusText(u8"读取数据失败, 数据长度不足8字节"); return -3; } @@ -4088,7 +4092,7 @@ int DevOp::setRFIDReaderOriginalKey(void) } MySleep(200); int n = RFIDReadData.size(); - if(n>0) + if(n>2) { recResponse = RFIDReadData; RFIDReadData.clear(); @@ -4151,7 +4155,7 @@ int DevOp::setRFIDReaderWorkMode(void) QElapsedTimer elapsedTimer; elapsedTimer.start(); - while(comForRFID->bytesAvailable() < 8 && !elapsedTimer.hasExpired(2000)) { + while(comForRFID->bytesAvailable() < 8 && !elapsedTimer.hasExpired(20000)) { QApplication::processEvents(QEventLoop::AllEvents, 100); } @@ -4161,7 +4165,7 @@ int DevOp::setRFIDReaderWorkMode(void) connect(comForRFID, &QSerialPort::readyRead, this, &DevOp::readRFIDData); if(n < 8) { - qDebug() << "读取数据失败, 数据长度不足8字节" << endl << endl; + LogInfo::setRunStatusText(u8"读取数据失败, 数据长度不足8字节"); return -2; } @@ -4272,7 +4276,7 @@ int DevOp::queryReadRFID_address(void) UCHAR revdata[100] = {0}; if(n > (int)sizeof(revdata)) n = sizeof(revdata); memcpy(revdata, RFIDReadData.constData(), n); - if(n>0) + if(n>4) { showData(RFIDReadData); if(CheckSumIn(revdata, revdata[1]) == false){ diff --git a/DevOp.h b/DevOp.h index ef3bbd5..13f9da0 100644 --- a/DevOp.h +++ b/DevOp.h @@ -226,7 +226,6 @@ public : /** * @brief 向卡片写入当前日期时间,标识该卡片已被使用 - * @param done 异步回调函数,用于处理写入完成后的操作,参数为写入结果,0表示成功,-1表示卡片已经离开 */ int RFIDmarkCardUsedAsync(int type = 0); int setRFIDCarKey(void); diff --git a/DlgRFIDConfig.cpp b/DlgRFIDConfig.cpp index 2afc454..a4bfc14 100644 --- a/DlgRFIDConfig.cpp +++ b/DlgRFIDConfig.cpp @@ -6,8 +6,6 @@ DlgRFIDConfig::DlgRFIDConfig(QWidget *parent) : ui(new Ui::DlgRFIDConfig) { ui->setupUi(this); - setWindowFlags(windowFlags() | Qt::Tool | Qt::FramelessWindowHint | Qt::BypassWindowManagerHint); - } DlgRFIDConfig::~DlgRFIDConfig() diff --git a/DlgVoltePara25Dots.cpp b/DlgVoltePara25Dots.cpp new file mode 100644 index 0000000..8db892d --- /dev/null +++ b/DlgVoltePara25Dots.cpp @@ -0,0 +1,423 @@ +#include "DlgVoltePara25Dots.h" +#include "DevOp.h" +#include +#include +#include +#include + +DlgVoltePara25Dots::DlgVoltePara25Dots(DevOp *devOp, QWidget *parent) + : QDialog(parent) + , m_devOp(devOp) + , tableSingleDot1(nullptr) + , tableSingleDotFirst1(nullptr) + , table2Dots(nullptr) + , table3Dots(nullptr) + , table4Dots(nullptr) + , table5Dots(nullptr) + , tableContinuous(nullptr) + , tableDiffVoltage(nullptr) + , tableExtraLine(nullptr) + , tableFirstOnePointExtra(nullptr) + , tableAdjustPara(nullptr) + , tableGiantPoint(nullptr) +{ + setupUI(); +} + +DlgVoltePara25Dots::~DlgVoltePara25Dots() +{ +} + +// 创建通用表格 +QTableWidget* DlgVoltePara25Dots::createTable(int rows, int cols, int minVal, int maxVal) +{ + QTableWidget *table = new QTableWidget(rows, cols, this); + table->setMinimumHeight(200); + + // 设置行头(通道编号) + QStringList rowHeaders; + for (int i = 0; i < rows; i++) { + rowHeaders << QString::number(i); + } + table->setVerticalHeaderLabels(rowHeaders); + + // 设置列头(点序号) + QStringList colHeaders; + for (int i = 0; i < cols; i++) { + if (cols == 1) + colHeaders << QString("值"); + else + colHeaders << QString("点%1").arg(i + 1); + } + table->setHorizontalHeaderLabels(colHeaders); + + // 初始化所有单元格为 0 + for (int r = 0; r < rows; r++) { + for (int c = 0; c < cols; c++) { + QTableWidgetItem *item = new QTableWidgetItem("0"); + item->setTextAlignment(Qt::AlignCenter); + table->setItem(r, c, item); + } + } + + // 设置行高适配触屏 + table->verticalHeader()->setDefaultSectionSize(30); + table->horizontalHeader()->setDefaultSectionSize(60); + + Q_UNUSED(minVal); + Q_UNUSED(maxVal); + + return table; +} + +void DlgVoltePara25Dots::setupUI() +{ + setWindowTitle(QString("25点阵充电参数编辑")); + resize(800, 600); + + QVBoxLayout *mainLayout = new QVBoxLayout(this); + mainLayout->setContentsMargins(4, 4, 4, 4); + mainLayout->setSpacing(4); + + // 选项卡 + tabWidget = new QTabWidget(this); + tabWidget->addTab(createTab_SingleDot(), QString("单点")); + tabWidget->addTab(createTab_2Dots(), QString("2点连续")); + tabWidget->addTab(createTab_3Dots(), QString("3点连续")); + tabWidget->addTab(createTab_4Dots(), QString("4点连续")); + tabWidget->addTab(createTab_5Dots(), QString("5点连续")); + tabWidget->addTab(createTab_Continuous(), QString("连续点")); + tabWidget->addTab(createTab_DiffVoltage(), QString("差分补偿")); + tabWidget->addTab(createTab_ExtraLine(), QString("行补偿")); + tabWidget->addTab(createTab_GiantPoint(), QString("巨点补偿")); + mainLayout->addWidget(tabWidget); + + // 底部按钮栏 + QHBoxLayout *btnLayout = new QHBoxLayout(); + btnLoad = new QPushButton(QString("读取当前值"), this); + btnSave = new QPushButton(QString("保存并推送FPGA"), this); + btnLoad->setMinimumHeight(40); + btnSave->setMinimumHeight(40); + btnLayout->addWidget(btnLoad); + btnLayout->addStretch(); + btnLayout->addWidget(btnSave); + mainLayout->addLayout(btnLayout); + + connect(btnLoad, SIGNAL(clicked()), this, SLOT(onBtnLoadClicked())); + connect(btnSave, SIGNAL(clicked()), this, SLOT(onBtnSaveClicked())); +} + +// ========== 选项卡创建 ========== + +QWidget* DlgVoltePara25Dots::createTab_SingleDot() +{ + QWidget *page = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(page); + + QLabel *label1 = new QLabel(QString("单点 DAC (matchTotalTableDACArray1)"), page); + tableSingleDot1 = createTable(64, 1, 0, 65535); + layout->addWidget(label1); + layout->addWidget(tableSingleDot1); + + QLabel *label2 = new QLabel(QString("首单点 DAC (matchTotalTableDACArrayFirst1)"), page); + tableSingleDotFirst1 = createTable(64, 1, 0, 65535); + layout->addWidget(label2); + layout->addWidget(tableSingleDotFirst1); + + return page; +} + +QWidget* DlgVoltePara25Dots::createTab_2Dots() +{ + QWidget *page = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(page); + + table2Dots = createTable(64, 2, 0, 65535); + layout->addWidget(table2Dots); + + return page; +} + +QWidget* DlgVoltePara25Dots::createTab_3Dots() +{ + QWidget *page = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(page); + + table3Dots = createTable(64, 3, 0, 65535); + layout->addWidget(table3Dots); + + return page; +} + +QWidget* DlgVoltePara25Dots::createTab_4Dots() +{ + QWidget *page = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(page); + + table4Dots = createTable(64, 4, 0, 65535); + layout->addWidget(table4Dots); + + return page; +} + +QWidget* DlgVoltePara25Dots::createTab_5Dots() +{ + QWidget *page = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(page); + + table5Dots = createTable(64, 5, 0, 65535); + layout->addWidget(table5Dots); + + return page; +} + +QWidget* DlgVoltePara25Dots::createTab_Continuous() +{ + QWidget *page = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(page); + + QLabel *label = new QLabel(QString("连续点 DAC (matchContinousDACArray)"), page); + tableContinuous = createTable(64, 1, 0, 65535); + layout->addWidget(label); + layout->addWidget(tableContinuous); + + return page; +} + +QWidget* DlgVoltePara25Dots::createTab_DiffVoltage() +{ + QWidget *page = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(page); + + QLabel *label = new QLabel(QString("差分电压补偿 (matchTotalDiffVoltageValue) [50×64]"), page); + tableDiffVoltage = createTable(50, 64, -128, 127); + layout->addWidget(label); + layout->addWidget(tableDiffVoltage); + + return page; +} + +QWidget* DlgVoltePara25Dots::createTab_ExtraLine() +{ + QWidget *page = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(page); + + QLabel *label1 = new QLabel(QString("额外行补偿 (matchExtraLineDACArray)"), page); + tableExtraLine = createTable(64, 1, 0, 255); + layout->addWidget(label1); + layout->addWidget(tableExtraLine); + + QLabel *label2 = new QLabel(QString("首单点行补偿 (matchFirstOnePointExtraLineDACArray)"), page); + tableFirstOnePointExtra = createTable(64, 1, -128, 127); + layout->addWidget(label2); + layout->addWidget(tableFirstOnePointExtra); + + return page; +} + +QWidget* DlgVoltePara25Dots::createTab_GiantPoint() +{ + QWidget *page = new QWidget(this); + QVBoxLayout *layout = new QVBoxLayout(page); + + QLabel *label1 = new QLabel(QString("巨点调整参数 (matchAdjustParaDACArray) [8]"), page); + tableAdjustPara = createTable(8, 1, -128, 127); + layout->addWidget(label1); + layout->addWidget(tableAdjustPara); + + QLabel *label2 = new QLabel(QString("巨点电压补偿 (matchGiantPointVoltageValue) [16×64]"), page); + tableGiantPoint = createTable(16, 64, -128, 127); + layout->addWidget(label2); + layout->addWidget(tableGiantPoint); + + return page; +} + +// ========== 数据加载:结构体 → UI ========== + +void DlgVoltePara25Dots::loadDataToUI() +{ + if (!sysPara) return; + + voltePara_t_25Dots &data = sysPara->voltePara_25Dots; + + // matchTotalTableDACArray1[64] + for (int i = 0; i < 64; i++) { + tableSingleDot1->item(i, 0)->setText(QString::number(data.matchTotalTableDACArray1[i])); + } + + // matchTotalTableDACArrayFirst1[64] + for (int i = 0; i < 64; i++) { + tableSingleDotFirst1->item(i, 0)->setText(QString::number(data.matchTotalTableDACArrayFirst1[i])); + } + + // matchTotalTableDACArray2[64][2] + for (int i = 0; i < 64; i++) { + for (int j = 0; j < 2; j++) { + table2Dots->item(i, j)->setText(QString::number(data.matchTotalTableDACArray2[i][j])); + } + } + + // matchTotalTableDACArray3[64][3] + for (int i = 0; i < 64; i++) { + for (int j = 0; j < 3; j++) { + table3Dots->item(i, j)->setText(QString::number(data.matchTotalTableDACArray3[i][j])); + } + } + + // matchTotalTableDACArray4[64][4] + for (int i = 0; i < 64; i++) { + for (int j = 0; j < 4; j++) { + table4Dots->item(i, j)->setText(QString::number(data.matchTotalTableDACArray4[i][j])); + } + } + + // matchTotalTableDACArray5[64][5] + for (int i = 0; i < 64; i++) { + for (int j = 0; j < 5; j++) { + table5Dots->item(i, j)->setText(QString::number(data.matchTotalTableDACArray5[i][j])); + } + } + + // matchContinousDACArray[64] + for (int i = 0; i < 64; i++) { + tableContinuous->item(i, 0)->setText(QString::number(data.matchContinousDACArray[i])); + } + + // matchTotalDiffVoltageValue[50][64] + for (int i = 0; i < 50; i++) { + for (int j = 0; j < 64; j++) { + tableDiffVoltage->item(i, j)->setText(QString::number((qint8)data.matchTotalDiffVoltageValue[i][j])); + } + } + + // matchExtraLineDACArray[64] + for (int i = 0; i < 64; i++) { + tableExtraLine->item(i, 0)->setText(QString::number(data.matchExtraLineDACArray[i])); + } + + // matchFirstOnePointExtraLineDACArray[64] + for (int i = 0; i < 64; i++) { + tableFirstOnePointExtra->item(i, 0)->setText(QString::number((qint8)data.matchFirstOnePointExtraLineDACArray[i])); + } + + // matchAdjustParaDACArray[8] + for (int i = 0; i < 8; i++) { + tableAdjustPara->item(i, 0)->setText(QString::number((qint8)data.matchAdjustParaDACArray[i])); + } + + // matchGiantPointVoltageValue[16][64] + for (int i = 0; i < 16; i++) { + for (int j = 0; j < 64; j++) { + tableGiantPoint->item(i, j)->setText(QString::number((qint8)data.matchGiantPointVoltageValue[i][j])); + } + } +} + +// ========== 数据保存:UI → 结构体 ========== + +void DlgVoltePara25Dots::saveDataFromUI() +{ + if (!sysPara) return; + + voltePara_t_25Dots &data = sysPara->voltePara_25Dots; + + // matchTotalTableDACArray1[64] + for (int i = 0; i < 64; i++) { + data.matchTotalTableDACArray1[i] = (quint16)tableSingleDot1->item(i, 0)->text().toUInt(); + } + + // matchTotalTableDACArrayFirst1[64] + for (int i = 0; i < 64; i++) { + data.matchTotalTableDACArrayFirst1[i] = (quint16)tableSingleDotFirst1->item(i, 0)->text().toUInt(); + } + + // matchTotalTableDACArray2[64][2] + for (int i = 0; i < 64; i++) { + for (int j = 0; j < 2; j++) { + data.matchTotalTableDACArray2[i][j] = (quint16)table2Dots->item(i, j)->text().toUInt(); + } + } + + // matchTotalTableDACArray3[64][3] + for (int i = 0; i < 64; i++) { + for (int j = 0; j < 3; j++) { + data.matchTotalTableDACArray3[i][j] = (quint16)table3Dots->item(i, j)->text().toUInt(); + } + } + + // matchTotalTableDACArray4[64][4] + for (int i = 0; i < 64; i++) { + for (int j = 0; j < 4; j++) { + data.matchTotalTableDACArray4[i][j] = (quint16)table4Dots->item(i, j)->text().toUInt(); + } + } + + // matchTotalTableDACArray5[64][5] + for (int i = 0; i < 64; i++) { + for (int j = 0; j < 5; j++) { + data.matchTotalTableDACArray5[i][j] = (quint16)table5Dots->item(i, j)->text().toUInt(); + } + } + + // matchContinousDACArray[64] + for (int i = 0; i < 64; i++) { + data.matchContinousDACArray[i] = (quint16)tableContinuous->item(i, 0)->text().toUInt(); + } + + // matchTotalDiffVoltageValue[50][64] + for (int i = 0; i < 50; i++) { + for (int j = 0; j < 64; j++) { + data.matchTotalDiffVoltageValue[i][j] = (qint8)tableDiffVoltage->item(i, j)->text().toInt(); + } + } + + // matchExtraLineDACArray[64] + for (int i = 0; i < 64; i++) { + data.matchExtraLineDACArray[i] = (quint8)tableExtraLine->item(i, 0)->text().toUInt(); + } + + // matchFirstOnePointExtraLineDACArray[64] + for (int i = 0; i < 64; i++) { + data.matchFirstOnePointExtraLineDACArray[i] = (qint8)tableFirstOnePointExtra->item(i, 0)->text().toInt(); + } + + // matchAdjustParaDACArray[8] + for (int i = 0; i < 8; i++) { + data.matchAdjustParaDACArray[i] = (qint8)tableAdjustPara->item(i, 0)->text().toInt(); + } + + // matchGiantPointVoltageValue[16][64] + for (int i = 0; i < 16; i++) { + for (int j = 0; j < 64; j++) { + data.matchGiantPointVoltageValue[i][j] = (qint8)tableGiantPoint->item(i, j)->text().toInt(); + } + } +} + +// ========== 按钮槽函数 ========== + +void DlgVoltePara25Dots::onBtnLoadClicked() +{ + loadDataToUI(); +} + +void DlgVoltePara25Dots::onBtnSaveClicked() +{ + int ret = QMessageBox::question(this, + QString("确认"), + QString("确定要将修改后的充电参数写入FPGA吗?"), + QMessageBox::Yes | QMessageBox::No, + QMessageBox::No); + + if (ret != QMessageBox::Yes) + return; + + saveDataFromUI(); + + if (m_devOp) { + m_devOp->writeDacValue2Fpga_No72NewVoltData(); + } + + QMessageBox::information(this, QString("完成"), QString("充电参数已保存并推送至FPGA。")); +} diff --git a/DlgVoltePara25Dots.h b/DlgVoltePara25Dots.h new file mode 100644 index 0000000..5d20305 --- /dev/null +++ b/DlgVoltePara25Dots.h @@ -0,0 +1,70 @@ +#ifndef DLGVOLTEPARA25DOTS_H +#define DLGVOLTEPARA25DOTS_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include "ParaSettingUI.h" + +class DevOp; + +class DlgVoltePara25Dots : public QDialog, public ParaSettingUI +{ + Q_OBJECT + +public: + explicit DlgVoltePara25Dots(DevOp *devOp, QWidget *parent = nullptr); + ~DlgVoltePara25Dots(); + +public slots: + void onBtnLoadClicked(); + void onBtnSaveClicked(); + +private: + void setupUI(); + + // 创建各选项卡 + QWidget* createTab_SingleDot(); + QWidget* createTab_2Dots(); + QWidget* createTab_3Dots(); + QWidget* createTab_4Dots(); + QWidget* createTab_5Dots(); + QWidget* createTab_Continuous(); + QWidget* createTab_DiffVoltage(); + QWidget* createTab_ExtraLine(); + QWidget* createTab_GiantPoint(); + + // 辅助方法 + QTableWidget* createTable(int rows, int cols, int minVal, int maxVal); + void loadDataToUI(); + void saveDataFromUI(); + + // UI 控件 + QTabWidget *tabWidget; + QPushButton *btnLoad; + QPushButton *btnSave; + + // DevOp 指针,用于调用 writeDacValue2Fpga_No72NewVoltData + DevOp *m_devOp; + + // 各选项卡的表格指针 + QTableWidget *tableSingleDot1; // matchTotalTableDACArray1[64] + QTableWidget *tableSingleDotFirst1; // matchTotalTableDACArrayFirst1[64] + QTableWidget *table2Dots; // matchTotalTableDACArray2[64][2] + QTableWidget *table3Dots; // matchTotalTableDACArray3[64][3] + QTableWidget *table4Dots; // matchTotalTableDACArray4[64][4] + QTableWidget *table5Dots; // matchTotalTableDACArray5[64][5] + QTableWidget *tableContinuous; // matchContinousDACArray[64] + QTableWidget *tableDiffVoltage; // matchTotalDiffVoltageValue[50][64] + QTableWidget *tableExtraLine; // matchExtraLineDACArray[64] + QTableWidget *tableFirstOnePointExtra; // matchFirstOnePointExtraLineDACArray[64] + QTableWidget *tableAdjustPara; // matchAdjustParaDACArray[8] + QTableWidget *tableGiantPoint; // matchGiantPointVoltageValue[16][64] +}; + +#endif // DLGVOLTEPARA25DOTS_H diff --git a/InkJetPrinter.cpp b/InkJetPrinter.cpp index 528448d..7cb9041 100644 --- a/InkJetPrinter.cpp +++ b/InkJetPrinter.cpp @@ -28,6 +28,7 @@ InkJetPrinter::InkJetPrinter(QWidget* parent) // 初始化业务逻辑(仅保留原init中的非UI创建部分) init(); + initRunTimeCtrl(); QThread::sleep(3); qApp->installEventFilter(this); @@ -95,6 +96,7 @@ void InkJetPrinter::init() jd_timer->start(500); msgtest = new QMessageBox(this); + msgtest->setWindowTitle(tr("提示")); connect(msgtest, SIGNAL(finished(int)), this, SLOT(OnFinished(int))); // 信号槽连接(原逻辑完全不变) @@ -278,35 +280,6 @@ void InkJetPrinter::init() connect(m_QRCodeDlg, &dlgQrCode::sig_qrCodeClose, m_TestPrintWidget, &TestPrintWidget::slt_QRCodeItemDone); -#ifdef __RFID_CARD - curPowerOnDateTime = QDateTime::currentDateTime(); - QDate curDate = QDate::currentDate(); - unsigned int curDateInt = curDate.toString("yyMMdd").toInt(); - if(sysPara->RFIDPara.maintenanceDate == 0){ - sysPara->RFIDPara.maintenanceDate = curDateInt; - sysPara->RFIDPara.maintenanceInterval = 6; - QDate mtEndDate = curDate.addMonths(sysPara->RFIDPara.maintenanceInterval); - sysPara->RFIDPara.maintenanceEndDate = mtEndDate.toString("yyMMdd").toInt(); - } - QString mtEndDatestr = "20" + QString::number(sysPara->RFIDPara.maintenanceEndDate); - QDate mtEndDate = QDate::fromString(mtEndDatestr,"yyyyMMdd"); - timeoutDay = curDate.daysTo(mtEndDate); - LogInfo::setRunStatusText(tr("mtDate: %1").arg(sysPara->RFIDPara.maintenanceDate)); - LogInfo::setRunStatusText(tr("mtInterval: %1").arg(sysPara->RFIDPara.maintenanceInterval)); - LogInfo::setRunStatusText(tr("mtEndDate: %1").arg(sysPara->RFIDPara.maintenanceEndDate)); - LogInfo::setRunStatusText(tr("mtFlag: %1").arg(sysPara->RFIDPara.needMaintenance)); - LogInfo::setRunStatusText(tr("timeoutDay: %1").arg(timeoutDay)); - qDebug()<<"mtDate: "<RFIDPara.maintenanceDate; - qDebug()<<"mtInterval: "<RFIDPara.maintenanceInterval; - qDebug()<<"mtEndDate: "<RFIDPara.maintenanceEndDate; - qDebug()<<"mtFlog: "<RFIDPara.needMaintenance; - qDebug()<<"timeoutDay: "<RFIDPara.needMaintenance) - sysPara->RFIDPara.needMaintenance = true; - if(timeoutDay <= 30) - sysPara->status.needMaintenanceRemind = true; -#endif - sysPara->status.machineMac = m_MainInstruction->dlgInputAddr->jd.addr; sysPara->para.rfidCountDown = 5; } @@ -354,6 +327,33 @@ void InkJetPrinter::slt_editCounter(CounterViewModel vm) } } +void InkJetPrinter::slt_warningMaintenance() +{ + // 新逻辑的时间跨度更短,优先判断 + if (timeoutDay >= 30) { + double runHours = sysPara->RFIDPara.runTime / 60.0 / 60.0; + double hours = sysPara->RFIDPara.maintenanceHours - runHours; + QString str; + if (hours >= 0) { + str = tr("保养期还有%1小时到期,请及时保养,否则喷码机容易损坏") + .arg(QString::number(hours, 'f', 2)); + } else { + hours = hours * (-1); + str = tr("保养期已超过%1小时,请及时保养,否则喷码机容易损坏") + .arg(QString::number(hours, 'f', 2)); + } + msgtest->setText(str); + msgtest->show(); +// m_MainWidget->setRunStatus(str); + LogInfo::setRunStatusText(str); + return; + } else { + warningHandler(3); + return; + } + +} + void InkJetPrinter::enableInkJetTabClick(bool flag){ this->setEnabled(flag); } @@ -681,7 +681,6 @@ void InkJetPrinter::timerHandler(void){ if(m_MainWidget->getCurrPrintStatus() != 1){ m_MainWidget->_on_pushButtonPowerOff_pressed(false); LogInfo::setRunStatusText(tr("测试时间结束,准备关机")); -// m_MainWidget->setRunStatus(tr("测试时间结束,准备关机")); hlp } } if(sysPara->status.selfCheckDone && sysPara->para.Reciclar && test_flag){ @@ -874,9 +873,8 @@ void InkJetPrinter::timerHandler(void){ { if(!sysPara->status.selfCheckDone && sysPara->status.isPrinting){ sysPara->status.selfCheckDone = true; -// m_MainWidget->updatePrintDisplayLabel();hlp + m_MainWidget->updatePrintDisplayLabel(); // sysPara->status.flagOfAbnormalStatus = true; -// LogInfo::setRunStatusText(tr("打印过程中死机了!!!")); qDebug()<<"打印过程中死机了!!!"; } if(!sysPara->status.selfCheckDone) @@ -888,7 +886,7 @@ void InkJetPrinter::timerHandler(void){ } /*-----------------------------------------------------*/ if(!sysPara->status.selfCheckCnt) { - LogInfo::setRunStatusText(tr("开始自检,请等待60秒...............")); + LogInfo::setRunStatusText(tr("开始自检,请等待60秒...")); m_MainWidget->enableReclaimCtrlButton(false); m_MainWidget->enablePrintButton(false); sysPara->devOp->mainInkCtrl(); @@ -912,7 +910,6 @@ void InkJetPrinter::timerHandler(void){ LogInfo::setRunStatusText(tr("自检完成!!!")); m_MainWidget->setRunStatus(tr("自检完成!!!")); qDebug()<<"自检完成!!!"; -// ui->tabPrintSetting->PrintSettingLog(); m_MainWidget->enableReclaimCtrlButton(true); sysPara->devOp->mainInkCtrl(); sysPara->status.canRunAirPushing = true; @@ -922,7 +919,6 @@ void InkJetPrinter::timerHandler(void){ } else { if((sysPara->status.selfCheckCnt % 200) == 0) - // sysPara->devOp->controlReclaimTankOpen(false); m_MainWidget->enableReclaimCtrlButton(false); } @@ -1032,7 +1028,7 @@ void InkJetPrinter::timerHandler(void){ sysPara->saveRFIDPara(); msgtest->setText(tr("刷墨水卡成功!")); msgtest->show(); - // m_MainWidget->setRunStatus(tr("刷墨水卡成功!")); hlp + m_MainWidget->setRunStatus(tr("刷墨水卡成功!")); LogInfo::setRunStatusText(tr("刷墨水卡成功!")); qDebug()<<"刷墨水卡成功"; sysPara->para.flagOfInkWarning = false; @@ -1070,7 +1066,7 @@ void InkJetPrinter::timerHandler(void){ sysPara->saveRFIDPara(); msgtest->setText(tr("刷溶剂卡成功!")); msgtest->show(); - // m_MainWidget->setRunStatus(tr("刷溶剂卡成功!")); hlp + m_MainWidget->setRunStatus(tr("刷溶剂卡成功!")); LogInfo::setRunStatusText(tr("刷溶剂卡成功!")); qDebug()<<"刷溶剂卡成功"; sysPara->para.flagOfSolventWarning = false; @@ -1092,14 +1088,15 @@ void InkJetPrinter::timerHandler(void){ sysPara->RFIDPara.needMaintenance = false; sysPara->status.needMaintenanceRemind = false; + QDate curDate = QDate::currentDate(); sysPara->RFIDPara.maintenanceDate = curDate.toString("yyMMdd").toInt(); QDate mtEndDate = curDate.addMonths(sysPara->RFIDPara.maintenanceInterval); sysPara->RFIDPara.maintenanceEndDate = mtEndDate.toString("yyMMdd").toInt(); + sysPara->RFIDPara.runTime = 0; + ctrl_runTime->updatePara(&sysPara->RFIDPara); sysPara->saveRFIDPara(); - // msgtest->setText(tr("刷保养卡成功!")); - // msgtest->show(); -// m_MainWidget->setRunStatus(tr("刷保养卡成功!")); hlp + m_MainWidget->setRunStatus(tr("刷保养卡成功!")); LogInfo::setRunStatusText(tr("刷保养卡成功!")); qDebug()<<"刷保养卡成功"; } @@ -1121,7 +1118,7 @@ void InkJetPrinter::timerHandler(void){ } else { - LogInfo::setRunStatusText(tr("card data: %1").arg(sysPara->devOp->strRevdata)); +// LogInfo::setRunStatusText(tr("card data: %1").arg(sysPara->devOp->strRevdata)); QString str1 = QString::number(sysPara->devOp->strRevdata.mid(0,2).toInt(0,16)).rightJustified(2,'0'); QString str2 =QString::number(sysPara->devOp->strRevdata.mid(2,2).toInt(0,16)).rightJustified(2,'0'); QString str3 = QString::number(sysPara->devOp->strRevdata.mid(4,2).toInt(0,16)).rightJustified(2,'0'); @@ -1253,8 +1250,9 @@ void InkJetPrinter::timerHandler(void){ } #ifdef __RFID_CARD + // hlp 0513 :甲方要求提示越来越频繁 if(sysPara->status.needMaintenanceRemind){ - warningHandler(3); +// warningHandler(3); } static bool logFlagCard1 = 1; if(!sysPara->para.flagOfInkWarning){ @@ -1379,7 +1377,7 @@ void InkJetPrinter::timerHandler(void){ sysPara->status.beeperOnFlag = true; if(sysPara->status.gearPumpRunStopFlag && pushButtonStartFlag) { -// m_MainWidget->setRunStatus(tr("压力泄漏或压力传感器故障!")); hlp + m_MainWidget->setRunStatus(tr("压力泄漏或压力传感器故障!")); } if(!resumeFlag) { @@ -1839,16 +1837,16 @@ void InkJetPrinter::slt_counterVarUpdate() // m_TestPrintWidget->onEditItemCounterDone(); } -void InkJetPrinter::showScheduleShiftsEditor(PicScheduleShiftItem* item) +void InkJetPrinter::showScheduleShiftsEditor(QVector schedules, TextItemModel txtModel) { m_StackedWidget->setCurrentWidget(m_scheduleShiftsEditor); - m_scheduleShiftsEditor->edit(item); + m_scheduleShiftsEditor->setItemModel(schedules, txtModel); } void InkJetPrinter::onScheduleShiftsEditDone() { m_StackedWidget->setCurrentWidget(m_TestPrintWidget); - m_TestPrintWidget->addScheduleShiftsItem(m_scheduleShiftsEditor->dataModel()); + m_TestPrintWidget->addScheduleShiftsItem(m_scheduleShiftsEditor->scheduleModel(), m_scheduleShiftsEditor->textItemModel()); } bool InkJetPrinter::eventFilter(QObject *watched, QEvent *event) @@ -1897,7 +1895,7 @@ void InkJetPrinter::saveFPGAStatus(unsigned char *data){ } if(sysPara->status.dummy != sysPara->status.isPrinting){ sysPara->status.isPrinting = sysPara->status.dummy; -// m_MainWidget->updatePrintDisplayLabel(); hlp + m_MainWidget->updatePrintDisplayLabel(); } } @@ -2500,21 +2498,15 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){ sysPara->status.reclaimTankBlockedAppending =0; if(sysPara->status.reclaimTankstatus == 0x10) //7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作 { + LogInfo::setRunStatusText(tr("电机故障")); + m_MainWidget->setRunStatus(tr("电机故障")); if(sysPara->devOp->isReclaimTankCloseEnable()) { - LogInfo::setRunStatusText(tr("电机故障")); -// m_MainWidget->setRunStatus(tr("电机故障")); hlp sysPara->devOp->controlReclaimTankClose(false); -// ui->tabMainWindow->resetReclaimCtrlButtonText(); -// emit reclaimTankBlock(); } else { - LogInfo::setRunStatusText(tr("电机故障")); -// m_MainWidget->setRunStatus(tr("电机故障!!!")); hlp if(sysPara->devOp->isReclaimTankOpenEnable()) sysPara->devOp->controlReclaimTankOpen(false); -// ui->tabMainWindow->resetReclaimCtrlButtonText(); -// emit reclaimTankBlock(); } } @@ -2523,10 +2515,9 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){ if(sysPara->devOp->isReclaimTankOpenEnable()) sysPara->devOp->controlReclaimTankOpen(false); //到头,关闭 sysPara->status.reclainTankReachEnd = true; - /*应要求去掉多余到信息 LogInfo::setRunStatusText(tr("回收槽到头"));*/ - m_MainWidget->setRunStatus(tr("回收槽到头")); - m_MainWidget->enablePrintButton(true); //仅仅在此时能使能打印按钮 -// ui->tabMainWindow->resetReclaimCtrlButtonText(); +// m_MainWidget->setRunStatus(tr("回收槽到头")); + m_MainWidget->setReclaimStatus(true, 100); + m_MainWidget->enablePrintButton(true); //仅仅在此时能使能打印按钮 sysPara->devOp->highVoltageCtrl(1); // emit reclaimTankOpenDone(); /*回收槽开关时间校正*/ @@ -2539,14 +2530,10 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){ else if(sysPara->status.reclaimTankstatus == 0x11 )//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作 { sysPara->devOp->controlReclaimTankOpen(false); //卡住,关闭 -// ui->tabMainWindow->resetReclaimCtrlButtonText(); -// LogInfo::setRunStatusText(tr("回收槽卡住或者回收槽开关时间设置错误")); // ui->tabMainWindow->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误")); -// emit reclaimTankBlock(); } else if(sysPara->status.reclaimTankstatus == 1 || sysPara->status.reclaimTankstatus == 2)//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作 { -// emit setReclaimTankCurrentPos(sysPara->status.currReclaimTankPos); sysPara->status.reclaimBlockedCnt = 0; } @@ -2554,10 +2541,8 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){ { if(sysPara->devOp->isReclaimTankCloseEnable()) sysPara->devOp->controlReclaimTankClose(false); //到头,关闭 - /*应要求去掉多余到信息 LogInfo::setRunStatusText(tr("回收槽到头"));*/ - m_MainWidget->setRunStatus(tr("回收槽到头")); + m_MainWidget->setReclaimStatus(false, 0); //sysPara->status.currReclaimTankPos = 0; //将回收槽的时间置为零 -// ui->tabMainWindow->resetReclaimCtrlButtonText(); // emit reclaimTankCloseDone(); sysPara->status.lastRecycleWarn = 0; sysPara->status.HVFaultCloseEn=0; @@ -2572,13 +2557,7 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){ { sysPara->devOp->controlReclaimTankOpen(false); //到头,关闭 LogInfo::setRunStatusText(tr("回收槽卡住或者回收槽开关时间设置错误")); -// m_MainWidget->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误")); hlp -// ui->tabMainWindow->resetReclaimCtrlButtonText(); -// emit reclaimTankBlock(); - } - else // if(sysPara->status.reclaimTankstatus == 7 )//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作 - { -// emit setReclaimTankCurrentPos(sysPara->status.currReclaimTankPos); + m_MainWidget->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误")); } } @@ -2627,7 +2606,7 @@ void InkJetPrinter::showMessage(QString str){ qDebug()<devOp->color_flag = 2; -// m_MainWidget->setRunStatus(str); hlp + m_MainWidget->setRunStatus(str); } void InkJetPrinter::resetPressureCnt(){ @@ -2739,7 +2718,7 @@ void InkJetPrinter::warningShow(int type,int num){ str = tr("墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作!"); msgtest->setText(str); msgtest->show(); -// m_MainWidget->setRunStatus(str); hlp +// m_MainWidget->setRunStatus(str); LogInfo::setRunStatusText(str); qDebug()<setText(str); msgtest->show(); -// m_MainWidget->setRunStatus(str); hlp +// m_MainWidget->setRunStatus(str); LogInfo::setRunStatusText(str); qDebug()<setText(str); msgtest->show(); -// m_MainWidget->setRunStatus(str); hlp +// m_MainWidget->setRunStatus(str); LogInfo::setRunStatusText(str); qDebug()<para.rfidCountDown; QTimer msgTimer; @@ -2818,15 +2797,36 @@ bool InkJetPrinter::cardTouchConfirm(QString msgTxt, QString variableMsgTxt) msgTimer.start(1000); } - // 为边框设置圆角和边框颜色 - box.setStyleSheet(R"( - QDialog { - border-radius: 5px; - border: 2px solid #333333; - } - )"); - box.exec(); return box.result() == QMessageBox::Ok || box.result() == QMessageBox::Accepted; } + +void InkJetPrinter::initRunTimeCtrl() +{ + if (ctrl_runTime == nullptr) { + ctrl_runTime = RunTimeCtrl::instance(); +#ifdef __RFID_CARD + connect(ctrl_runTime, &RunTimeCtrl::sig_updateTimeoutDay, this, [=](int days) { + // timeoutDay:仅适用于原来月份的处理 + this->timeoutDay = days; + if(timeoutDay <= 30) + sysPara->status.needMaintenanceRemind = true; + }); + connect(ctrl_runTime, &RunTimeCtrl::sig_saveRunTime, this, [=]() { + // 运行时间处理 + sysPara->RFIDPara.runTime += 30; + sysPara->saveRFIDPara(); + }); + // 弹窗提示 + connect(ctrl_runTime, &RunTimeCtrl::sig_alertTimeout, + this, &InkJetPrinter::slt_warningMaintenance); + + curPowerOnDateTime = QDateTime::currentDateTime(); + if (sysPara) + ctrl_runTime->loadConfig(&sysPara->RFIDPara); + + ctrl_runTime->start(); +#endif + } +} diff --git a/InkJetPrinter.h b/InkJetPrinter.h index f9a8e06..62c9d63 100644 --- a/InkJetPrinter.h +++ b/InkJetPrinter.h @@ -33,6 +33,8 @@ #include "QBarCode.h" #include "dlgQrCode.h" +#include "runtimectrl.h" + class InkJetPrinter : public QWidget,public ParaSettingUI { Q_OBJECT @@ -108,6 +110,8 @@ private: QDateTime curPowerOnDateTime; int timeoutDay; + RunTimeCtrl* ctrl_runTime = nullptr; + void initRunTimeCtrl(); private slots: void timerHandler(); void getMainWidgetButtonClickedSlot(int index); @@ -129,7 +133,7 @@ private slots: void getCounterVarSetWidgetButtonClickSlot(int index); void slt_counterVarUpdate(); - void showScheduleShiftsEditor(PicScheduleShiftItem* item); + void showScheduleShiftsEditor(QVector schedules, TextItemModel txtModel); void onScheduleShiftsEditDone(); @@ -165,9 +169,8 @@ private slots: void slt_editCounter(CounterViewModel vm); - //复制粘贴 -// void slt_copy(); - + // 保养警告 + void slt_warningMaintenance(); signals: void maintenanceShow(); diff --git a/LogInfo.cpp b/LogInfo.cpp index 0c03a8a..3cb7119 100644 --- a/LogInfo.cpp +++ b/LogInfo.cpp @@ -27,7 +27,6 @@ LogInfo::LogInfo(QWidget *parent) : textEdit = ui->textEditRunStatus; textEdit->verticalScrollBar()->setStyleSheet("QScrollBar:vertical { width: 40px; }"); textEdit2 = ui->textEditRunStatus_2; - //textEdit2->verticalScrollBar()->setStyleSheet("QScrollBar:vertical { width: 40px; }"); textEdit2->verticalScrollBar()->setStyleSheet("QScrollBar:vertical { width: 40px; }"); @@ -35,8 +34,6 @@ LogInfo::LogInfo(QWidget *parent) : runStatusTextIndex = 0; openFileName =""; ui->labelPreFileName->setText(""); - //currenDate=""; - //r_CurrentDate=QDate::currentDate().toString("yyyyMMdd"); textEdit2->append(tr("请先打开历史状态文件!")); if(!QDir("/home/plg").exists()) @@ -182,6 +179,10 @@ void LogInfo::setRunStatusText(QString str){ } truncatelog(); } + + textEdit->moveCursor(QTextCursor::End); + + qInfo() << "RunStatusText:"<< str; } QString LogInfo::getRunStatusText(void){ diff --git a/MainInstruction.cpp b/MainInstruction.cpp index 9081279..4794472 100644 --- a/MainInstruction.cpp +++ b/MainInstruction.cpp @@ -3,6 +3,7 @@ #include #include #include "DlgRFIDConfig.h" +#include "runtimectrl.h" MainInstruction::MainInstruction(QWidget *parent) : QWidget(parent), @@ -38,9 +39,21 @@ MainInstruction::MainInstruction(QWidget *parent) : MTimeSetting = new DialogMaintenanceTimeSetting(this); connect(MTimeSetting,SIGNAL(accepted()),this,SLOT(onMTimeSettingAccepted())); + //30s刷新一次总运行时间 + connect(RunTimeCtrl::instance(), &RunTimeCtrl::sig_saveRunTime + , this, [=]() { + if (sysPara) + MTimeSetting->updateUI(sysPara->RFIDPara); + }); applyStyleSheet(); + + // 授权 + ui->tabWidget->removeTab(2); + + timeDia.hide(); + connect(&timeDia,SIGNAL(accepted()),this,SLOT(slt_timeSetting())); } MainInstruction::~MainInstruction() @@ -82,51 +95,24 @@ void MainInstruction::on_maintenanceIntervalBtn_clicked() } -void MainInstruction::onDlgAuthMaintenanceTimeAccepted(){ - // QString authString= dialogMaintenanceTimeSettingAuth->getAuth(); - // if(dlgInputAddr->checWhJmDate(authString)) // 0xa001 - // { - QDate curDate = QDate::currentDate(); - QString mtEndDatestr = "20" + QString::number(sysPara->RFIDPara.maintenanceEndDate); - QDate mtEndDate = QDate::fromString(mtEndDatestr,"yyyyMMdd"); - int timeoutDay = curDate.daysTo(mtEndDate); - MTimeSetting->updateMaintenanceTime(QString("%1 Days").arg(timeoutDay)); - MTimeSetting->updateMaintenanceIntervalToUI(sysPara->RFIDPara.maintenanceInterval); +void MainInstruction::onDlgAuthMaintenanceTimeAccepted() +{ + MTimeSetting->updateUI(sysPara->RFIDPara); MTimeSetting->disableMaintenanceTimeSet(false); MTimeSetting->show(); - // }else - // { - // QMessageBox::about(this, tr("提示"), tr("密码不正确!")); - // return; - // } } -void MainInstruction::maintenanceDialogShow(){ - QDate curDate = QDate::currentDate(); - QString mtEndDatestr = "20" + QString::number(sysPara->RFIDPara.maintenanceEndDate); - QDate mtEndDate = QDate::fromString(mtEndDatestr,"yyyyMMdd"); - int timeoutDay = curDate.daysTo(mtEndDate); - MTimeSetting->updateMaintenanceTime(QString("%1 Days").arg(timeoutDay)); - MTimeSetting->updateMaintenanceIntervalToUI(sysPara->RFIDPara.maintenanceInterval); +void MainInstruction::maintenanceDialogShow() +{ + MTimeSetting->updateUI(sysPara->RFIDPara); + RunTimeCtrl::instance()->updatePara(&sysPara->RFIDPara); MTimeSetting->disableMaintenanceTimeSet(true); MTimeSetting->show(); } void MainInstruction::onMTimeSettingAccepted(){ - sysPara->RFIDPara.maintenanceInterval = MTimeSetting->getInterval(); - if(MTimeSetting->getResetSchedule()){ - QDate curDate = QDate::currentDate(); - int curdate = curDate.toString("yyMMdd").toInt(); - sysPara->RFIDPara.maintenanceDate = curdate; - } - QString mtDatestr = QString::number(sysPara->RFIDPara.maintenanceDate); - QDate mtDate = QDate::fromString(mtDatestr,"yyMMdd"); - QDate mtEndDate = mtDate.addMonths(sysPara->RFIDPara.maintenanceInterval); - sysPara->RFIDPara.maintenanceEndDate = mtEndDate.toString("yyMMdd").toInt(); - LogInfo::setRunStatusText(tr("mtDate1: %1").arg(sysPara->RFIDPara.maintenanceDate)); - LogInfo::setRunStatusText(tr("mtInterval1: %1").arg(sysPara->RFIDPara.maintenanceInterval)); - LogInfo::setRunStatusText(tr("mtEndDate1: %1").arg(sysPara->RFIDPara.maintenanceEndDate)); - LogInfo::setRunStatusText(tr("mtFlog1: %1").arg(sysPara->RFIDPara.needMaintenance)); + MTimeSetting->getInterval(&sysPara->RFIDPara); + RunTimeCtrl::instance()->updatePara(&sysPara->RFIDPara); sysPara->saveRFIDPara(); } @@ -137,22 +123,12 @@ void MainInstruction::ondialogAuthorizationAccepted(){ if((authString.left(4) == "nnyp") && ( dlgInputAddr->checkSupperJm(authString.mid(4)))) { #ifdef __RFID_CARD - /**********超级密码,除了维护时间的3个参数,其他参数清零*****************/ - unsigned int mtDate = sysPara->RFIDPara.maintenanceDate; - unsigned int mtInterval = sysPara->RFIDPara.maintenanceInterval; - unsigned int mtEndDate = sysPara->RFIDPara.maintenanceEndDate; - qDebug()<<"mtDate2: "<RFIDPara.maintenanceDate; - qDebug()<<"mtInterval2: "<RFIDPara.maintenanceInterval; - qDebug()<<"mtEndDate2: "<RFIDPara.maintenanceEndDate; + /**********超级密码,除了维护时间的5个参数,其他参数清零*****************/ memset(&sysPara->RFIDPara,0,sizeof(sysPara->RFIDPara)); - sysPara->RFIDPara.maintenanceDate = mtDate; - sysPara->RFIDPara.maintenanceInterval = mtInterval; - sysPara->RFIDPara.maintenanceEndDate = mtEndDate; - qDebug()<<"mtDate3: "<RFIDPara.maintenanceDate; - qDebug()<<"mtInterval3: "<RFIDPara.maintenanceInterval; - qDebug()<<"mtEndDate3: "<RFIDPara.maintenanceEndDate; + RunTimeCtrl::instance()->authorizationAccepted(&sysPara->RFIDPara); sysPara->saveRFIDPara(); QMessageBox::warning(0,tr("提示"),tr("RFID卡清零!") ); + sysPara->para.flagOfInkWarning = false; sysPara->para.flagOfSolventWarning = false; sysPara->status.needMaintenanceRemind = false; @@ -170,11 +146,25 @@ void MainInstruction::ondialogAuthorizationAccepted(){ dlgInputAddr->show(); // ui->labMac->setText(QString("Mac:%1").arg(dlgInputAddr->jd.addr)); } - + else if(authString == "nnyp") { + ui->tabWidget->addTab(ui->tabExtra, tr("额外设置")); + ui->pushButtonAuth->setText(tr("取消授权")); + } else { + QMessageBox box(QMessageBox::Warning, tr("警告"), + tr("密码错误:%1").arg(authString), QMessageBox::Ok, + this); + box.exec(); + } } void MainInstruction::on_pushButtonAuth_clicked() { + if (ui->pushButtonAuth->text() == tr("取消授权")) { + ui->pushButtonAuth->setText(tr("系统授权")); + int index = ui->tabWidget->indexOf(ui->tabExtra); + ui->tabWidget->removeTab(index); + return; + } dialogAuthorization->clearAuth(); dialogAuthorization->show(); } @@ -190,9 +180,7 @@ void MainInstruction::on_btn_time_clicked() timeDia.setHour(tm.hour()); timeDia.setMinute(tm.minute()); timeDia.setSecond(tm.second()); - timeDia.hide(); timeDia.show(); - connect(&timeDia,SIGNAL(accepted()),this,SLOT(slt_timeSetting())); } #include diff --git a/MainInstruction.ui b/MainInstruction.ui index 8437da9..3bff5c1 100644 --- a/MainInstruction.ui +++ b/MainInstruction.ui @@ -100,16 +100,31 @@ 0 - + 基本设置 + + 30 + + + 30 + + + 30 + + + 30 + + + 30 + - 253 + 254 92 @@ -128,7 +143,7 @@ - 253 + 254 92 @@ -147,7 +162,7 @@ - 253 + 254 92 @@ -233,17 +248,17 @@ - + 额外设置 - 40 - 30 - 161 - 61 + 30 + 70 + 254 + 92 @@ -253,10 +268,10 @@ - 40 - 120 - 161 - 61 + 30 + 230 + 254 + 92 diff --git a/MainWidget.ui b/MainWidget.ui index 32b171f..5e52033 100644 --- a/MainWidget.ui +++ b/MainWidget.ui @@ -7,7 +7,7 @@ 0 0 800 - 550 + 558 @@ -211,7 +211,7 @@ 300 - + 9 @@ -230,146 +230,22 @@ - - - - - 180 - 140 - - - - QFrame::NoFrame - - - QFrame::Plain - - - - - - - 0 - 50 - - - - - - - Qt::AlignCenter - - - - - - - - - - - 200 - 140 - - - - - 200 - 140 - - - - background-color:#BBBBBD;border-radius:3px; - - - - - - color:#000000;font-size:18px; - - - 产品计数器 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - -1 - - - - - - - - -1 - 75 - true - - - - color:#000000;font-size:28px;font-weight:bold; - - - 0 - - - Qt::AlignCenter - - - - - - - 达到数量后停止: - - - - - - - color:#000000;font-size:28px;font-weight:bold; - - - 0 - - - Qt::AlignRight - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - 150 - 140 + 130 150 - 140 + 130 - border:0px; + 开始打印 @@ -388,36 +264,7 @@ - - - - - 0 - 130 - - - - border:0px; - - - - :/image/power.png:/image/power.png - - - - 70 - 70 - - - - - 70 - 70 - - - - - + @@ -561,16 +408,22 @@ - + 0 - 140 + 130 + + + + + 16777215 + 130 - border:0px; + 停止打印 @@ -589,48 +442,148 @@ - - - - - - - - 5 - - - 1 - - - + + + + + 200 + 150 + + + + + 200 + 150 + + + + background-color:#BBBBBD;border-radius:3px; + + + + + + color:#000000;font-size:18px; + + + 产品计数器 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + -1 + + + + + + + + -1 + 75 + true + + + + color:#000000;font-size:28px;font-weight:bold; + + + 0 + + + Qt::AlignCenter + + + + + + + 达到数量后停止: + + + + + + + color:#000000;font-size:28px;font-weight:bold; + + + 0 + + + Qt::AlignRight + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + 0 + 130 + + + + border:0px; + + + + :/image/power.png:/image/power.png + + + + 70 + 70 + + + + + 70 + 70 + + + + + + + + + 180 + 140 + + QFrame::NoFrame QFrame::Plain - + - - + + - 200 - 150 + 0 + 50 - - - - - :/image/tool.png - - - true - - - - - @@ -642,73 +595,181 @@ - - - - - 200 - 70 - - - - - 200 - 16777215 - - - - - + + - 喷嘴开启 + - - - 70 - 70 - - - - - 70 - 70 - + + Qt::AlignCenter + + + + + + + + 5 + + + 1 + - - - - 200 - 70 - - - - - 200 - 444 - - - - - - - 喷嘴关闭 - - - - 70 - 70 - - - - - 70 - 70 - - - + + + + + 0 + + + + + + 150 + 95 + + + + + 150 + 100 + + + + + + + + + + + :/image/RePipeOpen.png:/image/RePipeOpen.png + + + + 70 + 70 + + + + + 70 + 70 + + + + + + + + + 0 + 30 + + + + + 16777215 + 30 + + + + 喷嘴开启 + + + Qt::AlignCenter + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + 0 + + + + + + 150 + 95 + + + + + 150 + 100 + + + + + + + + + + + :/image/RePipeClose.png:/image/RePipeClose.png + + + + 70 + 70 + + + + + 70 + 70 + + + + + + + + + 0 + 30 + + + + + 16777215 + 30 + + + + 喷嘴关闭 + + + Qt::AlignCenter + + + 0 + + + + + + diff --git a/ParaSettingUI.cpp b/ParaSettingUI.cpp index 2432c8b..7b9ffbc 100644 --- a/ParaSettingUI.cpp +++ b/ParaSettingUI.cpp @@ -22,7 +22,7 @@ ParaSettingUI::~ParaSettingUI(){ } void ParaSettingUI::bindSysPara(SysPara *sysPara){ - this->sysPara = sysPara; + this->sysPara = sysPara; } diff --git a/Printsetting.cpp b/Printsetting.cpp index a34cbfb..acfdd76 100644 --- a/Printsetting.cpp +++ b/Printsetting.cpp @@ -23,17 +23,13 @@ PrintSetting::PrintSetting(QWidget *parent) : ui->labelSynTriggerPrintLenRatio->setHidden(1); ui->spinBoxSynTriggerPrintLenRatio->setHidden(1); - //隐藏这部分控件暂时用不到 - ui->radioButtonSynTrigger->hide(); - ui->labelDelayTriggerValue->hide(); - ui->spinBoxDelayTriggerValue->hide(); - ui->groupBox_3->hide(); - ui->labelTimeTriggerMode->setEnabled(false); ui->comboBoxTimeTriggerMode->setEnabled(false); init(); + ui->eleEyeEdgetTriggerInner->click(); + ui->radioButtonSynTriggerExternal->click(); } PrintSetting::~PrintSetting() @@ -137,7 +133,7 @@ void PrintSetting::TriggerupdateSysParaToUI(){ ui->radioButtonSynTriggerInner->setChecked(sysPara->para.synTriggerInner); ui->radioButtonSynTriggerExternal->setChecked(sysPara->para.synTriggerExternal); - ui->spinBoxDelayTriggerValue->setValue(sysPara->para.printDelayMs); + ui->sb_printingDelay->setValue(sysPara->para.printDelayMs); #ifndef NON_CABLE ui->comboBoxTimeTriggerMode->setCurrentIndex(sysPara->para.timeTriggerPrintMode); #endif @@ -156,7 +152,6 @@ void PrintSetting::TriggerupdateSysParaToUI(){ /*----------------------------------------*/ ui->spinBoxEleEyeTriggerPrintDelay->setValue(sysPara->para.eleEyeTriggerPrintDelay); - ui->checkBoxSynMakeClean->setChecked(sysPara->para.synClearCntInEleEyeMode); //ui->checkBoxEleEyeMakeClean->setChecked(sysPara->para.eleEyeClearCntInSynMode); ui->comboBoxEleEyeMakeClean->setCurrentIndex( sysPara->para.eleEyeClearCntInSynMode & 0x0f); @@ -171,7 +166,6 @@ void PrintSetting::TriggerupdateSysParaToUI(){ ui->spinBoxOutputPulseDelayMs->setEnabled(isPulseEenable); ui->spinBoxOuputPulseCol->setValue(sysPara->para.OuputPulseCol); - ui->checkEyeTriggerSynPrintEn->setChecked (sysPara->para.eleEyeTriggerSynPrintEn); ui->comboBoxSyncActType->setCurrentIndex (sysPara->para.synchronizorActType); //ui->checkBoxAutoSpeedEN->setChecked (sysPara->para.autoSynSpeedEn ); ui->spinBoxEleMaskTime->setValue(sysPara->para.eleMaskTime); @@ -240,25 +234,27 @@ void PrintSetting::applyUITriggerPara(){ } sysPara->para.OuputPulseCol = ui->spinBoxOuputPulseCol->value(); - if(((ui->checkEyeTriggerSynPrintEn->checkState()==1 ) - &&(sysPara->para.printTriggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || sysPara->para.printTriggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE)) + if(((sysPara->para.printTriggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL + || sysPara->para.printTriggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE)) || sysPara->para.printTriggerMode == PRINT_TRIGGER_SYNCHRONIZER ) { ui->labelOutputPulseDelayMs->setText(tr("延时(毫米):")); } else ui->labelOutputPulseDelayMs->setText(tr("延时(毫秒):")); - // if(sysPara->devOp->writeFpgaPrintPara() != -1) - // QMessageBox::information(this,tr("提示"),tr("应用成功")); + } } void PrintSetting::GetTriggerUIPara(){ if(sysPara){ - sysPara->para.printDelayMs = ui->spinBoxDelayTriggerValue->value(); + sysPara->para.printDelayMs = ui->sb_printingDelay->value(); sysPara->para.timeTriggerPrintMode = ui->comboBoxTimeTriggerMode->currentIndex(); sysPara->para.elecEyeTriggerInterval = ui->spinBoxEleEyeTriggerIntervalMs->value(); //电眼触发的重复间隔 - sysPara->para.photoElectricityRepeateNum = ui->spinBoxEleEyeTriggerRepeatCnt->value(); + int value = 0; + if (ui->cb_unlimited) value = 65535; + else value = ui->spinBoxEleEyeTriggerRepeatCnt->value(); + sysPara->para.photoElectricityRepeateNum = value; sysPara->para.synTriggerPrintLenMm = ui->spinBoxSynTriggerPrintLen->text().toFloat(); //sysPara->para.synTriggerPrintLenMm = ui->spinBoxSynTriggerPrintLen->value(); @@ -301,7 +297,6 @@ void PrintSetting::GetTriggerUIPara(){ sysPara->para.eleEyeTriggerSynPrintEn=false; sysPara->para.eleEyeTriggerPrintDelay = ui->spinBoxEleEyeTriggerPrintDelay->value(); - sysPara->para.synClearCntInEleEyeMode = ui->checkBoxSynMakeClean->isChecked(); sysPara->para.eleEyeClearCntInSynMode = (sysPara->para.eleEyeClearCntInSynMode & 0xf0) + ui->comboBoxEleEyeMakeClean->currentIndex(); //ui->checkBoxEleEyeMakeClean->isChecked(); //sysPara->para.autoSynSpeedEn = ui->checkBoxAutoSpeedEN->isChecked (); sysPara->para.autoSynSpeedEn = 0; @@ -359,14 +354,11 @@ void PrintSetting::on_radioButtonSynTrigger_pressed() void PrintSetting::on_checkEyeTriggerSynPrintEn_clicked(bool checked) { - qDebug()<<"checked:"<para.printTriggerMode; if(sysPara) { - //if( !sysPara->para.eleEyeTriggerSynPrintEn ) + int triggerMode = sysPara->para.printTriggerMode; if( checked) { - //ui->radioButtonSynTrigger->setChecked(1); #ifndef NON_CABLE ui->spinBoxSynTriggerPrintLen->setEnabled(1); #endif @@ -379,7 +371,7 @@ void PrintSetting::on_checkEyeTriggerSynPrintEn_clicked(bool checked) ui->pushButtonApplyPulseFix->setEnabled(1); ui->comboBoxSynPrintMode->setEnabled(1); ui->labelSynPrintMode->setEnabled(1); - //ui->checkBoxAutoSpeedEN->setEnabled (1); + ui->cb_unlimited->setEnabled (1); ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(0); ui->labelEleEyeTriggerPrintDelay->setText(tr("触发延时(毫米)")); ui->labelEleEyeTriggerIntervalMs->setText(tr("重复间隔(毫米)")); @@ -392,7 +384,6 @@ void PrintSetting::on_checkEyeTriggerSynPrintEn_clicked(bool checked) } else { - // ui->radioButtonSynTrigger->setChecked(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); #ifndef NON_CABLE ui->spinBoxSynTriggerPrintLen->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); #endif @@ -405,36 +396,28 @@ void PrintSetting::on_checkEyeTriggerSynPrintEn_clicked(bool checked) ui->pushButtonApplyPulseFix->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); ui->comboBoxSynPrintMode->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); ui->labelSynPrintMode->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); - // ui->checkBoxAutoSpeedEN->setEnabled (triggerMode == PRINT_TRIGGER_SYNCHRONIZER); - //ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); + ui->cb_unlimited->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(1); ui->labelEleEyeTriggerPrintDelay->setText(tr("触发延时(毫秒)")); ui->labelEleEyeTriggerIntervalMs->setText(tr("重复间隔(毫秒)")); ui->labelEleMaskTime->setText(tr("抑止距离(毫秒)")); - ui->labelOutputPulseDelayMs->setText( ui->radioButtonSynTrigger->isChecked()?tr("延时(毫米):"):tr("延时(毫秒):")); - } } } void PrintSetting::setTriggerUI(int triggerMode){ - - ui->radioButtonDelayTrigger->setChecked(triggerMode == PRINT_TRIGGER_TIME); - ui->spinBoxDelayTriggerValue->setEnabled(triggerMode == PRINT_TRIGGER_TIME); - ui->labelDelayTriggerValue->setEnabled(triggerMode == PRINT_TRIGGER_TIME); - // ui->comboBoxTimeTriggerMode->setEnabled(triggerMode == PRINT_TRIGGER_TIME); - // ui->labelTimeTriggerMode->setEnabled(triggerMode == PRINT_TRIGGER_TIME); +// ui->sb_printingDelay->setEnabled(triggerMode == PRINT_TRIGGER_TIME); + ui->lb_printingDelay->setEnabled(triggerMode == PRINT_TRIGGER_TIME); ui->radioButtonEleEyeEdgetTrigger->setChecked( triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE); ui->radioButtonEleEyeLevelTrigger->setChecked(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL); ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE || triggerMode == PRINT_TRIGGER_TIME); ui->labelEleEyeTriggerIntervalMs->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE); ui->spinBoxEleEyeTriggerRepeatCnt->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE); + ui->cb_unlimited->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE); ui->labelEleEyeTriggerRepeatCnt->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE); ui->spinBoxEleEyeTriggerPrintDelay->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE || PRINT_TRIGGER_SYNCHRONIZER); ui->labelEleEyeTriggerPrintDelay->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE || PRINT_TRIGGER_SYNCHRONIZER); - ui->checkBoxSynMakeClean->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE); - ui->checkEyeTriggerSynPrintEn->setEnabled (triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE); ui->labelEleMaskTime->setEnabled (triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE); ui->spinBoxEleMaskTime->setEnabled (triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE); @@ -442,8 +425,6 @@ void PrintSetting::setTriggerUI(int triggerMode){ (triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE) ) { - //ui->radioButtonSynTrigger->setChecked(1); - // ui->spinBoxSynTriggerPrintLen->setEnabled(0); ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(0); ui->labelSynTriggerPrintLen->setEnabled(1); ui->lineEditTriggerPulsePerMm->setEnabled(1); @@ -454,19 +435,15 @@ void PrintSetting::setTriggerUI(int triggerMode){ ui->pushButtonApplyPulseFix->setEnabled(1); ui->comboBoxSynPrintMode->setEnabled(1); ui->labelSynPrintMode->setEnabled(1); - //ui->checkBoxAutoSpeedEN->setEnabled (1); ui->labelEleMaskTime->setEnabled(1); ui->spinBoxEleMaskTime->setEnabled(1); - //ui->spinBoxEleMaskTime->setEnabled(1); - ui->labelEleEyeTriggerPrintDelay->setText(tr("触发延时(毫米)")); ui->labelEleEyeTriggerIntervalMs->setText(tr("重复间隔(毫米)")); ui->labelEleMaskTime->setText(tr("抑止距离(毫米)")); } else { - ui->radioButtonSynTrigger->setChecked(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); #ifndef NON_CABLE ui->spinBoxSynTriggerPrintLen->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER); #endif @@ -491,9 +468,8 @@ void PrintSetting::setTriggerUI(int triggerMode){ ui->labelEleEyeTriggerIntervalMs->setText(tr("重复间隔(毫秒)")); ui->labelEleMaskTime->setText(tr("封锁时间(毫秒)")); } - if(( ( //sysPara->para.eleEyeTriggerSynPrintEn || - ui->checkEyeTriggerSynPrintEn->isChecked()) - &&(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE)) + if(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL + || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE || triggerMode == PRINT_TRIGGER_SYNCHRONIZER ) { ui->labelOutputPulseDelayMs->setText(tr("延时(毫米):")); @@ -501,25 +477,6 @@ void PrintSetting::setTriggerUI(int triggerMode){ else ui->labelOutputPulseDelayMs->setText(tr("延时(毫秒):")); setSynPrintMode(sysPara->para.sysTriggerPrintMode); - - //72版本禁用该输入框 - //67打开 - // if(triggerMode== PRINT_TRIGGER_SYNCHRONIZER){ - // const unsigned short &FpgaVer=sysPara->status.build_dat.builTime; - // if(72==FpgaVer) - // { - // ui->spinBoxSynTriggerPrintLenRatio->setValue(0); - // ui->spinBoxSynTriggerPrintLenRatio->setEnabled(false); - // } - // else if(67==FpgaVer) - // { - // ui->spinBoxSynTriggerPrintLenRatio->setEnabled(true); - // } - // } - // else{ - // ui->spinBoxSynTriggerPrintLenRatio->setValue(0); - // ui->spinBoxSynTriggerPrintLenRatio->setEnabled(false); - // } } void PrintSetting::setSynPrintMode(int mode){ @@ -596,6 +553,22 @@ void PrintSetting::applyStyleSheet() background-color: #BAE7FF; } + QPushButton#checkBtn { + background-color: #E6F7FF; + border: 1px solid #87CEEB; + border-radius: 4px; + font-size: 24px; + color: #228B22; + } + + QPushButton#checkBtn:hover { + background-color: #D1E9FF; + } + + QPushButton#checkBtn:pressed { + background-color: #BAE7FF; + } + QLabel { font-size: 18px; color: #000000; @@ -644,6 +617,12 @@ void PrintSetting::applyStyleSheet() QWidget#fileTab, QWidget#extraTab, QWidget#settingsTab, QWidget#serviceTab { background-color: #E3E7EC; } + + QRadioButton { + background-color: rgb(192, 205, 210); + border-radius: 5px; + padding-left: 5px; + } )"; this->setStyleSheet(styleSheet); @@ -651,26 +630,28 @@ void PrintSetting::applyStyleSheet() void PrintSetting::on_eleEyeEdgetTriggerInner_clicked() { + setEnableEleEyeSetting(false); + + if (sysPara == NULL) return; if(ui->radioButtonSynTriggerInner->isChecked()){ sysPara->para.printTriggerMode = PRINT_TRIGGER_TIME; }else sysPara->para.printTriggerMode = PRINT_TRIGGER_SYNCHRONIZER; setTriggerUI(sysPara->para.printTriggerMode); - - ui->checkEyeTriggerSynPrintEn->setChecked(false); - on_checkEyeTriggerSynPrintEn_clicked(ui->checkEyeTriggerSynPrintEn->isChecked()); - setEnableEleEyeSetting(false); } void PrintSetting::setEnableEleEyeSetting(bool flag){ ui->labelEleEyeTriggerIntervalMs->setEnabled(flag); - ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(flag || sysPara->para.printTriggerMode == PRINT_TRIGGER_TIME); + if (sysPara) { + ui->spinBoxEleEyeTriggerIntervalMs-> + setEnabled(flag || sysPara->para.printTriggerMode == PRINT_TRIGGER_TIME); + } ui->labelEleMaskTime->setEnabled(flag); ui->spinBoxEleMaskTime->setEnabled(flag); ui->labelEleEyeTriggerRepeatCnt->setEnabled(flag); ui->spinBoxEleEyeTriggerRepeatCnt->setEnabled(flag); - ui->checkBoxSynMakeClean->setEnabled(flag); + ui->cb_unlimited->setEnabled(flag); ui->radioButtonEleEyeEdgetTrigger->setEnabled(flag); ui->radioButtonEleEyeLevelTrigger->setEnabled(flag); @@ -678,12 +659,8 @@ void PrintSetting::setEnableEleEyeSetting(bool flag){ void PrintSetting::on_eleEyeEdgetTriggerExternal_clicked() { - if(ui->radioButtonSynTrigger->isChecked()) - ui->checkEyeTriggerSynPrintEn->setChecked(true); - else - ui->checkEyeTriggerSynPrintEn->setChecked(false); - - on_checkEyeTriggerSynPrintEn_clicked(ui->checkEyeTriggerSynPrintEn->isChecked()); + if (sysPara) + on_checkEyeTriggerSynPrintEn_clicked(sysPara->para.eleEyeTriggerSynPrintEn); setEnableEleEyeSetting(true); } @@ -697,30 +674,30 @@ void PrintSetting::setEnableSynTriggerSetting(bool flag){ ui->comboBoxSyncActType->setEnabled(flag); ui->labelSynPrintMode->setEnabled(flag); ui->comboBoxSynPrintMode->setEnabled(flag); - + ui->cb_unlimited->setEnabled(flag); } void PrintSetting::on_radioButtonSynTriggerInner_clicked() { + setEnableSynTriggerSetting(false); + if (sysPara == NULL) return; if(ui->eleEyeEdgetTriggerInner->isChecked()){ sysPara->para.printTriggerMode = PRINT_TRIGGER_TIME; setTriggerUI(sysPara->para.printTriggerMode); } + if (sysPara) + on_checkEyeTriggerSynPrintEn_clicked(sysPara->para.eleEyeTriggerSynPrintEn); - ui->checkEyeTriggerSynPrintEn->setChecked(false); - on_checkEyeTriggerSynPrintEn_clicked(ui->checkEyeTriggerSynPrintEn->isChecked()); - setEnableSynTriggerSetting(false); } void PrintSetting::on_radioButtonSynTriggerExternal_clicked() { - if(ui->eleEyeEdgetTriggerExternal->isChecked()) - ui->checkEyeTriggerSynPrintEn->setChecked(true); - else{ - ui->checkEyeTriggerSynPrintEn->setChecked(false); - sysPara->para.printTriggerMode = PRINT_TRIGGER_SYNCHRONIZER; + if(!ui->eleEyeEdgetTriggerExternal->isChecked()){ + if (sysPara) + sysPara->para.printTriggerMode = PRINT_TRIGGER_SYNCHRONIZER; } - on_checkEyeTriggerSynPrintEn_clicked(ui->checkEyeTriggerSynPrintEn->isChecked()); + if (sysPara) + on_checkEyeTriggerSynPrintEn_clicked(sysPara->para.eleEyeTriggerSynPrintEn); setEnableSynTriggerSetting(true); } @@ -741,3 +718,8 @@ void PrintSetting::on_checkBoxPulseOutputEnable_clicked(bool checked) isPulseEenable = checked; ui->spinBoxOutputPulseDelayMs->setEnabled(checked); } + +void PrintSetting::on_cb_unlimited_clicked(bool checked) +{ + ui->spinBoxEleEyeTriggerRepeatCnt->setEnabled(!checked); +} diff --git a/Printsetting.h b/Printsetting.h index 04e3651..5ca7895 100644 --- a/Printsetting.h +++ b/Printsetting.h @@ -75,6 +75,8 @@ private slots: void on_checkBoxPulseOutputEnable_clicked(bool checked); + void on_cb_unlimited_clicked(bool checked); + private: Ui::PrintSetting *ui; diff --git a/Printsetting.ui b/Printsetting.ui index 18dc267..baf9aad 100644 --- a/Printsetting.ui +++ b/Printsetting.ui @@ -26,7 +26,7 @@ Qt::StrongFocus - 0 + 3 @@ -35,16 +35,16 @@ - 220 - 90 - 122 - 25 + 150 + 80 + 191 + 37 16777215 - 25 + 999 @@ -82,16 +82,16 @@ - 220 - 160 - 121 - 25 + 140 + 150 + 201 + 37 16777215 - 25 + 999 @@ -123,14 +123,14 @@ - 160 + 120 230 - 181 + 221 37 - 喷印模式 + 喷印模式: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -168,20 +168,658 @@ - + - PrintGo信号页1 + 电眼设置 - + - 180 - 20 - 281 + 30 + 80 + 141 + 131 + + + + 电眼信号来源 + + + + + 10 + 30 + 112 + 40 + + + + 内部 + + + + + + 10 + 80 + 112 + 40 + + + + 外部 + + + + + + + 30 + 220 + 191 + 88 + + + + + + + + 0 + 0 + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + Qt::LeftToRight + + + + + + 光电边沿触发 + + + + + + + + 0 + 0 + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + Qt::LeftToRight + + + + + + 光电电平触发 + + + + + + + + + 240 + 60 + 491 + 281 + + + + + + + + 16777215 + 37 + + + + + + + 喷印延迟(毫秒): + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 16777215 + 37 + + + + 1 + + + 65535 + + + + + + + + 16777215 + 37 + + + + + + + 重复次数: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 0 + 37 + + + + + 16777215 + 37 + + + + 1 + + + 253 + + + + + + + + 0 + 0 + + + + Qt::LeftToRight + + + + + + 无限长 + + + + + + + + 16777215 + 37 + + + + Qt::LeftToRight + + + + + + 重复间隔(毫秒): + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 16777215 + 100 + + + + 1 + + + 65535 + + + 1 + + + + + + + + 150 + 0 + + + + + 16777215 + 37 + + + + + + + 封锁时间(毫秒): + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + 1 + + + 65535 + + + 1 + + + + + + + + + 编码器参数 + + + + + 210 + 60 + 521 + 191 + + + + + + + + 150 + 0 + + + + + + + 脉冲数/毫米: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 150 + 30 + + + + + 150 + 37 + + + + Qt::ImhNone + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Qt::LeftToRight + + + 脉冲数修正 + + + + :/icon/pulse.png:/icon/pulse.png + + + + + + + + 16777215 + 37 + + + + Qt::LeftToRight + + + + + + 喷印间隔(毫米): + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 150 + 16777215 + + + + + + + + + + + 同步喷印模式: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 0 + 30 + + + + + 16777215 + 37 + + + + 0 + + + + 按字符宽度 + + + + + 按喷印比例 + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + + 同步器正反转打印 + + + + + 同步器只正转打印 + + + + + 同步器只反转打印 + + + + + + + + + + 30 + 80 + 141 + 131 + + + + 同步器来源 + + + + + 10 + 30 + 111 + 40 + + + + Qt::LeftToRight + + + + + + 内部 + + + + + + 10 + 80 + 111 + 40 + + + + + + + 外部 + + + + + + + 其他设置 + + + + + 460 + 90 + 135 + 37 + + + + + 0 + 37 + + + + Qt::RightToLeft + + + 信息上下颠倒 + + + + :/icon/updown.png:/icon/updown.png + + + + + + 460 + 140 + 135 + 37 + + + + + 0 + 37 + + + + Qt::RightToLeft + + + 信息左右颠倒 + + + + :/icon/leftright.png:/icon/leftright.png + + + + + + 40 + 30 + 311 211 - + @@ -202,10 +840,9 @@ - + - background-color: rgb(192, 205, 210); -border-radius: 5px; + 脉冲信号值: @@ -302,13 +939,12 @@ border-radius: 5px; - + - background-color: rgb(192, 205, 210); -border-radius: 5px; + - 镜象交替类型 + 镜象交替类型: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -318,8 +954,7 @@ border-radius: 5px; - background-color: rgb(192, 205, 210); -border-radius: 5px; + 延时(毫秒): @@ -330,13 +965,12 @@ border-radius: 5px; - + - background-color: rgb(192, 205, 210); -border-radius: 5px; + - 镜像交替间隔 + 镜像交替间隔: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -346,11 +980,10 @@ border-radius: 5px; - background-color: rgb(192, 205, 210); -border-radius: 5px; + - 触发延时(毫秒) + 触发延时(毫秒): Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -387,33 +1020,11 @@ border-radius: 5px; - - - - 180 - 290 - 149 - 40 - - - - - 0 - 0 - - - - - - - 脉冲输出使能 - - - 180 - 340 + 80 + 310 191 37 @@ -452,164 +1063,38 @@ border-radius: 5px; - + + + + 80 + 260 + 149 + 40 + + + + + 0 + 0 + + + + + + + 脉冲输出使能 + + + 460 - 370 - 90 - 25 - - - - - 0 - 0 - - - - 电眼清零 - - - - - - 550 - 370 - 41 - 27 - - - - - 0 - 0 - - - - 1 - - - 200 - - - - - - 600 - 375 - 64 - 20 - - - - 字符宽度: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 670 - 370 - 48 - 30 - - - - - 0 - 0 - - - - - 0 - 30 - - - - - 16777215 - 37 - - - - 0 - - - 99 - - - 8 - - - - - - 180 - 240 - 282 - 41 - - - - - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - - - 产生脉冲所需计数: - - - - - - - - 0 - 0 - - - - - 150 - 0 - - - - - 16777215 - 37 - - - - 1 - - - 65535 - - - 6 - - - - - - - - - 470 - 20 + 30 241 41 - + @@ -622,8 +1107,7 @@ border-radius: 5px; Qt::LeftToRight - background-color: rgb(192, 205, 210); -border-radius: 5px; + 间隔模式: @@ -661,418 +1145,143 @@ border-radius: 5px; - - - - PrintGo信号页2 - - + - 40 - 50 - 431 - 211 + 370 + 200 + 371 + 39 - - - + + + + + + 200 + 0 + + + + + + + 产生脉冲所需计数: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + 0 0 - - - 16777215 - 100 - - - - 1 - - - 65535 - - - 1 - - - - - - - - 16777215 - 37 - - - - Qt::LeftToRight - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - - - 重复间隔(毫秒) - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - 1 - - - 65535 - - - 1 - - - - - - - - 0 - 0 - - - - - 16777215 - 37 - - - - 1 - - - 253 - - - - - - - - 16777215 - 37 - - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - - - 重复次数 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 16777215 - 37 - - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - - - 封锁时间(毫秒) - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - Qt::LeftToRight - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - - - 同步器清零 - - - - - - - false - - - - 0 - 0 - - 150 - 0 + 37 - - Qt::LeftToRight + + + 16777215 + 40 + - - background-color: rgb(192, 205, 210); -border-radius: 5px; + + 1 - - 同步打印 + + 65535 + + + 6 - - - - 540 - 30 - 171 - 111 - - - - 电眼信号来源 - - - - - 20 - 30 - 112 - 23 - - - - 内部 - - - - - - 20 - 70 - 112 - 23 - - - - 外部 - - - - - - - 530 - 150 - 191 - 131 - - - - - - - - - 30 - 30 - 141 - 40 - - - - - 0 - 0 - - - - - 0 - 24 - - - - - 16777215 - 40 - - - - Qt::LeftToRight - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - - - 光电边沿触发 - - - - - - 30 - 80 - 141 - 40 - - - - - 0 - 0 - - - - - 0 - 24 - - - - - 16777215 - 40 - - - - Qt::LeftToRight - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - - - 光电电平触发 - - - - - - - 300 - 270 - 171 - 80 - - - - GroupBox - - - - - 10 - 30 - 159 - 40 - - - - - 0 - 0 - - - - - 0 - 24 - - - - - 16777215 - 40 - - - - Qt::RightToLeft - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - - - 延时触发 - - - - 60 - 300 - 231 - 41 + 460 + 310 + 150 + 31 - - - + + + - + 0 0 - - background-color: rgb(192, 205, 210); -border-radius: 5px; - - 重复间隔(毫秒) + 电眼清零 + + + + + + + + 0 + 0 + + + + 1 + + + 200 + + + + + + + + + 460 + 270 + 120 + 32 + + + + + + + 字符宽度: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + 0 0 + + + 0 + 30 + + 16777215 @@ -1080,389 +1289,18 @@ border-radius: 5px; - 6 - - - 9999999 - - - 100 - - - - - - - - - 编码器参数 - - - - - 260 - 50 - 461 - 181 - - - - - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - - - 脉冲数/毫米 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 0 - 30 - - - - - 120 - 37 - - - - Qt::ImhNone - - - - - - - - 0 - 0 - - - - - 160 - 0 - - - - Qt::LeftToRight - - - 脉冲数修正 - - - - :/icon/pulse.png:/icon/pulse.png - - - - - - - - 16777215 - 37 - - - - Qt::LeftToRight - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - - - 喷印间隔(毫米) - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 120 - 16777215 - - - - - - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - - - 同步喷印模式 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 0 - 30 - - - - - 16777215 - 37 - - - 0 - - - 按字符宽度 - - - - - 按喷印比例 - - - - - - - - - 0 - 0 - + + 99 - - - 150 - 0 - + + 8 - - - 同步器正反转打印 - - - - - 同步器只正转打印 - - - - - 同步器只反转打印 - - - - - - 50 - 320 - 111 - 40 - - - - - 0 - 0 - - - - - 0 - 24 - - - - - 16777215 - 40 - - - - Qt::LeftToRight - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - -QRadioButton { - padding-left: 5px; - } - - - 同步器触发 - - - - - - 40 - 40 - 101 - 31 - - - - 同步器来源 - - - - - - 60 - 70 - 141 - 131 - - - - - - - - - 10 - 30 - 111 - 40 - - - - Qt::LeftToRight - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - -QRadioButton { - padding-left: 5px; - } - - - 内部 - - - - - - 10 - 80 - 111 - 40 - - - - background-color: rgb(192, 205, 210); -border-radius: 5px; - -QRadioButton { - padding-left: 5px; - } - - - 外部 - - - - - - - 其他设置 - - - - - 320 - 120 - 135 - 37 - - - - - 0 - 37 - - - - Qt::RightToLeft - - - 信息上下颠倒 - - - - :/icon/updown.png:/icon/updown.png - - - - - - 320 - 220 - 135 - 37 - - - - - 0 - 37 - - - - Qt::RightToLeft - - - 信息左右颠倒 - - - - :/icon/leftright.png:/icon/leftright.png - - diff --git a/QtUI.pro b/QtUI.pro index 660d24b..b660b15 100644 --- a/QtUI.pro +++ b/QtUI.pro @@ -165,7 +165,8 @@ HEADERS += Public.h \ Log/logger.h \ Log/logmessage.h \ Log/logglobal.h \ - loginfoctrl.h + loginfoctrl.h \ + runtimectrl.h FORMS += \ @@ -321,7 +322,8 @@ SOURCES +=\ Log/filelogger.cpp \ Log/logger.cpp \ Log/logmessage.cpp \ - loginfoctrl.cpp + loginfoctrl.cpp \ + runtimectrl.cpp diff --git a/SysPara.cpp b/SysPara.cpp index b86743b..1cfcee9 100644 --- a/SysPara.cpp +++ b/SysPara.cpp @@ -106,23 +106,25 @@ void SysPara::loadParaFromFile(){ file.seek(0); file.read((char *)¶,(long long int)sizeof(para)); file.close(); - if(para.gearPumpSpeedAlarm < 1000 || para.gearPumpSpeedAlarm > 2000) - para.gearPumpSpeedAlarm = 1500; - if(para.gearPumpEnable && !para.flagOfReclaimPumEnable) - para.flagOfReclaimPumEnable = 1; - if (DeviceCodefile.isOpen()) { - DeviceCodefile.close(); - } - //jdDataRwLock.lockForRead(); - if(!DeviceCodefile.open(QIODevice::ReadOnly)){//怀疑是QIODevice::Truncate 引起参数错误,去掉试试看 - //QMessageBox::warning(0,"警告",QString("无法打开文件") ); - } - else { - DeviceCodefile.seek(0); - //file.read((char *)&jd.addr,(long long int)sizeof(jd)); - DeviceCodefile.read((char *)¶.Json_device_code,(qint64)sizeof(para.Json_device_code)); - DeviceCodefile.close(); - } + if(para.gearPumpSpeedAlarm < 1000 || para.gearPumpSpeedAlarm > 2000) + para.gearPumpSpeedAlarm = 1500; + + // 将flagOfReclaimPumEnable强制设置为0。该参数影响的是压力控制算法,但现在已经不使用 byons@2026年5月12日 + if(para.gearPumpEnable && para.flagOfReclaimPumEnable) + para.flagOfReclaimPumEnable = false; + if (DeviceCodefile.isOpen()) { + DeviceCodefile.close(); + } + //jdDataRwLock.lockForRead(); + if(!DeviceCodefile.open(QIODevice::ReadOnly)){//怀疑是QIODevice::Truncate 引起参数错误,去掉试试看 + //QMessageBox::warning(0,"警告",QString("无法打开文件") ); + } + else { + DeviceCodefile.seek(0); + //file.read((char *)&jd.addr,(long long int)sizeof(jd)); + DeviceCodefile.read((char *)¶.Json_device_code,(qint64)sizeof(para.Json_device_code)); + DeviceCodefile.close(); + } } } else { @@ -156,7 +158,7 @@ void SysPara::loadDefaultPara(){ para.synPulseNumPerMm = 8;// 同步器参数 脉冲/毫米 para.OuputPulseCol = 0;//桂林客户,精准控制输出脉冲的位置,精确到打印的列数 para.gearPumpEnable = 1; - para.flagOfReclaimPumEnable = 1; + para.flagOfReclaimPumEnable = 0; para.oscillatorVoltage = 30;//晶振电压 para.highVoltageLevel = 100;//高压包容差 @@ -1015,6 +1017,8 @@ void SysPara::saveRFIDPara() out << RFIDPara.maintenanceInterval; out << RFIDPara.maintenanceEndDate; out << RFIDPara.needMaintenance; + out << RFIDPara.runTime; + out << RFIDPara.maintenanceHours; out << para.rfidCountDown; if(!file.flush()){ @@ -1030,6 +1034,7 @@ void SysPara::saveRFIDPara() } file.close(); } + bool SysPara::loadRFIDPara() { QFile file(RFID_FILE_PATH); @@ -1055,6 +1060,8 @@ bool SysPara::loadRFIDPara() in >> RFIDPara.maintenanceInterval; in >> RFIDPara.maintenanceEndDate; in >> RFIDPara.needMaintenance; + in >> RFIDPara.runTime; + in >> RFIDPara.maintenanceHours; in >> para.rfidCountDown; file.close(); diff --git a/SysPara.h b/SysPara.h index dae5c56..19ba135 100644 --- a/SysPara.h +++ b/SysPara.h @@ -882,6 +882,9 @@ typedef struct unsigned int maintenanceInterval; unsigned int maintenanceEndDate; bool needMaintenance; + // 运行时间与保养间隔时间 runTime>=maintenanceHours 时提示保养 + unsigned int runTime; // 单位:秒 + unsigned int maintenanceHours; }RFIDPara_t; #define MDT 0 diff --git a/SystemManage.cpp b/SystemManage.cpp index f62491c..1771446 100644 --- a/SystemManage.cpp +++ b/SystemManage.cpp @@ -34,9 +34,7 @@ SystemManage::SystemManage(QWidget *parent) : ui->pushButtonCompressPump->setEnabled(false); ui->pushButtonMainInkPump->setEnabled(false); ui->pushButtonReleaseValve->setEnabled(false); - - // 总是启用回收泵控制 byons@2026年4月22日 - // ui->pushButtonReclaimPump->setEnabled(false); + ui->pushButtonReclaimPump->setEnabled(false); ui->pushButtonGearPump->setEnabled(true); ui->pushButtonGearPumpOff->setEnabled(true); @@ -228,18 +226,14 @@ void SystemManage::setPumpValveBottonEnable(bool enable){ ui->pushButtonCompressPump->setEnabled(false); ui->pushButtonMainInkPump->setEnabled(false); ui->pushButtonReleaseValve->setEnabled(false); - - // 总是启用回收泵控制 byons@2026年4月22日 - // ui->pushButtonReclaimPump->setEnabled(enable); + ui->pushButtonReclaimPump->setEnabled(enable); } else { ui->pushButtonCompressPump->setEnabled(enable); ui->pushButtonMainInkPump->setEnabled(enable); ui->pushButtonReleaseValve->setEnabled(enable); - - // 总是启用回收泵控制 byons@2026年4月22日 - // ui->pushButtonReclaimPump->setEnabled(enable); + ui->pushButtonReclaimPump->setEnabled(enable); } } ui->pushButtonCycleValve->setEnabled(enable); @@ -1345,7 +1339,7 @@ void SystemManage::programFPGAProcess(){ QFile file("/udisk/FPGAFile.rbf"); if(!file.exists()) { - QMessageBox::warning(this,"提示","没有FPGA升级文件"); + QMessageBox::warning(this,tr("提示"), tr("没有FPGA升级文件")); programFPGATimer->stop(); return; } diff --git a/chinese.ts b/chinese.ts index b308349..52a4d4b 100644 --- a/chinese.ts +++ b/chinese.ts @@ -1,6 +1,163 @@ + + BarcodeEditor + + + Form + + + + + ✓ + + + + + ✕ + + + + + 整体设置 + + + + + + 条形码 + + + + + 内容 + + + + + 类型 + + + + + 二维码 + + + + + 条形码格式 + + + + + 嵌入 + + + + + 日期 + + + + + 计数器 + + + + + 条形码编辑 + + + + + CounterEditor + + + 重复数: + + + + + 起始值: + + + + + 结束值: + + + + + 当前值: + + + + + 增量值: + + + + + 计数器ID: + + + + + 计数器1 + + + + + 计数器2 + + + + + 计数器位数: + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + CounterVarSet @@ -9,155 +166,352 @@ - + 整体设置 - + 变量类型 - - + + 计数器1 - - + + 计数器2 - + 数字个数: - + 1 - + 2 - + 3 - + 4 - + 5 - + 6 - + 7 - + 8 - + 字符间距 - - + + ← - - + + → - - + + 增量值: - + 额外设置 - + 如果预览与打印显示不正确,调整此设置可能恢复。 - + 自定义字符宽度 - - + + 当前值: - + 可变长度 - - + + 重复数: - + 小数点位数 - - + + 结束值: - - + + 起始值: - + ✓ - + ✕ + + DateFormatEditor + + + Form + + + + + 内容 + + + + + 有效期限 + + + + + 天数 + + + + + 月 - 精确到日 + + + + + 月 - 精确到月 + + + + + . + + + + + : + + + + + , + + + + + / + + + + + ; + + + + + _ + + + + + + - + + + + + 小时 + + + + + 分钟 + + + + + 秒钟 + + + + + 月 + + + + + 年2026 + + + + + 日 + + + + + 年中第几周 + + + + + 年26 + + + + + 周几 + + + + + 空格 + + + + + <------ + + + + + + + + + + + DateReplaceEditor + + + 名称 + + + + + 数据 + + + + + 周几 + + + + + 月 + + + + + 年 + + + + + 天数 + + + + + 小时 + + + + + Meridiem + + + + + 类型 + + + + + 代替 + + + + + 上 + + + + + 下 + + + + + 预设值 + + + DateVarSet @@ -166,276 +520,271 @@ - + ✓ - + ✕ - + 整体设置 - + 日期/时间 - + 内容 - + 有效期限 - - + + 天数 - + 月 - 精确到日 - + 月 - 精确到月 - + . - + : - + , - + / - + ; - + _ - - + + - - - + + 小时 - + 分钟 - + 秒钟 - - + + 月 - + 年2026 - + 日 - + 年中第几周 - + 年26 - - + + 周几 - + 空格 - + <------ - + + - - + + 代替 - + 名称 - + 数据 - + 年 - + Meridiem - + 类型 - + 上 - + 下 - + 预设值 - - - 高级选项 - - DevOp - - - - - + + + + + 警告 - + 字高超出范围 - + 字高太小或是高压包数据未初始化,您当前错误将忽略所有高压错误 - - + + 错误 - + 在同步计米的情况下无打印串或显示区域为零 - + 在同步计米的情况下喷印同步脉冲数过多,请检查你的配置 - + 喷印字符串太短,请增加字符串长度或在打印设置中减少喷印长度 - + 喷印长度太短,请减少字符串长度或在打印设置中增加喷印长度 - + readB6Req - + readB6com - + readB6suc - + Cmd[%1]: %2 - + 设置读写器密码成功! - + 设置读写器工作模式成功! @@ -659,41 +1008,57 @@ DialogMaintenanceTimeSetting - Dialog + 设置保养间隔 - + 保养周期 - + (月) - + 重置保养时间 - - 维护时间: + + 剩余维护时间: - + + 运行时间 + + + + + (小时) + + + + + 当前运行时间: + + + + + TextLabel - + 警告 - + 确定要设置今天为新的保养日期吗? @@ -835,6 +1200,127 @@ + + DlgBarcodeFormat + + + Dialog + + + + + 条形码高度 + + + + + 1点 + + + + + 2点 + + + + + 3点 + + + + + 4点 + + + + + + 5点 + + + + + 6点 + + + + + 增加数字行 + + + + + 黑墨 + + + + + 白墨 + + + + + 条码宽度 + + + + + 条形码类型 + + + + + 墨水类型 + + + + + 显示缩放 + + + + + ✓ + + + + + 7点 + + + + + 9点 + + + + + 12点 + + + + + 16点 + + + + + 24点 + + + + + + %1点 + + + + + + 点 + + + DlgInputAddr @@ -955,6 +1441,16 @@ 韩语 + + + 提示 + + + + + 是否重启? + + DlgMyWarring @@ -974,6 +1470,137 @@ + + DlgQrcodeFormat + + + Dialog + + + + + DataMatrix + + + + + QRCode + + + + + 正相打印 + + + + + 反相打印 + + + + + DM码尺寸: + + + + + 默认 + + + + + 8 x 18 + + + + + 8 x 32 + + + + + 12 x 26 + + + + + 12 x 36 + + + + + 16 x 36 + + + + + 16 x 48 + + + + + 低级 + + + + + 中级 + + + + + 高级 + + + + + 超高级 + + + + + 类型 + + + + + 墨水类型 + + + + + ✓ + + + + + DlgRFIDConfig + + + Dialog + + + + + 确定 + + + + + 自动激活超时 + + + + + 秒 + + + + + 卡片接触 %1 秒后自动激活。 + + + FileLogger @@ -990,83 +1617,83 @@ FileManageWidget - + Form - + 管理器 - + 导出到U盘 - + 从U盘导入 - + 全选 - + 取消全选 - + 删除已选 - + 过滤器 - + 文件 - + 图标 - + 字体 - + 全部 - + 硬盘 - + 设备 - + ✕ - + U盘 @@ -1195,12 +1822,12 @@ - + ✓ - + ✕ @@ -1227,225 +1854,219 @@ - - mtDate: %1 - - - - - mtInterval: %1 - - - - - mtEndDate: %1 - - - - - mtFlag: %1 - - - - - timeoutDay: %1 - - - - - + + 13.读卡器故障! - + %1/%2/%3 - + 测试时间结束,准备关机 - - 开始自检,请等待60秒............... - - - - + 开始自检,请等待%1秒... - - + + 自检完成!!! - - - + 警告 - + 确认要刷墨水卡吗? - - + + 不需要刷墨水卡! - - + + 请先添加墨水再刷墨水卡! - - + + + 刷墨水卡成功! - + 确认要刷溶剂卡吗? - - - - 不需要刷溶剂卡! - - + 不需要刷溶剂卡! + + + + + 提示 + + + + + 保养期还有%1小时到期,请及时保养,否则喷码机容易损坏 + + + + + 保养期已超过%1小时,请及时保养,否则喷码机容易损坏 + + + + + 开始自检,请等待60秒... + + + + + 确认要刷墨水卡吗? %1 秒后将自动确认 + + + + + 请先添加溶剂再刷溶剂卡! - - + + 确认要刷溶剂卡吗? %1 秒后将自动确认 + + + + + + 刷溶剂卡成功! - + 确认要刷保养卡吗? - - + + 确认要刷保养卡吗? %1 秒后将自动确认 + + + + + 刷保养卡成功! - - + + MAC无效卡! - + card data: %1 - + 无效卡,这张卡已经在%1时使用过 - + ink Warning at: %1 - + solvent Warning at: %1 - - + + 压力泄漏或压力传感器故障! + + + + + 电机故障 - - - 回收槽到头 - - - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 错误!粘度计故障:检测不到上位灯 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷卡倒计时起始时间文件不存在 - - - 请稍候 - - - - - - 刷溶剂卡倒计时: %1 秒 - - InputMethod @@ -1977,200 +2598,200 @@ - + 当前状态 - + 清空当前状态 - - - - + + + + ✕ - + 历史状态 - + 导出日志到U盘 - + 打开历史文件 - + 删除历史文件 - - + + TextLabel - + 版本信息 - + 机器状态 - + 粘度 - + 高压包 - + 隔膜位置 - + 压力 - + 墨线开关 - + 喷嘴逆清洗 - + 墨水缸满 - + 墨水液位 - + 溶剂液位 - + 回收故障 - + 粘度故障 - + 相位故障 - + 高压故障 - + 故障恢复 - + 请先打开历史状态文件! - + 齿轮泵转速 - - - - - + + + + + 警告 - - - + + + 无法打开文件 - - - - + + + + 提示 - + 是否确认将所有日志文件导出到U盘? - + U盘目录创建失败 - + U盘未插入或无法识别,请重新插拔设备! - + 成功导出到U盘 - + 选择历史记录文件 - + 是否确认将历史日志文件全部清除? - + 是否确认将当前日志全部清除? - + 清洗中,界面锁死 @@ -2183,23 +2804,23 @@ - + 网口通信 - + 时间设置 - + 服务 文件 - + 图形编辑器 @@ -2209,455 +2830,509 @@ - - 服务 - - - - + 系统设置 - + 系统管理 - + + + 额外设置 + + + + 其他设置 - + 设置保养间隔 - + 系统更新 - + + 系统授权 - + + RFID设置 + + + + ✕ - - mtDate1: %1 - - - - - mtInterval1: %1 - - - - - mtEndDate1: %1 - - - - - mtFlog1: %1 - - - - + 提示 - + RFID卡清零! + + + + 取消授权 + + + + + 警告 + + + + + 密码错误:%1 + + MainWidget - + background-color:#6A7289; - + 编辑当前文件 - + 调入文件喷印 - + 主指令单 - + 管理器 - + 信息 - + background-color:#BCBFC4; - + background-color:#CACCC9; - - + + background-color:#BBBBBD;border-radius:3px; - - + + 0 - + 达到数量后停止: - + 开始打印 - + color:#000000;font-size:18px; - + 速度 米/分 - + color:#3CB371;font-size:18px; - + 当前 - + color:#E72F28;font-size:18px; - + 最大 - + color:#3CB371;font-size:24px; - + 0007.9 - + color:#E72F28;font-size:24px; - + 0020.3 - + 停止打印 - + + 喷嘴开启 - + + 喷嘴关闭 - + 产品计数器 - + color:#000000;font-size:28px;font-weight:bold; - + border:0px; - - - - - - - + + + + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - + + + + 正在准备关机,请等待%1秒... + + + + + 准备关机... + + + + + 关机失败!!! + + + + 最多支持的列数目为:%1请减小信息长度. - - + + + + 变量数大于8个,某些变量将不起作用!!! - - + + 请减少信息中的变量(或计数器)数量. - + warning,界面上有变量未显示完全 - - - - + + + + 错误 - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - - + + 停止开启 + + + + + 喷嘴已开启 + + + + + 喷嘴开启中 + + + + + 喷嘴已关闭 + + + + + 喷嘴关闭中 + + + + + 正在排气... + + + + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - + 正常 - + 提示 - + 随机码文本将展出到U盘,请插入U盘 - - 正在打开回收槽... - - - - - 停止打开 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - 正在关闭回收槽... - - - - + 停止关闭 - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + + 高压故障,关回收槽和墨线 + + + + + 回收故障,关闭回收槽,关墨线 - + + 回收故障. + + + + 回收异常,墨线可能偏离.(%1) - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - + + + 相位故障,准备关机 - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - + + 相位故障,屏蔽充电 @@ -2984,329 +3659,343 @@ p, li { white-space: pre-wrap; } - 5行5点阵 + 32点阵对5点阵的优化 + 5行5点阵 - - 4行7点阵 - - - - - 信息上下颠倒 + + 电眼设置 - 信息左右颠倒 + 重复间隔(毫秒): - - PrintGo信号页1 + + 重复次数: - - 脉冲信号值: + + 封锁时间(毫秒): - - 无镜像打印 + + 脉冲数/毫米: - - 自动水平翻转 - - - - - 自动垂直翻转 - - - - - 中心对称旋转 - - - - - 镜象交替类型 - - - - - - - - 延时(毫秒): - - - - - 镜像交替间隔 - - - - - - - 触发延时(毫秒) - - - - - 脉冲输出使能 - - - - - 禁止电眼清零 - - - - - 允许电眼复位 - - - - - 允许电眼立即复位 - - - - - 电眼清零 - - - - - 字符宽度: - - - - - 产生脉冲所需计数: - - - - - 间隔模式: - - - - - 行末<->行首 + + 喷印间隔(毫米): + 同步喷印模式: + + + + + 信息上下颠倒 + + + + + 信息左右颠倒 + + + + + 32点阵对4点阵的优化 + + + + + 脉冲信号值: + + + + + 无镜像打印 + + + + + 自动水平翻转 + + + + + 自动垂直翻转 + + + + + 中心对称旋转 + + + + + + + + 延时(毫秒): + + + + + + 触发延时(毫秒) + + + + + 脉冲输出使能 + + + + + 禁止电眼清零 + + + + + 允许电眼复位 + + + + + 允许电眼立即复位 + + + + + 电眼清零 + + + + + 字符宽度: + + + + + 产生脉冲所需计数: + + + + + 间隔模式: + + + + + 行末<->行首 + + + + 行首<->行首 - - PrintGo信号页2 - - - - - - - + + + 重复间隔(毫秒) - - 重复次数 - - - - - + 封锁时间(毫秒) - + 同步器清零 - + 同步打印 - + 电眼信号来源 - - + + 内部 - - + + 外部 - + 光电边沿触发 - + 光电电平触发 - + GroupBox - + 延时触发 - + 编码器参数 - - 脉冲数/毫米 + + 触发延时(毫秒): + 脉冲数/毫米 - + 脉冲数修正 - - 喷印间隔(毫米) - - - - - 同步喷印模式 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 同步器触发 - + 同步器来源 - + + 其他设置 + + + + + 镜象交替类型: + + + + + 镜像交替间隔: + + + + ✕ - + ✓ - + 提示 - + 应用成功 - + 提示:参数不正确 - + 要求:触发长度小于喷印间隔 - - - - + + + + 延时(毫米): - - - + + + 触发延时(毫米) - - + + 重复间隔(毫米) - - - 封锁间隔(毫米) + + + 抑止距离(毫米) - - 封锁间隔(毫秒) + + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) @@ -3587,6 +4276,64 @@ p, li { white-space: pre-wrap; } + + RunTimeCtrl + + + mtDate: %1 + + + + + mtInterval: %1 + + + + + mtEndDate: %1 + + + + + mtFlag: %1 + + + + + timeoutDay: %1 + + + + + runTime: %1 + + + + + maintenanceHours: %1 + + + + + mtDate1: %1 + + + + + mtInterval1: %1 + + + + + mtEndDate1: %1 + + + + + mtFlog1: %1 + + + ScheduleShiftsEditor @@ -3595,123 +4342,123 @@ p, li { white-space: pre-wrap; } - + ✓ - + ✕ - + 整体设置 - - - + + + 班时编号 - - + + 班时时间 - - + + 新建行 - + 标号 - + 1 - + 00:00 - + A - + 2 - + 08:09 - + B - + 3 - + 12:00 - + C - + 可选用的班次时间: - + 23 - - + + ← - - + + → - + 添加 - + 移除 - + hh:mm @@ -3743,7 +4490,7 @@ p, li { white-space: pre-wrap; } SetNumDlg - Dialog + 设置计数器 @@ -3802,14 +4549,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -3840,7 +4587,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -3880,375 +4627,375 @@ 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软件吗? - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -4637,32 +5384,32 @@ p, li { white-space: pre-wrap; } - + 警告 - + 是否确认导出字库到U盘? - + 错误 - + U盘不可识别! - + 提示 - + 字库导出完成! @@ -4952,12 +5699,12 @@ p, li { white-space: pre-wrap; } - + 提示 - + 是否保存文件? @@ -5059,8 +5806,8 @@ p, li { white-space: pre-wrap; } - - + + 保存 @@ -5075,49 +5822,50 @@ p, li { white-space: pre-wrap; } - + 提示 - + 图片已经改变,是否保存? - + 放弃保存 - - - + + + + 放大倍数:%1 - + 图片另存为... - + 另存为 - + 打开文件 - + 图片保存为... - + 导入文件 diff --git a/countervarset.ui b/countervarset.ui index d6af29f..e3d0a4b 100644 --- a/countervarset.ui +++ b/countervarset.ui @@ -267,54 +267,7 @@ - QSpinBox::down-button { - width: 23px; /* 图标显示宽度 */ - height: 23px; /* 图标显示高度 */ - border: 1px solid #333333; - border-radius: 3px; - background-color: #5396C1; -} - -QSpinBox::down-arrow { - image: url(image/down_white.png); - height: 18px; - width: 18px; -} - -QSpinBox::up-button { - width: 23px; /* 图标显示宽度 */ - height: 23px; /* 图标显示高度 */ - border: 1px solid #333333; - border-radius: 3px; - background-color: #5396C1; -} - -QSpinBox::up-arrow { - image: url(image/up_white.png); - height: 18px; - width: 18px; -} - -QSpinBox { -border: 1px solid #333333; -} - -QCheckBox { - color: #000000; -} - -QCheckBox::indicator { - width: 15px; - height: 15px; - border: 1px solid #96A0A9; - border-radius: 8px; - background-color: #ffffff; -} - -QCheckBox::indicator:checked { - background-color: #95B2D4; - border-color: #95B2D4; -} + 计数器1 @@ -748,8 +701,8 @@ QCheckBox::indicator:checked { - 40 - 20 + 37 + 17 @@ -812,18 +765,6 @@ QCheckBox::indicator:checked { - - 0 - - - 0 - - - 0 - - - 0 - @@ -858,10 +799,7 @@ QCheckBox::indicator:checked { - QRadioButton::indicator { -width: 25px; -height: 25px; -} + 增量值: @@ -1237,21 +1175,9 @@ height: 25px; 50 - - - 1 - - - 1 - - - 1 - - - 1 - + - + Qt::Horizontal @@ -1274,7 +1200,7 @@ height: 25px; 0 - 0 + 32 @@ -1305,27 +1231,27 @@ height: 25px; 50 - - - 0 - - - 0 - - - 0 - - - 0 - + + + 100 + 50 + + + + + 100 + 50 + + + - + Qt::Horizontal - 40 + 6 20 @@ -1342,7 +1268,7 @@ height: 25px; 0 - 0 + 32 @@ -1352,10 +1278,7 @@ height: 25px; - QRadioButton::indicator { -width: 25px; -height: 25px; -} + 增量值: diff --git a/dialogmaintenancetimesetting.cpp b/dialogmaintenancetimesetting.cpp index ae117bd..fe818c3 100644 --- a/dialogmaintenancetimesetting.cpp +++ b/dialogmaintenancetimesetting.cpp @@ -1,5 +1,6 @@ #include "dialogmaintenancetimesetting.h" #include "ui_dialogmaintenancetimesetting.h" +#include #include DialogMaintenanceTimeSetting::DialogMaintenanceTimeSetting(QWidget *parent) : @@ -15,9 +16,18 @@ DialogMaintenanceTimeSetting::~DialogMaintenanceTimeSetting() delete ui; } -int DialogMaintenanceTimeSetting::getInterval() +int DialogMaintenanceTimeSetting::getInterval(RFIDPara_t* para) { - return ui->spinBox->value(); + para->maintenanceInterval = ui->spinBox->value(); + para->maintenanceHours = ui->spinBoxRuntime->value(); + if (resetSchedule) { + resetSchedule = false; + QDate curDate = QDate::currentDate(); + int curdate = curDate.toString("yyMMdd").toInt(); + para->maintenanceDate = curdate; // 维护日期 + para->runTime = 0; + } + return 0; } bool DialogMaintenanceTimeSetting::getResetSchedule(){ bool flag = resetSchedule; @@ -37,16 +47,26 @@ void DialogMaintenanceTimeSetting::on_pushButton_Reset_clicked() } } -void DialogMaintenanceTimeSetting::updateMaintenanceIntervalToUI(int interval){ - ui->spinBox->setValue(interval); -} - -void DialogMaintenanceTimeSetting::updateMaintenanceTime(QString str){ - ui->label_MaintenanceTime->setText(str); -} - void DialogMaintenanceTimeSetting::disableMaintenanceTimeSet(bool flag){ ui->spinBox->setEnabled(flag); ui->pushButton_Reset->setEnabled(flag); ui->label_MaintenanceTime->setEnabled(flag); + + ui->label_4->setEnabled(flag); + ui->label_5->setEnabled(flag); + ui->spinBoxRuntime->setEnabled(flag); +} + +void DialogMaintenanceTimeSetting::updateUI(RFIDPara_t para) +{ + QDate curDate = QDate::currentDate(); + QString mtEndDatestr = "20" + QString::number(para.maintenanceEndDate); + QDate mtEndDate = QDate::fromString(mtEndDatestr,"yyyyMMdd"); + int timeoutDay = curDate.daysTo(mtEndDate); + ui->label_MaintenanceTime->setText(QString("%1 Days").arg(timeoutDay)); + ui->spinBox->setValue(para.maintenanceInterval); + double h = para.runTime / 60.0 / 60.0; + // 保留两位小数 + ui->label_CurRunTime->setText(QString("%1 Hours").arg(QString::number(h, 'f', 2))); + ui->spinBoxRuntime->setValue(para.maintenanceHours); } diff --git a/dialogmaintenancetimesetting.h b/dialogmaintenancetimesetting.h index 7e9dfaa..4d29885 100644 --- a/dialogmaintenancetimesetting.h +++ b/dialogmaintenancetimesetting.h @@ -2,7 +2,11 @@ #define DIALOGMAINTENANCETIMESETTING_H #include +#include "SysPara.h" +/** + 设置保养间隔ui +**/ namespace Ui { class DialogMaintenanceTimeSetting; } @@ -15,12 +19,11 @@ public: explicit DialogMaintenanceTimeSetting(QWidget *parent = 0); ~DialogMaintenanceTimeSetting(); bool getResetSchedule(); - int getInterval(); + int getInterval(RFIDPara_t* para); bool resetSchedule; - void updateMaintenanceIntervalToUI(int); - void updateMaintenanceTime(QString); void disableMaintenanceTimeSet(bool); + void updateUI(RFIDPara_t para); private slots: void on_pushButton_Reset_clicked(); diff --git a/dialogmaintenancetimesetting.ui b/dialogmaintenancetimesetting.ui index 9d74083..08a0aed 100644 --- a/dialogmaintenancetimesetting.ui +++ b/dialogmaintenancetimesetting.ui @@ -6,23 +6,26 @@ 0 0 - 524 - 260 + 536 + 312 Qt::ClickFocus - Dialog + 设置保养间隔 + + + - 170 + 260 220 - 341 - 32 + 241 + 71 @@ -44,6 +47,9 @@ 保养周期 + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + @@ -51,7 +57,7 @@ 30 70 111 - 41 + 31 @@ -73,7 +79,7 @@ 150 70 67 - 41 + 31 @@ -83,10 +89,10 @@ - 250 - 30 - 251 - 81 + 20 + 220 + 191 + 71 @@ -96,22 +102,22 @@ - 40 - 140 - 100 + 250 + 70 + 121 30 - 维护时间: + 剩余维护时间: - 120 - 140 - 100 + 370 + 70 + 131 30 @@ -119,6 +125,83 @@ TextLabel + + + + 30 + 110 + 141 + 31 + + + + 运行时间 + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + 30 + 150 + 111 + 31 + + + + true + + + 3000 + + + 20000 + + + 3000 + + + + + + 150 + 150 + 67 + 31 + + + + (小时) + + + + + + 370 + 150 + 131 + 30 + + + + TextLabel + + + + + + 250 + 150 + 121 + 30 + + + + 当前运行时间: + + diff --git a/dlgmutilanguage.cpp b/dlgmutilanguage.cpp index 54ebe8a..80937bb 100644 --- a/dlgmutilanguage.cpp +++ b/dlgmutilanguage.cpp @@ -120,9 +120,9 @@ void DlgMutiLanguage::SetNewLanguage(){ } // 提示重启 - QMessageBox::StandardButton ret = QMessageBox::information(this, tr("提示"), - tr("是否重启?"), - QMessageBox::Ok); + QMessageBox::StandardButton ret = + QMessageBox::information(this, tr("提示"),tr("是否重启?"), + QMessageBox::Ok | QMessageBox::Cancel); if (ret == QMessageBox::Ok) { sysPara->saveParaToFile(); // 关机前将相关配置保存 sysPara->saveRFIDPara(); diff --git a/doc/scene模块健壮性更新.md b/doc/scene模块健壮性更新.md new file mode 100644 index 0000000..b34dc44 --- /dev/null +++ b/doc/scene模块健壮性更新.md @@ -0,0 +1,310 @@ +# Scene 模块健壮性更新说明 + +## 概述 + +本文档针对 `scene/` 目录下所有类进行健壮性审查,识别出以下几类典型问题: + +1. **外部参数输入未校验** — 公共方法接收指针、索引、容器等参数时缺少有效性检查 +2. **空指针解引用风险** — 存储的原始指针在使用前未做 null 检查 +3. **数组/容器越界访问** — 使用索引访问 QVector/QMap 时未验证边界 +4. **缺少错误处理** — 文件操作、类型转换等缺少失败路径处理 +5. **类型安全问题** — QVariant 类型擦除后未做类型校验 + +--- + +## 各类问题详细清单 + +### 1. BarcodeEditor + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| BarcodeEditor.h/cpp | `bindSysPara(SysPara*)` 未校验 nullptr | 高 | 入口处添加 `if (!sysPara) return;` 并记录日志 | +| BarcodeEditor.cpp | `applyCounterConfigToSysPara()` 直接解引用 `m_sysPara` 无 null 检查 | 高 | 使用前添加 `Q_ASSERT(m_sysPara); if (!m_sysPara) return;` | +| BarcodeEditor.cpp | `bindViewModel()` 中 `format` 字段通过 `QVariant::value()` 取值,无类型校验 | 中 | 使用 `canConvert()` 先行判断 | +| BarcodeEditor.cpp | 计数器相关逻辑中 `counterValues` 索引访问无边界检查 | 高 | 访问前检查 `counterValues.size() >= 2` | + +--- + +### 2. CounterEditor + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| CounterEditor.cpp | `bindSysPara(SysPara*)` 未校验 nullptr | 高 | 入口处添加空指针检查 | +| CounterEditor.cpp | 计数器参数(步长、初始值、最大值)未做范围校验 | 中 | 添加数值范围合法性检查(如步长不为0,最大值>最小值) | +| CounterEditor.cpp | UI 控件取值后直接使用,未校验转换是否成功 | 低 | `toInt()` 等调用使用带 `ok` 参数的重载 | + +--- + +### 3. DateFormatEditor + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| DateFormatEditor.cpp | `setDateModel(const DateItemModel&)` 未校验 model 内部容器是否为空 | 中 | 检查关键 map 的 size 是否满足预期 | +| DateFormatEditor.cpp | 日期偏移量输入未做范围限制 | 低 | 限制偏移量在合理范围内(如 ±9999) | + +--- + +### 4. DateReplaceEditor + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| DateReplaceEditor.cpp | `onLineEditReplaceChanged(int i, QString txt)` 中 `mapIdx` 可能为负值 | 中 | 添加 `if (mapIdx < 0) return;` | +| DateReplaceEditor.cpp | `on_cb_replaceType_currentIndexChanged(int index)` 未校验 index 范围 | 低 | 添加 `if (index < 0 || index > 5) return;` | +| DateReplaceEditor.cpp | 分页逻辑中 `currPage` 无上下界保护 | 中 | 翻页时 clamp 到 `[0, maxPage]` | + +--- + +### 5. DlgBarcodeFormat + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| DlgBarcodeFormat.cpp | 条码类型索引直接映射到枚举,无范围校验 | 中 | 添加枚举范围检查 | +| DlgBarcodeFormat.cpp | 条码内容长度未做上限校验 | 中 | 根据条码类型限制最大长度 | + +--- + +### 6. DlgQrcodeFormat + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| DlgQrcodeFormat.cpp | 二维码内容长度未做上限校验 | 中 | 限制输入长度(QR Code 最大约 4296 字符) | +| DlgQrcodeFormat.cpp | 纠错等级索引未校验 | 低 | 确保 index 在 0-3 范围内 | + +--- + +### 7. ItemCommon + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| ItemCommon.cpp | `generateTxtFromDateItemModel` 中 `monthsMap[month-1]`、`daysMap[day-1]`、`hoursMap[hour]`、`weeksMap[dayOfWeek-1]` 均无边界检查 | **高** | 访问前检查 map/list 的 size 是否足够 | +| ItemCommon.cpp | `generateTxtFromBarcodeViewModel` 中 `counterValues[0]`/`[1]` 无 size 检查 | **高** | 添加 `if (counterValues.size() < 2) return QString();` | +| ItemCommon.cpp | 日期格式解析中未处理无效 datetime 的情况 | 中 | 检查 `QDateTime::isValid()` | + +--- + +### 8. ItemGeneralSettings + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| ItemGeneralSettings.cpp | `bindItem(QGraphicsItem*)` 未校验 nullptr | 高 | 入口处添加空指针检查 | +| ItemGeneralSettings.cpp | 坐标/尺寸输入未做负值或零值校验 | 中 | 宽高不允许为0或负数 | +| ItemGeneralSettings.cpp | `dynamic_cast` 结果未检查 | 中 | 转换后检查是否为 nullptr | + +--- + +### 9. picscene (PicScene) + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| picscene.cpp | 多处 `dynamic_cast` 后直接使用结果,未检查 nullptr | **高** | 每次 `dynamic_cast` 后添加 null 检查 | +| picscene.cpp | `addItem` 系列方法中传入的参数(如文本内容、位置坐标)未校验 | 中 | 校验坐标在场景范围内,文本非空 | +| picscene.cpp | 场景 item 列表遍历中假设 item 类型,未做防御性检查 | 中 | 遍历时使用 `qgraphicsitem_cast` 并检查结果 | +| picscene.cpp | 文件读写操作缺少错误处理(如文件打开失败) | 中 | 检查 `QFile::open()` 返回值 | + +--- + +### 10. piccodeitem (PicCodeItem) + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| piccodeitem.cpp | `updateVariants(QVector counters)` 未校验 `counters.size() >= 2` | **高** | 添加 `if (counters.size() < 2) return defaultImage;` | +| piccodeitem.cpp | `setBarcodeViewModel(const BarcodeViewModel& vm)` 未校验 vm 字段有效性 | 中 | 检查 `vm.type` 和 `vm.contentPattern` 非空 | +| piccodeitem.cpp | `setSource(QVariant var)` 参数被完全忽略 | 低 | 添加注释说明或移除无用参数 | + +--- + +### 11. PicCounterItem + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| PicCounterItem.cpp | `updateVariants(QVector counters)` 未校验容器大小 | 高 | 同 piccodeitem | +| PicCounterItem.cpp | 计数器溢出未处理(超过最大值后的行为) | 中 | 添加溢出保护逻辑 | + +--- + +### 12. PicDateItem + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| PicDateItem.cpp | `setDateModel(const DateItemModel&)` 未校验 model 内部 map 完整性 | 高 | 检查各 map 的 size 满足最低要求 | +| PicDateItem.cpp | 日期替换表访问无边界保护 | 高 | 同 ItemCommon 中的修复 | + +--- + +### 13. PicImageItem + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| PicImageItem.cpp | `setSource(QVariant var)` 未校验 QVariant 类型 | 低 | 使用 `var.canConvert()` 判断 | +| PicImageItem.cpp | `setCustomAttrs` 未检查 "source" 属性是否存在 | 低 | 添加 `attrs.contains("source")` 检查 | +| PicImageItem.cpp | 图片加载失败无日志输出 | 低 | 添加 `qWarning()` 日志 | + +--- + +### 14. PicScheduleShiftItem + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| PicScheduleShiftItem.cpp | `findScheduleName()` 存在不可达代码 | 低 | 清理逻辑 | +| PicScheduleShiftItem.cpp | `itemImage()` 中存在未赋值的 QImage 返回路径 | 中 | 确保所有分支都有有效返回 | + +--- + +### 15. pictextitem (PicTextItem) + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| pictextitem.cpp | 文本内容设置未做长度上限校验 | 低 | 根据打印能力限制最大字符数 | +| pictextitem.cpp | 字体大小设置未做合理范围校验 | 低 | 限制在合理范围(如 1-999) | + +--- + +### 16. ViewModels + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| ViewModels.cpp | `makeCounterVM(SysPara*, ...)` 接收指针但部分路径未检查 null | 中 | 统一在入口处检查 | +| ViewModels.cpp | ViewModel 构造时未校验字段合法性 | 低 | 添加工厂方法中的断言 | + +--- + +### 17. ScheduleShiftsEditor + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| ScheduleShiftsEditor.cpp | 班次时间输入未校验逻辑合理性(如结束时间>开始时间) | 中 | 添加时间区间合法性校验 | +| ScheduleShiftsEditor.cpp | 班次数量未做上限限制 | 低 | 限制最大班次数 | + +--- + +### 18. myview / sceneviewwidget + +| 文件 | 问题 | 严重程度 | 建议修复 | +|------|------|----------|----------| +| myview.cpp | 缩放因子未做范围限制 | 低 | 限制在合理范围(如 0.1 ~ 10.0) | +| sceneviewwidget.cpp | `setScene(PicScene*)` 未校验 nullptr | 中 | 添加空指针检查 | + +--- + +## 修复优先级建议 + +### P0 — 立即修复(可能导致崩溃) + +1. **所有 `bindSysPara(SysPara*)` 调用处** — 添加 nullptr 检查 +2. **`ItemCommon::generateTxtFromDateItemModel`** — 所有 map 索引访问添加边界检查 +3. **`ItemCommon::generateTxtFromBarcodeViewModel`** — counterValues size 检查 +4. **`PicCodeItem::updateVariants`** — counters 容器大小校验 +5. **`picscene.cpp` 中所有 `dynamic_cast`** — 添加 null 检查 + +### P1 — 尽快修复(可能导致数据错误) + +1. DateReplaceEditor 分页索引保护 +2. 条码/二维码内容长度限制 +3. ItemGeneralSettings 中 `dynamic_cast` 结果检查 +4. PicDateItem 日期替换表边界保护 +5. ScheduleShiftsEditor 时间区间合法性校验 + +### P2 — 后续优化(改善代码质量) + +1. QVariant 类型安全检查 +2. 日志输出完善 +3. 无用参数清理 +4. 数值输入范围限制 + +--- + +## 修复模式参考 + +### 模式 A:指针参数校验 + +```cpp +// 修复前 +void BarcodeEditor::bindSysPara(SysPara *sysPara) +{ + m_sysPara = sysPara; +} + +// 修复后 +void BarcodeEditor::bindSysPara(SysPara *sysPara) +{ + if (!sysPara) { + qWarning() << "BarcodeEditor::bindSysPara: null pointer passed"; + return; + } + m_sysPara = sysPara; +} +``` + +### 模式 B:容器索引边界检查 + +```cpp +// 修复前 +auto val = m_currCounterValues[0]; + +// 修复后 +if (m_currCounterValues.size() < 2) { + qWarning() << "counterValues size insufficient:" << m_currCounterValues.size(); + return QImage(); +} +auto val = m_currCounterValues[0]; +``` + +### 模式 C:Map 访问保护 + +```cpp +// 修复前 +result.replace("{M}", model.monthsMap[month - 1]); + +// 修复后 +if (month - 1 >= 0 && month - 1 < model.monthsMap.size()) { + result.replace("{M}", model.monthsMap[month - 1]); +} else { + qWarning() << "monthsMap index out of range:" << month - 1; +} +``` + +### 模式 D:dynamic_cast 安全使用 + +```cpp +// 修复前 +auto* textItem = dynamic_cast(item); +textItem->setText(content); + +// 修复后 +auto* textItem = dynamic_cast(item); +if (!textItem) { + qWarning() << "dynamic_cast to PicTextItem failed"; + return; +} +textItem->setText(content); +``` + +### 模式 E:数值范围校验 + +```cpp +// 修复前 +void ItemGeneralSettings::setWidth(int w) +{ + item->setWidth(w); +} + +// 修复后 +void ItemGeneralSettings::setWidth(int w) +{ + if (w <= 0 || w > MAX_ITEM_WIDTH) { + qWarning() << "Invalid width:" << w; + return; + } + item->setWidth(w); +} +``` + +--- + +## 实施计划 + +1. **第一阶段**:修复所有 P0 问题(防崩溃) +2. **第二阶段**:修复所有 P1 问题(防数据错误) +3. **第三阶段**:完成 P2 优化(代码质量提升) + +每个阶段修复后需进行编译验证和基本功能回归测试。 diff --git a/english.ts b/english.ts index b308349..52a4d4b 100644 --- a/english.ts +++ b/english.ts @@ -1,6 +1,163 @@ + + BarcodeEditor + + + Form + + + + + ✓ + + + + + ✕ + + + + + 整体设置 + + + + + + 条形码 + + + + + 内容 + + + + + 类型 + + + + + 二维码 + + + + + 条形码格式 + + + + + 嵌入 + + + + + 日期 + + + + + 计数器 + + + + + 条形码编辑 + + + + + CounterEditor + + + 重复数: + + + + + 起始值: + + + + + 结束值: + + + + + 当前值: + + + + + 增量值: + + + + + 计数器ID: + + + + + 计数器1 + + + + + 计数器2 + + + + + 计数器位数: + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + CounterVarSet @@ -9,155 +166,352 @@ - + 整体设置 - + 变量类型 - - + + 计数器1 - - + + 计数器2 - + 数字个数: - + 1 - + 2 - + 3 - + 4 - + 5 - + 6 - + 7 - + 8 - + 字符间距 - - + + ← - - + + → - - + + 增量值: - + 额外设置 - + 如果预览与打印显示不正确,调整此设置可能恢复。 - + 自定义字符宽度 - - + + 当前值: - + 可变长度 - - + + 重复数: - + 小数点位数 - - + + 结束值: - - + + 起始值: - + ✓ - + ✕ + + DateFormatEditor + + + Form + + + + + 内容 + + + + + 有效期限 + + + + + 天数 + + + + + 月 - 精确到日 + + + + + 月 - 精确到月 + + + + + . + + + + + : + + + + + , + + + + + / + + + + + ; + + + + + _ + + + + + + - + + + + + 小时 + + + + + 分钟 + + + + + 秒钟 + + + + + 月 + + + + + 年2026 + + + + + 日 + + + + + 年中第几周 + + + + + 年26 + + + + + 周几 + + + + + 空格 + + + + + <------ + + + + + + + + + + + DateReplaceEditor + + + 名称 + + + + + 数据 + + + + + 周几 + + + + + 月 + + + + + 年 + + + + + 天数 + + + + + 小时 + + + + + Meridiem + + + + + 类型 + + + + + 代替 + + + + + 上 + + + + + 下 + + + + + 预设值 + + + DateVarSet @@ -166,276 +520,271 @@ - + ✓ - + ✕ - + 整体设置 - + 日期/时间 - + 内容 - + 有效期限 - - + + 天数 - + 月 - 精确到日 - + 月 - 精确到月 - + . - + : - + , - + / - + ; - + _ - - + + - - - + + 小时 - + 分钟 - + 秒钟 - - + + 月 - + 年2026 - + 日 - + 年中第几周 - + 年26 - - + + 周几 - + 空格 - + <------ - + + - - + + 代替 - + 名称 - + 数据 - + 年 - + Meridiem - + 类型 - + 上 - + 下 - + 预设值 - - - 高级选项 - - DevOp - - - - - + + + + + 警告 - + 字高超出范围 - + 字高太小或是高压包数据未初始化,您当前错误将忽略所有高压错误 - - + + 错误 - + 在同步计米的情况下无打印串或显示区域为零 - + 在同步计米的情况下喷印同步脉冲数过多,请检查你的配置 - + 喷印字符串太短,请增加字符串长度或在打印设置中减少喷印长度 - + 喷印长度太短,请减少字符串长度或在打印设置中增加喷印长度 - + readB6Req - + readB6com - + readB6suc - + Cmd[%1]: %2 - + 设置读写器密码成功! - + 设置读写器工作模式成功! @@ -659,41 +1008,57 @@ DialogMaintenanceTimeSetting - Dialog + 设置保养间隔 - + 保养周期 - + (月) - + 重置保养时间 - - 维护时间: + + 剩余维护时间: - + + 运行时间 + + + + + (小时) + + + + + 当前运行时间: + + + + + TextLabel - + 警告 - + 确定要设置今天为新的保养日期吗? @@ -835,6 +1200,127 @@ + + DlgBarcodeFormat + + + Dialog + + + + + 条形码高度 + + + + + 1点 + + + + + 2点 + + + + + 3点 + + + + + 4点 + + + + + + 5点 + + + + + 6点 + + + + + 增加数字行 + + + + + 黑墨 + + + + + 白墨 + + + + + 条码宽度 + + + + + 条形码类型 + + + + + 墨水类型 + + + + + 显示缩放 + + + + + ✓ + + + + + 7点 + + + + + 9点 + + + + + 12点 + + + + + 16点 + + + + + 24点 + + + + + + %1点 + + + + + + 点 + + + DlgInputAddr @@ -955,6 +1441,16 @@ 韩语 + + + 提示 + + + + + 是否重启? + + DlgMyWarring @@ -974,6 +1470,137 @@ + + DlgQrcodeFormat + + + Dialog + + + + + DataMatrix + + + + + QRCode + + + + + 正相打印 + + + + + 反相打印 + + + + + DM码尺寸: + + + + + 默认 + + + + + 8 x 18 + + + + + 8 x 32 + + + + + 12 x 26 + + + + + 12 x 36 + + + + + 16 x 36 + + + + + 16 x 48 + + + + + 低级 + + + + + 中级 + + + + + 高级 + + + + + 超高级 + + + + + 类型 + + + + + 墨水类型 + + + + + ✓ + + + + + DlgRFIDConfig + + + Dialog + + + + + 确定 + + + + + 自动激活超时 + + + + + 秒 + + + + + 卡片接触 %1 秒后自动激活。 + + + FileLogger @@ -990,83 +1617,83 @@ FileManageWidget - + Form - + 管理器 - + 导出到U盘 - + 从U盘导入 - + 全选 - + 取消全选 - + 删除已选 - + 过滤器 - + 文件 - + 图标 - + 字体 - + 全部 - + 硬盘 - + 设备 - + ✕ - + U盘 @@ -1195,12 +1822,12 @@ - + ✓ - + ✕ @@ -1227,225 +1854,219 @@ - - mtDate: %1 - - - - - mtInterval: %1 - - - - - mtEndDate: %1 - - - - - mtFlag: %1 - - - - - timeoutDay: %1 - - - - - + + 13.读卡器故障! - + %1/%2/%3 - + 测试时间结束,准备关机 - - 开始自检,请等待60秒............... - - - - + 开始自检,请等待%1秒... - - + + 自检完成!!! - - - + 警告 - + 确认要刷墨水卡吗? - - + + 不需要刷墨水卡! - - + + 请先添加墨水再刷墨水卡! - - + + + 刷墨水卡成功! - + 确认要刷溶剂卡吗? - - - - 不需要刷溶剂卡! - - + 不需要刷溶剂卡! + + + + + 提示 + + + + + 保养期还有%1小时到期,请及时保养,否则喷码机容易损坏 + + + + + 保养期已超过%1小时,请及时保养,否则喷码机容易损坏 + + + + + 开始自检,请等待60秒... + + + + + 确认要刷墨水卡吗? %1 秒后将自动确认 + + + + + 请先添加溶剂再刷溶剂卡! - - + + 确认要刷溶剂卡吗? %1 秒后将自动确认 + + + + + + 刷溶剂卡成功! - + 确认要刷保养卡吗? - - + + 确认要刷保养卡吗? %1 秒后将自动确认 + + + + + 刷保养卡成功! - - + + MAC无效卡! - + card data: %1 - + 无效卡,这张卡已经在%1时使用过 - + ink Warning at: %1 - + solvent Warning at: %1 - - + + 压力泄漏或压力传感器故障! + + + + + 电机故障 - - - 回收槽到头 - - - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 错误!粘度计故障:检测不到上位灯 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷卡倒计时起始时间文件不存在 - - - 请稍候 - - - - - - 刷溶剂卡倒计时: %1 秒 - - InputMethod @@ -1977,200 +2598,200 @@ - + 当前状态 - + 清空当前状态 - - - - + + + + ✕ - + 历史状态 - + 导出日志到U盘 - + 打开历史文件 - + 删除历史文件 - - + + TextLabel - + 版本信息 - + 机器状态 - + 粘度 - + 高压包 - + 隔膜位置 - + 压力 - + 墨线开关 - + 喷嘴逆清洗 - + 墨水缸满 - + 墨水液位 - + 溶剂液位 - + 回收故障 - + 粘度故障 - + 相位故障 - + 高压故障 - + 故障恢复 - + 请先打开历史状态文件! - + 齿轮泵转速 - - - - - + + + + + 警告 - - - + + + 无法打开文件 - - - - + + + + 提示 - + 是否确认将所有日志文件导出到U盘? - + U盘目录创建失败 - + U盘未插入或无法识别,请重新插拔设备! - + 成功导出到U盘 - + 选择历史记录文件 - + 是否确认将历史日志文件全部清除? - + 是否确认将当前日志全部清除? - + 清洗中,界面锁死 @@ -2183,23 +2804,23 @@ - + 网口通信 - + 时间设置 - + 服务 文件 - + 图形编辑器 @@ -2209,455 +2830,509 @@ - - 服务 - - - - + 系统设置 - + 系统管理 - + + + 额外设置 + + + + 其他设置 - + 设置保养间隔 - + 系统更新 - + + 系统授权 - + + RFID设置 + + + + ✕ - - mtDate1: %1 - - - - - mtInterval1: %1 - - - - - mtEndDate1: %1 - - - - - mtFlog1: %1 - - - - + 提示 - + RFID卡清零! + + + + 取消授权 + + + + + 警告 + + + + + 密码错误:%1 + + MainWidget - + background-color:#6A7289; - + 编辑当前文件 - + 调入文件喷印 - + 主指令单 - + 管理器 - + 信息 - + background-color:#BCBFC4; - + background-color:#CACCC9; - - + + background-color:#BBBBBD;border-radius:3px; - - + + 0 - + 达到数量后停止: - + 开始打印 - + color:#000000;font-size:18px; - + 速度 米/分 - + color:#3CB371;font-size:18px; - + 当前 - + color:#E72F28;font-size:18px; - + 最大 - + color:#3CB371;font-size:24px; - + 0007.9 - + color:#E72F28;font-size:24px; - + 0020.3 - + 停止打印 - + + 喷嘴开启 - + + 喷嘴关闭 - + 产品计数器 - + color:#000000;font-size:28px;font-weight:bold; - + border:0px; - - - - - - - + + + + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - + + + + 正在准备关机,请等待%1秒... + + + + + 准备关机... + + + + + 关机失败!!! + + + + 最多支持的列数目为:%1请减小信息长度. - - + + + + 变量数大于8个,某些变量将不起作用!!! - - + + 请减少信息中的变量(或计数器)数量. - + warning,界面上有变量未显示完全 - - - - + + + + 错误 - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - - + + 停止开启 + + + + + 喷嘴已开启 + + + + + 喷嘴开启中 + + + + + 喷嘴已关闭 + + + + + 喷嘴关闭中 + + + + + 正在排气... + + + + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - + 正常 - + 提示 - + 随机码文本将展出到U盘,请插入U盘 - - 正在打开回收槽... - - - - - 停止打开 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - 正在关闭回收槽... - - - - + 停止关闭 - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + + 高压故障,关回收槽和墨线 + + + + + 回收故障,关闭回收槽,关墨线 - + + 回收故障. + + + + 回收异常,墨线可能偏离.(%1) - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - + + + 相位故障,准备关机 - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - + + 相位故障,屏蔽充电 @@ -2984,329 +3659,343 @@ p, li { white-space: pre-wrap; } - 5行5点阵 + 32点阵对5点阵的优化 + 5行5点阵 - - 4行7点阵 - - - - - 信息上下颠倒 + + 电眼设置 - 信息左右颠倒 + 重复间隔(毫秒): - - PrintGo信号页1 + + 重复次数: - - 脉冲信号值: + + 封锁时间(毫秒): - - 无镜像打印 + + 脉冲数/毫米: - - 自动水平翻转 - - - - - 自动垂直翻转 - - - - - 中心对称旋转 - - - - - 镜象交替类型 - - - - - - - - 延时(毫秒): - - - - - 镜像交替间隔 - - - - - - - 触发延时(毫秒) - - - - - 脉冲输出使能 - - - - - 禁止电眼清零 - - - - - 允许电眼复位 - - - - - 允许电眼立即复位 - - - - - 电眼清零 - - - - - 字符宽度: - - - - - 产生脉冲所需计数: - - - - - 间隔模式: - - - - - 行末<->行首 + + 喷印间隔(毫米): + 同步喷印模式: + + + + + 信息上下颠倒 + + + + + 信息左右颠倒 + + + + + 32点阵对4点阵的优化 + + + + + 脉冲信号值: + + + + + 无镜像打印 + + + + + 自动水平翻转 + + + + + 自动垂直翻转 + + + + + 中心对称旋转 + + + + + + + + 延时(毫秒): + + + + + + 触发延时(毫秒) + + + + + 脉冲输出使能 + + + + + 禁止电眼清零 + + + + + 允许电眼复位 + + + + + 允许电眼立即复位 + + + + + 电眼清零 + + + + + 字符宽度: + + + + + 产生脉冲所需计数: + + + + + 间隔模式: + + + + + 行末<->行首 + + + + 行首<->行首 - - PrintGo信号页2 - - - - - - - + + + 重复间隔(毫秒) - - 重复次数 - - - - - + 封锁时间(毫秒) - + 同步器清零 - + 同步打印 - + 电眼信号来源 - - + + 内部 - - + + 外部 - + 光电边沿触发 - + 光电电平触发 - + GroupBox - + 延时触发 - + 编码器参数 - - 脉冲数/毫米 + + 触发延时(毫秒): + 脉冲数/毫米 - + 脉冲数修正 - - 喷印间隔(毫米) - - - - - 同步喷印模式 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 同步器触发 - + 同步器来源 - + + 其他设置 + + + + + 镜象交替类型: + + + + + 镜像交替间隔: + + + + ✕ - + ✓ - + 提示 - + 应用成功 - + 提示:参数不正确 - + 要求:触发长度小于喷印间隔 - - - - + + + + 延时(毫米): - - - + + + 触发延时(毫米) - - + + 重复间隔(毫米) - - - 封锁间隔(毫米) + + + 抑止距离(毫米) - - 封锁间隔(毫秒) + + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) @@ -3587,6 +4276,64 @@ p, li { white-space: pre-wrap; } + + RunTimeCtrl + + + mtDate: %1 + + + + + mtInterval: %1 + + + + + mtEndDate: %1 + + + + + mtFlag: %1 + + + + + timeoutDay: %1 + + + + + runTime: %1 + + + + + maintenanceHours: %1 + + + + + mtDate1: %1 + + + + + mtInterval1: %1 + + + + + mtEndDate1: %1 + + + + + mtFlog1: %1 + + + ScheduleShiftsEditor @@ -3595,123 +4342,123 @@ p, li { white-space: pre-wrap; } - + ✓ - + ✕ - + 整体设置 - - - + + + 班时编号 - - + + 班时时间 - - + + 新建行 - + 标号 - + 1 - + 00:00 - + A - + 2 - + 08:09 - + B - + 3 - + 12:00 - + C - + 可选用的班次时间: - + 23 - - + + ← - - + + → - + 添加 - + 移除 - + hh:mm @@ -3743,7 +4490,7 @@ p, li { white-space: pre-wrap; } SetNumDlg - Dialog + 设置计数器 @@ -3802,14 +4549,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -3840,7 +4587,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -3880,375 +4627,375 @@ 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软件吗? - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -4637,32 +5384,32 @@ p, li { white-space: pre-wrap; } - + 警告 - + 是否确认导出字库到U盘? - + 错误 - + U盘不可识别! - + 提示 - + 字库导出完成! @@ -4952,12 +5699,12 @@ p, li { white-space: pre-wrap; } - + 提示 - + 是否保存文件? @@ -5059,8 +5806,8 @@ p, li { white-space: pre-wrap; } - - + + 保存 @@ -5075,49 +5822,50 @@ p, li { white-space: pre-wrap; } - + 提示 - + 图片已经改变,是否保存? - + 放弃保存 - - - + + + + 放大倍数:%1 - + 图片另存为... - + 另存为 - + 打开文件 - + 图片保存为... - + 导入文件 diff --git a/farsi.ts b/farsi.ts index b308349..52a4d4b 100644 --- a/farsi.ts +++ b/farsi.ts @@ -1,6 +1,163 @@ + + BarcodeEditor + + + Form + + + + + ✓ + + + + + ✕ + + + + + 整体设置 + + + + + + 条形码 + + + + + 内容 + + + + + 类型 + + + + + 二维码 + + + + + 条形码格式 + + + + + 嵌入 + + + + + 日期 + + + + + 计数器 + + + + + 条形码编辑 + + + + + CounterEditor + + + 重复数: + + + + + 起始值: + + + + + 结束值: + + + + + 当前值: + + + + + 增量值: + + + + + 计数器ID: + + + + + 计数器1 + + + + + 计数器2 + + + + + 计数器位数: + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + CounterVarSet @@ -9,155 +166,352 @@ - + 整体设置 - + 变量类型 - - + + 计数器1 - - + + 计数器2 - + 数字个数: - + 1 - + 2 - + 3 - + 4 - + 5 - + 6 - + 7 - + 8 - + 字符间距 - - + + ← - - + + → - - + + 增量值: - + 额外设置 - + 如果预览与打印显示不正确,调整此设置可能恢复。 - + 自定义字符宽度 - - + + 当前值: - + 可变长度 - - + + 重复数: - + 小数点位数 - - + + 结束值: - - + + 起始值: - + ✓ - + ✕ + + DateFormatEditor + + + Form + + + + + 内容 + + + + + 有效期限 + + + + + 天数 + + + + + 月 - 精确到日 + + + + + 月 - 精确到月 + + + + + . + + + + + : + + + + + , + + + + + / + + + + + ; + + + + + _ + + + + + + - + + + + + 小时 + + + + + 分钟 + + + + + 秒钟 + + + + + 月 + + + + + 年2026 + + + + + 日 + + + + + 年中第几周 + + + + + 年26 + + + + + 周几 + + + + + 空格 + + + + + <------ + + + + + + + + + + + DateReplaceEditor + + + 名称 + + + + + 数据 + + + + + 周几 + + + + + 月 + + + + + 年 + + + + + 天数 + + + + + 小时 + + + + + Meridiem + + + + + 类型 + + + + + 代替 + + + + + 上 + + + + + 下 + + + + + 预设值 + + + DateVarSet @@ -166,276 +520,271 @@ - + ✓ - + ✕ - + 整体设置 - + 日期/时间 - + 内容 - + 有效期限 - - + + 天数 - + 月 - 精确到日 - + 月 - 精确到月 - + . - + : - + , - + / - + ; - + _ - - + + - - - + + 小时 - + 分钟 - + 秒钟 - - + + 月 - + 年2026 - + 日 - + 年中第几周 - + 年26 - - + + 周几 - + 空格 - + <------ - + + - - + + 代替 - + 名称 - + 数据 - + 年 - + Meridiem - + 类型 - + 上 - + 下 - + 预设值 - - - 高级选项 - - DevOp - - - - - + + + + + 警告 - + 字高超出范围 - + 字高太小或是高压包数据未初始化,您当前错误将忽略所有高压错误 - - + + 错误 - + 在同步计米的情况下无打印串或显示区域为零 - + 在同步计米的情况下喷印同步脉冲数过多,请检查你的配置 - + 喷印字符串太短,请增加字符串长度或在打印设置中减少喷印长度 - + 喷印长度太短,请减少字符串长度或在打印设置中增加喷印长度 - + readB6Req - + readB6com - + readB6suc - + Cmd[%1]: %2 - + 设置读写器密码成功! - + 设置读写器工作模式成功! @@ -659,41 +1008,57 @@ DialogMaintenanceTimeSetting - Dialog + 设置保养间隔 - + 保养周期 - + (月) - + 重置保养时间 - - 维护时间: + + 剩余维护时间: - + + 运行时间 + + + + + (小时) + + + + + 当前运行时间: + + + + + TextLabel - + 警告 - + 确定要设置今天为新的保养日期吗? @@ -835,6 +1200,127 @@ + + DlgBarcodeFormat + + + Dialog + + + + + 条形码高度 + + + + + 1点 + + + + + 2点 + + + + + 3点 + + + + + 4点 + + + + + + 5点 + + + + + 6点 + + + + + 增加数字行 + + + + + 黑墨 + + + + + 白墨 + + + + + 条码宽度 + + + + + 条形码类型 + + + + + 墨水类型 + + + + + 显示缩放 + + + + + ✓ + + + + + 7点 + + + + + 9点 + + + + + 12点 + + + + + 16点 + + + + + 24点 + + + + + + %1点 + + + + + + 点 + + + DlgInputAddr @@ -955,6 +1441,16 @@ 韩语 + + + 提示 + + + + + 是否重启? + + DlgMyWarring @@ -974,6 +1470,137 @@ + + DlgQrcodeFormat + + + Dialog + + + + + DataMatrix + + + + + QRCode + + + + + 正相打印 + + + + + 反相打印 + + + + + DM码尺寸: + + + + + 默认 + + + + + 8 x 18 + + + + + 8 x 32 + + + + + 12 x 26 + + + + + 12 x 36 + + + + + 16 x 36 + + + + + 16 x 48 + + + + + 低级 + + + + + 中级 + + + + + 高级 + + + + + 超高级 + + + + + 类型 + + + + + 墨水类型 + + + + + ✓ + + + + + DlgRFIDConfig + + + Dialog + + + + + 确定 + + + + + 自动激活超时 + + + + + 秒 + + + + + 卡片接触 %1 秒后自动激活。 + + + FileLogger @@ -990,83 +1617,83 @@ FileManageWidget - + Form - + 管理器 - + 导出到U盘 - + 从U盘导入 - + 全选 - + 取消全选 - + 删除已选 - + 过滤器 - + 文件 - + 图标 - + 字体 - + 全部 - + 硬盘 - + 设备 - + ✕ - + U盘 @@ -1195,12 +1822,12 @@ - + ✓ - + ✕ @@ -1227,225 +1854,219 @@ - - mtDate: %1 - - - - - mtInterval: %1 - - - - - mtEndDate: %1 - - - - - mtFlag: %1 - - - - - timeoutDay: %1 - - - - - + + 13.读卡器故障! - + %1/%2/%3 - + 测试时间结束,准备关机 - - 开始自检,请等待60秒............... - - - - + 开始自检,请等待%1秒... - - + + 自检完成!!! - - - + 警告 - + 确认要刷墨水卡吗? - - + + 不需要刷墨水卡! - - + + 请先添加墨水再刷墨水卡! - - + + + 刷墨水卡成功! - + 确认要刷溶剂卡吗? - - - - 不需要刷溶剂卡! - - + 不需要刷溶剂卡! + + + + + 提示 + + + + + 保养期还有%1小时到期,请及时保养,否则喷码机容易损坏 + + + + + 保养期已超过%1小时,请及时保养,否则喷码机容易损坏 + + + + + 开始自检,请等待60秒... + + + + + 确认要刷墨水卡吗? %1 秒后将自动确认 + + + + + 请先添加溶剂再刷溶剂卡! - - + + 确认要刷溶剂卡吗? %1 秒后将自动确认 + + + + + + 刷溶剂卡成功! - + 确认要刷保养卡吗? - - + + 确认要刷保养卡吗? %1 秒后将自动确认 + + + + + 刷保养卡成功! - - + + MAC无效卡! - + card data: %1 - + 无效卡,这张卡已经在%1时使用过 - + ink Warning at: %1 - + solvent Warning at: %1 - - + + 压力泄漏或压力传感器故障! + + + + + 电机故障 - - - 回收槽到头 - - - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 错误!粘度计故障:检测不到上位灯 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷卡倒计时起始时间文件不存在 - - - 请稍候 - - - - - - 刷溶剂卡倒计时: %1 秒 - - InputMethod @@ -1977,200 +2598,200 @@ - + 当前状态 - + 清空当前状态 - - - - + + + + ✕ - + 历史状态 - + 导出日志到U盘 - + 打开历史文件 - + 删除历史文件 - - + + TextLabel - + 版本信息 - + 机器状态 - + 粘度 - + 高压包 - + 隔膜位置 - + 压力 - + 墨线开关 - + 喷嘴逆清洗 - + 墨水缸满 - + 墨水液位 - + 溶剂液位 - + 回收故障 - + 粘度故障 - + 相位故障 - + 高压故障 - + 故障恢复 - + 请先打开历史状态文件! - + 齿轮泵转速 - - - - - + + + + + 警告 - - - + + + 无法打开文件 - - - - + + + + 提示 - + 是否确认将所有日志文件导出到U盘? - + U盘目录创建失败 - + U盘未插入或无法识别,请重新插拔设备! - + 成功导出到U盘 - + 选择历史记录文件 - + 是否确认将历史日志文件全部清除? - + 是否确认将当前日志全部清除? - + 清洗中,界面锁死 @@ -2183,23 +2804,23 @@ - + 网口通信 - + 时间设置 - + 服务 文件 - + 图形编辑器 @@ -2209,455 +2830,509 @@ - - 服务 - - - - + 系统设置 - + 系统管理 - + + + 额外设置 + + + + 其他设置 - + 设置保养间隔 - + 系统更新 - + + 系统授权 - + + RFID设置 + + + + ✕ - - mtDate1: %1 - - - - - mtInterval1: %1 - - - - - mtEndDate1: %1 - - - - - mtFlog1: %1 - - - - + 提示 - + RFID卡清零! + + + + 取消授权 + + + + + 警告 + + + + + 密码错误:%1 + + MainWidget - + background-color:#6A7289; - + 编辑当前文件 - + 调入文件喷印 - + 主指令单 - + 管理器 - + 信息 - + background-color:#BCBFC4; - + background-color:#CACCC9; - - + + background-color:#BBBBBD;border-radius:3px; - - + + 0 - + 达到数量后停止: - + 开始打印 - + color:#000000;font-size:18px; - + 速度 米/分 - + color:#3CB371;font-size:18px; - + 当前 - + color:#E72F28;font-size:18px; - + 最大 - + color:#3CB371;font-size:24px; - + 0007.9 - + color:#E72F28;font-size:24px; - + 0020.3 - + 停止打印 - + + 喷嘴开启 - + + 喷嘴关闭 - + 产品计数器 - + color:#000000;font-size:28px;font-weight:bold; - + border:0px; - - - - - - - + + + + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - + + + + 正在准备关机,请等待%1秒... + + + + + 准备关机... + + + + + 关机失败!!! + + + + 最多支持的列数目为:%1请减小信息长度. - - + + + + 变量数大于8个,某些变量将不起作用!!! - - + + 请减少信息中的变量(或计数器)数量. - + warning,界面上有变量未显示完全 - - - - + + + + 错误 - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - - + + 停止开启 + + + + + 喷嘴已开启 + + + + + 喷嘴开启中 + + + + + 喷嘴已关闭 + + + + + 喷嘴关闭中 + + + + + 正在排气... + + + + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - + 正常 - + 提示 - + 随机码文本将展出到U盘,请插入U盘 - - 正在打开回收槽... - - - - - 停止打开 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - 正在关闭回收槽... - - - - + 停止关闭 - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + + 高压故障,关回收槽和墨线 + + + + + 回收故障,关闭回收槽,关墨线 - + + 回收故障. + + + + 回收异常,墨线可能偏离.(%1) - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - + + + 相位故障,准备关机 - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - + + 相位故障,屏蔽充电 @@ -2984,329 +3659,343 @@ p, li { white-space: pre-wrap; } - 5行5点阵 + 32点阵对5点阵的优化 + 5行5点阵 - - 4行7点阵 - - - - - 信息上下颠倒 + + 电眼设置 - 信息左右颠倒 + 重复间隔(毫秒): - - PrintGo信号页1 + + 重复次数: - - 脉冲信号值: + + 封锁时间(毫秒): - - 无镜像打印 + + 脉冲数/毫米: - - 自动水平翻转 - - - - - 自动垂直翻转 - - - - - 中心对称旋转 - - - - - 镜象交替类型 - - - - - - - - 延时(毫秒): - - - - - 镜像交替间隔 - - - - - - - 触发延时(毫秒) - - - - - 脉冲输出使能 - - - - - 禁止电眼清零 - - - - - 允许电眼复位 - - - - - 允许电眼立即复位 - - - - - 电眼清零 - - - - - 字符宽度: - - - - - 产生脉冲所需计数: - - - - - 间隔模式: - - - - - 行末<->行首 + + 喷印间隔(毫米): + 同步喷印模式: + + + + + 信息上下颠倒 + + + + + 信息左右颠倒 + + + + + 32点阵对4点阵的优化 + + + + + 脉冲信号值: + + + + + 无镜像打印 + + + + + 自动水平翻转 + + + + + 自动垂直翻转 + + + + + 中心对称旋转 + + + + + + + + 延时(毫秒): + + + + + + 触发延时(毫秒) + + + + + 脉冲输出使能 + + + + + 禁止电眼清零 + + + + + 允许电眼复位 + + + + + 允许电眼立即复位 + + + + + 电眼清零 + + + + + 字符宽度: + + + + + 产生脉冲所需计数: + + + + + 间隔模式: + + + + + 行末<->行首 + + + + 行首<->行首 - - PrintGo信号页2 - - - - - - - + + + 重复间隔(毫秒) - - 重复次数 - - - - - + 封锁时间(毫秒) - + 同步器清零 - + 同步打印 - + 电眼信号来源 - - + + 内部 - - + + 外部 - + 光电边沿触发 - + 光电电平触发 - + GroupBox - + 延时触发 - + 编码器参数 - - 脉冲数/毫米 + + 触发延时(毫秒): + 脉冲数/毫米 - + 脉冲数修正 - - 喷印间隔(毫米) - - - - - 同步喷印模式 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 同步器触发 - + 同步器来源 - + + 其他设置 + + + + + 镜象交替类型: + + + + + 镜像交替间隔: + + + + ✕ - + ✓ - + 提示 - + 应用成功 - + 提示:参数不正确 - + 要求:触发长度小于喷印间隔 - - - - + + + + 延时(毫米): - - - + + + 触发延时(毫米) - - + + 重复间隔(毫米) - - - 封锁间隔(毫米) + + + 抑止距离(毫米) - - 封锁间隔(毫秒) + + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) @@ -3587,6 +4276,64 @@ p, li { white-space: pre-wrap; } + + RunTimeCtrl + + + mtDate: %1 + + + + + mtInterval: %1 + + + + + mtEndDate: %1 + + + + + mtFlag: %1 + + + + + timeoutDay: %1 + + + + + runTime: %1 + + + + + maintenanceHours: %1 + + + + + mtDate1: %1 + + + + + mtInterval1: %1 + + + + + mtEndDate1: %1 + + + + + mtFlog1: %1 + + + ScheduleShiftsEditor @@ -3595,123 +4342,123 @@ p, li { white-space: pre-wrap; } - + ✓ - + ✕ - + 整体设置 - - - + + + 班时编号 - - + + 班时时间 - - + + 新建行 - + 标号 - + 1 - + 00:00 - + A - + 2 - + 08:09 - + B - + 3 - + 12:00 - + C - + 可选用的班次时间: - + 23 - - + + ← - - + + → - + 添加 - + 移除 - + hh:mm @@ -3743,7 +4490,7 @@ p, li { white-space: pre-wrap; } SetNumDlg - Dialog + 设置计数器 @@ -3802,14 +4549,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -3840,7 +4587,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -3880,375 +4627,375 @@ 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软件吗? - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -4637,32 +5384,32 @@ p, li { white-space: pre-wrap; } - + 警告 - + 是否确认导出字库到U盘? - + 错误 - + U盘不可识别! - + 提示 - + 字库导出完成! @@ -4952,12 +5699,12 @@ p, li { white-space: pre-wrap; } - + 提示 - + 是否保存文件? @@ -5059,8 +5806,8 @@ p, li { white-space: pre-wrap; } - - + + 保存 @@ -5075,49 +5822,50 @@ p, li { white-space: pre-wrap; } - + 提示 - + 图片已经改变,是否保存? - + 放弃保存 - - - + + + + 放大倍数:%1 - + 图片另存为... - + 另存为 - + 打开文件 - + 图片保存为... - + 导入文件 diff --git a/fileManage/FileManageWidget.cpp b/fileManage/FileManageWidget.cpp index ccc549b..a066db3 100644 --- a/fileManage/FileManageWidget.cpp +++ b/fileManage/FileManageWidget.cpp @@ -207,43 +207,43 @@ void FileManageWidget::copyFiles(QListWidget *from, QListWidget *to) void FileManageWidget::applyStyleSheet() { - QString styleSheet = R"( - - QPushButton#closeBtn { + QString styleSheet = + R"( + QPushButton#closeBtn { background-color: #E6F7FF; border: 1px solid #87CEEB; border-radius: 4px; font-size: 24px; color: #228B22; - } - QPushButton#closeBtn:hover{ + } + QPushButton#closeBtn:hover{ background-color: #D1E9FF; - } + } - QPushButton#closeBtn:pressed{ + QPushButton#closeBtn:pressed{ background-color: #BAE7FF; - } + } - QPushButton { + QPushButton { background-color: #5396C1; color: #ffffff; border: 1px solid #000000; border-radius: 3px; font-size: 18px; - width: 100px; + width: 150px; height: 50px; - } + } - QPushButton:hover { + QPushButton:hover { background-color: #5396C1; - } + } - QPushButton:disabled { + QPushButton:disabled { background-color: #7C828E; color: #606060; border-color: #808080; - } - )"; + } + )"; this->setStyleSheet(styleSheet); } diff --git a/fileManage/FileManageWidget.ui b/fileManage/FileManageWidget.ui index c2ea925..990fa32 100644 --- a/fileManage/FileManageWidget.ui +++ b/fileManage/FileManageWidget.ui @@ -85,8 +85,24 @@ - 50 + 0 + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + diff --git a/image.qrc b/image.qrc index ebfb69c..264c929 100644 --- a/image.qrc +++ b/image.qrc @@ -1014,7 +1014,6 @@ image/start.png image/stop.png image/text.png - image/tool.png image/uk_flag.png image/ALARMYellow.PNG image/ALARMRed.PNG @@ -1036,6 +1035,7 @@ image/set3.png image/down_white.png image/up_white.png - styles.qss + image/RePipeClose.png + image/RePipeOpen.png diff --git a/image/RePipeClose.png b/image/RePipeClose.png new file mode 100644 index 0000000..bd02ad0 Binary files /dev/null and b/image/RePipeClose.png differ diff --git a/image/RePipeOpen.png b/image/RePipeOpen.png new file mode 100644 index 0000000..2969619 Binary files /dev/null and b/image/RePipeOpen.png differ diff --git a/korean.ts b/korean.ts index e116eba..42f0086 100644 --- a/korean.ts +++ b/korean.ts @@ -1,6 +1,163 @@ - + + + BarcodeEditor + + + Form + 양식 + + + + ✓ + ✓ + + + + ✕ + ✕ + + + + 整体设置 + 전체 설정 + + + + + 条形码 + 바코드 + + + + 内容 + 내용 + + + + 类型 + 유형 + + + + 二维码 + QR 코드 + + + + 条形码格式 + 바코드 형식 + + + + 嵌入 + 포함 + + + + 日期 + 날짜 + + + + 计数器 + 카운터 + + + + 条形码编辑 + 바코드 편집 + + + + CounterEditor + + + 重复数: + 반복 횟수: + + + + 起始值: + 시작 값: + + + + 结束值: + 종료 값: + + + + 当前值: + 현재 값: + + + + 增量值: + 증가 수치: + + + + 计数器ID: + 카운터 ID: + + + + 计数器1 + 카운터1 + + + + 计数器2 + 카운터2 + + + + 计数器位数: + 카운터 자릿수: + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + 8 + + CounterVarSet @@ -9,131 +166,131 @@ 양식 - + 整体设置 - 전역 설정 + 전체 설정 - + 变量类型 변수 유형 - - + + 计数器1 카운터1 - - + + 计数器2 카운터2 - + 数字个数: 小数点位数: 소수점 자릿수: - + 1 1 - + 2 2 - + 3 3 - + 4 4 - + 5 5 - + 6 6 - + 7 7 - + 8 8 - + 字符间距 - 문자 간격 + 문자 간격 - - + + ← - + - - + + → - + - - + + 增量值: - 증분 값: + 증가 수치: - + 额外设置 - + 추가 설정 - + 如果预览与打印显示不正确,调整此设置可能恢复。 - + 미리보기와 인쇄 결과가 일치하지 않을 경우, 이 설정을 조정하면 문제가 해결될 수 있습니다.. - + 自定义字符宽度 - + 사용자 정의 문자 폭 - - + + 当前值: 현재 값: - + 可变长度 가변 길이 - - + + 重复数: 重复次数: 반복 횟수: - + 小数点位数 소수점 자리수 @@ -143,14 +300,14 @@ 현재 카운터 재설정 - - + + 结束值: 종료 값: - - + + 起始值: 开始值: 시작 값: @@ -185,12 +342,12 @@ 유형 - + ✓ ✓ - + ✕ ✕ @@ -203,7 +360,7 @@ 点距电压系数调整,该参数仅代表电压比例关系,不是电压实际值。 - 전압 비례 지수 조정 (실제 전압 값이 아닙니다) + 도트 간격 전압 계수: 전압 비율만 표시, 실제 전압 아님. 默认值 @@ -227,7 +384,7 @@ 是否将点距微调参数设置为默认值? - 피치 매개변수를 기본값으로 설정하시겠습니까? + 도트 간격 미세 조정 파라미터를 기본값으로 설정하시겠습니까? 提示 @@ -238,6 +395,203 @@ %1 + + DateFormatEditor + + + Form + 양식 + + + + 内容 + 내용 + + + + 有效期限 + 유효 기간 + + + + 天数 + 일수 + + + + 月 - 精确到日 + 월 - 일 단위 + + + + 月 - 精确到月 + 월 - 월 단위 + + + + . + . + + + + : + + + + + , + + + + + / + + + + + ; + + + + + _ + + + + + + - + - + + + + 小时 + 시간 + + + + 分钟 + 분 + + + + 秒钟 + 초 + + + + 月 + 월 + + + + 年2026 + 년 2026 + + + + 日 + 일 + + + + 年中第几周 + 주단위 표시 + + + + 年26 + 년 26 + + + + 周几 + 주 + + + + 空格 + 공백 + + + + <------ + + + + + + + + + + + + DateReplaceEditor + + + 名称 + 이름 + + + + 数据 + 데이터 + + + + 周几 + 주 + + + + 月 + 월 + + + + 年 + 년 + + + + 天数 + 일수 + + + + 小时 + 시간 + + + + Meridiem + Meridiem + + + + 类型 + 유형 + + + + 代替 + 대체 + + + + 上 + UP + + + + 下 + Down + + + + 预设值 + 기본값 + + DateVarSet @@ -246,17 +600,17 @@ 양식 - + ✓ ✓ - + ✕ ✕ - + 整体设置 전체 설정 @@ -265,18 +619,18 @@ 변수 유형 - + 年 년 - - + + 月 월 - + 日 일 @@ -373,121 +727,121 @@ 15 - + 日期/时间 날짜/시간 - + 内容 내용 - + 有效期限 유효 기간 - - + + 天数 일수 - + 月 - 精确到日 월 - 일 단위 - + 月 - 精确到月 월 - 월 단위 - + . . - + : - + , - + / - + ; - + _ - - + + - - - - + + 小时 시간 - + 分钟 분 - + 秒钟 초 - + 年2026 - 2026년 + 년 2026 - + 年中第几周 - 년중 몇 주 + 주단위 표시 - + 年26 - 년26 + 년 26 - - + + 周几 - 주 몇 일 + 주 - + 空格 공백 - + <------ - + + + @@ -560,86 +914,85 @@ 대체 사용 - - + + 代替 대체 - + 名称 이름 - + 数据 데이터 - + Meridiem Meridiem - + 类型 유형 - + 上 UP - + 下 Down - + 预设值 기본값 - 高级选项 - 고급 옵션 + 고급 옵션 DevOp - + 字高超出范围 글자 높이가 범위를 초과했습니다 喷印间隔太短,无法满足同步打印宽度设置,字宽将自动缩短! - 인쇄 간격 과도, 글자 너비 자동 축소! + 인쇄 간격이 짧아 동기 인쇄 폭 설정을 충족할 수 없습니다. 문자 폭이 자동으로 축소됩니다! - - + + 错误 오류 - + 在同步计米的情况下无打印串或显示区域为零 - 동기 계측 시 인쇄 문자열 또는 표시 영역이 없음 + 동기 길이 측정 상태에서 인쇄 문자열이 없으면 표시 영역이 0이 됩니다. - + 在同步计米的情况下喷印同步脉冲数过多,请检查你的配置 - 동기 계측 시 펄스 수가 과도합니다. 설정을 확인하세요 + 동기 길이 측정 모드에서 인쇄 동기 펄스 수가 너무 많습니다. 구성을 확인하십시오. - + 喷印字符串太短,请增加字符串长度或在打印设置中减少喷印长度 문자열 너무 짧음, 길이 증가 또는 인쇄 설정 조정 필요 - + 喷印长度太短,请减少字符串长度或在打印设置中增加喷印长度 인쇄 길이 부족, 문자열 길이 축소 또는 인쇄 설정에서 길이 증가 필요 @@ -648,17 +1001,17 @@ No73 DAC 데이터 전송 - + readB6Req readB6Req - + readB6com readB6com - + readB6suc readB6suc @@ -667,7 +1020,7 @@ Cmd[4] = %1 - + Cmd[%1]: %2 Cmd[%1]: %2 @@ -680,21 +1033,21 @@ 카드가 리더기에서 너무 멀어 데이터 인식 실패. 카드를 가까이 유지하세요. - + 设置读写器密码成功! 리더기 비밀번호 설정 성공! - + 设置读写器工作模式成功! 리더기 작동 모드 설정 성공! - - - - - + + + + + 警告 경고 @@ -716,9 +1069,9 @@ Warnning - + 字高太小或是高压包数据未初始化,您当前错误将忽略所有高压错误 - 글자 높이가 너무 작거나 고전압 데이터 미초기화. 현재 오류는 모든 고전압 오류를 무시합니다. + 글자 높이가 작거나 고전압 데이터 미초기화. 현재 오류는 모든 고전압 오류를 무시합니다. @@ -809,7 +1162,7 @@ 本地文件 - 로컬 파일 + 내부 파일 @@ -914,7 +1267,7 @@ U盘doc目录创建失败 - USB doc 폴더 생성 실패 + USB doc 디렉터리 생성 실패 @@ -924,7 +1277,7 @@ U盘未插入或U盘根目录下的doc文件夹不存在! - USB가 연결되지 않았거나 루트 폴더에 'doc' 폴더 없음! + USB 삽입되지 않았거나 USB 메모리 루트에 doc 디렉터리가 존재하지 않습니다!! @@ -938,18 +1291,18 @@ 9点(中/英) 9点(英) - 9 도트(중/영) + 9 도트 24点(中/英) - 24 도트(중/영) + 24 도트 7点(英) 7点(左横) - 7 도트(영) + 7 도트 7点(右横) @@ -962,7 +1315,7 @@ 7点(孟加拉) - 7 도트(벵골어) + 7 도트 @@ -983,7 +1336,7 @@ 12点(新罗马) - 12 도트(새 로마) + 12 도트 @@ -1013,17 +1366,17 @@ 16点(中/英) - 16 도트(중/영) + 16 도트 5点(英) - 5 도트(영) + 5 도트 12点(中/英) - 12 도트(중/영) + 12 도트 @@ -1032,11 +1385,11 @@ 7 Matrix(Arabic) - 7 매트릭스(아랍어) + 7 매트릭스 9 Matrix(Arabic) - 9 매트릭스(아랍어) + 9 매트릭스 @@ -1267,42 +1620,66 @@ DialogMaintenanceTimeSetting - Dialog - 대화 상자 + 대화 상자 - + + 设置保养间隔 + 유지보수 간격 설정 + + + 保养周期 유지보수 주기 - + (月) (월) - + 重置保养时间 유지보수 시간 재설정 - - 维护时间: - 유지보수 시간: + + 剩余维护时间: + 남은 유지보수 시간: - + + 运行时间 + 실행 시간 + + + + (小时) + (시간) + + + + 当前运行时间: + 현재 실행 시간: + + + 维护时间: + 유지보수 시간: + + + + TextLabel 텍스트 라벨 - + 警告 경고 - + 确定要设置今天为新的保养日期吗? 오늘을 새 유지보수 날짜로 설정하시겠습니까? @@ -1380,7 +1757,7 @@ 本地文件 - 로컬 파일 + 내부 파일 @@ -1426,7 +1803,7 @@ U盘未插入或U盘根目录下的doc文件夹不存在! - USB가 연결되지 않았거나 루트 폴더에 'doc' 폴더 없음! + USB 메모리가 삽입되지 않았거나 USB 메모리 루트에 doc 폴더가 존재하지 않습니다! @@ -1587,7 +1964,7 @@ 米标显示: - 미터 스케일 표시: + 미터 표시: 目前循环范围: @@ -1694,12 +2071,12 @@ 清零 - 카운터 초기화 + 카운터 초기화 Enter - + @@ -1726,6 +2103,127 @@ SelectAll + + DlgBarcodeFormat + + + Dialog + 대화 상자 + + + + 条形码高度 + 바코드 높이 + + + + 1点 + 1도트 + + + + 2点 + 2도트 + + + + 3点 + 3도트 + + + + 4点 + 4도트 + + + + + 5点 + 5도트 + + + + 6点 + 6도트 + + + + 增加数字行 + 숫자 행 추가 + + + + 黑墨 + 검정 잉크 + + + + 白墨 + 흰색 잉크 + + + + 条码宽度 + 바코드 너비 + + + + 条形码类型 + 바코드 유형 + + + + 墨水类型 + 잉크 유형 + + + + 显示缩放 + 표시 축소 + + + + ✓ + ✓ + + + + 7点 + 7매트릭스 + + + + 9点 + 9도트 + + + + 12点 + 12도트 + + + + 16点 + 16도트 + + + + 24点 + 24도트 + + + + + %1点 + %1点 + + + + + 点 + 픽셀 + + DlgInputAddr @@ -1790,7 +2288,7 @@ 机器很长时间没有进行保养了!请联系厂家进行保养! - 장기간 유지보수되지 않았습니다! 대리점에 문의하여 플러싱을 진행하세요. + 장비가 오랫동안 유지보수되지 않았습니다! 대리점에 연락하여 유지보수를 받으십시오. 请使用原厂家提供的墨水! @@ -1824,20 +2322,20 @@ 小时,喷码机将停止工作.请与供应商联系! - 시간 후 마킹 중지. 공급업체에 문의하세요. + 시간 후 잉크젯 프린터가 작동을 멈춥니다. 공급업체에 연락하십시오!. Mac:%1维护时间已到,喷码机停止工作!请与供应商联系 维护时间已到,喷码机停止工作!请与供应商联系 - Mac:%1 유지보수 시간 만료, 잉크젯 중지! 공급업체에 문의 - - - 喷码机维护时间已到,请148小时内与厂家联系! - 유지보수 시간 만료, 48시간 내 제조사에 문의하세요! + Mac:%1 유지보수 시간 초과, 인쇄 중지! 공급업체에 연락하십시오 喷码机维护时间已到,请48小时内与厂家联系! - 유지보수 시간 만료, 48시간 내 제조사에 문의하세요! + 유지보수 시간이 도래했습니다. 48시간 이내에 공급업체에 연락하십시오! + + + 喷码机维护时间已到,请48小时内与厂家联系! + 유지보수 시간이 도래했습니다. 48시간 이내에 공급업체에 연락하십시오! 当前日期: @@ -1849,7 +2347,7 @@ 维护时间已到,喷码机停止工作! - 유지보수 시간 도래로 잉크젯 프린터 작동 중지! + 유지보수 시간이 되어 잉크젯 프린터가 작동을 멈췄습니다 @@ -1908,6 +2406,16 @@ 警告 경고 + + + 提示 + 팁 + + + + 是否重启? + 재시작할 것인가요? + DlgMyWarring @@ -1927,6 +2435,137 @@ 텍스트 라벨 + + DlgQrcodeFormat + + + Dialog + 대화 상자 + + + + DataMatrix + DataMatrix + + + + QRCode + QR 코드 + + + + 正相打印 + 정상 인쇄 + + + + 反相打印 + 역상 인쇄 + + + + DM码尺寸: + DM 코드 크기: + + + + 默认 + 기본값 + + + + 8 x 18 + 8 x 18 + + + + 8 x 32 + 8 x 32 + + + + 12 x 26 + 12 x 26 + + + + 12 x 36 + 12 x 36 + + + + 16 x 36 + 16 x 36 + + + + 16 x 48 + 16 x 48 + + + + 低级 + 저급 + + + + 中级 + 중급 + + + + 高级 + 고급 + + + + 超高级 + 초고급 + + + + 类型 + 유형 + + + + 墨水类型 + 잉크 유형 + + + + ✓ + ✓ + + + + DlgRFIDConfig + + + Dialog + 대화 상자 + + + + 确定 + 확인 + + + + 自动激活超时 + 자동 활성화 시간 초과 + + + + 秒 + 초 + + + + 卡片接触 %1 秒后自动激活。 + 카드가 %1초 후 자동으로 활성화됩니다. + + DlgSelectInputLanguage @@ -2004,83 +2643,83 @@ FileManageWidget - + Form 양식 - + 管理器 관리자 - + 导出到U盘 - USB로 내보내기 + USB로 복사 - + 从U盘导入 - USB에서 가져오기 + 메모리로 복사 - + 全选 전체 선택 - + 取消全选 - 전체 선택 취소 + 모두 해제 - + 删除已选 선택 삭제 - + 过滤器 필터 - + 文件 파일 - + 图标 아이콘 - + 字体 폰트 - + 全部 전체 - + 硬盘 - 하드 디스크 + 내부 메모리 - + 设备 장치 - + ✕ ✕ - + U盘 USB @@ -2162,37 +2801,37 @@ 5点(英) - 5 도트(영) + 5 도트 7点(英) - 7 도트(영) + 7 도트 9点(英) - 5 도트(영) {9点?} + 9 도트 12点(英) - 5 도트(영) {12点?} + 12 도트 16点(英) - 5 도트(영) {16点?} + 16 도트 24点(英) - 5 도트(영) {24点?} + 24 도트 32点(英) - 5 도트(영) {32点?} + 32 도트 @@ -2319,7 +2958,7 @@ 系统 - 시스템 + 내부 메모리 @@ -2327,12 +2966,12 @@ USB - + ✓ ✓ - + ✕ ✕ @@ -2350,7 +2989,7 @@ 图案编辑 - 패턴 편집 + 그래픽 편집 打印设置 @@ -2454,11 +3093,11 @@ 定时开机循环完成,准备关机 - 예약 부팅 완료, 종료 준비 + 타이머 가동 사이클 완료, 시스템 종료 준비 중 准备关机 - 종료 준비 + 시스템 종료 준비 중 与FPGA失去通信!!! @@ -2469,19 +3108,18 @@ FPGA 통신 복구 - - 开始自检,请等待60秒............... - 자가 진단 시작 (60초 대기) + 开始自检,请等待60秒... + 자체 진단 시작 60초 대기 - 开始自检,请等待%1秒............... - 자가 진단 시작 (%1초 대기) + 开始自检,请等待%1秒... + 자체 진단 시작 %1초 대기 - - + + 自检完成!!! - 자가 진단 완료!!! + 자체 진단 완료!!! 缺少墨水,喷码机不能正常工作! @@ -2509,7 +3147,7 @@ 墨水或溶剂空,准备关机 - 잉크/용제 부족, 종료 준비 + 잉크/솔벤트 부족, 종료 준비 压力波动超过设定的5个值. @@ -2529,7 +3167,7 @@ 添加溶剂: - 용제 추가: + 솔벤트 추가: 混合阀打开2: @@ -2544,8 +3182,9 @@ 혼합 밸브 열기2 + 提示 - 팁 + 팁 是否接收新的信息! @@ -2553,11 +3192,11 @@ 请立即检查过滤器是否堵塞或者漏气! - 필터 막힘/누출 즉시 확인! + 필터가 막혔거나 누출되는지 확인하십시오! 请清理过滤器或者检查是否泄露! - 필터 청소 또는 누출 확인! + 필터를 청소하거나 누출 여부를 확인하십시오! 错误!粘度计下位灯故障. @@ -2569,35 +3208,31 @@ 粘度检测异常,粘度值太大!!! - 점도 이상 (값 과대) + 점도 측정 이상, 점도 값이 너무 높습니다. 错误!!!!!!!!!!!粘度偏大故障 - 오류! 점도 과대 + 오류! 점도값 높음 - mtDate: %1 - mtDate: %1 + mtDate: %1 - mtInterval: %1 - mtInterval: %1 + mtInterval: %1 - mtEndDate: %1 - mtEndDate: %1 + mtEndDate: %1 mtFlog: %1 mtFlog: %1 - timeoutDay: %1 - timeoutDay: %1 + timeoutDay: %1 定时开机 @@ -2608,282 +3243,290 @@ 리더기 에러! - - + + 13.读卡器故障! 카드 리더기 고장! + 压力泄漏或压力传感器故障! - 압력 누출/센서 에러! + 압력 누출 또는 압력 센서 고장 运行中压力泄漏,停齿轮泵! - 작동 중 압력 누출, 기어 펌프 정지! + 작동 중 압력 누출이 발생하여 기어 펌프를 정지합니다! - + 测试时间结束,准备关机 - 테스트 시간 종료, 종료 준비 + 테스트 시간이 종료되어 시스템 종료를 준비합니다. - - - 不需要刷溶剂卡! - 용제 카드 스와이핑 필요 없음! - - - - - 刷溶剂卡成功! - 确认要刷卡吗? - The solvent card was swiped successfully - - - - - 不需要刷墨水卡! - There is no need to swipe an ink card - - - - mtFlag: %1 - mtFlag: %1 - - - - 开始自检,请等待%1秒... - - - - - 确认要刷墨水卡吗? - 잉크 카드 스와이핑 확인 - - - - - 请先添加墨水再刷墨水卡! - 잉크를 먼저 추가하고 잉크 카드를 스와이핑하세요! - - - - - 刷墨水卡成功! - 잉크 카드 스와이핑 성공! - - - - 确认要刷溶剂卡吗? - 용제 카드 스와이핑 확인 - - - - 请稍候 - 잠시 후 다시 시도하세요 - - - - - 刷溶剂卡倒计时: %1 秒 - 용제 카드 스와이핑 카운트다운: %1 초 - - - 无效卡! - 不需要刷溶剂卡! - 용제 카드 스와이핑 필요 없음! + + 确认要刷墨水卡吗? %1 秒后将自动确认 + 잉크 TAG을 리드하겠습니까? %1초 후 자동 확인 + 不需要刷溶剂卡! + 솔벤트 TAG 리드 필요 없습니다! + + + + 确认要刷溶剂卡吗? %1 秒后将自动确认 + 솔벤트 TAG을 리드하겠습니까? %1초 후 자동 확인 + + + + + + 刷溶剂卡成功! + 确认要刷卡吗? + 솔벤트 TAG 리드 성공! + + + + + 不需要刷墨水卡! + 잉크 TAG 리드 필요 없습니다! + + + mtFlag: %1 + mtFlag: %1 + + + + 开始自检,请等待%1秒... + 자체 진단 시작 (%1초 대기) + + + + 确认要刷墨水卡吗? + 잉크 TAG을 리드하겠습니까? + + + + + 请先添加墨水再刷墨水卡! + 먼저 잉크을 보충한 후 TAG을 사용하십시오! + + + + + + 刷墨水卡成功! + 잉크 TAG 리드 성공! + + + + 确认要刷溶剂卡吗? + 솔벤트 TAG을 리드하겠습니까? + + + 请稍候 + 잠시 후 다시 시도하세요 + + + 刷溶剂卡倒计时: %1 秒 + 솔벤트 TAG 리드 카운트다운: %1 초 + + + 无效卡! + 不需要刷溶剂卡! + 솔벤트 TAG 리드 필요 없음! + + + + 请先添加溶剂再刷溶剂卡! - 용제를 먼저 추가하고 용제 카드를 스와이핑하세요! + 먼저 솔벤트을 보충한 후 TAG을 사용하십시오! 不需要刷保养卡! - 유지보수 카드 불필요! + 유지보수 카드 리드할 필요없음! - - + + 刷保养卡成功! 유지보수 카드 성공! - - + + MAC无效卡! MAC 무효 카드! - + 错误!粘度计故障:检测不到上位灯 오류! 점도계 고장: 상단 램프 감지 실패 - - - 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - 보증 기간이 %1 일 남았습니다. 정기 점검을 실시하세요; 그렇지 않으면 프린터가 손상될 수 있습니다 - - 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - 보증 기간이 %1 일 초과했습니다. 프린터의 정상 사용을 복구하기 위해 정기 점검을 실시하세요 + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 + 유지보수 주기 만료까지 %1일 남았습니다. 제때 유지보수를 실시하십시오. - + + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 + 유지보수 주기가 %1일 초과되었습니다. 잉크젯 프린터의 정상 사용을 복구하려면 유지보수를 실시하십시오. + + + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - 압력이 너무 높습니다. 파이프라인이 봉쇄되었는지 확인하고 고장 복구 버튼을 클릭하세요 + 압력이 너무 높습니다. 배관이 막혔는지 확인한 후 오류 복구 버튼을 누르십시오. 9.墨水空,机器自动关机 - 9. 잉크가 비어 있습니다. 기계가 자동으로 종료됩니다 + 9. 잉크가 소진되어 장비가 자동으로 종료됩니다. 10.溶剂空,机器自动关机 - 10. 용제가 비어 있습니다. 기계가 자동으로 종료됩니다 + 10. 솔벤트가 소진되어 장비가 자동으로 종료됩니다. 11.墨水空,机器再次自动关机 - 11. 잉크가 비어 있습니다. 기계가 자동으로 다시 종료됩니다 + 11. 잉크가 소진되어 장비가 다시 자동으로 종료됩니다. 12.溶剂空,机器再次自动关机 - 12. 용제가 비어 있습니다. 기계가 자동으로 다시 종료됩니다 + 12. 솔벤트가 소진되어 장비가 다시 자동으로 종료됩니다. 21.没有使用原厂墨水耗材,机器自动关机 - 21. 원본 잉크 소모품을 사용하지 않았습니다. 기계가 자동으로 종료됩니다 + 21. 정품 잉크 미사용, 장비 자동 종료 22.没有使用原厂溶剂耗材,机器自动关机 - 22. 원본 용제 소모품을 사용하지 않았습니다. 기계가 자동으로 종료됩니다 + 22. 정품 솔벤트 미사용, 장비 자동 종료 23.没有使用原厂墨水耗材,机器再次自动关机 - 23. 원본 잉크 소모품을 사용하지 않았습니다. 기계가 자동으로 다시 종료됩니다 + 23. 정품 잉크 미사용, 장비 다시 자동 종료 24.没有使用原厂溶剂耗材,机器再次自动关机 - 24. 원본 용제 소모품을 사용하지 않았습니다. 기계가 자동으로 다시 종료됩니다 + 24. 정품 솔벤트 미사용, 장비 다시 자동 종료 1.请添加墨水,否则机器将在24小时后自动关机! - 1. 잉크를 먼저 추가하고 잉크 카드를 스와이핑하세요! + 1. 잉크를 보충하십시오. 그렇지 않으면 24시간 후 장비가 자동으로 종료됩니다. 2.请添加墨水,否则机器将在%1小时后自动关机! - 2. 잉크를 먼저 추가하고 잉크 카드를 스와이핑하세요! + 2. 잉크 보충, 미보충 시 %1시간 후 자동 종료! 3.请添加墨水,否则机器将在%1分钟后自动关机! - 3. 잉크를 먼저 추가하고 잉크 카드를 스와이핑하세요! + 3. 잉크 보충, 미보충 시 %1시간 후 자동 종료! 4.请添加墨水,否则机器将在2分钟后自动关机! - 4. 잉크를 먼저 추가하고 잉크 카드를 스와이핑하세요! + 4. 잉크 보충, 미보충 시 2분 후 자동 종료! 5.请添加溶剂,否则机器将在6小时后自动关机! - 5. 용제를 먼저 추가하고 용제 카드를 스와이핑하세요! + 5. 솔벤트을 보충하십시오. 그렇지 않으면 6시간 후 장비가 자동으로 종료됩니다 6.请添加溶剂,否则机器将在%1小时后自动关机! - 6. 용제를 먼저 추가하고 용제 카드를 스와이핑하세요! + 6. 솔벤트 보충, 미보충 시 %1시간 후 자동 종료! 7.请添加溶剂,否则机器将在%1分钟后自动关机! - 7. 용제를 먼저 추가하고 용제 카드를 스와이핑하세요! + 7. 솔벤트 보충, 미보충 시 %1시간 후 자동 종료! - 齿轮泵转速过高,请清理过滤器或者检查是否泄露! - 8.请添加溶剂,否则机器将在2分钟后自动关机! - 8. 용제를 먼저 추가하고 용제 카드를 스와이핑하세요! + 8.请添加溶剂,否则机器将在2分钟后自动关机! + 8. 솔벤트를 보충하십시오. 그렇지 않으면 2분 후에 장비가 자동으로 종료됩니다! 13.请刷墨水卡,请使用原厂墨水耗材,否则机器将在24小时后自动关机! - 13. 잉크 카드를 스와이핑하고 원본 잉크 소모품을 사용하세요; 그렇지 않으면 기계가 24시간 후에 자동으로 종료됩니다! + 13. 잉크 TAG를 리드하시고 정품 잉크를 사용하십시오. 그렇지 않으면 24시간 후에 장비가 자동으로 종료됩니다! 14.请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后自动关机! - 14. 잉크 카드를 스와이핑하고 원본 잉크 소모품을 사용하세요; 그렇지 않으면 기계가 %1시간 후에 자동으로 종료됩니다! + 14. 잉크 TAG를 리드하시고 정품 잉크를 사용하십시오. 그렇지 않으면 %1시간 후에 장비가 자동으로 종료됩니다! 15.请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1分钟后自动关机! - 15. 잉크 카드를 스와이핑하고 원본 잉크 소모품을 사용하세요; 그렇지 않으면 기계가 %1분 후에 자동으로 종료됩니다! + 15. 잉크 TAG를 리드하시고 정품 잉크를 사용하십시오. 그렇지 않으면 %1분 후에 장비가 자동으로 종료됩니다! 16.请刷墨水卡水,请使用原厂墨水耗材,否则机器将在2分钟后自动关机! - 16. 잉크 카드를 스와이핑하고 원본 잉크 소모품을 사용하세요; 그렇지 않으면 기계가 2분 후에 자동으로 종료됩니다! + 16. 잉크 TAG를 리드하시고 정품 잉크를 사용하십시오. 그렇지 않으면 2분 후에 장비가 자동으로 종료됩니다! 17.请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在2小时后自动关机! - 17. 용제 카드를 스와이핑하고 원본 용제 소모품을 사용하세요; 그렇지 않으면 기계가 2시간 후에 자동으로 종료됩니다! + 17. 솔벤트 TAG를 리드하시고 정품 솔벤트를 사용하십시오. 그렇지 않으면 24시간 후에 장비가 자동으로 종료됩니다! 18.请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后自动关机! - 18. 용제 카드를 스와이핑하고 원본 용제 소모품을 사용하세요; 그렇지 않으면 기계가 %1시간 후에 자동으로 종료됩니다! + 18. 솔벤트 TAG를 리드하시고 정품 솔벤트를 사용하십시오. 그렇지 않으면 %1시간 후에 장비가 자동으로 종료됩니다! 19.请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1分钟后自动关机! - 19. 용제 카드를 스와이핑하고 원본 용제 소모품을 사용하세요; 그렇지 않으면 기계가 %1분 후에 자동으로 종료됩니다! + 19. 솔벤트 TAG를 리드하시고 정품 솔벤트를 사용하십시오. 그렇지 않으면 %1분 후에 장비가 자동으로 종료됩니다! 20.请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在2分钟后自动关机! - 20. 용제 카드를 스와이핑하고 원본 용제 소모품을 사용하세요; 그렇지 않으면 기계가 2분 후에 자동으로 종료됩니다! + 20. 솔벤트 TAG를 리드하시고 정품 솔벤트를 사용하십시오. 그렇지 않으면 2분 후에 장비가 자동으로 종료됩니다! 齿轮泵转速过高,请立即停机并联系供应商! - 톱니바퀴 펌프 속도가 너무 높습니다. 즉시 중지하고 공급업체에 문의하세요 - - - - 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - 원본 잉크 소모품을 사용하고 잉크 카드를 스와이핑하세요; 그렇지 않으면 기계가 %1시간 후에 사용 금지됩니다! + 기어 펌프 회전 속도가 너무 높습니다. 즉시 정지하고 공급업체에 연락하십시오. - 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - 잉크 수위 경보가 48시간을 초과했습니다. 프린터의 정상 작동을 복구하기 위해 원본 잉크를 먼저 추가하고 잉크 카드를 스와이핑하세요 + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! + 잉크 TAG를 리드하시고 정품 잉크를 사용하십시오. 그렇지 않으면 %1시간 후에 장비 사용이 금지됩니다! - - 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - 원본 용제 소모품을 사용하고 용제 카드를 스와이핑하세요; 그렇지 않으면 기계가 %1시간 후에 사용 금지됩니다! + + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! + 잉크 레벨 경보가 48시간을 초과했습니다. 장비의 정상 작동을 복구하기 위해 잉크를 추가하고 잉크 TAG을 리드하세요 + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! + 솔벤트 TAG를 리드하시고 정품 솔벤트를 사용하십시오. 그렇지 않으면 %1시간 후에 장비 사용이 금지됩니다! + + + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - 용제 수위 경보가 48시간을 초과했습니다. 프린터의 정상 작동을 복구하기 위해 용제를 먼저 추가하고 용제 카드를 스와이핑하세요 + 솔벤트 수위 경보가 48시간을 초과했습니다. 장비의 정상 작동을 복구하기 위해 솔벤트를 추가하고 솔벤트 TAG를 리드하세요 保养期已超过%1天,请及时保养,否则喷码机容易损坏 - 보증 기간이 %1 일 초과했습니다. 정기 점검을 실시하세요; 그렇지 않으면 프린터가 손상될 수 있습니다 + 유지보수 주기가 %1일 초과되었습니다. 제때 유지보수를 실시하십시오. 그렇지 않으면 잉크젯 프린터가 손상될 수 있습니다. - + 刷卡倒计时起始时间文件不存在 - 카드 스와이핑 카운트다운 시작 시간 파일이 존재하지 않습니다 + 카드 사용 카운트다운 시작 시간 파일이 존재하지 않습니다. 高转速下压力提升缓慢,请检查管路是否堵塞或者压力传感器是否正常 - 고속에서 압력 상승 지연, 배관/센서 점검 + 고속 회전 시 압력 상승 느림, 배관 막힘/압력 센서 점검. 转速过低,压力值过高,请检查压力传感器是否正常 - 저속에서 압력 과대, 센서 점검 + 저속 회전, 압력 과다, 압력 센서 점검 转速过高,压力偏低,请检查管路是否堵塞 - 고속에서 압력 저하, 배관 점검 + 회전 속도가 너무 높고 압력이 너무 낮습니다. 배관이 막혔는지 확인하십시오. 转速过高,压力过高,请检查压力传感器是否正常 - 고속/고압, 센서 점검 + 회전 속도가 너무 높고 압력이 너무 높습니다. 압력 센서가 정상인지 확인하십시오. 转速过高,请检查管路是否堵塞 - 고속, 배관 점검 + 회전 속도가 너무 높습니다. 배관이 막혔는지 확인하십시오. 混合阀打开1: @@ -2891,7 +3534,7 @@ 警告!!!!!!!!!!!粘度值偏低 - 경고! 점도 저하 + 경고! 점도 낮음 正在开墨线..... @@ -2899,7 +3542,7 @@ 回收泵全速开 - 셕션 펌프 전속력 가동 + 셕션 펌프 전속 가동 粘度泵开 @@ -2927,7 +3570,7 @@ 粘度泵关 - 점도 펌프 중지 + 점도 펌프 닫힘 供墨阀开 @@ -2935,7 +3578,7 @@ 正常开墨线状态,请等待%1秒 - 잉크 라인 준비 (%1초 대기) + 노즐 열기중 %1초 동안 기다려 주십시오 循环阀关 @@ -2943,11 +3586,11 @@ 开晶振电压,正在检测相位,请等待%1秒 - 크리스탈 전압 개방, 위상 검사 중 (%1초 대기) + 크리스탈 전압 인가, 위상 감지 중, %1초 대기… 正在测试相位,请等待%1秒 - 위상 검사 중 (%1초 대기) + 위상 테스트 중, %1초 대기… 相位检测正常,开启高压 @@ -2971,7 +3614,7 @@ 回收泵变全压运行 - 회수 펌프 전압 가동 + 셕션 펌프 전압 가동 清洗阀点动%1次 @@ -2983,11 +3626,11 @@ 关回收泵 - 회수 펌프 중지 + 셕션 펌프 정지 %1秒后关回收泵 - %1초 후 회수 펌프 중지 + %1초 후 셕션 펌프 정지 可以关机断电 @@ -2999,7 +3642,7 @@ 正在快速开墨线..... - 잉크 선 빠른 개방 중... + 잉크 선 빠른 가동 중... 打开晶振电压 @@ -3011,7 +3654,7 @@ 开晶振电压,正在检测相位,请等待%1s - 크리스탈 전압 켜기, 위상 검사 중 (%1초 대기) + 크리스탈 전압 인가, 위상 검사 중 %1초 대기 快速开墨线完成 @@ -3027,81 +3670,99 @@ 回收泵关 - 셕션 펌프 중지 + 셕션 펌프 정지 回收泵变全速运行 - 셕션 펌프 전속력 가동 + 셕션 펌프 전속 가동 回收泵全速运行 - 셕션 펌프 전속력 가동 + 셕션 펌프 전속 가동 回收泵全速运行,请等待%1秒 - 셕션 펌프 전속력 가동 (%1초 대기) + 셕션 펌프 전속 가동 (%1초 대기) 快速关闭墨线完成 잉크 선 빠른 닫기 완료 - - - + 警告 경고 - + 确认要刷保养卡吗? - Are you sure you want to swipe the maintenance card? + 유지 보수 카드 사용 확인? - + + 保养期还有%1小时到期,请及时保养,否则喷码机容易损坏 + 유지 보수 기간 %1시간 남았습니다, 유지 보수 해주세요. + + + + 保养期已超过%1小时,请及时保养,否则喷码机容易损坏 + 유 보수 기간 %1시간 초과, 유지 보수 해주세요. + + + + 开始自检,请等待60秒... + 자체 진단 시작, 60초 대기... + + + + 确认要刷保养卡吗? %1 秒后将自动确认 + 유지 보수 카드 사용 확인? %1초 후 자동 확인 + + + card data: %1 카드 데이터: %1 - + 无效卡,这张卡已经在%1时使用过 - 무효 카드 (%1시 사용됨) + 무효 카드 %1시 사용됨 喷印速度过快或间隔太短!无法喷印完全,自动暂停喷印!!! - 인쇄 속도/간격 과도, 자동 중지 + 인쇄 속도 과다/간격 과소, 인쇄 불가, 자동 일시 정지 喷印速度过快或间隔太短!无法喷印完全!!! - 인쇄 속도/간격 과도, 인쇄 불가 + 인쇄 속도 과다/간격 과소, 인쇄 불가도, 인쇄 불가 喷印速度过快!无法喷印完全,自动暂停喷印!!! - 인쇄 과속, 자동 중지 + 인쇄 속도가 너무 빠릅니다! 완전히 인쇄할 수 없어 자동으로 인쇄가 일시 중지됩니다. 打开文件出错次数超多3次,自动清除默认喷印文件. - 파일 열기 오류 3회, 기본 파일 삭제 + 파일 열기 오류 3회 초과, 기본 인쇄 파일 자동 삭제 非法关机次数过多,自动清除默认喷印文件. - 비정상 종료 과다, 기본 파일 삭제 + 비정상 종료 횟수가 너무 많아 기본 인쇄 파일이 자동으로 삭제됩니다. 上次出现非法关机. - 최근 비정상 종료 발생 + 이전 비정상 종료 발생 自动循环中,请等待%1秒............... - 자동 순환 중 (%1초 대기) + 자동 블리딩 중 %1초 대기... 自动循环完成!!! - 자동 순환 완료!!! + 자동 블리딩 완료!!! 正在自检,请等待%1秒............... - 자가 진단 중 (%1초 대기) + 자체 진단 중 %1초 대기... 供墨阀关 @@ -3109,22 +3770,22 @@ 喷印速度过快!无法喷印完全!!! - 인쇄 과속, 완료 불가 + 인쇄 속도가 너무 빠릅니다! 완전히 인쇄할 수 없습니다! - + %1/%2/%3 %1/%2/%3 - + ink Warning at: %1 잉크 경보: %1 - + solvent Warning at: %1 - 용제 경보: %1 + 솔벤트 경보: %1 警告:加热器长时间无法达到预期温度,故障或设置错误! @@ -3155,8 +3816,8 @@ 오류!!!!!!!!!!!점도 이상 - - + + 电机故障 모터 에러 @@ -3165,15 +3826,14 @@ 모터 에러!!! - - 回收槽到头 - 회수 탱크 최대 위치 도달 + 거터 최대 위치 도달 - + + 回收槽卡住或者回收槽开关时间设置错误 - 회수 탱크 고착 또는 스위치 시간 설정 오류 + 거터가 걸렸거나 거터 개폐 시간 설정이 잘못되었습니다. @@ -3781,209 +4441,209 @@ Char 양식 - + 当前状态 - 현재 상태 + 가동 내역 - + 清空当前状态 상태 초기화 - - - - + + + + ✕ ✕ - + 历史状态 - 기록 상태 + 로그 파일 - + 删除历史文件 - 기록 파일 삭제 + 로그 파일 삭제 - + 机器状态 - 기계 상태 + 현재 상태 - + 粘度 점도 - + 高压包 고전압 패키지 - + 隔膜位置 다이어프램 위치 - + 压力 압력 - + 墨线开关 잉크선 스위치 - + 喷嘴逆清洗 - + 노즐 역세척 喷头盖开 - 커버열림 + 커버 열림 - + 墨水缸满 잉크 통 가득 참 - + 墨水液位 잉크 레벨 오류 - + 溶剂液位 솔벤트 레벨 - + 回收故障 석션 에러 - + 粘度故障 점도 에러 - + 相位故障 위상 에러 - + 高压故障 고전압에러 - + 故障恢复 고장 복구 - + 打开历史文件 - 기록 파일 열기 + 로그 파일 열기 - - + + TextLabel 텍스트 라벨 - + 导出日志到U盘 로그 USB로 내보내기 - + 版本信息 调试信息 버전 정보 - + 请先打开历史状态文件! - 기록 상태 파일 먼저 열기! + 먼저 로그 파일을 열어 주십시오! - + 齿轮泵转速 - 기어 펌프 속도 + 기어 펌프 회전 속도 - - - - - + + + + + 警告 경고 - - - + + + 无法打开文件 파일 열기 실패 - - - - + + + + 提示 팁 - + 是否确认将所有日志文件导出到U盘? 모든 로그 파일을 USB로 내보내시겠습니까? - + U盘目录创建失败 USB 디렉토리 생성 실패 - + U盘未插入或无法识别,请重新插拔设备! - USB 미연결 또는 인식 불가, 재연결하세요! + USB 미연결 또는 인식 불가, 재 연결하세요! - + 成功导出到U盘 USB로 내보내기 성공 - + 清洗中,界面锁死 - + 세척 중, 인터페이스 잠김 成功导出到U盘? USB로 성공적으로 내보냄? - + 选择历史记录文件 - 기록 파일 선택 + 로그 파일 선택 - + 是否确认将历史日志文件全部清除? - 모든 기록 로그 파일 삭제하시겠습니까? + 모든 로그 파일 삭제하시겠습니까? - + 是否确认将当前日志全部清除? 현재 로그 모두 삭제하시겠습니까? @@ -3996,10 +4656,10 @@ Char 양식 - + 服务 文件 - 파일 + 시스템 重置所有计数器 @@ -4023,7 +4683,7 @@ Char 编辑当前文件 - 현재 파일 편집 + 현재 작업 편집 保存计数器 @@ -4035,7 +4695,7 @@ Char 直接启动喷印 - 직접 인쇸 + 직접 인쇄 脱离 @@ -4058,9 +4718,9 @@ Char 외부 텍스트 메모리 삭제 - + 图形编辑器 - 그래픽 편집기 + 로고 편집기 设置 @@ -4092,22 +4752,17 @@ Char 기본 설정 - + 网口通信 - + 네트워크 통신 - + 时间设置 - 시간 설정 + 시간 설정 - - 服务 - 서비스 - - - + 设置保养间隔 유지보수 간격 설정 @@ -4121,7 +4776,7 @@ Char 试喷 - 테스트 인쇸 + 테스트 인쇄 数据记录 @@ -4129,139 +4784,167 @@ Char 触摸校准 - 터치 보정 + 터치 캘리브레이션 输入/输出信号检验 입력/출력 신호 검사 - + 系统设置 시스템 설정 - + 系统管理 시스템 관리 - + + + 额外设置 + 추가 설정 + + + 刷卡设置 + TAG 설정 + + + 其他设置 기타 설정 - + 系统更新 시스템 업데이트 - + + 系统授权 시스템 권한 - + + RFID设置 + RFID 설정 + + + ✕ ✕ - mtDate1: %1 - mtDate1: %1 + mtDate1: %1 - mtInterval1: %1 - mtInterval1: %1 + mtInterval1: %1 - mtEndDate1: %1 - mtEndDate1: %1 + mtEndDate1: %1 - mtFlog1: %1 - mtFlog1: %1 + mtFlog1: %1 - + 提示 팁 - + RFID卡清零! RFID 카드 초기화! + + + + 取消授权 + 권한 해제 + + + + 警告 + 경고 + + + + 密码错误:%1 + 비밀번호 오류:%1 + MainWidget - + background-color:#6A7289; background-color:#6A7289; - + 编辑当前文件 - 현재 파일 편집 + 현재 작업 편집 - + 调入文件喷印 - 파일 인쇸 + 작업 파일 불러오기 - + 主指令单 - 주 명령서 + 메인 메뉴 - + 管理器 관리자 - + 信息 정보 - + background-color:#BCBFC4; background-color:#BCBFC4; - + background-color:#CACCC9; background-color:#CACCC9; - - + + background-color:#BBBBBD;border-radius:3px; background-color:#BBBBBD;border-radius:3px; - - + + 0 - 0 + 0 - + 达到数量后停止: - + 도달 시 중지: - + 开始打印 - 인쇄 시작 + 인쇄 시작 - + color:#000000;font-size:18px; color:#000000;font-size:18px; @@ -4274,80 +4957,82 @@ Char 잉크 켜짐 - + 速度 米/分 속도 미터/분 - + color:#3CB371;font-size:18px; color:#3CB371;font-size:18px; - + 当前 현재 - + color:#E72F28;font-size:18px; color:#E72F28;font-size:18px; - + 最大 최대 - + color:#3CB371;font-size:24px; color:#3CB371;font-size:24px; - + 0007.9 0007.9 - + color:#E72F28;font-size:24px; color:#E72F28;font-size:24px; - + 0020.3 0020.3 - + 停止打印 - 인쇄 중지 + 인쇄 정지 - + + 喷嘴开启 - + 노즐 켜짐 - + + 喷嘴关闭 - + 노즐 닫힘 color:#000000;font-size:18px;padding-left:20px; color:#000000;font-size:18px;padding-left:20px; - + 产品计数器 - 제품 카운터 + 인쇄 수량 00000000 00000000 - + color:#000000;font-size:28px;font-weight:bold; color:#000000;font-size:28px;font-weight:bold; @@ -4360,30 +5045,30 @@ Char background-color:#C5C4BF;border-radius:3px; - + border:0px; border:0px; - - - - - - - + + + + + + + 警告 경고 - + 回收槽未关,是否关闭回收槽后关机! - 회수 탱크 미복귀, 종료 전 닫기? + 거터 미복귀, 거터를 닫은 후 시스템을 종료하시겠습니까? - + 是否确认关机? - 전원 종료 확인? + 시스템을 종료하시겠습니까? 正在准备关机,请等待%1秒............... @@ -4391,126 +5076,171 @@ Char 准备关机...... - 전원 종료 준비 중...... + 시스템 종료 준비 중...... + + + + 正在准备关机,请等待%1秒... + 시스템 종료 준비 중, %1초 후 종료됩니다... + + + + 准备关机... + 시스템 종료 준비 중... + + + 关机失败!!! - 전원 종료 실패!!! + 시스템 종료 실패!!! - + 最多支持的列数目为:%1请减小信息长度. - 최대 지원 열 수: %1, 정보 길이를 줄이세요. + 최대 지원 열 수: %1. 정보 길이를 줄여 주십시오. - - + + + + 变量数大于8个,某些变量将不起作用!!! 변수 수가 8개를 초과하여 일부 변수가 작동하지 않습니다! - - + + 请减少信息中的变量(或计数器)数量. 인쇄 파일 내 변수(또는 카운터) 수를 줄이세요. - + warning,界面上有变量未显示完全 경고: 인터페이스에 일부 변수가 표시되지 않습니다. - - - - + + + + 错误 오류 - + 喷头盖未关,请先关喷头盖! 헤드 커버 닫기 필요! - + 墨线未开,请先开墨线开关! - 잉크젯 스위치 켜기! + 잉크 스위치 켜십시오! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 최대 %2열 지원, 현재 %1열 → 길이 축소 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms 트리거 간격 %1ms → %2ms 이상 필요 - - + + 停止开启 + 열기 중지 + + + + 喷嘴已开启 + 노즐 열림 + + + + 喷嘴开启中 + 노즐 열기 중 + + + + 喷嘴已关闭 + 노즐 닫힘 + + + + 喷嘴关闭中 + 노즐 닫기 중 + + + + 正在排气... + 블리딩 중... + + + + 高压故障 - 고전압에러 + 고전압에러 - - + + 相位故障 - 위상 에러 + 위상 에러 - - + + 粘度故障 - 점도 에러 + 점도 에러 - - + + 回收故障 - 석션 에러 + 석션 에러 - - + + 溶液液位 - + 솔벤트 레벨 - - + + 墨水液位 - 잉크 레벨 오류 + 잉크 레벨 오류 - - + + 墨水缸满 - 잉크 통 가득 참 + 잉크 통 가득 참 - - + + 墨线开关 - 잉크선 스위치 + 잉크선 스위치 - + 正常 - + 정상 开始打印1 인쇄 시작 1 - + 提示 팁 - + 随机码文本将展出到U盘,请插入U盘 랜덤 코드를 USB에 저장합니다. USB를 삽입하세요. @@ -4519,40 +5249,37 @@ Char 배기 중... - 正在打开回收槽... - 회수 탱크 여는 중... + 거터 여는 중... - 停止打开 - 열기 중지 + 열기 중지 - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - 회수 탱크 문제 발생 시 강제 종료 위치 설정? + 거터가 이전에 걸렸거나 거터 개폐 시간 설정이 잘못되었습니다. 현재 위치를 강제로 상한 위치로 설정하시겠습니까? - 正在关闭回收槽... - 회수 탱크 닫는 중... + 거터 닫는 중... - + 停止关闭 닫기 중지 - - + + %1.%2 %1.%2 回收槽未到底!!!!!! - 회수 탱크 미복귀!!!!!! + 거터 미복귀!!!!!! 正在喷印............... @@ -4567,82 +5294,89 @@ Char 프린트 헤드 커버가 열려 인쇄 불가! - + 墨水缸满报警 잉크통 만료 경보 - + 墨水液位报警 잉크 레벨 경보 - + 溶剂液位报警 솔벤트 레벨 경보 - + + 高压故障,暂停打印 - 고전압 오류로 인쇄 일시 중지 + 고전압 오류로 인쇄 일시 정지 - + 高压故障,暂停打印. 고전압 고장, 인쇄 일시정지 - + 高压故障,关回收槽 고전압 오류로 수집기 자동 종료 + 高压故障,关回收槽和墨线 - 고전압 오류로 수집기 및 잉크 라인 자동 종료 + 고압 오류가 발생했습니다. 거터를 닫고 잉크 선을 정지하십시오. - + + 回收故障,关闭回收槽,关墨线 - 재활용 고장 발생, 수집기 및 잉크 라인 종료 + 회수 오류가 발생했습니다. 거터를 닫고 잉크 선을 정지하십시오. + 回收故障. - 재활용 에러 + 회수 에러 - + 回收异常,墨线可能偏离.(%1) - 재활용 이상, 잉크 라인 편향 가능성 (%1) + 회수 이상, 잉크 선 편향 가능성 (%1) - + 相位故障:飞行时间错误! 위상 이상: 비행 시간 오류! - + 相位故障:相位检测错误! 위상 이상: 검출 오류! - - + + + 相位故障,准备关机 위상 오류로 시스템 종료 준비 - - + + + 相位故障,暂停打印 - 위상 오류로 인쇄 일시 중지 + 위상 오류로 인쇄 일시 정지 - + 相位故障,屏蔽DAC输出 위상 오류로 DAC 출력 차단 - + + 相位故障,屏蔽充电 위상 오류로 충전 차단 @@ -4730,7 +5464,7 @@ Char 暂停打印 停止高压 인쇄 일시정지 -고전압 중지 +고전압 정지 喷嘴逆清洗 @@ -4776,7 +5510,7 @@ Char 回收故障 - 석션 에러 + 회수 에러 墨水缸满 @@ -4804,16 +5538,15 @@ Char 开 - 수집기 - 열기 + 열기 关 - 회수 탱크 종료 + 종료 泵启动 - 펌프 시작 + 펌프 가동 交替打印 @@ -4837,19 +5570,19 @@ Char 高压故障,暂停打印 - 고전압 오류로 인쇄 일시 중지 + 고전압 오류로 인쇄 일시 정지 墨水或溶剂空,准备关机 - 잉크/용제 부족, 종료 준비 + 잉크/솔벤트 부족, 종료 준비 回收故障,关闭回收槽,关墨线 - 재활용 고장 발생, 수집기 및 잉크 라인 종료 + 회수 오류 발생, 거터 닫고 잉크 선 정지 回收故障,关闭回收槽,关墨线 - 재활용 고장 발생, 수집기 및 잉크젯 종료 + 회수 오류 발생, 거터 닫고 잉크 선 정지 维护时间已到喷码机停止工作 @@ -4869,11 +5602,11 @@ Char 开墨线 - 잉크 라인 열기 + 잉크 선 열기 关墨线 - 잉크 라인 닫기 + 잉크 선 닫기 墨线状态 @@ -4894,11 +5627,11 @@ Char 墨线正常,可以喷印. - 잉크 라인 정상, 인쇄 가능 + 잉크 선 정상, 인쇄 가능 墨线正常. - 잉크 라인 준비 완료 + 잉크 선 준비 완료 喷头盖开, 喷印无法正常进行!!! @@ -4910,7 +5643,7 @@ Char 高压故障,快速关墨线 - 고전압 오류, 즉시 잉크 라인 종료 + 고전압 오류, 즉시 잉크 선 종료 维护时间已到,喷码机将停止工作! @@ -4930,11 +5663,11 @@ Char 回收故障. - 재활용 에러 + 회수 에러 回收异常,墨线可能偏离.(%1) - 재활용 이상, 잉크 라인 편향 가능성 (%1) + 회수 이상, 잉크 선 편향 가능성 (%1) 维护时间已到,喷码机停止工作! @@ -4946,7 +5679,7 @@ Char 电眼交替 - 전자 눈 교체 + 인쇄 신호 교체 %1.%2[%3.%4]米/秒 @@ -5006,7 +5739,7 @@ Char 喷头盖未关,请先关喷头盖! - 헤드 커버 닫기 필요! + 헤드 커버를 닫아 주십시오! 开始打印1 @@ -5019,11 +5752,11 @@ Char 正在排气 ............... - 배기 중... + 블리딩 중... 泵停止 - 펌프 중지 + 펌프 정지 最多支持的列数目为:%1请减小信息长度. @@ -5031,11 +5764,11 @@ Char 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - 잉크 부족 경고 48시간 초과, 잉크 추가 후 카드 사용 필요 + 잉크 레벨 알람이 48시간 초과, 잉크 추가 후 TAG을 리드 하세요 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - 솔벤트 레벨 알람이 48시간 초과되었습니다. 솔벤트를 추가하고 TAG 인증하여 프린터 작동을 복구하세요. + 솔벤트 레벨 알람이 48시간 초과. 솔벤트를 추가하고 TAG 리드 하세요. 正在准备关机,请等待%1秒............... @@ -5043,11 +5776,11 @@ Char 是否关闭齿轮泵,关闭齿轮泵会导致墨水停止流动! - 기어 펌프를 종료하시겠습니까? 잉크 흐름이 중단됩니다! + 기어 펌프를 종료하시겠습니까? 잉크 순환이 중단됩니다! 是否启动齿轮泵? - 기어 펌프를 시작하시겠습니까? + 기어 펌프를 가동하시겠습니까? 保存html文件失败! @@ -5075,7 +5808,7 @@ Char 获取DM码内容跟上次相同 - 이전과 동일한 DM 코드 내용 가져옴 + DM 코드 내용이 이전과 동일합니다. 高压故障:两高压偏转板间的电压检测异常 @@ -5087,7 +5820,7 @@ Char 2.机器更换主板或者高压包,请进入“系统设置”点击“重置高压”,字高设置为90时,重置高压报警值应在480—550之间; - 2. 메인보드 또는 고전압 패키지 교체 후 시스템 설정에서 "고전압 재설정" 클릭. 글자 높이 90 설정 시 고전압 경고값을 480~550 사이로 조정하세요. + 2. 메인보드 또는 고압 팩을 교체한 경우, "시스템 설정"에 들어가 "고압 리셋"을 클릭하십시오. 글자 높이를 90으로 설정했을 때, 고압 경보 리셋 값은 480—550 사이여야 합니다. 3.高压线路漏电,请更换高压线路; @@ -5107,7 +5840,7 @@ Char 2. 请排出多余墨水。 - 2. 잉크 과잉 분배. + 2. 과잉 잉크 배출. 墨水液位:墨水即将耗尽 @@ -5119,11 +5852,11 @@ Char 回收故障:未检测到有墨水回收 - 재활용 고장: 잉크 재활용 감지되지 않음 + 회수 에러: 잉크 회수을 감지되지 않음 1. 墨水未射入回收管,请修正墨线方向; - 1. 잉크가 재활용 튜브로 들어가지 않음. 잉크 라인 방향 수정 필요. + 1. 잉크가 거터로 들어가지 않음. 잉크 선 조정해 주세요. 2. 墨水粘度太低,请更换新墨水; @@ -5139,7 +5872,7 @@ Char 5. 确认各参数及设备无异常后请进入“打印设置”取消“回收故障处理”的勾选,退回主窗口界面点击“故障恢复”按钮. - 5. 모든 설정 및 장치 확인 후 "인쇄 설정"에서 "재활용 고장 처리" 옵션 해제. 메인 화면에서 "고장 복구" 버튼 클릭. + 5. 파라미터 및 장비에 이상이 없음을 확인한 후 "인쇄 설정"에 들어가 "거터 오류 처리"의 체크를 해제하고, 메인 화면으로 돌아가 "오류 복구" 버튼을 클릭하십시오.. 溶剂液位:溶剂即将耗尽 @@ -5179,7 +5912,7 @@ Char 3. 粘度传感器异常,请检查传感器线路或者更换传感器. - 3. 점도 센서 이상. 센서 라인 확인 또는 교체 필요. + 3. 점도 센서 이상. 센서 선 확인 또는 교체 필요. 相位故障报警 @@ -5191,11 +5924,11 @@ Char 1. 墨水分裂不正常,请调整墨水分裂; - 1. 잉크 분사 조정 필요 + 1. 잉크 분열 이상, 잉크 분열 조정 필요 2. 充电槽或者相检头脏污,请清洗充电槽和相检头; - 2. 충전부 청소 필요 + 2. 대전판/굴절판 오염, 세척하십시오 3. 放大板功能性异常,请更换放大板; @@ -5203,15 +5936,15 @@ Char 4. 相检头和墨线的距离过远,请检测喷头活动机构,调整相检头和墨线间的距离; - 4. 검출기 위치 재조정 필요 + 4. 위상 검지와 잉크 라인 사이의 거리가 너무 멉니다. 프린트 헤드 이동 장치를 점검하고, 위상 검지와 잉크 라인 사이의 거리를 조정하십시오. 5. 地线未接或者外界干扰,请连接地线或者隔离外界干扰; - 5. 접지/간섭 차단 필요 + 5. 접지선이 연결되지 않았거나 외부 간섭이 발생했습니다. 접지선을 연결하거나 외부 간섭을 차단하십시오. 6. 墨水质量异常,请更换新墨水。 - 6. 잉크 이상 에러. 새 잉크 교체 필요. + 6. 잉크 품질 이상, 새 잉크 교체. 回收槽开关检测完成! @@ -5227,7 +5960,7 @@ Char 墨线未开,请先开墨线开关! - 잉크젯 스위치 켜기! + 잉크 스위치 켜기! 正在加高压... @@ -5259,7 +5992,7 @@ Char 回收槽未到底!!!!!! - 회수 탱크 미복귀!!!!!! + 거터 미복귀!!!!!! 暂停喷印............... @@ -5291,7 +6024,7 @@ Char 齿轮泵转速 - 기어 펌프 속도 + 기어 펌프 회전 속도 %1.%2[%3.%4]米/分 @@ -5315,11 +6048,11 @@ Char 继续打印 - 인쇄 재개 + 인쇄 계속 请切换为自动状态,再继续操作! - 자동 모드 전환 후 진행! + 자동 상태 전환 후 계속하십시오. 打开墨线 @@ -5327,15 +6060,15 @@ Char 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - 회수 탱크 문제 발생 시 강제 종료 위치 설정? + 거터가 이전에 걸렸거나 거터 개폐 시간 설정이 잘못되었습니다. 현재 위치를 강제로 상한 위치로 설정하시겠습니까? 停止 - 중지 + 정지 打开回收槽 - 회수 탱크 열기 + 거터 열기 停止打开 @@ -5343,11 +6076,11 @@ Char 正在打开回收槽... - 회수 탱크 여는 중... + 거터 여는 중... 警告!回收槽开关时间未设置! - 경고! 회수 탱크 스위치 시간 미설정! + 경고! 거터 스위치 시간 미설정! 关闭墨线 @@ -5355,7 +6088,7 @@ Char 关闭回收槽 - 회수 탱크 닫기 + 거터 닫기 停止关闭 @@ -5363,23 +6096,23 @@ Char 正在关闭回收槽... - 회수 탱크 닫는 중... + 거터 닫는 중... 准备关机...... - 전원 종료 준비 중...... + 시스템 종료 준비 중...... 墨线未关,是否关闭墨线后关机! - 잉크 선 미종료, 종료 전 확인! + 잉크 선 닫히지 않았습니다. 잉크 선을 닫은 후 시스템을 종료하시겠습니까! 回收槽未关,是否关闭回收槽后关机! - 회수 탱크 미복귀, 종료 전 닫기? + 거터가 닫히지 않았습니다. 거터를 닫은 후 시스템을 종료하시겠습니까? 是否确认关机? - 전원 종료 확인? + 시스템 종료 확인? 最多支持的列数目为:%1 @@ -5399,7 +6132,7 @@ Char 警告:‘-’和空格的宽度不一样 - 경고: '-'와 공백 너비 불일치 + 경고: '-'와 공백 너비 불일치 条形码信息编辑 @@ -6330,13 +7063,11 @@ configuration. 다중 폰트 파일 편집 - 字符 -光标 + 字符光标 문자 커서 - 像素 -光标 + 像素光标 픽셀 커서 @@ -6352,8 +7083,7 @@ configuration. 수정 모드 - 编辑现有的多字体文件 -请使用修改模式!!! + 编辑现有的多字体文件 请使用修改模式!!! 다중 폰트 파일 편집 시 수정 모드 사용 필요! @@ -6538,7 +7268,7 @@ configuration. 字体宽度: - 폰트 너비: + 폰트 폭: 快速 @@ -6718,11 +7448,11 @@ configuration. 重复次数: - 반복 횟수: + 반복: 增量值: - 증분 값: + 증가 수치: 计数器1设置 @@ -6799,14 +7529,14 @@ configuration. 字高设置(%): - 글자 높이 설정(%): + 인쇄 높이(%): 行末电压(%): 행 끝 전압(%): - + 信息左右颠倒 좌우 반전 @@ -6815,7 +7545,7 @@ configuration. 위상 고장 시 종료 - + 信息上下颠倒 상하 반전 @@ -6965,7 +7695,7 @@ configuration. 电线电缆 - 케이블 & 전선 + 케이블전선 制药/食品/电子 @@ -7037,7 +7767,7 @@ configuration. 注意:“其它设置”页下的"分段计米“勾选时,计数器1不可用。 - 참고: "구간 계측" 선택 시 카운터1 사용 불가 + 주의: "기타 설정" 페이지에서 "구간별 길이 측정"을 선택하면 카운터 1을 사용할 수 없습니다. 计数器3设置 @@ -7063,13 +7793,13 @@ configuration. 喷印风格 字体参数位置 - 인쇸 스타일 + 인쇄 형식 喷印模式 电压参数 - 인쇸 모드 + 인쇄 모드 @@ -7078,261 +7808,302 @@ configuration. - 5行5点阵 - 5행 5점 행렬 + 32点阵对5点阵的优化 + 5行5点阵 + 5행 5도트 매트릭스 - 4行7点阵 - 4행 7점 행렬 + 4행 7도트 매트릭스 - PrintGo信号页1 - PrintGo 신호 페이지 1 + PrintGo 신호 페이지 1 - + 脉冲信号值: 펄스 신호 값: - + 无镜像打印 미러 없음 - + 自动水平翻转 자동 수평 반전 - + 自动垂直翻转 자동 수직 반전 - + 中心对称旋转 중심 대칭 회전 - 镜象交替类型 - 미러 모드 + 미러 모드 - - - - + + + + 延时(毫秒): 지연(ms): - 镜像交替间隔 - 미러 교대 간격 + 미러 교대 간격 - - - + + 触发延时(毫秒) 트리거 지연(ms) - + 脉冲输出使能 펄스 출력 활성화 - + 禁止电眼清零 - 전자 눈 초기화 금지 + 센서 초기화 금지 - + 允许电眼复位 - 전자 눈 리셋 허용 + 센서 리셋 허용 - + 允许电眼立即复位 - 전자 눈 즉시 리셋 허용 + 센서 즉시 리셋 허용 - + 电眼清零 - 전자 눈 카운터 초기화 + 센서 카운터 초기화 - + 字符宽度: 문자 너비: - + 产生脉冲所需计数: 펄스 생성 필요 카운트: - PrintGo信号页2 - PrintGo 신호 페이지 2 + PrintGo 신호 페이지 2 触发模式 트리거 모드 - + 同步器触发 - 동기화기 트리거 + 엔코더 트리거 - + 延时触发 지연 트리거 - + 光电电平触发 - 광전지 레벨 트리거 + 고 레벨 활성 - + 光电边沿触发 - 광전지 에지 트리거 + 저 레벨 활성 - + + 32点阵对4点阵的优化 + 32도트상 4도트 최적화 + + + + 电眼设置 + 인쇄 신호 + + + + 重复间隔(毫秒): + 인쇄 간격(ms): + + + + 重复次数: + 반복 인쇄: + + + + 封锁时间(毫秒): + 잠금 시간(ms): + + + 电眼信号来源 - 전자 눈 신호 소스 + 인쇄 신호 - - + + 内部 내부 - - + + 外部 외부 - + GroupBox GroupBox - + 编码器参数 - 인코더 파라미터 + 엔 코더 - - 脉冲数/毫米 - 펄스/밀리미터 + + 脉冲数/毫米: + 펄스/mm: - + + 喷印间隔(毫米): + 인쇄 간격(mm): + + + + 同步喷印模式: + 동기 인쇄 모드: + + + + 镜象交替类型: + 미러 교대 모드: + + + + 镜像交替间隔: + 미러 교대 간격: + + + + 触发延时(毫秒): + 脉冲数/毫米 + 펄스/mm + + + 脉冲数修正 펄스 수 보정 - 喷印间隔(毫米) - 인쇄 간격(mm) + 인쇄 간격(mm) - 同步喷印模式 - 동기 인쇄 모드 + 동기 인쇄 모드 - + 按字符宽度 글자 너비 기준 - + 按喷印比例 인쇄 비율 기준 - + 同步器正反转打印 - 동기화기 정/역방향 인쇄 - - - - 同步器只正转打印 - 동기화기 정방향 인쇄만 허용 - - - - 同步器只反转打印 - 동기화기 역방향 인쇄만 허용 - - - - 重复次数 - 반복 횟수 + 엔코더 정/역방향 인쇄 - - - + 同步器只正转打印 + 엔코더 정방향 인쇄만 허용 + + + + 同步器只反转打印 + 엔코더 역방향 인쇄만 허용 + + + 重复次数 + 반복 횟수 + + + + + 重复间隔(毫秒) 반복 간격(ms) - + 同步打印 - 동기화 인쇄 활성화 + 엔코더 인쇄 활성화 - - + 封锁时间(毫秒) 잠금 시간(ms) - + 同步器清零 - 동기화기 카운터 초기화 + 엔코더 카운터 초기화 - + 间隔模式: 간격 모드: - + 行末<->行首 행 끝 ↔ 행 시작 - + 行首<->行首 행 시작 ↔ 행 시작 - + 同步器来源 - 동기화기 소스 + 엔코더 - + ✕ ✕ - + ✓ ✓ @@ -7486,15 +8257,15 @@ configuration. 跳米设置 - 계측 건너뛰기 설정 + 미터 스킵 설정 跳米数: - 건너뛸 간격: + 미터 스킵 거리: 跳米打印 - 계측 건너뛰기 활성화 + 미터 스킵 인쇄 输入密码 @@ -7503,7 +8274,7 @@ configuration. 提示:交替参数不正确 - 경고: 교대 매개변수 오류 + 경고: 교대 파라미터가 올바르지 않습니다. 要求:起始位置<交替间隔 @@ -7514,64 +8285,72 @@ configuration. 조건: (반복 횟수 + 시작 위치) < 교대 간격 - + 提示 팁 - + 应用成功 적용 성공 - + 提示:参数不正确 - 경고: 매개변수 오류 + 경고: 파라미터 오류 - + 要求:触发长度小于喷印间隔 요구사항: 트리거 길이는 인쇄 간격보다 작아야 함 - - - - + + + + 延时(毫米): 지연(mm): - - - + + + 触发延时(毫米) 트리거 지연(mm) - - + + 重复间隔(毫米) 반복 간격(mm) - - + + + 抑止距离(毫米) + 인쇄신호 제어 거리(mm) + + + + 抑止距离(毫秒) + 인쇄 신호 제어 거리(ms) + + 封锁间隔(毫米) - 잠금 간격(mm) + 잠금 간격(mm) - 封锁间隔(毫秒) - 잠금 간격(ms) + 잠금 간격(ms) - + 字符宽度 문자 너비 - + 喷印比例(%) 인쇄 비율(%) @@ -7613,7 +8392,7 @@ configuration. 要求:调整长度小于喷印间隔 - 조건: 길이 < 인쇄 간격 + 조건: 조정 길이가 인쇄 간격보다 작습니다. 小时 @@ -7632,8 +8411,9 @@ configuration. 권한 해제 + 其他设置 - 기타 설정 + 기타 설정 超高速 @@ -7684,12 +8464,12 @@ configuration. 랜덤 코드를 USB에 저장합니다. USB를 삽입하세요. - 计数器1(结束值-开始值)不能被增量整除,结束值将被设为%1 - 카운터1 증분 불가, 종료 값 %1 설정 + 计数器1(结束值-开始值)不能被增量整除,结束值将被设为%1. + 카운터 1(종료 값 - 시작 값)이 증분으로 나누어 떨어지지 않습니다. 종료 값이 %1로 설정됩니다. 计数器1(结束-开始)不能被增量整除,结束值将被设为%1 - 카운터1 증분 불가, 종료 값 %1 설정 + 카운터 1(종료 - 시작)이 증분으로 나누어 떨어지지 않습니다. 종료 값이 %1로 설정됩니다. 1 @@ -7713,7 +8493,7 @@ configuration. 是否立即重新计米? - 계측기를 즉시 재설정하시겠습니까? + 즉시 미터링을 다시 시작하시겠습니까? 解锁脉冲计数 @@ -7732,12 +8512,8 @@ configuration. flagOfAdjustVoltage: %1 - 字体宽度太小,打印字体将会被严重压缩! -建议最小字体宽度为:%1 -建议最小喷印间隔为:%2 - 글자 너비 과소, 압축 인쇄! -최소 너비: %1 -최소 간격: %2 + 字体宽度太小,打印字体将会被严重压缩!建议最小字体宽度为:%1建议最小喷印间隔为:%2 + 글자 너비가 너무 작아 인쇄 글자가 심하게 압축됩니다! 권장 최소 폰트 너비: %1 권장 최소 인쇄 간격: %2 FPGAVersion: %1 @@ -7793,7 +8569,7 @@ configuration. 根据同步器参数 - 동기화 장치 기준 + 엔코더 기준 @@ -7813,17 +8589,17 @@ configuration. 同步脉冲数 - 동기 펄스 수 + 엔코더 펄스 수 同步器直径(毫米): - 동기화 장치 직경(mm): + 엔코더 직경(mm): 脉冲数/转: - 회전당 펄스 수: + 펄스 수/회전: @@ -8038,7 +8814,7 @@ configuration. 条形保存 - 바 저장 + 바코드 저장 @@ -8168,11 +8944,11 @@ configuration. 在同步计米的情况下无打印串或显示区域为零 - 동기 계측 시 인쇄 문자열 또는 표시 영역이 없음 + 동기 길이 측정 모드에서 인쇄 문자열이 없거나 표시 영역이 0입니다. 在同步计米的情况下喷印同步脉冲数过多,请检查你的配置 - 동기 계측 시 펄스 수가 과도합니다. 설정을 확인하세요 + 동기 길이 측정 모드에서 인쇄 동기 펄스 수가 너무 많습니다. 구성을 확인하십시오. 喷印字符串太短,请增加字符串长度或在打印设置中减少喷印长度 @@ -8183,6 +8959,64 @@ configuration. 인쇄 길이 부족, 문자열 길이 축소 또는 인쇄 설정에서 길이 증가 필요 + + RunTimeCtrl + + + mtDate: %1 + mtDate: %1 + + + + mtInterval: %1 + mtInterval: %1 + + + + mtEndDate: %1 + mtEndDate: %1 + + + + mtFlag: %1 + mtFlag: %1 + + + + timeoutDay: %1 + timeoutDay: %1 + + + + runTime: %1 + + + + + maintenanceHours: %1 + + + + + mtDate1: %1 + mtDate1: %1 + + + + mtInterval1: %1 + mtInterval1: %1 + + + + mtEndDate1: %1 + mtEndDate1: %1 + + + + mtFlog1: %1 + mtFlog1: %1 + + SceneEditOption @@ -8215,7 +9049,7 @@ configuration. 编辑图元 - 그래픽 편집 + 로고 편집 删除图元 @@ -8250,123 +9084,123 @@ configuration. 양식 - + ✓ ✓ - + ✕ ✕ - + 整体设置 전체 설정 - - - + + + 班时编号 - 근무조 번호 + 표시 내용 - - + + 班时时间 - 근무조 시간 + 작업 시작 시간 - - + + 新建行 새로운 행 - + 标号 번호 - + 1 1 - + 00:00 00:00 - + A a - + 2 2 - + 08:09 08:09 - + B - + 3 3 - + 12:00 12:00 - + C - + 可选用的班次时间: - 선택적 근무조 시간 + 선택할수 있는 표시 내용 시간 - + 23 23 - - + + ← - - + + → - + 添加 추가 - + 移除 제거 - + hh:mm hh:mm @@ -8397,9 +9231,13 @@ configuration. SetNumDlg - Dialog - 대화 상자 + 대화 상자 + + + + 设置计数器 + 카운터 설정 @@ -8414,17 +9252,17 @@ configuration. 预设值: - + 사전 설정 값: 当前值: - + 현재 값: 采用当前值 - + 현재 값 사용 @@ -8437,8 +9275,7 @@ configuration. 手动控制泵阀 - 펌프/밸브 - 수동 제어 + 펌프/밸브 수동 제어 喷嘴逆清洗 @@ -8452,16 +9289,16 @@ configuration. - - - - - - - - + + + + + + + + 停止 - 중지 + 정지 @@ -8474,12 +9311,12 @@ configuration. 烧录单片机软件 - 단일 칩 소프트웨어 기록 + 단일 칩 소프트웨어 重启 - 재시작 + 재 시작 @@ -8502,7 +9339,7 @@ configuration. - + 压缩机 압축기 @@ -8550,7 +9387,7 @@ configuration. 烧录FPGA - FPGA 기록 + FPGA @@ -8575,8 +9412,7 @@ configuration. 更新字库 - 폰트 라이브러리 - 업데이트 + 폰트 업데이트 @@ -8594,8 +9430,7 @@ configuration. 导出字库 - 폰트 라이브러리 - 내보내기 + 폰트 내보내기 从U盘导入配置 @@ -8622,7 +9457,7 @@ configuration. 기계 코드 설정 - + Cancel 취소 @@ -8631,118 +9466,118 @@ configuration. (1/2) 세척 중, 잠시 기다려주세요... - - - - - - - - - - + + + + + + + + + + + + + + - - - - 开 - 수집기 열기 + 열림 - - - - - - - + + + + + + + + + + - - - - + + + + + - - - - 关 - 회수 탱크 종료 + 꺼짐 - - - - - - - - - - + + + + + + + + + + 警告 경고 - - - + + + 请先移开喷头盖! 프린트 헤드 커버를 제거하세요! - + 是否确认进入手动模式? 수동 모드로 전환하시겠습니까? - + 请先确认已经关闭回收槽,确认进入自动模式? 노즐 닫혔는지 확인하세요. 자동 모드로 전환하시겠습니까? - - - - + + + + 手动 수동 - - - - - + + + + + 自动 자동 - - - - - - - - + + + + + + + + 启动 시작 - + Application 애플리케이션 - + 是否确认更新字库? 폰트 라이브러리를 업데이트하시겠습니까? - + 更新字库成功,重启后生效! 폰트 라이브러리 업데이트 성공, 재시작 후 적용됩니다! @@ -8751,17 +9586,17 @@ configuration. 공장 초기화를 복원하시겠습니까? - + 恢复出厂设置成功,请重新关机上电 - 공장 초기화 성공, 프린터를 재시작하세요. + 공장 초기화 성공, 장비를 재시작하세요. - + 校准触摸屏 터치스크린 보정 - + 是否确认开始校准程序?请小心进行校准! 터치스크린 보정을 시작하시겠습니까? 주의해서 조작하세요. @@ -8770,153 +9605,153 @@ configuration. 스크립트 생성 실패 - - - - + + + + 密码不正确! 비밀번호 오류! - + 是否确认更新软件? 소프트웨어를 업데이트하시겠습니까? - + 软件更新成功,重启后生效! 소프트웨어 업데이트 성공, 재시작 후 적용됩니다! - - - - - - - - - + + + + + + + + + 错误 오류 - + 没找到对应字库,更新失败! 해당 폰트 라이브러리를 찾을 수 없어 업데이트 실패! - + 更新失败! 업데이트 실패! - + 找不到更新软件! 업데이트 소프트웨어를 찾을 수 없습니다! - + 是否确认更新系统? 시스템을 업데이트하시겠습니까? - + 系统更新成功,重启后生效! 시스템 업데이트 성공, 재시작 후 적용됩니다! - + 文件不存在! 파일이 존재하지 않습니다! - + 压力 압력 - + autoclean cancel or status: 자동 세척 취소 또는 상태: - + (2/3) Cleaning (2/3) 세척 중 - + (3/3) Cleaning (3/3) 세척 완료 - + 确定要升级FPGA软件吗? FPGA 소프트웨어를 업데이트하시겠습니까? - + 找不到 lib.tar! lib.tar을 찾을 수 없습니다! - + 无法删除旧的 lib.tar! 이전 lib.tar을 삭제할 수 없습니다! - + 复制 tar 包失败! tar 패키지 복사 실패! - + 解压失败,请检查权限! 압축 해제 실패, 권한을 확인하세요! - + 移动库文件失败! 라이브러리 파일 이동 실패! - + 环境配置成功! 환경 설정 성공! - + 切换失败! 전환 실패! - + 切换成功,重启后生效! 전환 성공, 재시작 후 적용됩니다! - + 找不到软件! 소프트웨어를 찾을 수 없습니다! - + 找到多个软件,请删除多余的文件,只保留一个! 여러 소프트웨어를 찾았습니다, 중복 파일을 삭제하고 하나만 남겨주세요! - + 确定要升级单片机软件吗? 단일 칩 소프트웨어를 업데이트하시겠습니까? - + 升级成功,请重启QtUI! 업데이트 성공, QtUI를 재시작하세요! - + 升级失败! 업데이트 실패! @@ -8958,12 +9793,12 @@ configuration. 혼합 밸브 3 열기: - + 配置文件/udisk/sysPara.bin不存在! 설정 파일 /udisk/sysPara.bin이 존재하지 않습니다! - + autoclean start 자동 세척 시작 @@ -8992,12 +9827,12 @@ configuration. 폰트 라이브러리 내보내기 완료! - + 是否开始电机测试? 모터 테스트를 시작하시겠습니까? - + 正在排气,是否停止? 배기 중입니다. 중지하시겠습니까? @@ -9018,38 +9853,38 @@ configuration. 백업 작업 실패! - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + 提示 팁 开墨线 - 잉크 라인 열기 + 잉크 선 열기 关墨线 - 잉크 라인 닫기 + 잉크 선 닫기 清洗阀 @@ -9064,37 +9899,37 @@ configuration. 잉크 공급 밸브 - + 如果开始清洗,务必确认回收槽已经打开10毫米以上,并且在一分钟后将停止清洗 - 세척 시작 시 수집기가 10mm 이상 열려 있는지 확인하세요. 1분 후 중지됩니다. + 세척 시작 시 거터가 10mm 이상 열려 있는지 확인하세요. 1분 후 중지됩니다. - + 开始清洗 세척 시작 - + 停止清洗 세척 중지 - + 是否确认导出配置到U盘? 설정을 USB로 내보내시겠습니까? - + 检测不到U盘 USB가 감지되지 않습니다. - + 成功导出配置到U盘 설정 USB로 내보내기 성공 - + 是否确认从U盘导入配置? USB에서 설정을 가져오시겠습니까? @@ -9103,7 +9938,7 @@ configuration. 설정 파일 /udisk/sysPara.bin이 존재하지 않습니다! - + 从U盘成功导入配置,重启后生效! 설정 가져오기 성공, 재시작 후 적용됩니다! @@ -9132,7 +9967,7 @@ configuration. 粘度校正: - 점도 보정: + 점도 보상: @@ -9172,7 +10007,7 @@ configuration. 粘度校正(%): - 점도 보정(%): + 점도 보상(%): @@ -9326,7 +10161,7 @@ configuration. 40 (UM) - 70 (마이크로미터) {40 ?} + 40 (um) 加热时间 @@ -9376,7 +10211,7 @@ configuration. 回收泵力度(%): - 재생 펌프 강도(%): + 셕션 펌프(%): 脉冲计数器: @@ -9504,11 +10339,11 @@ configuration. 正在开回收槽...... - 리클레임 탱크 개방 중...... + 거터를 열고 있습니다..... 正在关回收槽...... - 리클레임 탱크 폐쇄 중...... + 거터를 닫고 있습니다..... @@ -9532,27 +10367,27 @@ configuration. 喷头盖未关,请先关喷头盖! - 헤드 커버 닫기 필요! + 헤드 커버를 닫아 주십시오 重置高压前,请先关墨线! - 고전압 재설정 전 잉크 라인을 먼저 끄십시오! + 고전압 재설정 전 헤드 스위치를 먼저 끄십시오! 重置高压前,请先关闭回收槽! - 고전압 재설정 전 리클레임 탱크를 먼저 닫으십시오! + 고전압 재설정 전 거터를 먼저 닫으십시오! 墨线开关未开,请先打开墨线开关! - 잉크젯 스위치를 켜주십시오! + 헤드 스위치를 켜주십시오! 墨线未打开! - 잉크 라인 미개방! + 잉크 선 닫겨져 있음. 回收槽未全部打开! - 리클레임 탱크가 완전히 열리지 않았습니다! + 거터가 완전히 열리지 않았습니다! 自动搜索耗时较长,期间请不要进行其他操作,是否确认自动搜索最佳晶振电压? @@ -9628,7 +10463,7 @@ configuration. 烧录FPGA - FPGA 기록 + FPGA @@ -9638,54 +10473,52 @@ configuration. 界面语言设置 - 인터페이스 언어 설정 + 인터페이스 언어 설정 烧录单片机软件 - 단일 칩 소프트웨어 기록 + 단일 칩 소프트웨어 更新字库 - 폰트 라이브러리 - 업데이트 + 폰트 업데이트 导出字库 - 폰트 라이브러리 - 내보내기 + 폰트 내보내기 - + 警告 - 경고 + 경고 - + 是否确认导出字库到U盘? - 폰트 라이브러리를 USB로 내보내시겠습니까? + 폰트 라이브러리를 USB로 내보내시겠습니까? - + 错误 - 오류 + 오류 - + U盘不可识别! - USB 인식 불가! + USB 인식 불가! - + 提示 - 팁 + 팁 - + 字库导出完成! - 폰트 라이브러리 내보내기 완료! + 폰트 라이브러리 내보내기 완료! @@ -9693,7 +10526,7 @@ configuration. Testprint - 테스트 인쇸 + 테스트 인쇄 QWidget { font-family: Arial; font-size: 12px; } @@ -9705,47 +10538,6 @@ configuration. 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; - border-radius: 8px; - padding: 8px 12px; - min-width: 90px; - min-height: 50px; - } - QPushButton:hover { - background-color: #d0d0d0; - } - QPushButton:pressed { - background-color: #c0c0c0; - } - - - - - background-color:#C4C5C9; - - - - - - QPushButton { - background-color: #ffffff; - border: 1px solid #a8a8a8; - border-radius: 8px; - padding: 6px; - } - QPushButton:hover { - background-color: #dcdcdc; - } - QPushButton:pressed { - background-color: #d0d0d0; - } - - UK @@ -9758,164 +10550,133 @@ configuration. 5点(英) - 5 도트(영) + 5 도트 7点(英) - 7 도트(영) + 7 도트 9点(英) - 5 도트(영) {9点?} + 9 도트 12点(英) - 5 도트(영) {12点?} + 12 도트 16点(英) - 5 도트(영) {16点?} + 16 도트 24点(英) - 5 도트(영) {24点?} + 24 도트 32点(英) - 5 도트(영) {32点?} + 32 도트 文字 - + 텍스트 条形码 - 바코드 + 바코드 图标 - 아이콘 + 아이콘 日期时间 - + 날짜 시간 计数器 - + 카운터 轮班 - + 근무 시간 保存 - 저장 + 저장 打印设置 - 인쇄 설정 + 인쇄 설정 图元设置 - + 설정 复制 - 복사 + 복사 粘贴 - 붙여넣기 + 붙여넣기 删除 - Delete + Delete 5 dot - + 7 dot - + 9 dot - + 12 dot - + 16 dot - + 24 dot - + 32 dot - - - - - QLineEdit { - background-color: #e5e5e5; - border: 1px solid #a8a8a8; - border-radius: 2px; - padding: 4px 8px; - min-height: 32px; - font-size: 16px; - } + JET2neo-TEST JET2neo-TEST - - - - QPushButton { - background-color: #e5e5e5; - border: 1px solid #a8a8a8; - border-radius: 2px; - min-width: 40px; - min-height: 32px; - font-size: 16px; - font-weight: bold; - } - QPushButton:hover { - background-color: #dcdcdc; - } - QPushButton:pressed { - background-color: #d0d0d0; - } - - << @@ -9926,21 +10687,6 @@ configuration. >> - - - - - QLabel { - background-color: #e5e5e5; - border: 1px solid #a8a8a8; - border-radius: 2px; - padding: 4px 8px; - min-height: 30px; - font-size: 14px; - color: #333333; - } - - Y:9 @@ -9951,29 +10697,6 @@ configuration. X:105 X:105 - - - - - - QPushButton { - background-color: #87CEEB; - border: 1px solid #4682B4; - border-radius: 4px; - min-width: 40px; - min-height: 40px; - font-size: 18px; - font-weight: bold; - color: #00008B; - } - QPushButton:hover { - background-color: #ADD8E6; - } - QPushButton:pressed { - background-color: #B0E0E6; - } - - ↑ @@ -10005,12 +10728,12 @@ configuration. ✓ - + 提示 팁 - + 是否保存文件? 파일을 저장하시겠습니까? @@ -10023,18 +10746,15 @@ configuration. 新建 - 새로 - 만들기 + 새로 만들기 另存为 - 다른이름 - 으로저장 + 다른이름으로저장 预览 - 미리 - 보기 + 미리 보기 保存 @@ -10046,8 +10766,7 @@ configuration. 插变量 - 변수 - 삽입 + 변수 삽입 间距 @@ -10136,7 +10855,7 @@ configuration. 检测到有图片 %1 来自U盘,是否拷贝图片到本地? - USB에서 이미지 %1이(가) 감지되었습니다. 로컬 디스크로 복사하시겠습니까? + USB에서 이미지 %1이(가) 감지되었습니다. 내부 메모리에 복사하시겠습니까? 无法保存文件 @@ -10238,7 +10957,7 @@ configuration. 同步喷印模式 - 동기 인쇄 모드 + 인쇄 모드 按字符宽度 @@ -10286,15 +11005,15 @@ configuration. 允许电眼复位 - 전자 눈 리셋 허용 + 센서 리셋 허용 允许电眼立即复位 - 전자 눈 즉시 리셋 허용 + 센서 즉시 리셋 허용 电眼清零 - 전자 눈 카운터 초기화 + 센서 카운터 초기화 镜像交替间隔 @@ -10322,19 +11041,19 @@ configuration. 同步器正反转打印 - 동기화기 정/역방향 인쇄 + 양 방향 同步器只正转打印 - 동기화기 정방향 인쇄만 허용 + 시계방향 同步器只反转打印 - 동기화기 역방향 인쇄만 허용 + 반 시계방향 对应编码器脉冲数 - 인코더 펄스 수 + 엔코더 펄스 수 脉冲信号值: @@ -10366,15 +11085,15 @@ configuration. 禁止电眼清零 - 전자 눈 초기화 금지 + 센서 초기화 금지 允许电眼清零 - 전자 눈 초기화 허용 + 센서 초기화 허용 允许电眼立即清零 - 전자 눈 즉시 초기화 허용 + 센서 즉시 초기화 허용 镜像交替间隔数 @@ -10414,7 +11133,7 @@ configuration. 提示:参数不正确 - 경고: 매개변수 오류 + 경고: 파라미터 오류 要求:触发长度小于喷印间隔 @@ -10480,8 +11199,8 @@ configuration. - - + + 保存 저장 @@ -10519,49 +11238,50 @@ configuration. 이미지 자르기 - + 提示 팁 - + 图片已经改变,是否保存? 이미지가 변경되었습니다. 저장하시겠습니까? - + 放弃保存 저장 없이 종료 - - - + + + + 放大倍数:%1 확대율: %1 - + 图片另存为... 이미지 다른 이름으로 저장... - + 另存为 다른 이름으로 저장 - + 打开文件 파일 열기 - + 图片保存为... 이미지를...로 저장 - + 导入文件 파일 가져오기 diff --git a/mainwidget.cpp b/mainwidget.cpp index 34e8c98..ae631ec 100644 --- a/mainwidget.cpp +++ b/mainwidget.cpp @@ -75,6 +75,7 @@ MainWidget::MainWidget(QWidget* parent) changeHighLight(false); enablePrintButton(false); + } MainWidget::~MainWidget() @@ -235,7 +236,7 @@ void MainWidget::checkForPowerOff(){ sysPara->devOp->controlInkValve(false); sysPara->devOp->controlInkValvePWM(false); } -// this->setRunStatus(tr("正在准备关机,请等待%1秒...............").arg(i*2)); hlp + this->setRunStatus(tr("正在准备关机,请等待%1秒...").arg(i*2)); MySleep(2000); } } @@ -268,7 +269,7 @@ void MainWidget::checkForPowerOff(){ { if(i==13) sysPara->devOp->controlReclaimTankOpen(false); -// this->setRunStatus(tr("正在准备关机,请等待%1秒...............").arg(i*3)); hlp + this->setRunStatus(tr("正在准备关机,请等待%1秒...").arg(i*3)); MySleep(3000); } } @@ -294,7 +295,7 @@ void MainWidget::checkForPowerOff(){ sysPara->para.gearPumpValue = 0; sysPara->devOp->WriteMoterPump(); } -// this->setRunStatus(tr("正在准备关机,请等待%1秒...............").arg(i*3)); hlp + this->setRunStatus(tr("正在准备关机,请等待%1秒...").arg(i*3)); MySleep(3000); } } @@ -303,8 +304,8 @@ void MainWidget::checkForPowerOff(){ sysPara->para.gearPumpValue=gearPumpValue_backup; sysPara->para.reclaimPumpPWMWidth = reclaimPumpPWMWidth_backup; sysPara->devOp->controlCompressPump(false); -// setRunStatus(tr("准备关机......")); hlp - qDebug()<<"准备关机"; + setRunStatus(tr("准备关机...")); + sysPara->para.totalProductCnt +=sysPara->status.totalProductCnt; sysPara->devOp->clearProductCnt(3 | 0x10);//总产器计数器立即清零 sysPara->para.ReadFileErrorCnt=0; @@ -328,7 +329,7 @@ static int numOfPowerOffCMD = 0; void MainWidget::sendPowerOffCmd(){ if(++numOfPowerOffCMD == 6){ sysPara->devOp->color_flag = 2; -// setRunStatus(tr("关机失败!!!")); hlp + setRunStatus(tr("关机失败!!!")); timerPowerOff->stop(); numOfPowerOffCMD = 0; return; @@ -618,7 +619,7 @@ void MainWidget::PreviewPressed(){ // var //qDebug() <<"VarNum"<8){ -// setRunStatus(tr("变量数大于8个,某些变量将不起作用!!!")); hlp + setRunStatus(tr("变量数大于8个,某些变量将不起作用!!!")); strTitle= tr("变量数大于8个,某些变量将不起作用!!!"); strTitle.append("\r\n"); strTitle.append(tr("请减少信息中的变量(或计数器)数量.")); @@ -846,17 +847,7 @@ void MainWidget::ontextEdittextChanged() void MainWidget::setRunStatus(QString str){ -// switch(sysPara->devOp->color_flag){ -// case 1: -// ui.labelRunStatus->setStyleSheet("color:yellow"); -// break; -// case 2: -// ui.labelRunStatus->setStyleSheet("color:red"); -// break; -// default: -// ui.labelRunStatus->setStyleSheet("color:black"); -// break; -// } + ui.lb_nozzleState->setText(str); } @@ -909,13 +900,6 @@ int MainWidget::searchQrVar(){ sysPara->para.qrOption.width=sysPara->print.QRvars[varNum].width = rx.cap(3).toInt(&ok);// *(sysPara->status.addSpace && type==9 ?2:1) ; sysPara->para.qrOption.height =sysPara->print.QRvars[varNum].height = rx.cap(4).toInt(&ok); sysPara->print.QRvars[varNum].startRowPos = sysPara->print.QRvars[varNum].endRowPos-sysPara->print.QRvars[varNum].height; - - //qDebug()<<"type:"<print.QRvars[varNum].type<status.QRvariNum - // <print.QRvars[varNum].startColPos<print.QRvars[varNum].startRowPos<print.QRvars[varNum].endRowPos - // <print.QRvars[varNum].width<print.QRvars[varNum].height - // <status. waitHightVolOff = 1; sysPara->saveParaToFile(); // 将相关配置保存 @@ -1772,6 +1756,25 @@ int MainWidget::getCurrPrintStatus() return printStatus; } +void MainWidget::setReclaimStatus(bool isOpen, int rate) +{ + if (!sysPara->devOp->isReclaimTankOpenEnable()) { + QString str = isOpen? tr("停止开启") : tr("停止关闭"); + setRunStatus(str); + return; + }; + + if (isOpen) { + QString str = rate == 100? tr("喷嘴已开启"):tr("喷嘴开启中"); + ui.lb_RightBtn->setText(str); + ui.lb_LeftBtn->setText(tr("喷嘴关闭")); + } else { + QString str = rate == 0? tr("喷嘴已关闭"):tr("喷嘴关闭中"); + ui.lb_LeftBtn->setText(str); + ui.lb_RightBtn->setText(tr("喷嘴开启")); + } +} + static int mainInkPumpCtrlStatus = 0; static int mainInkPumpCtrlCnt = 0; //100ms 为单位 @@ -1781,7 +1784,7 @@ void MainWidget::airPushingProcess() if (sysPara->status.airPushing) { //qDebug()<< "start airPushingProcess "<status.airPushingOnTime; // 执行排气 7 秒 -// setRunStatus(tr("正在排气 ...............")); hlp + setRunStatus(tr("正在排气...")); ++sysPara->status.airPushingOnTime; if(sysPara->status.airPushingOnTime >= 50) { static int delayCount = 0; @@ -1867,7 +1870,8 @@ void MainWidget::reclaimTanOpen() sysPara->devOp->controlReclaimTankOpen(!sysPara->devOp->isReclaimTankOpenEnable()); sysPara->devOp->highVoltageCtrl(0); /*回收槽动作的时候务必关高压*/ // sysPara->status.reclaimTankstatus = 1; - setRunStatus(sysPara->devOp->isReclaimTankOpenEnable()?tr("正在打开回收槽..."):tr("停止打开")); +// setRunStatus(sysPara->devOp->isReclaimTankOpenEnable()?tr("正在打开回收槽..."):tr("停止打开")); + setReclaimStatus(true, 0); if (!sysPara->para.reclaimTankTime) { // LogInfo::setRunStatusText(tr("警告!回收槽开关时间未设置!")); } @@ -1885,33 +1889,53 @@ void MainWidget::reclaimTanOpen() void MainWidget::initSheet() { // 仅当前按钮生效 - ui.m_StartBtn->setStyleSheet( - R"( - QPushButton { - background-color: #1e8449; - color: black; - border-radius: 5px; - } - QPushButton:disabled { - background-color: #bdc3c7; /* 灰色背景 */ - color: #7f8c8d; /* 灰色文字 */ - border: 1px solid #95a5a6; /* 灰色边框 */ - } - )"); + QString startBtnSheet = R"( + QPushButton { + background-color: #1e8449; + color: black; + border-radius: 5px; + } + QPushButton:disabled { + background-color: #bdc3c7; /* 灰色背景 */ + color: #7f8c8d; /* 灰色文字 */ + border: 1px solid #95a5a6; /* 灰色边框 */ + } + )"; - ui.m_StopBtn->setStyleSheet( - R"( - QPushButton { - background-color: #e74c3c; - color: black; - border-radius: 5px; - } - QPushButton:disabled { - background-color: #bdc3c7; /* 灰色背景 */ - color: #7f8c8d; /* 灰色文字 */ - border: 1px solid #95a5a6; /* 灰色边框 */ - } - )"); + ui.m_StartBtn->setStyleSheet(startBtnSheet); + + QString stopBtnSheet = R"( + QPushButton { + background-color: #e74c3c; + color: black; + border-radius: 5px; + } + QPushButton:disabled { + background-color: #bdc3c7; /* 灰色背景 */ + color: #7f8c8d; /* 灰色文字 */ + border: 1px solid #95a5a6; /* 灰色边框 */ + } + )"; + + ui.m_StopBtn->setStyleSheet(stopBtnSheet); + + QString btnSheet = R"( + QPushButton:disabled { + background-color: #bdc3c7; /* 灰色背景 */ + color: #7f8c8d; /* 灰色文字 */ + border: 1px solid #95a5a6; /* 灰色边框 */ + } + )"; + ui.m_RightBtn->setStyleSheet(btnSheet); + ui.m_LeftBtn->setStyleSheet(btnSheet); + + QString lbSheet = R"( + QLabel { + border: 1px solid #95a5a6; /* 灰色边框 */ + } + )"; + ui.lb_LeftBtn->setStyleSheet(lbSheet); + ui.lb_RightBtn->setStyleSheet(lbSheet); } @@ -2022,7 +2046,8 @@ void MainWidget::on_m_LeftBtn_clicked() enablePrintButton(SIMULATE_PRINTING_MODE); sysPara->devOp->highVoltageCtrl(0); // sysPara->status.reclaimTankstatus = 2; - setRunStatus(sysPara->devOp->isReclaimTankCloseEnable()?tr("正在关闭回收槽..."):tr("停止关闭")); +// setRunStatus(sysPara->devOp->isReclaimTankCloseEnable()?tr("正在关闭回收槽..."):tr("停止关闭")); + setReclaimStatus(false, 100); if(!sysPara->para.reclaimTankTime){ // LogInfo::setRunStatusText(tr("警告!回收槽开关时间未设置!")); } @@ -2695,7 +2720,7 @@ void MainWidget::onPreviewScene() } if(TempVarNum>MAX_VARI_NUM){ -// setRunStatus(tr("变量数大于8个,某些变量将不起作用!!!")); hlp + setRunStatus(tr("变量数大于8个,某些变量将不起作用!!!")); strTitle= tr("变量数大于8个,某些变量将不起作用!!!"); strTitle.append("\r\n"); strTitle.append(tr("请减少信息中的变量(或计数器)数量.")); @@ -3270,7 +3295,7 @@ void MainWidget::RefreshStatusLight(){//100ms // on_pushButtonPausePrint_pressed(); on_m_StopBtn_clicked(); LogInfo::setRunStatusText(tr("高压故障,暂停打印")); -// setRunStatus(tr("高压故障,暂停打印"));hlp + setRunStatus(tr("高压故障,暂停打印")); strTitle = tr("高压故障,暂停打印."); @@ -3288,7 +3313,7 @@ void MainWidget::RefreshStatusLight(){//100ms on_m_LeftBtn_clicked(); sysPara->status.reclaimTankBlockedAppending=1; LogInfo::setRunStatusText(tr("高压故障,关回收槽")); -// setRunStatus(tr("高压故障,关回收槽和墨线")); hlp + setRunStatus(tr("高压故障,关回收槽和墨线")); } sysPara->status.HVFaultCloseEn=1; } @@ -3341,10 +3366,10 @@ void MainWidget::RefreshStatusLight(){//100ms // on_pushButtonReclaimTankClose_pressed(); on_m_LeftBtn_clicked(); LogInfo::setRunStatusText(tr("回收故障,关闭回收槽,关墨线")); -// setRunStatus(tr("回收故障,关闭回收槽,关墨线")); hlp + setRunStatus(tr("回收故障,关闭回收槽,关墨线")); } } -// else setRunStatus(tr("回收故障.")); hlp + else setRunStatus(tr("回收故障.")); } else @@ -3359,32 +3384,22 @@ void MainWidget::RefreshStatusLight(){//100ms else if(sysPara->status.lastRecycleWarn)sysPara->status.lastRecycleWarn--; } -// if(ui.labelRunStatus->text().length()<4){ -// if(startPrintingFlag ){ -// if(printintFlag) -// setRunStatus(tr("正在喷印...............")); -// else -// setRunStatus(tr("暂停喷印...............")); -// } -// } hlp +// if(startPrintingFlag ){ +// if(printintFlag) +// setRunStatus(tr("正在喷印...")); +// else +// setRunStatus(tr("暂停喷印...")); +// } + // 20160620 新增主界面显示:压力,粘度,隔膜位置,晶振电压数,相位 -// ui->labPress->setText(QString("%1/%2").arg(sysPara->status.PRESSURE).arg(sysPara->para.pressure)); -// ui->labViso->setText(QString("%1/%2").arg(sysPara->status.viscosity).arg(sysPara->para.viscosity) ); alarmStatus.pressValue = QString("%1/%2").arg(sysPara->status.PRESSURE).arg(sysPara->para.pressure); alarmStatus.visoValue = QString("%1/%2").arg(sysPara->status.viscosity).arg(sysPara->para.viscosity); if(sysPara->para.gearPumpEnable) { -// ui->labPosition->setText(QString("%1").arg(sysPara->status.gearPumpRunSpeed)); alarmStatus.gearPumpRunSpeed = QString("%1").arg(sysPara->status.gearPumpRunSpeed); } - else - { -// ui->labPosition->setText(QString("%1/%2").arg(sysPara->status.SEPTAL_POSITION).arg(sysPara->para.septalPostion) ); - } -// ui->labOscVol->setText(QString::number(sysPara->status.HV_DETOUT) + "/" + QString::number(sysPara->para.maxHighVoltageDAC)); -// ui->label_size->setText(tr("%1/%2/%3").arg(sysPara->status.sizeFPGA).arg(sysPara->status.sizequeueFPGA).arg(sysPara->status.sizeSTM32)); alarmStatus.highVol = QString::number(sysPara->status.HV_DETOUT) + "/" + QString::number(sysPara->para.maxHighVoltageDAC); alarmStatus.dataSize = QString("%1/%2/%3").arg(sysPara->status.sizeFPGA).arg(sysPara->status.sizequeueFPGA).arg(sysPara->status.sizeSTM32); @@ -3396,9 +3411,6 @@ void MainWidget::RefreshStatusLight(){//100ms bool MainWidget::updatePhaseIndicatorLight(){ if(sysPara==0) return 0; -// if(dlgMyWarringShowDlyCnt)dlgMyWarringShowDlyCnt--; -// if(dlgMyWarringShowDlyCnt==1) dlgMyWarring.hide(); - /*------------------------------------------喷头盖未关或回收槽未全部打开的时候不报相位故障-------------------------------------------------*/ if((!sysPara->status.flight_tm_error && !sysPara->status.detect_phase_error) || (sysPara->status.statWarn & WARN_STATUS_HDINT) || !sysPara->status.reclainTankReachEnd){ //故障后必须等手动按故障恢复才会继续 @@ -3416,7 +3428,6 @@ bool MainWidget::updatePhaseIndicatorLight(){ sysPara->status.phaseErrorCnt ++ ; else { if(!sysPara->status.lastPhaseFault){ -// ui->labelStatusChargefault->setPixmap(QPixmap(QString::fromUtf8(":/image/ALARMRed.PNG"))); alarmStatus.chargeFault = DEV_STATUS_RED; sysPara->status.lastPhaseFault = 1; if(sysPara->status.flight_tm_error) @@ -3434,7 +3445,7 @@ bool MainWidget::updatePhaseIndicatorLight(){ sysPara->status.powerOffAfterPhaseFaultAppending = 1; _on_pushButtonPowerOff_pressed(false); LogInfo::setRunStatusText(tr("相位故障,准备关机")); -// setRunStatus(tr("相位故障,准备关机"));hlp + setRunStatus(tr("相位故障,准备关机")); strTitle = tr("相位故障,准备关机"); @@ -3446,7 +3457,7 @@ bool MainWidget::updatePhaseIndicatorLight(){ // on_pushButtonPausePrint_pressed(); on_m_StopBtn_clicked(); LogInfo::setRunStatusText(tr("相位故障,暂停打印")); -// setRunStatus(tr("相位故障,暂停打印")); hlp + setRunStatus(tr("相位故障,暂停打印")); strTitle = tr("相位故障,暂停打印"); } @@ -3455,7 +3466,7 @@ bool MainWidget::updatePhaseIndicatorLight(){ sysPara->devOp->printCtrl(PRINT_CTRL_DAC_DISABLE); sysPara->status.DACDisable = true; LogInfo::setRunStatusText(tr("相位故障,屏蔽DAC输出")); -// setRunStatus(tr("相位故障,屏蔽充电")); hlp + setRunStatus(tr("相位故障,屏蔽充电")); strTitle = tr("相位故障,屏蔽充电"); } @@ -3469,7 +3480,7 @@ bool MainWidget::updatePhaseIndicatorLight(){ bool MainWidget::eventFilter(QObject *watched, QEvent *event) { if (event->type() == QEvent::MouseButtonDblClick) { - //todo 双击事件,设置总数xxx,打印该数量后停止 + //双击事件,设置总数xxx,打印该数量后停止 if (watched == ui.sub3 || watched == ui.labelProductCnt) { if (m_setNumDlg) { m_setNumDlg->show(); @@ -3495,7 +3506,7 @@ void MainWidget::onLabelFaultRusumePressed(){ sysPara->status.compressPumpError = false; sysPara->status.compressPumpRunTmCnt = 0; sysPara->devOp->resumeFault(); -// ui.labelRunStatus->clear(); hlp + ui.lb_nozzleState->clear(); sysPara->status.beeperOnFlag = false; sysPara->devOp->controlBeeper(false); sysPara->status.heaterONTimeCnt = 0; //加热块计数清零 diff --git a/mainwidget.h b/mainwidget.h index 9efa5dc..2639b03 100644 --- a/mainwidget.h +++ b/mainwidget.h @@ -80,6 +80,12 @@ public: void enableReclaimCtrlButton(bool); void enablePrintButton(bool); int getCurrPrintStatus(); + /** + * @brief 设置回收槽开关状态 + * @param isOpen true:开;false:关 + * @param rate 回收槽开启程度,0~100; + */ + void setReclaimStatus(bool isOpen, int rate = 0); void updateSysStatusToUI(); //重载 //Mainwindow获取机器总状态 diff --git a/runtimectrl.cpp b/runtimectrl.cpp new file mode 100644 index 0000000..11dd4d4 --- /dev/null +++ b/runtimectrl.cpp @@ -0,0 +1,176 @@ +#include "LogInfo.h" +#include "runtimectrl.h" + +#include + +RunTimeCtrl::RunTimeCtrl() +{ + init(); +} + +RunTimeCtrl::~RunTimeCtrl() +{ + m_checkTimer->stop(); + m_alertTimer->stop(); + delete m_checkTimer; + delete m_alertTimer; +} + +void RunTimeCtrl::start() +{ + slt_checkRunTime(); + m_checkTimer->start(1000 * 60 * 5); + m_runTimer->start(1000); +} + +void RunTimeCtrl::stop() +{ + m_checkTimer->stop(); + m_alertTimer->stop(); + m_runTimer->stop(); +} + +void RunTimeCtrl::setAlertInterval(qint64 minutes) +{ + if (minutes > 0) { + m_alertIntervalMinutes = minutes; + m_alertTimer->stop(); + m_alertTimer->start(m_alertIntervalMinutes * 60 * 1000); + } +} + +qint64 RunTimeCtrl::getElapsedSeconds() const +{ + return m_elapsedSeconds; +} + +qint64 RunTimeCtrl::getTotalSeconds() const +{ + return m_totalSeconds; +} + +//5min +void RunTimeCtrl::slt_checkRunTime() +{ + // 检查运行时间 || 检查保养时间 + if (checkRunTime() || checkTimeoutDay()) { + // 立即发送第一次提示 + emit sig_alertTimeout(); + + // 启动定时提示器 + m_alertTimer->start(m_alertIntervalMinutes * 60 * 1000); + } else { + m_alertTimer->stop(); + } +} + +void RunTimeCtrl::slt_recodeTime() +{ + m_elapsedSeconds++; + if (m_elapsedSeconds % 30 == 0) { + m_totalSeconds += 30; + m_para.runTime += 30; + emit sig_saveRunTime(); + + } +} + +void RunTimeCtrl::init() +{ + m_checkTimer = new QTimer(this); + m_alertTimer = new QTimer(this); + m_runTimer = new QTimer(this); + + // 每5分钟1次,检查运行时间 + connect(m_checkTimer, &QTimer::timeout, this, &RunTimeCtrl::slt_checkRunTime); + // 每 m_alertIntervalMinutes 分钟一次消息框提示 + connect(m_alertTimer, &QTimer::timeout, this, &RunTimeCtrl::sig_alertTimeout); + // 每30s,记录一次总时间 + connect(m_runTimer, &QTimer::timeout, this, &RunTimeCtrl::slt_recodeTime); +} + +bool RunTimeCtrl::checkRunTime() +{ + // 甲方要求提示越来越频繁 + // 168h 72h 24h + int runHours = m_totalSeconds/60.0/60.0; + if (runHours + 24 >= m_para.maintenanceHours) { + setAlertInterval(15); //15min + return true; + } + if (runHours + 72 >= m_para.maintenanceHours) { + setAlertInterval(60); //1h + return true; + } + if (runHours + 168 >= m_para.maintenanceHours) { + setAlertInterval(1); //3h + return true; + } + return false; +} + +bool RunTimeCtrl::checkTimeoutDay() +{ + return (timeoutDay < 30); +} + +// 读配置 初始化的时候调用 +void RunTimeCtrl::loadConfig(RFIDPara_t* para) +{ + QDate curDate = QDate::currentDate(); + unsigned int curDateInt = curDate.toString("yyMMdd").toInt(); + // 第一次初始化 + if(para->maintenanceDate == 0){ + para->maintenanceDate = curDateInt; + para->maintenanceInterval = 6; + QDate mtEndDate = curDate.addMonths(para->maintenanceInterval); + para->maintenanceEndDate = mtEndDate.toString("yyMMdd").toInt(); + para->runTime = 0; + para->maintenanceHours = 3000; + } + // 结束维护的天数 + QString mtEndDatestr = "20" + QString::number(para->maintenanceEndDate); + QDate mtEndDate = QDate::fromString(mtEndDatestr,"yyyyMMdd"); + timeoutDay = curDate.daysTo(mtEndDate); + + LogInfo::setRunStatusText(tr("mtDate: %1").arg(para->maintenanceDate)); + LogInfo::setRunStatusText(tr("mtInterval: %1").arg(para->maintenanceInterval)); + LogInfo::setRunStatusText(tr("mtEndDate: %1").arg(para->maintenanceEndDate)); + LogInfo::setRunStatusText(tr("mtFlag: %1").arg(para->needMaintenance)); + LogInfo::setRunStatusText(tr("timeoutDay: %1").arg(timeoutDay)); + LogInfo::setRunStatusText(tr("runTime: %1").arg(para->runTime)); + LogInfo::setRunStatusText(tr("maintenanceHours: %1").arg(para->maintenanceHours)); + if(timeoutDay <= 0 && !para->needMaintenance) + para->needMaintenance = true; + + emit sig_updateTimeoutDay(timeoutDay); + + m_para = *para; + m_totalSeconds = para->runTime; +} + +void RunTimeCtrl::updatePara(RFIDPara_t* para) +{ + QString mtDatestr = QString::number(para->maintenanceDate); + QDate mtDate = QDate::fromString(mtDatestr,"yyMMdd"); + QDate mtEndDate = mtDate.addMonths(para->maintenanceInterval); // 结束维护日期 + + para->maintenanceEndDate = mtEndDate.toString("yyMMdd").toInt(); + LogInfo::setRunStatusText(tr("mtDate1: %1").arg(para->maintenanceDate)); + LogInfo::setRunStatusText(tr("mtInterval1: %1").arg(para->maintenanceInterval)); + LogInfo::setRunStatusText(tr("mtEndDate1: %1").arg(para->maintenanceEndDate)); + LogInfo::setRunStatusText(tr("mtFlog1: %1").arg(para->needMaintenance)); + + m_para = *para; +} + +void RunTimeCtrl::authorizationAccepted(RFIDPara_t* para) +{ + para->maintenanceDate = m_para.maintenanceDate; + para->maintenanceInterval = m_para.maintenanceInterval; + para->maintenanceEndDate = m_para.maintenanceEndDate; + para->runTime = m_para.runTime; + para->maintenanceHours = m_para.maintenanceHours; + updatePara(para); +} + diff --git a/runtimectrl.h b/runtimectrl.h new file mode 100644 index 0000000..211f8bd --- /dev/null +++ b/runtimectrl.h @@ -0,0 +1,86 @@ +#ifndef RUNTIMECTRL_H +#define RUNTIMECTRL_H + +#include +#include +#include +#include +#include "SysPara.h" + +/** + 当前类用于统计软件运行时间、到期提醒间隔 + 设备保养提醒 +*/ +class RunTimeCtrl : public QObject +{ + Q_OBJECT + +public: + static RunTimeCtrl* instance() { + static RunTimeCtrl ins; + return &ins; + } + + ~RunTimeCtrl(); + + // 启动计时 + void start(); + + // 停止计时 + void stop(); + + // 设置提示间隔(单位:分钟,默认5分钟) + void setAlertInterval(qint64 minutes); + + // 获取本次运行时间(秒) + qint64 getElapsedSeconds() const; + + // 获取已运行时间(秒) + qint64 getTotalSeconds() const; + + // 初始化加载参数 + void loadConfig(RFIDPara_t* para); + + // 更新参数 + void updatePara(RFIDPara_t* para); + + // 授权时 + void authorizationAccepted(RFIDPara_t* para); +signals: + void sig_alertTimeout(); + + void sig_updateTimeoutDay(int days); + + void sig_saveRunTime(); + +private slots: + void slt_checkRunTime(); + void slt_recodeTime(); + +private: + RunTimeCtrl(); + + QTimer *m_checkTimer = nullptr; // 检查计时器 + QTimer *m_alertTimer = nullptr; // 提示计时器 + QTimer *m_runTimer = nullptr; // 运行计时器,记录运行时间和更新总时间 + QDateTime m_startTime; // 开始时间 + QDateTime m_stopTime; // 停止时间 + unsigned int m_stopTimeHours = 0; // 停止时间(小时) + int m_alertIntervalMinutes = 180; // 提示间隔(分钟) + bool m_isAlter = false; // 启动提示计时器标志 + quint64 m_elapsedSeconds = 0; // 本次运行的时间 + quint64 m_totalSeconds = 0; // 总运行时间 30s更新一次 + + // todo 后续一个相关功能建立一个结构体和独立定时器 + + RFIDPara_t m_para; + int timeoutDay = 0; + + void init(); + + bool checkRunTime(); + + bool checkTimeoutDay(); +}; + +#endif // RUNTIMECTRL_H diff --git a/scene/BarcodeEditor.cpp b/scene/BarcodeEditor.cpp index 05638e3..4161d3e 100644 --- a/scene/BarcodeEditor.cpp +++ b/scene/BarcodeEditor.cpp @@ -87,7 +87,16 @@ BarcodeEditor::~BarcodeEditor() delete ui; } -void BarcodeEditor::bindViewModel(const BarcodeViewModel& vm) +void BarcodeEditor::bindSysPara(SysPara *sysPara) +{ + if (!sysPara) { + qWarning() << "BarcodeEditor::bindSysPara: null pointer passed, ignored"; + return; + } + m_sysPara = sysPara; +} + +void BarcodeEditor::bindViewModel(const BarcodeViewModel &vm) { m_vm = vm; @@ -221,7 +230,7 @@ BarcodeViewModel BarcodeEditor::viewModel() void BarcodeEditor::restoreViewModel() { - m_vm.generalSettingsVM = ItemGeneralSettingsVM(); + m_vm.generalSettingsVM = TextItemModel(); m_vm.contentPattern = ""; m_vm.counterViewModel = CounterViewModel(); m_vm.dateViewModel = DateItemModel::createDefaultReplaceModel(); @@ -238,7 +247,12 @@ void BarcodeEditor::applyCounterConfigToSysPara() { if(!m_vm.contentPattern.contains("{c}")) return; - + + if (!m_sysPara) { + qWarning() << "BarcodeEditor::applyCounterConfigToSysPara: m_sysPara is null, skipping"; + return; + } + CounterEditorVM cnt = m_counterEditor->viewModel(); if(cnt.counterType == COUNTER_TYPE_1) { m_sysPara->para.cnt1StartValue = cnt.counter1.startValue; diff --git a/scene/BarcodeEditor.h b/scene/BarcodeEditor.h index 009b0cc..5a23acd 100644 --- a/scene/BarcodeEditor.h +++ b/scene/BarcodeEditor.h @@ -26,7 +26,7 @@ enum BarcodeType { * 仅当 contentPattern 含有相应变量时,counterViewModel / dateViewModel 字段才有意义。 */ struct BarcodeViewModel { - ItemGeneralSettingsVM generalSettingsVM; // 通用设置视图模型 + TextItemModel generalSettingsVM; // 通用设置视图模型 QString contentPattern; // 条形码内容模版,例如 "ABC{t}{c1}" CounterViewModel counterViewModel; // 计数器视图模型 DateItemModel dateViewModel; // 日期视图模型 @@ -104,7 +104,7 @@ public: * * @param sysPara */ - void bindSysPara(SysPara* sysPara) { m_sysPara = sysPara; } + void bindSysPara(SysPara* sysPara); /** * @brief 注入条形码视图模型(纯结构体,按值拷贝) diff --git a/scene/DlgBarcodeFormat.ui b/scene/DlgBarcodeFormat.ui index aa16b33..57c234d 100644 --- a/scene/DlgBarcodeFormat.ui +++ b/scene/DlgBarcodeFormat.ui @@ -126,7 +126,7 @@ QSpinBox::down-arrow { - 300 + 280 150 60 31 @@ -173,9 +173,9 @@ QSpinBox::down-arrow { - 190 - 150 - 71 + 70 + 230 + 111 31 @@ -213,10 +213,10 @@ QSpinBox::down-arrow { - 330 - 240 - 83 - 16 + 280 + 230 + 150 + 31 @@ -240,7 +240,7 @@ QSpinBox::down-arrow { 70 150 - 71 + 111 31 @@ -248,9 +248,9 @@ QSpinBox::down-arrow { - 300 + 280 70 - 81 + 111 31 @@ -271,8 +271,8 @@ QSpinBox::down-arrow { - 190 - 120 + 70 + 200 76 23 @@ -299,7 +299,7 @@ QSpinBox::down-arrow { 70 70 - 140 + 161 31 @@ -319,7 +319,7 @@ QSpinBox::down-arrow { - 300 + 280 40 76 23 @@ -335,7 +335,7 @@ QSpinBox::down-arrow { - 300 + 280 120 129 23 diff --git a/scene/ItemCommon.cpp b/scene/ItemCommon.cpp index 7f956fb..e9a9228 100644 --- a/scene/ItemCommon.cpp +++ b/scene/ItemCommon.cpp @@ -6,6 +6,7 @@ #include "BarCode/barcode.h" #include #include +#include /** * @brief 将libqrencode的QRcode结构渲染成QImage @@ -308,10 +309,15 @@ static QImage generateBarCodeImage(const QString &content, int barCodeType) return generateBarCodeImage(content, vm); } -QString generateTxtFromDateItemModel(const DateItemModel &model, const QDateTime &time) +QString ItemUtils::generateTxtFromDateItemModel(const DateItemModel &model, const QDateTime &time) { QString result = model.datetimePattern; - + + if (!time.isValid()) { + qWarning() << "generateTxtFromDateItemModel: invalid QDateTime passed"; + return result; + } + // 应用偏移量 QDateTime applyDateTime = time; if(model.monthsOffset != 0) { @@ -341,19 +347,37 @@ QString generateTxtFromDateItemModel(const DateItemModel &model, const QDateTime // 匹配两位数月份 MM i = result.indexOf("MM"); if(i != -1) { - result.replace(i, 2, model.monthsMap[applyDateTime.date().month() - 1]); + int monthIdx = applyDateTime.date().month() - 1; + if (monthIdx >= 0 && monthIdx < model.monthsMap.size()) { + result.replace(i, 2, model.monthsMap[monthIdx]); + } else { + qWarning() << "generateTxtFromDateItemModel: monthsMap index out of range:" << monthIdx; + result.replace(i, 2, QString::number(applyDateTime.date().month()).rightJustified(2, '0')); + } } // 匹配两位数日期 dd i = result.indexOf("dd"); if(i != -1) { - result.replace(i, 2, model.daysMap[applyDateTime.date().day() - 1]); + int dayIdx = applyDateTime.date().day() - 1; + if (dayIdx >= 0 && dayIdx < model.daysMap.size()) { + result.replace(i, 2, model.daysMap[dayIdx]); + } else { + qWarning() << "generateTxtFromDateItemModel: daysMap index out of range:" << dayIdx; + result.replace(i, 2, QString::number(applyDateTime.date().day()).rightJustified(2, '0')); + } } // 匹配两位数小时 HH i = result.indexOf("HH"); if(i != -1) { - result.replace(i, 2, model.hoursMap[applyDateTime.time().hour()]); + int hourIdx = applyDateTime.time().hour(); + if (hourIdx >= 0 && hourIdx < model.hoursMap.size()) { + result.replace(i, 2, model.hoursMap[hourIdx]); + } else { + qWarning() << "generateTxtFromDateItemModel: hoursMap index out of range:" << hourIdx; + result.replace(i, 2, QString::number(applyDateTime.time().hour()).rightJustified(2, '0')); + } } // 匹配两位数分钟 mm @@ -373,7 +397,13 @@ QString generateTxtFromDateItemModel(const DateItemModel &model, const QDateTime // 格式化周几 w i = result.indexOf("w"); if (i != -1) { - result.replace(i, 1, model.weeksMap[applyDateTime.date().dayOfWeek() - 1]); + int weekIdx = applyDateTime.date().dayOfWeek() - 1; + if (weekIdx >= 0 && weekIdx < model.weeksMap.size()) { + result.replace(i, 1, model.weeksMap[weekIdx]); + } else { + qWarning() << "generateTxtFromDateItemModel: weeksMap index out of range:" << weekIdx; + result.replace(i, 1, QString::number(applyDateTime.date().dayOfWeek())); + } } // 格式化年中周数 c @@ -386,7 +416,7 @@ QString generateTxtFromDateItemModel(const DateItemModel &model, const QDateTime } -QString generateTxtFromBarcodeViewModel(const BarcodeViewModel &vm, const std::array counterValues, const QDateTime &time) +QString ItemUtils::generateTxtFromBarcodeViewModel(const BarcodeViewModel &vm, const std::array counterValues, const QDateTime &time) { QString txt = vm.contentPattern; auto pos = vm.contentPattern.indexOf("{t}"); @@ -424,7 +454,7 @@ QString generateTxtFromBarcodeViewModel(const BarcodeViewModel &vm, const std::a * - BARCODE_TYPE_BARCODE: DlgBarcodeFormatVM(完整配置)或 int(条形码类型索引,使用默认值) * @return QImage 生成的图像;失败返回空QImage */ -QImage generateBarcodeImage(const QString &content, BarcodeType type, const QVariant &format) +QImage ItemUtils::generateBarcodeImage(const QString &content, BarcodeType type, const QVariant &format) { if (content.isEmpty()) { return QImage(); @@ -516,7 +546,7 @@ end: return img.copy(clipRect); } -QImage txtToImage(const QString &txt, const QFont &font, const QColor &fgColor, const QColor &bgColor) +QImage ItemUtils::txtToImage(const QString &txt, const QFont &font, const QColor &fgColor, const QColor &bgColor) { if (txt.isEmpty()) { return QImage(); diff --git a/scene/ItemCommon.h b/scene/ItemCommon.h index 6f81ab6..b6147d9 100644 --- a/scene/ItemCommon.h +++ b/scene/ItemCommon.h @@ -9,68 +9,71 @@ #include #include -/** - * @brief 根据日期视图模型和时间生成字符串 - * @param model 包含日期格式模版和相关配置的视图模型 - * @param time 用于生成字符串的时间 - * @return QString 生成的字符串 - * @remark - * 该函数根据 model.datetimePattern 中的格式模版生成字符串,支持以下格式: - * - yyyy: 四位数年份,支持替换为自定义字符串(通过 model.yearsMap) - * - YY: 两位数年份 - * - MM: 两位数月份,支持替换为自定义字符串(通过 model.monthsMap) - * - dd: 两位数日期,支持替换为自定义字符串(通过 model.daysMap) - * - HH: 两位数小时,支持替换为自定义字符串(通过 model.hoursMap) - * - mm: 两位数分钟 - * - ss: 两位数秒钟 - * - w: 星期几,支持替换为自定义字符串(通过 model.weeksMap) - * - c: 年中周数 - */ -QString generateTxtFromDateItemModel(const DateItemModel& model, const QDateTime& time); -/** - * @brief 根据条形码视图模型的内容模版生成字符串, - * 生成的字符串可用于创建条形码或二维码 - * - * @example - * input: "ABC_{c}_{t}" - * output: "ABC_1230_2026/04/30" - * - * @remark - * 函数根据vm中的 contentPattern 是否存在变量模版,如果存在计数器变量,则使用 counterViewModel 格式化,同理也处理时间变量。 - * - * @param vm 包含格式化所需的内容模版及相关配置 - * @param counterValues 所有计数器的当前值,counterValues[0] 为计数器1的当前值,counterValues[1]为计数器2的当前值...... - * @param time 要用于格式化的时间,通常是当前时间 - * @return QString 格式化后的字符串 - * - */ -QString generateTxtFromBarcodeViewModel(const BarcodeViewModel& vm, const std::array counterValues, const QDateTime& time); +namespace ItemUtils +{ + /** + * @brief 根据日期视图模型和时间生成字符串 + * @param model 包含日期格式模版和相关配置的视图模型 + * @param time 用于生成字符串的时间 + * @return QString 生成的字符串 + * @remark + * 该函数根据 model.datetimePattern 中的格式模版生成字符串,支持以下格式: + * - yyyy: 四位数年份,支持替换为自定义字符串(通过 model.yearsMap) + * - YY: 两位数年份 + * - MM: 两位数月份,支持替换为自定义字符串(通过 model.monthsMap) + * - dd: 两位数日期,支持替换为自定义字符串(通过 model.daysMap) + * - HH: 两位数小时,支持替换为自定义字符串(通过 model.hoursMap) + * - mm: 两位数分钟 + * - ss: 两位数秒钟 + * - w: 星期几,支持替换为自定义字符串(通过 model.weeksMap) + * - c: 年中周数 + */ + QString generateTxtFromDateItemModel(const DateItemModel& model, const QDateTime& time); -/** - * @brief 根据条形码类型和内容生成条形码或二维码图像 - * @param content 已格式化的文本内容 - * @param type 条码类型 - * @param format 配置参数 - * @return QImage 生成的图像;如果失败返回空图像 - * @note - * format 参数类型: - * - BARCODE_TYPE_QRCODE: DlgQrcodeFormatVM 或 int - * - BARCODE_TYPE_BARCODE: DlgBarcodeFormatVM 或 int - * 如果 format 是 int 类型, 对于 QR Code,0 表示 Data Matrix,1 表示 QR Code;对于条形码,int 值对应 DlgBarcodeFormatVM 中 type 的索引。 - * 如果 format 是 int 类型,则使用默认配置并根据 int 值选择二维码或条形码的子类型;如果 format 是对应的 VM 类型,则使用其中的详细配置。 - */ -QImage generateBarcodeImage(const QString& content, BarcodeType type, const QVariant& format); + /** + * @brief 根据条形码视图模型的内容模版生成字符串, + * 生成的字符串可用于创建条形码或二维码 + * + * @example + * input: "ABC_{c}_{t}" + * output: "ABC_1230_2026/04/30" + * + * @remark + * 函数根据vm中的 contentPattern 是否存在变量模版,如果存在计数器变量,则使用 counterViewModel 格式化,同理也处理时间变量。 + * + * @param vm 包含格式化所需的内容模版及相关配置 + * @param counterValues 所有计数器的当前值,counterValues[0] 为计数器1的当前值,counterValues[1]为计数器2的当前值...... + * @param time 要用于格式化的时间,通常是当前时间 + * @return QString 格式化后的字符串 + * + */ + QString generateTxtFromBarcodeViewModel(const BarcodeViewModel& vm, const std::array counterValues, const QDateTime& time); -/** - * @brief 将文本转换为图像 - * @param txt 要转换的文本 - * @param font 文本使用的字体 - * @param fgColor 文本颜色,默认为黑色 - * @param bgColor 背景颜色,默认为白色 - * @return QImage 转换后的图像 - * @note 返回的字符串图像会裁剪至最小边界以节省空间。例如字符串"aaa"的高度会比"bbbjjj"小,因为前者没有上下行部分。 - */ -QImage txtToImage(const QString& txt, const QFont& font, const QColor& fgColor = Qt::black, const QColor& bgColor = Qt::white); + /** + * @brief 根据条形码类型和内容生成条形码或二维码图像 + * @param content 已格式化的文本内容 + * @param type 条码类型 + * @param format 配置参数 + * @return QImage 生成的图像;如果失败返回空图像 + * @note + * format 参数类型: + * - BARCODE_TYPE_QRCODE: DlgQrcodeFormatVM 或 int + * - BARCODE_TYPE_BARCODE: DlgBarcodeFormatVM 或 int + * 如果 format 是 int 类型, 对于 QR Code,0 表示 Data Matrix,1 表示 QR Code;对于条形码,int 值对应 DlgBarcodeFormatVM 中 type 的索引。 + * 如果 format 是 int 类型,则使用默认配置并根据 int 值选择二维码或条形码的子类型;如果 format 是对应的 VM 类型,则使用其中的详细配置。 + */ + QImage generateBarcodeImage(const QString& content, BarcodeType type, const QVariant& format); + /** + * @brief 将文本转换为图像 + * @param txt 要转换的文本 + * @param font 文本使用的字体 + * @param fgColor 文本颜色,默认为黑色 + * @param bgColor 背景颜色,默认为白色 + * @return QImage 转换后的图像 + * @note 返回的字符串图像会裁剪至最小边界以节省空间。例如字符串"aaa"的高度会比"bbbjjj"小,因为前者没有上下行部分。 + */ + QImage txtToImage(const QString& txt, const QFont& font, const QColor& fgColor = Qt::black, const QColor& bgColor = Qt::white); +} #endif // _ITEM_COMMON_H_ diff --git a/scene/ItemGeneralSettings.cpp b/scene/ItemGeneralSettings.cpp index 2764469..a5adc6a 100644 --- a/scene/ItemGeneralSettings.cpp +++ b/scene/ItemGeneralSettings.cpp @@ -38,7 +38,7 @@ void ItemGeneralSettings::edit(PicTextItem *item) m_currItem = item; // 从item快照创建ViewModel(如果item为空,使用默认值) - setViewModel(ItemGeneralSettingsVM::fromItem(item)); + setViewModel(TextItemModel::fromItem(item)); } void ItemGeneralSettings::initUI() @@ -53,7 +53,7 @@ void ItemGeneralSettings::initUI() ui->counterIDSpinBox->setValue(0); } -void ItemGeneralSettings::setViewModel(const ItemGeneralSettingsVM &vm) +void ItemGeneralSettings::setViewModel(const TextItemModel &vm) { m_vmSnapshot = vm; m_vm = vm; diff --git a/scene/ItemGeneralSettings.h b/scene/ItemGeneralSettings.h index 68abf24..af98234 100644 --- a/scene/ItemGeneralSettings.h +++ b/scene/ItemGeneralSettings.h @@ -11,46 +11,6 @@ namespace Ui { class ItemGeneralSettings; } -/** - * @brief 图元通用属性的ViewModel - * - * 目的:解耦UI编辑器与PicTextItem,支持灵活的数据绑定和批量操作。 - * UI修改属性时先更新VM,再决定何时应用到item(实时或延迟)。 - */ -struct ItemGeneralSettingsVM { - // 图元类型,用于判断是否显示字间距 - SourceType sourceType = SourceType::UNKNOWN; - - ItemDirectionType direction = NORMAL; - int boldMultiple = 1; - int letterSpace = 0; - bool colorReversal = false; - - std::function imageGenerator; // 图片生成函数 - - // 便利方法:从PicTextItem快照创建VM - static ItemGeneralSettingsVM fromItem(PicTextItem *item) { - ItemGeneralSettingsVM vm; - if (item) { - vm.sourceType = item->sourceType(); - vm.direction = item->direction(); - vm.boldMultiple = item->boldMultiple(); - vm.letterSpace = item->letterSpace(); - vm.colorReversal = item->colorReversal(); - } - return vm; - } - - // 检查是否有改动 - bool hasDifference(const ItemGeneralSettingsVM &other) const { - return sourceType != other.sourceType || - direction != other.direction || - boldMultiple != other.boldMultiple || - letterSpace != other.letterSpace || - colorReversal != other.colorReversal; - } -}; - class ItemGeneralSettings : public QWidget { Q_OBJECT @@ -72,14 +32,14 @@ public: * * @param vm */ - void setViewModel(const ItemGeneralSettingsVM& vm); + void setViewModel(const TextItemModel& vm); /** * @brief 获取当前ViewModel * * 调用者可以检查是否有改动,并决定是否应用 */ - ItemGeneralSettingsVM viewModel() const { return m_vm; } + TextItemModel viewModel() const { return m_vm; } /** * @brief 将ViewModel的属性应用到指定的PicTextItem @@ -117,10 +77,10 @@ private: PicTextItem* m_currItem = nullptr; // UI编辑的状态,独立于m_currItem - ItemGeneralSettingsVM m_vm; + TextItemModel m_vm; // 初始加载时的VM状态,用于检测改动 - ItemGeneralSettingsVM m_vmSnapshot; + TextItemModel m_vmSnapshot; QPainter m_painter; }; diff --git a/scene/PicDateItem.cpp b/scene/PicDateItem.cpp index c11dbdf..7bde8e3 100644 --- a/scene/PicDateItem.cpp +++ b/scene/PicDateItem.cpp @@ -26,7 +26,7 @@ void PicDateItem::setSource(QVariant var) if(m_model.datetimePattern.isEmpty()) return; - m_currDateTimeStr = generateTxtFromDateItemModel(m_model, QDateTime::currentDateTime()); + m_currDateTimeStr = ItemUtils::generateTxtFromDateItemModel(m_model, QDateTime::currentDateTime()); applyModify(); } @@ -47,13 +47,13 @@ bool PicDateItem::updateDatetimeStr() return false; if(m_currDateTimeStr.isEmpty()) { - m_currDateTimeStr = generateTxtFromDateItemModel(m_model, QDateTime::currentDateTime()); + m_currDateTimeStr = ItemUtils::generateTxtFromDateItemModel(m_model, QDateTime::currentDateTime()); applyModify(); return true; } auto now = QDateTime::currentDateTime(); - auto str = generateTxtFromDateItemModel(m_model, now); + auto str = ItemUtils::generateTxtFromDateItemModel(m_model, now); if(str == m_currDateTimeStr) { return false; } diff --git a/scene/ScheduleShiftsEditor.cpp b/scene/ScheduleShiftsEditor.cpp index 689bdef..c51b9e6 100644 --- a/scene/ScheduleShiftsEditor.cpp +++ b/scene/ScheduleShiftsEditor.cpp @@ -52,22 +52,20 @@ ScheduleShiftsEditor::~ScheduleShiftsEditor() delete ui; } -void ScheduleShiftsEditor::edit(PicScheduleShiftItem* item) +void ScheduleShiftsEditor::setItemModel(QVector schedulesModel, TextItemModel txtModel) { - m_backup.clear(); - m_generalSettings->edit(item); - if(item) { - item->saveAttrs(m_backup); - m_dataModel = item->schedules(); - } - else { - m_dataModel.clear(); - } + m_generalSettings->setViewModel(txtModel); + m_dataModel = schedulesModel; applyDataModel(); } -const QVector& ScheduleShiftsEditor::dataModel() const +TextItemModel ScheduleShiftsEditor::textItemModel() +{ + return m_generalSettings->viewModel(); +} + +const QVector& ScheduleShiftsEditor::scheduleModel() const { return m_dataModel; } @@ -79,10 +77,6 @@ PicScheduleShiftItem *ScheduleShiftsEditor::currEditItem() void ScheduleShiftsEditor::onBtnCloseClicked() { - if(currEditItem()) { - currEditItem()->setAttrs(m_backup); - } - emit rejected(); } diff --git a/scene/ScheduleShiftsEditor.h b/scene/ScheduleShiftsEditor.h index da8f4ff..3751a9e 100644 --- a/scene/ScheduleShiftsEditor.h +++ b/scene/ScheduleShiftsEditor.h @@ -35,7 +35,11 @@ public: void edit(PicScheduleShiftItem* item); - const QVector& dataModel() const; + void setItemModel(QVector schedulesModel, TextItemModel txtModel); + + TextItemModel textItemModel(); + + const QVector& scheduleModel() const; PicScheduleShiftItem* currEditItem(); @@ -59,8 +63,6 @@ private: Ui::ScheduleShiftsEditor *ui; QVector m_dataModel; ItemGeneralSettings* m_generalSettings = nullptr; - - QXmlStreamAttributes m_backup; }; #endif // SCHEDULESHIFTSEDITOR_H diff --git a/scene/piccodeitem.cpp b/scene/piccodeitem.cpp index 576b279..550b0cf 100644 --- a/scene/piccodeitem.cpp +++ b/scene/piccodeitem.cpp @@ -37,17 +37,23 @@ void PicCodeItem::setBarcodeViewModel(const BarcodeViewModel &vm) { m_vm = vm; m_currCodeTxt = ""; + setTextItemModel(m_vm.generalSettingsVM); updateVariants(); qInfo() << "Barcode model: \r\n" << qPrintable(BarcodeViewModel::toString(vm)); } BarcodeViewModel PicCodeItem::barcodeViewModel() { + m_vm.generalSettingsVM = textItemModel(); return m_vm; } bool PicCodeItem::updateVariants(const QVector counters) { + if (counters.size() < 2) { + qWarning() << "PicCodeItem::updateVariants: counters size insufficient:" << counters.size() << ", expected >= 2"; + return false; + } m_currCounterValues = counters; return updateVariants(); } @@ -70,10 +76,15 @@ void PicCodeItem::saveCustomAttrs(QXmlStreamAttributes &attrs) bool PicCodeItem::updateVariants() { - auto txt = generateTxtFromBarcodeViewModel(m_vm, {m_currCounterValues[0], m_currCounterValues[1]}, QDateTime::currentDateTime()); + if (m_currCounterValues.size() < 2) { + qWarning() << "PicCodeItem::updateVariants: m_currCounterValues size < 2, cannot generate barcode text"; + return false; + } + + auto txt = ItemUtils::generateTxtFromBarcodeViewModel(m_vm, {m_currCounterValues[0], m_currCounterValues[1]}, QDateTime::currentDateTime()); if(txt != m_currCodeTxt || m_currCodeTxt.isEmpty()) { m_currCodeTxt = txt; - m_codeImage = generateBarcodeImage(txt, m_vm.type, m_vm.format); + m_codeImage = ItemUtils::generateBarcodeImage(txt, m_vm.type, m_vm.format); applyModify(); return true; } diff --git a/scene/pictextitem.cpp b/scene/pictextitem.cpp index cd6644d..fcd0bd7 100644 --- a/scene/pictextitem.cpp +++ b/scene/pictextitem.cpp @@ -300,6 +300,19 @@ QImage PicTextItem::preview() { return m_itemImage; } +void PicTextItem::setTextItemModel(const TextItemModel &model) +{ + setLetterSpace(model.letterSpace); + setBoldMultiple(model.boldMultiple); + setDirection(model.direction); + setColorReversal(model.colorReversal); +} + +TextItemModel PicTextItem::textItemModel() +{ + return TextItemModel::fromItem(this); +} + //! [1] QVariant PicTextItem::itemChange(GraphicsItemChange change, const QVariant &value) @@ -441,3 +454,16 @@ QPointF PicTextItem::clampItemPos(const QPointF &p) return QPointF (std::min(qreal(scene()->width() - boundingRect().width()), std::max(0.0, p.x())), std::min(qreal(scene()->height() - boundingRect().height()), std::max(0.0, p.y()))); } + +TextItemModel TextItemModel::fromItem(PicTextItem *item) +{ + TextItemModel vm; + if (item) { + vm.sourceType = item->sourceType(); + vm.direction = item->direction(); + vm.boldMultiple = item->boldMultiple(); + vm.letterSpace = item->letterSpace(); + vm.colorReversal = item->colorReversal(); + } + return vm; +} diff --git a/scene/pictextitem.h b/scene/pictextitem.h index 25a1de4..965b234 100644 --- a/scene/pictextitem.h +++ b/scene/pictextitem.h @@ -42,6 +42,39 @@ enum SourceType{ COUNTER, }; +class PicTextItem; + +/** + * @brief 图元通用属性的ViewModel + * + * 目的:解耦UI编辑器与PicTextItem,支持灵活的数据绑定和批量操作。 + * UI修改属性时先更新VM,再决定何时应用到item(实时或延迟)。 + */ +struct TextItemModel { + // 图元类型,用于判断是否显示字间距 + SourceType sourceType = SourceType::UNKNOWN; + + ItemDirectionType direction = NORMAL; + int boldMultiple = 1; + int letterSpace = 0; + bool colorReversal = false; + + std::function imageGenerator; // 图片生成函数 + + // 便利方法:从PicTextItem快照创建VM + static TextItemModel fromItem(PicTextItem *item); + + // 检查是否有改动 + bool hasDifference(const TextItemModel &other) const { + return sourceType != other.sourceType || + direction != other.direction || + boldMultiple != other.boldMultiple || + letterSpace != other.letterSpace || + colorReversal != other.colorReversal; + } +}; + + class PicTextItem : public QGraphicsTextItem { Q_OBJECT @@ -121,6 +154,10 @@ public: */ QImage preview(); + void setTextItemModel(const TextItemModel& model); + + TextItemModel textItemModel(); + signals: void lostFocus(PicTextItem *item); void selectedChange(QGraphicsItem *item); diff --git a/setnumdlg.ui b/setnumdlg.ui index 65e2ac6..79d632f 100644 --- a/setnumdlg.ui +++ b/setnumdlg.ui @@ -11,7 +11,7 @@ - Dialog + 设置计数器 diff --git a/spanish.ts b/spanish.ts index b308349..52a4d4b 100644 --- a/spanish.ts +++ b/spanish.ts @@ -1,6 +1,163 @@ + + BarcodeEditor + + + Form + + + + + ✓ + + + + + ✕ + + + + + 整体设置 + + + + + + 条形码 + + + + + 内容 + + + + + 类型 + + + + + 二维码 + + + + + 条形码格式 + + + + + 嵌入 + + + + + 日期 + + + + + 计数器 + + + + + 条形码编辑 + + + + + CounterEditor + + + 重复数: + + + + + 起始值: + + + + + 结束值: + + + + + 当前值: + + + + + 增量值: + + + + + 计数器ID: + + + + + 计数器1 + + + + + 计数器2 + + + + + 计数器位数: + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + CounterVarSet @@ -9,155 +166,352 @@ - + 整体设置 - + 变量类型 - - + + 计数器1 - - + + 计数器2 - + 数字个数: - + 1 - + 2 - + 3 - + 4 - + 5 - + 6 - + 7 - + 8 - + 字符间距 - - + + ← - - + + → - - + + 增量值: - + 额外设置 - + 如果预览与打印显示不正确,调整此设置可能恢复。 - + 自定义字符宽度 - - + + 当前值: - + 可变长度 - - + + 重复数: - + 小数点位数 - - + + 结束值: - - + + 起始值: - + ✓ - + ✕ + + DateFormatEditor + + + Form + + + + + 内容 + + + + + 有效期限 + + + + + 天数 + + + + + 月 - 精确到日 + + + + + 月 - 精确到月 + + + + + . + + + + + : + + + + + , + + + + + / + + + + + ; + + + + + _ + + + + + + - + + + + + 小时 + + + + + 分钟 + + + + + 秒钟 + + + + + 月 + + + + + 年2026 + + + + + 日 + + + + + 年中第几周 + + + + + 年26 + + + + + 周几 + + + + + 空格 + + + + + <------ + + + + + + + + + + + DateReplaceEditor + + + 名称 + + + + + 数据 + + + + + 周几 + + + + + 月 + + + + + 年 + + + + + 天数 + + + + + 小时 + + + + + Meridiem + + + + + 类型 + + + + + 代替 + + + + + 上 + + + + + 下 + + + + + 预设值 + + + DateVarSet @@ -166,276 +520,271 @@ - + ✓ - + ✕ - + 整体设置 - + 日期/时间 - + 内容 - + 有效期限 - - + + 天数 - + 月 - 精确到日 - + 月 - 精确到月 - + . - + : - + , - + / - + ; - + _ - - + + - - - + + 小时 - + 分钟 - + 秒钟 - - + + 月 - + 年2026 - + 日 - + 年中第几周 - + 年26 - - + + 周几 - + 空格 - + <------ - + + - - + + 代替 - + 名称 - + 数据 - + 年 - + Meridiem - + 类型 - + 上 - + 下 - + 预设值 - - - 高级选项 - - DevOp - - - - - + + + + + 警告 - + 字高超出范围 - + 字高太小或是高压包数据未初始化,您当前错误将忽略所有高压错误 - - + + 错误 - + 在同步计米的情况下无打印串或显示区域为零 - + 在同步计米的情况下喷印同步脉冲数过多,请检查你的配置 - + 喷印字符串太短,请增加字符串长度或在打印设置中减少喷印长度 - + 喷印长度太短,请减少字符串长度或在打印设置中增加喷印长度 - + readB6Req - + readB6com - + readB6suc - + Cmd[%1]: %2 - + 设置读写器密码成功! - + 设置读写器工作模式成功! @@ -659,41 +1008,57 @@ DialogMaintenanceTimeSetting - Dialog + 设置保养间隔 - + 保养周期 - + (月) - + 重置保养时间 - - 维护时间: + + 剩余维护时间: - + + 运行时间 + + + + + (小时) + + + + + 当前运行时间: + + + + + TextLabel - + 警告 - + 确定要设置今天为新的保养日期吗? @@ -835,6 +1200,127 @@ + + DlgBarcodeFormat + + + Dialog + + + + + 条形码高度 + + + + + 1点 + + + + + 2点 + + + + + 3点 + + + + + 4点 + + + + + + 5点 + + + + + 6点 + + + + + 增加数字行 + + + + + 黑墨 + + + + + 白墨 + + + + + 条码宽度 + + + + + 条形码类型 + + + + + 墨水类型 + + + + + 显示缩放 + + + + + ✓ + + + + + 7点 + + + + + 9点 + + + + + 12点 + + + + + 16点 + + + + + 24点 + + + + + + %1点 + + + + + + 点 + + + DlgInputAddr @@ -955,6 +1441,16 @@ 韩语 + + + 提示 + + + + + 是否重启? + + DlgMyWarring @@ -974,6 +1470,137 @@ + + DlgQrcodeFormat + + + Dialog + + + + + DataMatrix + + + + + QRCode + + + + + 正相打印 + + + + + 反相打印 + + + + + DM码尺寸: + + + + + 默认 + + + + + 8 x 18 + + + + + 8 x 32 + + + + + 12 x 26 + + + + + 12 x 36 + + + + + 16 x 36 + + + + + 16 x 48 + + + + + 低级 + + + + + 中级 + + + + + 高级 + + + + + 超高级 + + + + + 类型 + + + + + 墨水类型 + + + + + ✓ + + + + + DlgRFIDConfig + + + Dialog + + + + + 确定 + + + + + 自动激活超时 + + + + + 秒 + + + + + 卡片接触 %1 秒后自动激活。 + + + FileLogger @@ -990,83 +1617,83 @@ FileManageWidget - + Form - + 管理器 - + 导出到U盘 - + 从U盘导入 - + 全选 - + 取消全选 - + 删除已选 - + 过滤器 - + 文件 - + 图标 - + 字体 - + 全部 - + 硬盘 - + 设备 - + ✕ - + U盘 @@ -1195,12 +1822,12 @@ - + ✓ - + ✕ @@ -1227,225 +1854,219 @@ - - mtDate: %1 - - - - - mtInterval: %1 - - - - - mtEndDate: %1 - - - - - mtFlag: %1 - - - - - timeoutDay: %1 - - - - - + + 13.读卡器故障! - + %1/%2/%3 - + 测试时间结束,准备关机 - - 开始自检,请等待60秒............... - - - - + 开始自检,请等待%1秒... - - + + 自检完成!!! - - - + 警告 - + 确认要刷墨水卡吗? - - + + 不需要刷墨水卡! - - + + 请先添加墨水再刷墨水卡! - - + + + 刷墨水卡成功! - + 确认要刷溶剂卡吗? - - - - 不需要刷溶剂卡! - - + 不需要刷溶剂卡! + + + + + 提示 + + + + + 保养期还有%1小时到期,请及时保养,否则喷码机容易损坏 + + + + + 保养期已超过%1小时,请及时保养,否则喷码机容易损坏 + + + + + 开始自检,请等待60秒... + + + + + 确认要刷墨水卡吗? %1 秒后将自动确认 + + + + + 请先添加溶剂再刷溶剂卡! - - + + 确认要刷溶剂卡吗? %1 秒后将自动确认 + + + + + + 刷溶剂卡成功! - + 确认要刷保养卡吗? - - + + 确认要刷保养卡吗? %1 秒后将自动确认 + + + + + 刷保养卡成功! - - + + MAC无效卡! - + card data: %1 - + 无效卡,这张卡已经在%1时使用过 - + ink Warning at: %1 - + solvent Warning at: %1 - - + + 压力泄漏或压力传感器故障! + + + + + 电机故障 - - - 回收槽到头 - - - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 错误!粘度计故障:检测不到上位灯 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷卡倒计时起始时间文件不存在 - - - 请稍候 - - - - - - 刷溶剂卡倒计时: %1 秒 - - InputMethod @@ -1977,200 +2598,200 @@ - + 当前状态 - + 清空当前状态 - - - - + + + + ✕ - + 历史状态 - + 导出日志到U盘 - + 打开历史文件 - + 删除历史文件 - - + + TextLabel - + 版本信息 - + 机器状态 - + 粘度 - + 高压包 - + 隔膜位置 - + 压力 - + 墨线开关 - + 喷嘴逆清洗 - + 墨水缸满 - + 墨水液位 - + 溶剂液位 - + 回收故障 - + 粘度故障 - + 相位故障 - + 高压故障 - + 故障恢复 - + 请先打开历史状态文件! - + 齿轮泵转速 - - - - - + + + + + 警告 - - - + + + 无法打开文件 - - - - + + + + 提示 - + 是否确认将所有日志文件导出到U盘? - + U盘目录创建失败 - + U盘未插入或无法识别,请重新插拔设备! - + 成功导出到U盘 - + 选择历史记录文件 - + 是否确认将历史日志文件全部清除? - + 是否确认将当前日志全部清除? - + 清洗中,界面锁死 @@ -2183,23 +2804,23 @@ - + 网口通信 - + 时间设置 - + 服务 文件 - + 图形编辑器 @@ -2209,455 +2830,509 @@ - - 服务 - - - - + 系统设置 - + 系统管理 - + + + 额外设置 + + + + 其他设置 - + 设置保养间隔 - + 系统更新 - + + 系统授权 - + + RFID设置 + + + + ✕ - - mtDate1: %1 - - - - - mtInterval1: %1 - - - - - mtEndDate1: %1 - - - - - mtFlog1: %1 - - - - + 提示 - + RFID卡清零! + + + + 取消授权 + + + + + 警告 + + + + + 密码错误:%1 + + MainWidget - + background-color:#6A7289; - + 编辑当前文件 - + 调入文件喷印 - + 主指令单 - + 管理器 - + 信息 - + background-color:#BCBFC4; - + background-color:#CACCC9; - - + + background-color:#BBBBBD;border-radius:3px; - - + + 0 - + 达到数量后停止: - + 开始打印 - + color:#000000;font-size:18px; - + 速度 米/分 - + color:#3CB371;font-size:18px; - + 当前 - + color:#E72F28;font-size:18px; - + 最大 - + color:#3CB371;font-size:24px; - + 0007.9 - + color:#E72F28;font-size:24px; - + 0020.3 - + 停止打印 - + + 喷嘴开启 - + + 喷嘴关闭 - + 产品计数器 - + color:#000000;font-size:28px;font-weight:bold; - + border:0px; - - - - - - - + + + + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - + + + + 正在准备关机,请等待%1秒... + + + + + 准备关机... + + + + + 关机失败!!! + + + + 最多支持的列数目为:%1请减小信息长度. - - + + + + 变量数大于8个,某些变量将不起作用!!! - - + + 请减少信息中的变量(或计数器)数量. - + warning,界面上有变量未显示完全 - - - - + + + + 错误 - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - - + + 停止开启 + + + + + 喷嘴已开启 + + + + + 喷嘴开启中 + + + + + 喷嘴已关闭 + + + + + 喷嘴关闭中 + + + + + 正在排气... + + + + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - + 正常 - + 提示 - + 随机码文本将展出到U盘,请插入U盘 - - 正在打开回收槽... - - - - - 停止打开 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - 正在关闭回收槽... - - - - + 停止关闭 - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + + 高压故障,关回收槽和墨线 + + + + + 回收故障,关闭回收槽,关墨线 - + + 回收故障. + + + + 回收异常,墨线可能偏离.(%1) - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - + + + 相位故障,准备关机 - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - + + 相位故障,屏蔽充电 @@ -2984,329 +3659,343 @@ p, li { white-space: pre-wrap; } - 5行5点阵 + 32点阵对5点阵的优化 + 5行5点阵 - - 4行7点阵 - - - - - 信息上下颠倒 + + 电眼设置 - 信息左右颠倒 + 重复间隔(毫秒): - - PrintGo信号页1 + + 重复次数: - - 脉冲信号值: + + 封锁时间(毫秒): - - 无镜像打印 + + 脉冲数/毫米: - - 自动水平翻转 - - - - - 自动垂直翻转 - - - - - 中心对称旋转 - - - - - 镜象交替类型 - - - - - - - - 延时(毫秒): - - - - - 镜像交替间隔 - - - - - - - 触发延时(毫秒) - - - - - 脉冲输出使能 - - - - - 禁止电眼清零 - - - - - 允许电眼复位 - - - - - 允许电眼立即复位 - - - - - 电眼清零 - - - - - 字符宽度: - - - - - 产生脉冲所需计数: - - - - - 间隔模式: - - - - - 行末<->行首 + + 喷印间隔(毫米): + 同步喷印模式: + + + + + 信息上下颠倒 + + + + + 信息左右颠倒 + + + + + 32点阵对4点阵的优化 + + + + + 脉冲信号值: + + + + + 无镜像打印 + + + + + 自动水平翻转 + + + + + 自动垂直翻转 + + + + + 中心对称旋转 + + + + + + + + 延时(毫秒): + + + + + + 触发延时(毫秒) + + + + + 脉冲输出使能 + + + + + 禁止电眼清零 + + + + + 允许电眼复位 + + + + + 允许电眼立即复位 + + + + + 电眼清零 + + + + + 字符宽度: + + + + + 产生脉冲所需计数: + + + + + 间隔模式: + + + + + 行末<->行首 + + + + 行首<->行首 - - PrintGo信号页2 - - - - - - - + + + 重复间隔(毫秒) - - 重复次数 - - - - - + 封锁时间(毫秒) - + 同步器清零 - + 同步打印 - + 电眼信号来源 - - + + 内部 - - + + 外部 - + 光电边沿触发 - + 光电电平触发 - + GroupBox - + 延时触发 - + 编码器参数 - - 脉冲数/毫米 + + 触发延时(毫秒): + 脉冲数/毫米 - + 脉冲数修正 - - 喷印间隔(毫米) - - - - - 同步喷印模式 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 同步器触发 - + 同步器来源 - + + 其他设置 + + + + + 镜象交替类型: + + + + + 镜像交替间隔: + + + + ✕ - + ✓ - + 提示 - + 应用成功 - + 提示:参数不正确 - + 要求:触发长度小于喷印间隔 - - - - + + + + 延时(毫米): - - - + + + 触发延时(毫米) - - + + 重复间隔(毫米) - - - 封锁间隔(毫米) + + + 抑止距离(毫米) - - 封锁间隔(毫秒) + + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) @@ -3587,6 +4276,64 @@ p, li { white-space: pre-wrap; } + + RunTimeCtrl + + + mtDate: %1 + + + + + mtInterval: %1 + + + + + mtEndDate: %1 + + + + + mtFlag: %1 + + + + + timeoutDay: %1 + + + + + runTime: %1 + + + + + maintenanceHours: %1 + + + + + mtDate1: %1 + + + + + mtInterval1: %1 + + + + + mtEndDate1: %1 + + + + + mtFlog1: %1 + + + ScheduleShiftsEditor @@ -3595,123 +4342,123 @@ p, li { white-space: pre-wrap; } - + ✓ - + ✕ - + 整体设置 - - - + + + 班时编号 - - + + 班时时间 - - + + 新建行 - + 标号 - + 1 - + 00:00 - + A - + 2 - + 08:09 - + B - + 3 - + 12:00 - + C - + 可选用的班次时间: - + 23 - - + + ← - - + + → - + 添加 - + 移除 - + hh:mm @@ -3743,7 +4490,7 @@ p, li { white-space: pre-wrap; } SetNumDlg - Dialog + 设置计数器 @@ -3802,14 +4549,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -3840,7 +4587,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -3880,375 +4627,375 @@ 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软件吗? - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -4637,32 +5384,32 @@ p, li { white-space: pre-wrap; } - + 警告 - + 是否确认导出字库到U盘? - + 错误 - + U盘不可识别! - + 提示 - + 字库导出完成! @@ -4952,12 +5699,12 @@ p, li { white-space: pre-wrap; } - + 提示 - + 是否保存文件? @@ -5059,8 +5806,8 @@ p, li { white-space: pre-wrap; } - - + + 保存 @@ -5075,49 +5822,50 @@ p, li { white-space: pre-wrap; } - + 提示 - + 图片已经改变,是否保存? - + 放弃保存 - - - + + + + 放大倍数:%1 - + 图片另存为... - + 另存为 - + 打开文件 - + 图片保存为... - + 导入文件 diff --git a/testprintwidget.cpp b/testprintwidget.cpp index a3d4b73..e602e14 100644 --- a/testprintwidget.cpp +++ b/testprintwidget.cpp @@ -1376,7 +1376,7 @@ void TestPrintWidget::onBtnItemConfigClicked() if(item->sourceType() == SourceType::SCHEDULE_SHIFT) { auto scheduleItem = dynamic_cast(item); - emit sig_showScheduleShiftsEditor(scheduleItem); + emit sig_showScheduleShiftsEditor(scheduleItem->schedules(), scheduleItem->textItemModel()); return; } @@ -1561,7 +1561,7 @@ void TestPrintWidget::addDateTimeItem(const DateItemModel &model) item->setModel(model); } -void TestPrintWidget::addScheduleShiftsItem(QVector schedules) +void TestPrintWidget::addScheduleShiftsItem(QVector schedules, TextItemModel txtModel) { // 如果当前选中了一个日期时间item,则直接设置模型 auto selectItems = pPicScene->selectedItems(); @@ -1570,6 +1570,7 @@ void TestPrintWidget::addScheduleShiftsItem(QVector schedules) if(item->sourceType() == SourceType::SCHEDULE_SHIFT) { auto scheduleItem = dynamic_cast(item); scheduleItem->setSchedules(schedules); + scheduleItem->setTextItemModel(txtModel); return; } } @@ -1584,6 +1585,7 @@ void TestPrintWidget::addScheduleShiftsItem(QVector schedules) item->setPos(boundingRect.right(), 0.0); item->setSelected(true); item->setSchedules(std::move(schedules)); + item->setTextItemModel(txtModel); } void TestPrintWidget::addCounterItem(CounterViewModel vm, QSharedPointer f) @@ -1654,7 +1656,7 @@ void TestPrintWidget::showBarcodeEditor(bool restoreViewModel) void TestPrintWidget::onBtnArrowClicked() { pPicScene->clearSelection(); - emit sig_showScheduleShiftsEditor(nullptr); + emit sig_showScheduleShiftsEditor(QVector(), TextItemModel()); } void TestPrintWidget::on_btn_copy_clicked() diff --git a/testprintwidget.h b/testprintwidget.h index 4db7c27..d6c8f5a 100644 --- a/testprintwidget.h +++ b/testprintwidget.h @@ -74,7 +74,7 @@ public: void addDateTimeItem(const DateItemModel& model); - void addScheduleShiftsItem(QVector schedules); + void addScheduleShiftsItem(QVector schedules, TextItemModel txtModel); void addCounterItem(CounterViewModel vm, QSharedPointer font = nullptr); @@ -216,7 +216,7 @@ signals: // 如果item为null,表明是从新建按钮发出的,如果item不为null,表明用户正在尝试编辑一个日期item void sig_showEditDataTime(PicDateItem* item); - void sig_showScheduleShiftsEditor(PicScheduleShiftItem* item); + void sig_showScheduleShiftsEditor(QVector schedules, TextItemModel txtModel); }; #endif // TESTPRINTWIDGET_H diff --git a/thai.ts b/thai.ts index b308349..52a4d4b 100644 --- a/thai.ts +++ b/thai.ts @@ -1,6 +1,163 @@ + + BarcodeEditor + + + Form + + + + + ✓ + + + + + ✕ + + + + + 整体设置 + + + + + + 条形码 + + + + + 内容 + + + + + 类型 + + + + + 二维码 + + + + + 条形码格式 + + + + + 嵌入 + + + + + 日期 + + + + + 计数器 + + + + + 条形码编辑 + + + + + CounterEditor + + + 重复数: + + + + + 起始值: + + + + + 结束值: + + + + + 当前值: + + + + + 增量值: + + + + + 计数器ID: + + + + + 计数器1 + + + + + 计数器2 + + + + + 计数器位数: + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + CounterVarSet @@ -9,155 +166,352 @@ - + 整体设置 - + 变量类型 - - + + 计数器1 - - + + 计数器2 - + 数字个数: - + 1 - + 2 - + 3 - + 4 - + 5 - + 6 - + 7 - + 8 - + 字符间距 - - + + ← - - + + → - - + + 增量值: - + 额外设置 - + 如果预览与打印显示不正确,调整此设置可能恢复。 - + 自定义字符宽度 - - + + 当前值: - + 可变长度 - - + + 重复数: - + 小数点位数 - - + + 结束值: - - + + 起始值: - + ✓ - + ✕ + + DateFormatEditor + + + Form + + + + + 内容 + + + + + 有效期限 + + + + + 天数 + + + + + 月 - 精确到日 + + + + + 月 - 精确到月 + + + + + . + + + + + : + + + + + , + + + + + / + + + + + ; + + + + + _ + + + + + + - + + + + + 小时 + + + + + 分钟 + + + + + 秒钟 + + + + + 月 + + + + + 年2026 + + + + + 日 + + + + + 年中第几周 + + + + + 年26 + + + + + 周几 + + + + + 空格 + + + + + <------ + + + + + + + + + + + DateReplaceEditor + + + 名称 + + + + + 数据 + + + + + 周几 + + + + + 月 + + + + + 年 + + + + + 天数 + + + + + 小时 + + + + + Meridiem + + + + + 类型 + + + + + 代替 + + + + + 上 + + + + + 下 + + + + + 预设值 + + + DateVarSet @@ -166,276 +520,271 @@ - + ✓ - + ✕ - + 整体设置 - + 日期/时间 - + 内容 - + 有效期限 - - + + 天数 - + 月 - 精确到日 - + 月 - 精确到月 - + . - + : - + , - + / - + ; - + _ - - + + - - - + + 小时 - + 分钟 - + 秒钟 - - + + 月 - + 年2026 - + 日 - + 年中第几周 - + 年26 - - + + 周几 - + 空格 - + <------ - + + - - + + 代替 - + 名称 - + 数据 - + 年 - + Meridiem - + 类型 - + 上 - + 下 - + 预设值 - - - 高级选项 - - DevOp - - - - - + + + + + 警告 - + 字高超出范围 - + 字高太小或是高压包数据未初始化,您当前错误将忽略所有高压错误 - - + + 错误 - + 在同步计米的情况下无打印串或显示区域为零 - + 在同步计米的情况下喷印同步脉冲数过多,请检查你的配置 - + 喷印字符串太短,请增加字符串长度或在打印设置中减少喷印长度 - + 喷印长度太短,请减少字符串长度或在打印设置中增加喷印长度 - + readB6Req - + readB6com - + readB6suc - + Cmd[%1]: %2 - + 设置读写器密码成功! - + 设置读写器工作模式成功! @@ -659,41 +1008,57 @@ DialogMaintenanceTimeSetting - Dialog + 设置保养间隔 - + 保养周期 - + (月) - + 重置保养时间 - - 维护时间: + + 剩余维护时间: - + + 运行时间 + + + + + (小时) + + + + + 当前运行时间: + + + + + TextLabel - + 警告 - + 确定要设置今天为新的保养日期吗? @@ -835,6 +1200,127 @@ + + DlgBarcodeFormat + + + Dialog + + + + + 条形码高度 + + + + + 1点 + + + + + 2点 + + + + + 3点 + + + + + 4点 + + + + + + 5点 + + + + + 6点 + + + + + 增加数字行 + + + + + 黑墨 + + + + + 白墨 + + + + + 条码宽度 + + + + + 条形码类型 + + + + + 墨水类型 + + + + + 显示缩放 + + + + + ✓ + + + + + 7点 + + + + + 9点 + + + + + 12点 + + + + + 16点 + + + + + 24点 + + + + + + %1点 + + + + + + 点 + + + DlgInputAddr @@ -955,6 +1441,16 @@ 韩语 + + + 提示 + + + + + 是否重启? + + DlgMyWarring @@ -974,6 +1470,137 @@ + + DlgQrcodeFormat + + + Dialog + + + + + DataMatrix + + + + + QRCode + + + + + 正相打印 + + + + + 反相打印 + + + + + DM码尺寸: + + + + + 默认 + + + + + 8 x 18 + + + + + 8 x 32 + + + + + 12 x 26 + + + + + 12 x 36 + + + + + 16 x 36 + + + + + 16 x 48 + + + + + 低级 + + + + + 中级 + + + + + 高级 + + + + + 超高级 + + + + + 类型 + + + + + 墨水类型 + + + + + ✓ + + + + + DlgRFIDConfig + + + Dialog + + + + + 确定 + + + + + 自动激活超时 + + + + + 秒 + + + + + 卡片接触 %1 秒后自动激活。 + + + FileLogger @@ -990,83 +1617,83 @@ FileManageWidget - + Form - + 管理器 - + 导出到U盘 - + 从U盘导入 - + 全选 - + 取消全选 - + 删除已选 - + 过滤器 - + 文件 - + 图标 - + 字体 - + 全部 - + 硬盘 - + 设备 - + ✕ - + U盘 @@ -1195,12 +1822,12 @@ - + ✓ - + ✕ @@ -1227,225 +1854,219 @@ - - mtDate: %1 - - - - - mtInterval: %1 - - - - - mtEndDate: %1 - - - - - mtFlag: %1 - - - - - timeoutDay: %1 - - - - - + + 13.读卡器故障! - + %1/%2/%3 - + 测试时间结束,准备关机 - - 开始自检,请等待60秒............... - - - - + 开始自检,请等待%1秒... - - + + 自检完成!!! - - - + 警告 - + 确认要刷墨水卡吗? - - + + 不需要刷墨水卡! - - + + 请先添加墨水再刷墨水卡! - - + + + 刷墨水卡成功! - + 确认要刷溶剂卡吗? - - - - 不需要刷溶剂卡! - - + 不需要刷溶剂卡! + + + + + 提示 + + + + + 保养期还有%1小时到期,请及时保养,否则喷码机容易损坏 + + + + + 保养期已超过%1小时,请及时保养,否则喷码机容易损坏 + + + + + 开始自检,请等待60秒... + + + + + 确认要刷墨水卡吗? %1 秒后将自动确认 + + + + + 请先添加溶剂再刷溶剂卡! - - + + 确认要刷溶剂卡吗? %1 秒后将自动确认 + + + + + + 刷溶剂卡成功! - + 确认要刷保养卡吗? - - + + 确认要刷保养卡吗? %1 秒后将自动确认 + + + + + 刷保养卡成功! - - + + MAC无效卡! - + card data: %1 - + 无效卡,这张卡已经在%1时使用过 - + ink Warning at: %1 - + solvent Warning at: %1 - - + + 压力泄漏或压力传感器故障! + + + + + 电机故障 - - - 回收槽到头 - - - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 错误!粘度计故障:检测不到上位灯 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷卡倒计时起始时间文件不存在 - - - 请稍候 - - - - - - 刷溶剂卡倒计时: %1 秒 - - InputMethod @@ -1977,200 +2598,200 @@ - + 当前状态 - + 清空当前状态 - - - - + + + + ✕ - + 历史状态 - + 导出日志到U盘 - + 打开历史文件 - + 删除历史文件 - - + + TextLabel - + 版本信息 - + 机器状态 - + 粘度 - + 高压包 - + 隔膜位置 - + 压力 - + 墨线开关 - + 喷嘴逆清洗 - + 墨水缸满 - + 墨水液位 - + 溶剂液位 - + 回收故障 - + 粘度故障 - + 相位故障 - + 高压故障 - + 故障恢复 - + 请先打开历史状态文件! - + 齿轮泵转速 - - - - - + + + + + 警告 - - - + + + 无法打开文件 - - - - + + + + 提示 - + 是否确认将所有日志文件导出到U盘? - + U盘目录创建失败 - + U盘未插入或无法识别,请重新插拔设备! - + 成功导出到U盘 - + 选择历史记录文件 - + 是否确认将历史日志文件全部清除? - + 是否确认将当前日志全部清除? - + 清洗中,界面锁死 @@ -2183,23 +2804,23 @@ - + 网口通信 - + 时间设置 - + 服务 文件 - + 图形编辑器 @@ -2209,455 +2830,509 @@ - - 服务 - - - - + 系统设置 - + 系统管理 - + + + 额外设置 + + + + 其他设置 - + 设置保养间隔 - + 系统更新 - + + 系统授权 - + + RFID设置 + + + + ✕ - - mtDate1: %1 - - - - - mtInterval1: %1 - - - - - mtEndDate1: %1 - - - - - mtFlog1: %1 - - - - + 提示 - + RFID卡清零! + + + + 取消授权 + + + + + 警告 + + + + + 密码错误:%1 + + MainWidget - + background-color:#6A7289; - + 编辑当前文件 - + 调入文件喷印 - + 主指令单 - + 管理器 - + 信息 - + background-color:#BCBFC4; - + background-color:#CACCC9; - - + + background-color:#BBBBBD;border-radius:3px; - - + + 0 - + 达到数量后停止: - + 开始打印 - + color:#000000;font-size:18px; - + 速度 米/分 - + color:#3CB371;font-size:18px; - + 当前 - + color:#E72F28;font-size:18px; - + 最大 - + color:#3CB371;font-size:24px; - + 0007.9 - + color:#E72F28;font-size:24px; - + 0020.3 - + 停止打印 - + + 喷嘴开启 - + + 喷嘴关闭 - + 产品计数器 - + color:#000000;font-size:28px;font-weight:bold; - + border:0px; - - - - - - - + + + + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - + + + + 正在准备关机,请等待%1秒... + + + + + 准备关机... + + + + + 关机失败!!! + + + + 最多支持的列数目为:%1请减小信息长度. - - + + + + 变量数大于8个,某些变量将不起作用!!! - - + + 请减少信息中的变量(或计数器)数量. - + warning,界面上有变量未显示完全 - - - - + + + + 错误 - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - - + + 停止开启 + + + + + 喷嘴已开启 + + + + + 喷嘴开启中 + + + + + 喷嘴已关闭 + + + + + 喷嘴关闭中 + + + + + 正在排气... + + + + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - + 正常 - + 提示 - + 随机码文本将展出到U盘,请插入U盘 - - 正在打开回收槽... - - - - - 停止打开 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - 正在关闭回收槽... - - - - + 停止关闭 - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + + 高压故障,关回收槽和墨线 + + + + + 回收故障,关闭回收槽,关墨线 - + + 回收故障. + + + + 回收异常,墨线可能偏离.(%1) - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - + + + 相位故障,准备关机 - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - + + 相位故障,屏蔽充电 @@ -2984,329 +3659,343 @@ p, li { white-space: pre-wrap; } - 5行5点阵 + 32点阵对5点阵的优化 + 5行5点阵 - - 4行7点阵 - - - - - 信息上下颠倒 + + 电眼设置 - 信息左右颠倒 + 重复间隔(毫秒): - - PrintGo信号页1 + + 重复次数: - - 脉冲信号值: + + 封锁时间(毫秒): - - 无镜像打印 + + 脉冲数/毫米: - - 自动水平翻转 - - - - - 自动垂直翻转 - - - - - 中心对称旋转 - - - - - 镜象交替类型 - - - - - - - - 延时(毫秒): - - - - - 镜像交替间隔 - - - - - - - 触发延时(毫秒) - - - - - 脉冲输出使能 - - - - - 禁止电眼清零 - - - - - 允许电眼复位 - - - - - 允许电眼立即复位 - - - - - 电眼清零 - - - - - 字符宽度: - - - - - 产生脉冲所需计数: - - - - - 间隔模式: - - - - - 行末<->行首 + + 喷印间隔(毫米): + 同步喷印模式: + + + + + 信息上下颠倒 + + + + + 信息左右颠倒 + + + + + 32点阵对4点阵的优化 + + + + + 脉冲信号值: + + + + + 无镜像打印 + + + + + 自动水平翻转 + + + + + 自动垂直翻转 + + + + + 中心对称旋转 + + + + + + + + 延时(毫秒): + + + + + + 触发延时(毫秒) + + + + + 脉冲输出使能 + + + + + 禁止电眼清零 + + + + + 允许电眼复位 + + + + + 允许电眼立即复位 + + + + + 电眼清零 + + + + + 字符宽度: + + + + + 产生脉冲所需计数: + + + + + 间隔模式: + + + + + 行末<->行首 + + + + 行首<->行首 - - PrintGo信号页2 - - - - - - - + + + 重复间隔(毫秒) - - 重复次数 - - - - - + 封锁时间(毫秒) - + 同步器清零 - + 同步打印 - + 电眼信号来源 - - + + 内部 - - + + 外部 - + 光电边沿触发 - + 光电电平触发 - + GroupBox - + 延时触发 - + 编码器参数 - - 脉冲数/毫米 + + 触发延时(毫秒): + 脉冲数/毫米 - + 脉冲数修正 - - 喷印间隔(毫米) - - - - - 同步喷印模式 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 同步器触发 - + 同步器来源 - + + 其他设置 + + + + + 镜象交替类型: + + + + + 镜像交替间隔: + + + + ✕ - + ✓ - + 提示 - + 应用成功 - + 提示:参数不正确 - + 要求:触发长度小于喷印间隔 - - - - + + + + 延时(毫米): - - - + + + 触发延时(毫米) - - + + 重复间隔(毫米) - - - 封锁间隔(毫米) + + + 抑止距离(毫米) - - 封锁间隔(毫秒) + + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) @@ -3587,6 +4276,64 @@ p, li { white-space: pre-wrap; } + + RunTimeCtrl + + + mtDate: %1 + + + + + mtInterval: %1 + + + + + mtEndDate: %1 + + + + + mtFlag: %1 + + + + + timeoutDay: %1 + + + + + runTime: %1 + + + + + maintenanceHours: %1 + + + + + mtDate1: %1 + + + + + mtInterval1: %1 + + + + + mtEndDate1: %1 + + + + + mtFlog1: %1 + + + ScheduleShiftsEditor @@ -3595,123 +4342,123 @@ p, li { white-space: pre-wrap; } - + ✓ - + ✕ - + 整体设置 - - - + + + 班时编号 - - + + 班时时间 - - + + 新建行 - + 标号 - + 1 - + 00:00 - + A - + 2 - + 08:09 - + B - + 3 - + 12:00 - + C - + 可选用的班次时间: - + 23 - - + + ← - - + + → - + 添加 - + 移除 - + hh:mm @@ -3743,7 +4490,7 @@ p, li { white-space: pre-wrap; } SetNumDlg - Dialog + 设置计数器 @@ -3802,14 +4549,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -3840,7 +4587,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -3880,375 +4627,375 @@ 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软件吗? - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -4637,32 +5384,32 @@ p, li { white-space: pre-wrap; } - + 警告 - + 是否确认导出字库到U盘? - + 错误 - + U盘不可识别! - + 提示 - + 字库导出完成! @@ -4952,12 +5699,12 @@ p, li { white-space: pre-wrap; } - + 提示 - + 是否保存文件? @@ -5059,8 +5806,8 @@ p, li { white-space: pre-wrap; } - - + + 保存 @@ -5075,49 +5822,50 @@ p, li { white-space: pre-wrap; } - + 提示 - + 图片已经改变,是否保存? - + 放弃保存 - - - + + + + 放大倍数:%1 - + 图片另存为... - + 另存为 - + 打开文件 - + 图片保存为... - + 导入文件 diff --git a/turkey.ts b/turkey.ts index b308349..52a4d4b 100644 --- a/turkey.ts +++ b/turkey.ts @@ -1,6 +1,163 @@ + + BarcodeEditor + + + Form + + + + + ✓ + + + + + ✕ + + + + + 整体设置 + + + + + + 条形码 + + + + + 内容 + + + + + 类型 + + + + + 二维码 + + + + + 条形码格式 + + + + + 嵌入 + + + + + 日期 + + + + + 计数器 + + + + + 条形码编辑 + + + + + CounterEditor + + + 重复数: + + + + + 起始值: + + + + + 结束值: + + + + + 当前值: + + + + + 增量值: + + + + + 计数器ID: + + + + + 计数器1 + + + + + 计数器2 + + + + + 计数器位数: + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + CounterVarSet @@ -9,155 +166,352 @@ - + 整体设置 - + 变量类型 - - + + 计数器1 - - + + 计数器2 - + 数字个数: - + 1 - + 2 - + 3 - + 4 - + 5 - + 6 - + 7 - + 8 - + 字符间距 - - + + ← - - + + → - - + + 增量值: - + 额外设置 - + 如果预览与打印显示不正确,调整此设置可能恢复。 - + 自定义字符宽度 - - + + 当前值: - + 可变长度 - - + + 重复数: - + 小数点位数 - - + + 结束值: - - + + 起始值: - + ✓ - + ✕ + + DateFormatEditor + + + Form + + + + + 内容 + + + + + 有效期限 + + + + + 天数 + + + + + 月 - 精确到日 + + + + + 月 - 精确到月 + + + + + . + + + + + : + + + + + , + + + + + / + + + + + ; + + + + + _ + + + + + + - + + + + + 小时 + + + + + 分钟 + + + + + 秒钟 + + + + + 月 + + + + + 年2026 + + + + + 日 + + + + + 年中第几周 + + + + + 年26 + + + + + 周几 + + + + + 空格 + + + + + <------ + + + + + + + + + + + DateReplaceEditor + + + 名称 + + + + + 数据 + + + + + 周几 + + + + + 月 + + + + + 年 + + + + + 天数 + + + + + 小时 + + + + + Meridiem + + + + + 类型 + + + + + 代替 + + + + + 上 + + + + + 下 + + + + + 预设值 + + + DateVarSet @@ -166,276 +520,271 @@ - + ✓ - + ✕ - + 整体设置 - + 日期/时间 - + 内容 - + 有效期限 - - + + 天数 - + 月 - 精确到日 - + 月 - 精确到月 - + . - + : - + , - + / - + ; - + _ - - + + - - - + + 小时 - + 分钟 - + 秒钟 - - + + 月 - + 年2026 - + 日 - + 年中第几周 - + 年26 - - + + 周几 - + 空格 - + <------ - + + - - + + 代替 - + 名称 - + 数据 - + 年 - + Meridiem - + 类型 - + 上 - + 下 - + 预设值 - - - 高级选项 - - DevOp - - - - - + + + + + 警告 - + 字高超出范围 - + 字高太小或是高压包数据未初始化,您当前错误将忽略所有高压错误 - - + + 错误 - + 在同步计米的情况下无打印串或显示区域为零 - + 在同步计米的情况下喷印同步脉冲数过多,请检查你的配置 - + 喷印字符串太短,请增加字符串长度或在打印设置中减少喷印长度 - + 喷印长度太短,请减少字符串长度或在打印设置中增加喷印长度 - + readB6Req - + readB6com - + readB6suc - + Cmd[%1]: %2 - + 设置读写器密码成功! - + 设置读写器工作模式成功! @@ -659,41 +1008,57 @@ DialogMaintenanceTimeSetting - Dialog + 设置保养间隔 - + 保养周期 - + (月) - + 重置保养时间 - - 维护时间: + + 剩余维护时间: - + + 运行时间 + + + + + (小时) + + + + + 当前运行时间: + + + + + TextLabel - + 警告 - + 确定要设置今天为新的保养日期吗? @@ -835,6 +1200,127 @@ + + DlgBarcodeFormat + + + Dialog + + + + + 条形码高度 + + + + + 1点 + + + + + 2点 + + + + + 3点 + + + + + 4点 + + + + + + 5点 + + + + + 6点 + + + + + 增加数字行 + + + + + 黑墨 + + + + + 白墨 + + + + + 条码宽度 + + + + + 条形码类型 + + + + + 墨水类型 + + + + + 显示缩放 + + + + + ✓ + + + + + 7点 + + + + + 9点 + + + + + 12点 + + + + + 16点 + + + + + 24点 + + + + + + %1点 + + + + + + 点 + + + DlgInputAddr @@ -955,6 +1441,16 @@ 韩语 + + + 提示 + + + + + 是否重启? + + DlgMyWarring @@ -974,6 +1470,137 @@ + + DlgQrcodeFormat + + + Dialog + + + + + DataMatrix + + + + + QRCode + + + + + 正相打印 + + + + + 反相打印 + + + + + DM码尺寸: + + + + + 默认 + + + + + 8 x 18 + + + + + 8 x 32 + + + + + 12 x 26 + + + + + 12 x 36 + + + + + 16 x 36 + + + + + 16 x 48 + + + + + 低级 + + + + + 中级 + + + + + 高级 + + + + + 超高级 + + + + + 类型 + + + + + 墨水类型 + + + + + ✓ + + + + + DlgRFIDConfig + + + Dialog + + + + + 确定 + + + + + 自动激活超时 + + + + + 秒 + + + + + 卡片接触 %1 秒后自动激活。 + + + FileLogger @@ -990,83 +1617,83 @@ FileManageWidget - + Form - + 管理器 - + 导出到U盘 - + 从U盘导入 - + 全选 - + 取消全选 - + 删除已选 - + 过滤器 - + 文件 - + 图标 - + 字体 - + 全部 - + 硬盘 - + 设备 - + ✕ - + U盘 @@ -1195,12 +1822,12 @@ - + ✓ - + ✕ @@ -1227,225 +1854,219 @@ - - mtDate: %1 - - - - - mtInterval: %1 - - - - - mtEndDate: %1 - - - - - mtFlag: %1 - - - - - timeoutDay: %1 - - - - - + + 13.读卡器故障! - + %1/%2/%3 - + 测试时间结束,准备关机 - - 开始自检,请等待60秒............... - - - - + 开始自检,请等待%1秒... - - + + 自检完成!!! - - - + 警告 - + 确认要刷墨水卡吗? - - + + 不需要刷墨水卡! - - + + 请先添加墨水再刷墨水卡! - - + + + 刷墨水卡成功! - + 确认要刷溶剂卡吗? - - - - 不需要刷溶剂卡! - - + 不需要刷溶剂卡! + + + + + 提示 + + + + + 保养期还有%1小时到期,请及时保养,否则喷码机容易损坏 + + + + + 保养期已超过%1小时,请及时保养,否则喷码机容易损坏 + + + + + 开始自检,请等待60秒... + + + + + 确认要刷墨水卡吗? %1 秒后将自动确认 + + + + + 请先添加溶剂再刷溶剂卡! - - + + 确认要刷溶剂卡吗? %1 秒后将自动确认 + + + + + + 刷溶剂卡成功! - + 确认要刷保养卡吗? - - + + 确认要刷保养卡吗? %1 秒后将自动确认 + + + + + 刷保养卡成功! - - + + MAC无效卡! - + card data: %1 - + 无效卡,这张卡已经在%1时使用过 - + ink Warning at: %1 - + solvent Warning at: %1 - - + + 压力泄漏或压力传感器故障! + + + + + 电机故障 - - - 回收槽到头 - - - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 错误!粘度计故障:检测不到上位灯 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷卡倒计时起始时间文件不存在 - - - 请稍候 - - - - - - 刷溶剂卡倒计时: %1 秒 - - InputMethod @@ -1977,200 +2598,200 @@ - + 当前状态 - + 清空当前状态 - - - - + + + + ✕ - + 历史状态 - + 导出日志到U盘 - + 打开历史文件 - + 删除历史文件 - - + + TextLabel - + 版本信息 - + 机器状态 - + 粘度 - + 高压包 - + 隔膜位置 - + 压力 - + 墨线开关 - + 喷嘴逆清洗 - + 墨水缸满 - + 墨水液位 - + 溶剂液位 - + 回收故障 - + 粘度故障 - + 相位故障 - + 高压故障 - + 故障恢复 - + 请先打开历史状态文件! - + 齿轮泵转速 - - - - - + + + + + 警告 - - - + + + 无法打开文件 - - - - + + + + 提示 - + 是否确认将所有日志文件导出到U盘? - + U盘目录创建失败 - + U盘未插入或无法识别,请重新插拔设备! - + 成功导出到U盘 - + 选择历史记录文件 - + 是否确认将历史日志文件全部清除? - + 是否确认将当前日志全部清除? - + 清洗中,界面锁死 @@ -2183,23 +2804,23 @@ - + 网口通信 - + 时间设置 - + 服务 文件 - + 图形编辑器 @@ -2209,455 +2830,509 @@ - - 服务 - - - - + 系统设置 - + 系统管理 - + + + 额外设置 + + + + 其他设置 - + 设置保养间隔 - + 系统更新 - + + 系统授权 - + + RFID设置 + + + + ✕ - - mtDate1: %1 - - - - - mtInterval1: %1 - - - - - mtEndDate1: %1 - - - - - mtFlog1: %1 - - - - + 提示 - + RFID卡清零! + + + + 取消授权 + + + + + 警告 + + + + + 密码错误:%1 + + MainWidget - + background-color:#6A7289; - + 编辑当前文件 - + 调入文件喷印 - + 主指令单 - + 管理器 - + 信息 - + background-color:#BCBFC4; - + background-color:#CACCC9; - - + + background-color:#BBBBBD;border-radius:3px; - - + + 0 - + 达到数量后停止: - + 开始打印 - + color:#000000;font-size:18px; - + 速度 米/分 - + color:#3CB371;font-size:18px; - + 当前 - + color:#E72F28;font-size:18px; - + 最大 - + color:#3CB371;font-size:24px; - + 0007.9 - + color:#E72F28;font-size:24px; - + 0020.3 - + 停止打印 - + + 喷嘴开启 - + + 喷嘴关闭 - + 产品计数器 - + color:#000000;font-size:28px;font-weight:bold; - + border:0px; - - - - - - - + + + + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - + + + + 正在准备关机,请等待%1秒... + + + + + 准备关机... + + + + + 关机失败!!! + + + + 最多支持的列数目为:%1请减小信息长度. - - + + + + 变量数大于8个,某些变量将不起作用!!! - - + + 请减少信息中的变量(或计数器)数量. - + warning,界面上有变量未显示完全 - - - - + + + + 错误 - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - - + + 停止开启 + + + + + 喷嘴已开启 + + + + + 喷嘴开启中 + + + + + 喷嘴已关闭 + + + + + 喷嘴关闭中 + + + + + 正在排气... + + + + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - + 正常 - + 提示 - + 随机码文本将展出到U盘,请插入U盘 - - 正在打开回收槽... - - - - - 停止打开 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - 正在关闭回收槽... - - - - + 停止关闭 - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + + 高压故障,关回收槽和墨线 + + + + + 回收故障,关闭回收槽,关墨线 - + + 回收故障. + + + + 回收异常,墨线可能偏离.(%1) - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - + + + 相位故障,准备关机 - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - + + 相位故障,屏蔽充电 @@ -2984,329 +3659,343 @@ p, li { white-space: pre-wrap; } - 5行5点阵 + 32点阵对5点阵的优化 + 5行5点阵 - - 4行7点阵 - - - - - 信息上下颠倒 + + 电眼设置 - 信息左右颠倒 + 重复间隔(毫秒): - - PrintGo信号页1 + + 重复次数: - - 脉冲信号值: + + 封锁时间(毫秒): - - 无镜像打印 + + 脉冲数/毫米: - - 自动水平翻转 - - - - - 自动垂直翻转 - - - - - 中心对称旋转 - - - - - 镜象交替类型 - - - - - - - - 延时(毫秒): - - - - - 镜像交替间隔 - - - - - - - 触发延时(毫秒) - - - - - 脉冲输出使能 - - - - - 禁止电眼清零 - - - - - 允许电眼复位 - - - - - 允许电眼立即复位 - - - - - 电眼清零 - - - - - 字符宽度: - - - - - 产生脉冲所需计数: - - - - - 间隔模式: - - - - - 行末<->行首 + + 喷印间隔(毫米): + 同步喷印模式: + + + + + 信息上下颠倒 + + + + + 信息左右颠倒 + + + + + 32点阵对4点阵的优化 + + + + + 脉冲信号值: + + + + + 无镜像打印 + + + + + 自动水平翻转 + + + + + 自动垂直翻转 + + + + + 中心对称旋转 + + + + + + + + 延时(毫秒): + + + + + + 触发延时(毫秒) + + + + + 脉冲输出使能 + + + + + 禁止电眼清零 + + + + + 允许电眼复位 + + + + + 允许电眼立即复位 + + + + + 电眼清零 + + + + + 字符宽度: + + + + + 产生脉冲所需计数: + + + + + 间隔模式: + + + + + 行末<->行首 + + + + 行首<->行首 - - PrintGo信号页2 - - - - - - - + + + 重复间隔(毫秒) - - 重复次数 - - - - - + 封锁时间(毫秒) - + 同步器清零 - + 同步打印 - + 电眼信号来源 - - + + 内部 - - + + 外部 - + 光电边沿触发 - + 光电电平触发 - + GroupBox - + 延时触发 - + 编码器参数 - - 脉冲数/毫米 + + 触发延时(毫秒): + 脉冲数/毫米 - + 脉冲数修正 - - 喷印间隔(毫米) - - - - - 同步喷印模式 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 同步器触发 - + 同步器来源 - + + 其他设置 + + + + + 镜象交替类型: + + + + + 镜像交替间隔: + + + + ✕ - + ✓ - + 提示 - + 应用成功 - + 提示:参数不正确 - + 要求:触发长度小于喷印间隔 - - - - + + + + 延时(毫米): - - - + + + 触发延时(毫米) - - + + 重复间隔(毫米) - - - 封锁间隔(毫米) + + + 抑止距离(毫米) - - 封锁间隔(毫秒) + + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) @@ -3587,6 +4276,64 @@ p, li { white-space: pre-wrap; } + + RunTimeCtrl + + + mtDate: %1 + + + + + mtInterval: %1 + + + + + mtEndDate: %1 + + + + + mtFlag: %1 + + + + + timeoutDay: %1 + + + + + runTime: %1 + + + + + maintenanceHours: %1 + + + + + mtDate1: %1 + + + + + mtInterval1: %1 + + + + + mtEndDate1: %1 + + + + + mtFlog1: %1 + + + ScheduleShiftsEditor @@ -3595,123 +4342,123 @@ p, li { white-space: pre-wrap; } - + ✓ - + ✕ - + 整体设置 - - - + + + 班时编号 - - + + 班时时间 - - + + 新建行 - + 标号 - + 1 - + 00:00 - + A - + 2 - + 08:09 - + B - + 3 - + 12:00 - + C - + 可选用的班次时间: - + 23 - - + + ← - - + + → - + 添加 - + 移除 - + hh:mm @@ -3743,7 +4490,7 @@ p, li { white-space: pre-wrap; } SetNumDlg - Dialog + 设置计数器 @@ -3802,14 +4549,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -3840,7 +4587,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -3880,375 +4627,375 @@ 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软件吗? - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -4637,32 +5384,32 @@ p, li { white-space: pre-wrap; } - + 警告 - + 是否确认导出字库到U盘? - + 错误 - + U盘不可识别! - + 提示 - + 字库导出完成! @@ -4952,12 +5699,12 @@ p, li { white-space: pre-wrap; } - + 提示 - + 是否保存文件? @@ -5059,8 +5806,8 @@ p, li { white-space: pre-wrap; } - - + + 保存 @@ -5075,49 +5822,50 @@ p, li { white-space: pre-wrap; } - + 提示 - + 图片已经改变,是否保存? - + 放弃保存 - - - + + + + 放大倍数:%1 - + 图片另存为... - + 另存为 - + 打开文件 - + 图片保存为... - + 导入文件 diff --git a/vena.ts b/vena.ts index b308349..52a4d4b 100644 --- a/vena.ts +++ b/vena.ts @@ -1,6 +1,163 @@ + + BarcodeEditor + + + Form + + + + + ✓ + + + + + ✕ + + + + + 整体设置 + + + + + + 条形码 + + + + + 内容 + + + + + 类型 + + + + + 二维码 + + + + + 条形码格式 + + + + + 嵌入 + + + + + 日期 + + + + + 计数器 + + + + + 条形码编辑 + + + + + CounterEditor + + + 重复数: + + + + + 起始值: + + + + + 结束值: + + + + + 当前值: + + + + + 增量值: + + + + + 计数器ID: + + + + + 计数器1 + + + + + 计数器2 + + + + + 计数器位数: + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + CounterVarSet @@ -9,155 +166,352 @@ - + 整体设置 - + 变量类型 - - + + 计数器1 - - + + 计数器2 - + 数字个数: - + 1 - + 2 - + 3 - + 4 - + 5 - + 6 - + 7 - + 8 - + 字符间距 - - + + ← - - + + → - - + + 增量值: - + 额外设置 - + 如果预览与打印显示不正确,调整此设置可能恢复。 - + 自定义字符宽度 - - + + 当前值: - + 可变长度 - - + + 重复数: - + 小数点位数 - - + + 结束值: - - + + 起始值: - + ✓ - + ✕ + + DateFormatEditor + + + Form + + + + + 内容 + + + + + 有效期限 + + + + + 天数 + + + + + 月 - 精确到日 + + + + + 月 - 精确到月 + + + + + . + + + + + : + + + + + , + + + + + / + + + + + ; + + + + + _ + + + + + + - + + + + + 小时 + + + + + 分钟 + + + + + 秒钟 + + + + + 月 + + + + + 年2026 + + + + + 日 + + + + + 年中第几周 + + + + + 年26 + + + + + 周几 + + + + + 空格 + + + + + <------ + + + + + + + + + + + DateReplaceEditor + + + 名称 + + + + + 数据 + + + + + 周几 + + + + + 月 + + + + + 年 + + + + + 天数 + + + + + 小时 + + + + + Meridiem + + + + + 类型 + + + + + 代替 + + + + + 上 + + + + + 下 + + + + + 预设值 + + + DateVarSet @@ -166,276 +520,271 @@ - + ✓ - + ✕ - + 整体设置 - + 日期/时间 - + 内容 - + 有效期限 - - + + 天数 - + 月 - 精确到日 - + 月 - 精确到月 - + . - + : - + , - + / - + ; - + _ - - + + - - - + + 小时 - + 分钟 - + 秒钟 - - + + 月 - + 年2026 - + 日 - + 年中第几周 - + 年26 - - + + 周几 - + 空格 - + <------ - + + - - + + 代替 - + 名称 - + 数据 - + 年 - + Meridiem - + 类型 - + 上 - + 下 - + 预设值 - - - 高级选项 - - DevOp - - - - - + + + + + 警告 - + 字高超出范围 - + 字高太小或是高压包数据未初始化,您当前错误将忽略所有高压错误 - - + + 错误 - + 在同步计米的情况下无打印串或显示区域为零 - + 在同步计米的情况下喷印同步脉冲数过多,请检查你的配置 - + 喷印字符串太短,请增加字符串长度或在打印设置中减少喷印长度 - + 喷印长度太短,请减少字符串长度或在打印设置中增加喷印长度 - + readB6Req - + readB6com - + readB6suc - + Cmd[%1]: %2 - + 设置读写器密码成功! - + 设置读写器工作模式成功! @@ -659,41 +1008,57 @@ DialogMaintenanceTimeSetting - Dialog + 设置保养间隔 - + 保养周期 - + (月) - + 重置保养时间 - - 维护时间: + + 剩余维护时间: - + + 运行时间 + + + + + (小时) + + + + + 当前运行时间: + + + + + TextLabel - + 警告 - + 确定要设置今天为新的保养日期吗? @@ -835,6 +1200,127 @@ + + DlgBarcodeFormat + + + Dialog + + + + + 条形码高度 + + + + + 1点 + + + + + 2点 + + + + + 3点 + + + + + 4点 + + + + + + 5点 + + + + + 6点 + + + + + 增加数字行 + + + + + 黑墨 + + + + + 白墨 + + + + + 条码宽度 + + + + + 条形码类型 + + + + + 墨水类型 + + + + + 显示缩放 + + + + + ✓ + + + + + 7点 + + + + + 9点 + + + + + 12点 + + + + + 16点 + + + + + 24点 + + + + + + %1点 + + + + + + 点 + + + DlgInputAddr @@ -955,6 +1441,16 @@ 韩语 + + + 提示 + + + + + 是否重启? + + DlgMyWarring @@ -974,6 +1470,137 @@ + + DlgQrcodeFormat + + + Dialog + + + + + DataMatrix + + + + + QRCode + + + + + 正相打印 + + + + + 反相打印 + + + + + DM码尺寸: + + + + + 默认 + + + + + 8 x 18 + + + + + 8 x 32 + + + + + 12 x 26 + + + + + 12 x 36 + + + + + 16 x 36 + + + + + 16 x 48 + + + + + 低级 + + + + + 中级 + + + + + 高级 + + + + + 超高级 + + + + + 类型 + + + + + 墨水类型 + + + + + ✓ + + + + + DlgRFIDConfig + + + Dialog + + + + + 确定 + + + + + 自动激活超时 + + + + + 秒 + + + + + 卡片接触 %1 秒后自动激活。 + + + FileLogger @@ -990,83 +1617,83 @@ FileManageWidget - + Form - + 管理器 - + 导出到U盘 - + 从U盘导入 - + 全选 - + 取消全选 - + 删除已选 - + 过滤器 - + 文件 - + 图标 - + 字体 - + 全部 - + 硬盘 - + 设备 - + ✕ - + U盘 @@ -1195,12 +1822,12 @@ - + ✓ - + ✕ @@ -1227,225 +1854,219 @@ - - mtDate: %1 - - - - - mtInterval: %1 - - - - - mtEndDate: %1 - - - - - mtFlag: %1 - - - - - timeoutDay: %1 - - - - - + + 13.读卡器故障! - + %1/%2/%3 - + 测试时间结束,准备关机 - - 开始自检,请等待60秒............... - - - - + 开始自检,请等待%1秒... - - + + 自检完成!!! - - - + 警告 - + 确认要刷墨水卡吗? - - + + 不需要刷墨水卡! - - + + 请先添加墨水再刷墨水卡! - - + + + 刷墨水卡成功! - + 确认要刷溶剂卡吗? - - - - 不需要刷溶剂卡! - - + 不需要刷溶剂卡! + + + + + 提示 + + + + + 保养期还有%1小时到期,请及时保养,否则喷码机容易损坏 + + + + + 保养期已超过%1小时,请及时保养,否则喷码机容易损坏 + + + + + 开始自检,请等待60秒... + + + + + 确认要刷墨水卡吗? %1 秒后将自动确认 + + + + + 请先添加溶剂再刷溶剂卡! - - + + 确认要刷溶剂卡吗? %1 秒后将自动确认 + + + + + + 刷溶剂卡成功! - + 确认要刷保养卡吗? - - + + 确认要刷保养卡吗? %1 秒后将自动确认 + + + + + 刷保养卡成功! - - + + MAC无效卡! - + card data: %1 - + 无效卡,这张卡已经在%1时使用过 - + ink Warning at: %1 - + solvent Warning at: %1 - - + + 压力泄漏或压力传感器故障! + + + + + 电机故障 - - - 回收槽到头 - - - - + + 回收槽卡住或者回收槽开关时间设置错误 - + 错误!粘度计故障:检测不到上位灯 - + 压力过高,请检查管路是否堵塞,然后点击故障恢复按钮 - + 请刷墨水卡,请使用原厂墨水耗材,否则机器将在%1小时后禁止使用! - + 墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作! - + 请刷溶剂卡,请使用原厂溶剂耗材,否则机器将在%1小时后禁止使用! - + 溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作! - + 保养期还有%1天到期,请及时保养,否则喷码机容易损坏 - + 保养期已超过%1天,请进行保养以恢复喷码机的正常使用 - + 刷卡倒计时起始时间文件不存在 - - - 请稍候 - - - - - - 刷溶剂卡倒计时: %1 秒 - - InputMethod @@ -1977,200 +2598,200 @@ - + 当前状态 - + 清空当前状态 - - - - + + + + ✕ - + 历史状态 - + 导出日志到U盘 - + 打开历史文件 - + 删除历史文件 - - + + TextLabel - + 版本信息 - + 机器状态 - + 粘度 - + 高压包 - + 隔膜位置 - + 压力 - + 墨线开关 - + 喷嘴逆清洗 - + 墨水缸满 - + 墨水液位 - + 溶剂液位 - + 回收故障 - + 粘度故障 - + 相位故障 - + 高压故障 - + 故障恢复 - + 请先打开历史状态文件! - + 齿轮泵转速 - - - - - + + + + + 警告 - - - + + + 无法打开文件 - - - - + + + + 提示 - + 是否确认将所有日志文件导出到U盘? - + U盘目录创建失败 - + U盘未插入或无法识别,请重新插拔设备! - + 成功导出到U盘 - + 选择历史记录文件 - + 是否确认将历史日志文件全部清除? - + 是否确认将当前日志全部清除? - + 清洗中,界面锁死 @@ -2183,23 +2804,23 @@ - + 网口通信 - + 时间设置 - + 服务 文件 - + 图形编辑器 @@ -2209,455 +2830,509 @@ - - 服务 - - - - + 系统设置 - + 系统管理 - + + + 额外设置 + + + + 其他设置 - + 设置保养间隔 - + 系统更新 - + + 系统授权 - + + RFID设置 + + + + ✕ - - mtDate1: %1 - - - - - mtInterval1: %1 - - - - - mtEndDate1: %1 - - - - - mtFlog1: %1 - - - - + 提示 - + RFID卡清零! + + + + 取消授权 + + + + + 警告 + + + + + 密码错误:%1 + + MainWidget - + background-color:#6A7289; - + 编辑当前文件 - + 调入文件喷印 - + 主指令单 - + 管理器 - + 信息 - + background-color:#BCBFC4; - + background-color:#CACCC9; - - + + background-color:#BBBBBD;border-radius:3px; - - + + 0 - + 达到数量后停止: - + 开始打印 - + color:#000000;font-size:18px; - + 速度 米/分 - + color:#3CB371;font-size:18px; - + 当前 - + color:#E72F28;font-size:18px; - + 最大 - + color:#3CB371;font-size:24px; - + 0007.9 - + color:#E72F28;font-size:24px; - + 0020.3 - + 停止打印 - + + 喷嘴开启 - + + 喷嘴关闭 - + 产品计数器 - + color:#000000;font-size:28px;font-weight:bold; - + border:0px; - - - - - - - + + + + + + + 警告 - + 回收槽未关,是否关闭回收槽后关机! - + 是否确认关机? - + + + + 正在准备关机,请等待%1秒... + + + + + 准备关机... + + + + + 关机失败!!! + + + + 最多支持的列数目为:%1请减小信息长度. - - + + + + 变量数大于8个,某些变量将不起作用!!! - - + + 请减少信息中的变量(或计数器)数量. - + warning,界面上有变量未显示完全 - - - - + + + + 错误 - + 喷头盖未关,请先关喷头盖! - + 墨线未开,请先开墨线开关! - + 当前总列数 %1 ,支持的总列数为 %2,请减少打印串的长度 - + 打印耗时 %1ms ,触发间隔 :%2ms ,触发间隔至少应当大于打印耗时3ms - - + + 停止开启 + + + + + 喷嘴已开启 + + + + + 喷嘴开启中 + + + + + 喷嘴已关闭 + + + + + 喷嘴关闭中 + + + + + 正在排气... + + + + + 高压故障 - - + + 相位故障 - - + + 粘度故障 - - + + 回收故障 - - + + 溶液液位 - - + + 墨水液位 - - + + 墨水缸满 - - + + 墨线开关 - + 正常 - + 提示 - + 随机码文本将展出到U盘,请插入U盘 - - 正在打开回收槽... - - - - - 停止打开 - - - - - + + 回收槽之前发生阻塞或回收槽时间设置错误,是否强制将当前位置设为到顶位置? - - 正在关闭回收槽... - - - - + 停止关闭 - - + + %1.%2 - + 墨水缸满报警 - + 墨水液位报警 - + 溶剂液位报警 - + + 高压故障,暂停打印 - + 高压故障,暂停打印. - + 高压故障,关回收槽 - + + 高压故障,关回收槽和墨线 + + + + + 回收故障,关闭回收槽,关墨线 - + + 回收故障. + + + + 回收异常,墨线可能偏离.(%1) - + 相位故障:飞行时间错误! - + 相位故障:相位检测错误! - - + + + 相位故障,准备关机 - - + + + 相位故障,暂停打印 - + 相位故障,屏蔽DAC输出 - + + 相位故障,屏蔽充电 @@ -2984,329 +3659,343 @@ p, li { white-space: pre-wrap; } - 5行5点阵 + 32点阵对5点阵的优化 + 5行5点阵 - - 4行7点阵 - - - - - 信息上下颠倒 + + 电眼设置 - 信息左右颠倒 + 重复间隔(毫秒): - - PrintGo信号页1 + + 重复次数: - - 脉冲信号值: + + 封锁时间(毫秒): - - 无镜像打印 + + 脉冲数/毫米: - - 自动水平翻转 - - - - - 自动垂直翻转 - - - - - 中心对称旋转 - - - - - 镜象交替类型 - - - - - - - - 延时(毫秒): - - - - - 镜像交替间隔 - - - - - - - 触发延时(毫秒) - - - - - 脉冲输出使能 - - - - - 禁止电眼清零 - - - - - 允许电眼复位 - - - - - 允许电眼立即复位 - - - - - 电眼清零 - - - - - 字符宽度: - - - - - 产生脉冲所需计数: - - - - - 间隔模式: - - - - - 行末<->行首 + + 喷印间隔(毫米): + 同步喷印模式: + + + + + 信息上下颠倒 + + + + + 信息左右颠倒 + + + + + 32点阵对4点阵的优化 + + + + + 脉冲信号值: + + + + + 无镜像打印 + + + + + 自动水平翻转 + + + + + 自动垂直翻转 + + + + + 中心对称旋转 + + + + + + + + 延时(毫秒): + + + + + + 触发延时(毫秒) + + + + + 脉冲输出使能 + + + + + 禁止电眼清零 + + + + + 允许电眼复位 + + + + + 允许电眼立即复位 + + + + + 电眼清零 + + + + + 字符宽度: + + + + + 产生脉冲所需计数: + + + + + 间隔模式: + + + + + 行末<->行首 + + + + 行首<->行首 - - PrintGo信号页2 - - - - - - - + + + 重复间隔(毫秒) - - 重复次数 - - - - - + 封锁时间(毫秒) - + 同步器清零 - + 同步打印 - + 电眼信号来源 - - + + 内部 - - + + 外部 - + 光电边沿触发 - + 光电电平触发 - + GroupBox - + 延时触发 - + 编码器参数 - - 脉冲数/毫米 + + 触发延时(毫秒): + 脉冲数/毫米 - + 脉冲数修正 - - 喷印间隔(毫米) - - - - - 同步喷印模式 - - - - + 按字符宽度 - + 按喷印比例 - + 同步器正反转打印 - + 同步器只正转打印 - + 同步器只反转打印 - + 同步器触发 - + 同步器来源 - + + 其他设置 + + + + + 镜象交替类型: + + + + + 镜像交替间隔: + + + + ✕ - + ✓ - + 提示 - + 应用成功 - + 提示:参数不正确 - + 要求:触发长度小于喷印间隔 - - - - + + + + 延时(毫米): - - - + + + 触发延时(毫米) - - + + 重复间隔(毫米) - - - 封锁间隔(毫米) + + + 抑止距离(毫米) - - 封锁间隔(毫秒) + + 抑止距离(毫秒) - + 字符宽度 - + 喷印比例(%) @@ -3587,6 +4276,64 @@ p, li { white-space: pre-wrap; } + + RunTimeCtrl + + + mtDate: %1 + + + + + mtInterval: %1 + + + + + mtEndDate: %1 + + + + + mtFlag: %1 + + + + + timeoutDay: %1 + + + + + runTime: %1 + + + + + maintenanceHours: %1 + + + + + mtDate1: %1 + + + + + mtInterval1: %1 + + + + + mtEndDate1: %1 + + + + + mtFlog1: %1 + + + ScheduleShiftsEditor @@ -3595,123 +4342,123 @@ p, li { white-space: pre-wrap; } - + ✓ - + ✕ - + 整体设置 - - - + + + 班时编号 - - + + 班时时间 - - + + 新建行 - + 标号 - + 1 - + 00:00 - + A - + 2 - + 08:09 - + B - + 3 - + 12:00 - + C - + 可选用的班次时间: - + 23 - - + + ← - - + + → - + 添加 - + 移除 - + hh:mm @@ -3743,7 +4490,7 @@ p, li { white-space: pre-wrap; } SetNumDlg - Dialog + 设置计数器 @@ -3802,14 +4549,14 @@ p, li { white-space: pre-wrap; } - - - - - - - - + + + + + + + + 停止 @@ -3840,7 +4587,7 @@ p, li { white-space: pre-wrap; } - + 压缩机 @@ -3880,375 +4627,375 @@ 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软件吗? - + 找不到 lib.tar! - + 无法删除旧的 lib.tar! - + 复制 tar 包失败! - + 解压失败,请检查权限! - + 移动库文件失败! - + 环境配置成功! - + 切换失败! - + 切换成功,重启后生效! - + 找不到软件! - + 找到多个软件,请删除多余的文件,只保留一个! - + 确定要升级单片机软件吗? - + 升级成功,请重启QtUI! - + 升级失败! @@ -4637,32 +5384,32 @@ p, li { white-space: pre-wrap; } - + 警告 - + 是否确认导出字库到U盘? - + 错误 - + U盘不可识别! - + 提示 - + 字库导出完成! @@ -4952,12 +5699,12 @@ p, li { white-space: pre-wrap; } - + 提示 - + 是否保存文件? @@ -5059,8 +5806,8 @@ p, li { white-space: pre-wrap; } - - + + 保存 @@ -5075,49 +5822,50 @@ p, li { white-space: pre-wrap; } - + 提示 - + 图片已经改变,是否保存? - + 放弃保存 - - - + + + + 放大倍数:%1 - + 图片另存为... - + 另存为 - + 打开文件 - + 图片保存为... - + 导入文件