diff --git a/app/HGProductionTool/HGProductionTool.pro b/app/HGProductionTool/HGProductionTool.pro index 01de341..c953320 100644 --- a/app/HGProductionTool/HGProductionTool.pro +++ b/app/HGProductionTool/HGProductionTool.pro @@ -58,6 +58,7 @@ SOURCES += \ analysisjson.cpp \ dialog_accountmanage.cpp \ dialog_changepwd.cpp \ + dialog_excepdesc.cpp \ dialog_inputserialnum.cpp \ dialog_login.cpp \ dialog_rootfuntion.cpp \ @@ -77,6 +78,7 @@ HEADERS += \ analysisjson.h \ dialog_accountmanage.h \ dialog_changepwd.h \ + dialog_excepdesc.h \ dialog_inputserialnum.h \ dialog_login.h \ dialog_rootfuntion.h \ @@ -91,6 +93,7 @@ HEADERS += \ FORMS += \ dialog_accountmanage.ui \ dialog_changepwd.ui \ + dialog_excepdesc.ui \ dialog_inputserialnum.ui \ dialog_login.ui \ dialog_rootfuntion.ui \ diff --git a/app/HGProductionTool/ProductionTool_zh_CN.qm b/app/HGProductionTool/ProductionTool_zh_CN.qm index 5648002..322408d 100644 Binary files a/app/HGProductionTool/ProductionTool_zh_CN.qm and b/app/HGProductionTool/ProductionTool_zh_CN.qm differ diff --git a/app/HGProductionTool/ProductionTool_zh_CN.ts b/app/HGProductionTool/ProductionTool_zh_CN.ts index 267c6d7..45b7dfd 100644 --- a/app/HGProductionTool/ProductionTool_zh_CN.ts +++ b/app/HGProductionTool/ProductionTool_zh_CN.ts @@ -1,6 +1,34 @@ + + Dialog_ExcepDesc + + + Dialog + 异常说明 + + + + TextLabel + + + + + OK + 确定 + + + + Cancel + 取消 + + + + input excep desc: + 请输入异常说明: + + Dialog_InputSerialNum @@ -73,6 +101,39 @@ 该设备正在进行测试 + + Dialog_UserInput + + + Dialog + + + + + TextLabel + + + + + YES + 确定 + + + + NO + + + + + OK + 确定 + + + + Cancel + 取消 + + Dialog_accountManage @@ -215,32 +276,32 @@ - + account: 账户: - + password: 密码: - + dbHost: 数据库地址: - + dbPort: 数据库端口: - + ftpHost: FTP地址: - + ftpPort: FTP端口: @@ -258,37 +319,37 @@ 登录 - + EXIT 退出 - + Set host and port 设置IP与端口 - + Minimize 最小化 - + Close 关闭 - + LogIn 登录 - + tips 提示 - + Login failed: 登录失败: @@ -453,71 +514,92 @@ STOP 结束测试 + + + SHOWIMG + 加载图片 + Next Step 下一步 - + Device has connected 设备已连接 - + Device hasnot connected 设备未连接 - + Device type: 设备型号: - + SerialNum: 序列号: - + connect status: 设备连接状态: - + + load last image which uploaded last time + 加载上一次上传的图片 + + + + + tips + 提示 + + + ID 序号 - + Test items 测试项 - + status 测试状态 - + not test 未测试 - + not pass 不通过 - + not support 不支持 - + pass 通过 + + + no image + 无图 + Form_textTips @@ -580,7 +662,7 @@ 上传配置文件 - + Account login elsewhere 账户在其他地方登录 @@ -589,96 +671,114 @@ 网络连接断开 - + You have been forced offline by the administrator account 你已被管理员账户强制下线 - + Data base error 数据库错误 - - - - - + + + - + + + tips 提示 - + Are you sure to connect the new device 检测到设备连接,是否启动测试? - + yes 确定 - + no 取消 - - + + cannot create more table 不能创建更多项目 - + The device has disconnected 设备已断开连接 - + save 保存 - + xls(*.xls) xls表格(*.xls) - + export succeed 导出成功 - + export failed 导出失败 - + Illegal user 非法的用户 - + Wrong password 密码错误 - + Database error 数据库错误 - + connect error 连接错误 - + Failed 错误 + + QObject + + + success + 成功 + + + + failed: + 失败: + + + + Not find test item + 没有找到该测试项 + + diff --git a/app/HGProductionTool/dialog_excepdesc.cpp b/app/HGProductionTool/dialog_excepdesc.cpp new file mode 100644 index 0000000..76136cb --- /dev/null +++ b/app/HGProductionTool/dialog_excepdesc.cpp @@ -0,0 +1,30 @@ +#include "dialog_excepdesc.h" +#include "ui_dialog_excepdesc.h" + +Dialog_ExcepDesc::Dialog_ExcepDesc(QWidget *parent) : + QDialog(parent), + ui(new Ui::Dialog_ExcepDesc) +{ + ui->setupUi(this); + ui->label->setText(tr("input excep desc: ")); +} + +Dialog_ExcepDesc::~Dialog_ExcepDesc() +{ + delete ui; +} + +QString Dialog_ExcepDesc::getExcepDesc() +{ + return ui->textEdit->toPlainText(); +} + +void Dialog_ExcepDesc::on_pbtn_ok_clicked() +{ + accept(); +} + +void Dialog_ExcepDesc::on_pbtn_cancel_clicked() +{ + reject(); +} diff --git a/app/HGProductionTool/dialog_excepdesc.h b/app/HGProductionTool/dialog_excepdesc.h new file mode 100644 index 0000000..0acec31 --- /dev/null +++ b/app/HGProductionTool/dialog_excepdesc.h @@ -0,0 +1,29 @@ +#ifndef DIALOG_EXCEPDESC_H +#define DIALOG_EXCEPDESC_H + +#include + +namespace Ui { +class Dialog_ExcepDesc; +} + +class Dialog_ExcepDesc : public QDialog +{ + Q_OBJECT + +public: + explicit Dialog_ExcepDesc(QWidget *parent = nullptr); + ~Dialog_ExcepDesc(); + + QString getExcepDesc(); + +private slots: + void on_pbtn_ok_clicked(); + + void on_pbtn_cancel_clicked(); + +private: + Ui::Dialog_ExcepDesc *ui; +}; + +#endif // DIALOG_EXCEPDESC_H diff --git a/app/HGProductionTool/dialog_excepdesc.ui b/app/HGProductionTool/dialog_excepdesc.ui new file mode 100644 index 0000000..5706ae6 --- /dev/null +++ b/app/HGProductionTool/dialog_excepdesc.ui @@ -0,0 +1,79 @@ + + + Dialog_ExcepDesc + + + + 0 + 0 + 470 + 252 + + + + Dialog + + + + + + + + TextLabel + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + OK + + + + + + + Cancel + + + + + + + + + + diff --git a/app/HGProductionTool/form_maininterface.cpp b/app/HGProductionTool/form_maininterface.cpp index e6704ab..5d5bb96 100644 --- a/app/HGProductionTool/form_maininterface.cpp +++ b/app/HGProductionTool/form_maininterface.cpp @@ -11,6 +11,7 @@ #include "test_base.h" #include "hgscanner.h" #include "mainwindow.h" +#include "dialog_excepdesc.h" typedef struct { @@ -89,12 +90,16 @@ Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, SANE_Handle ha m_view = new HGImgView(); ui->stackedWidget->addWidget(m_textTips); ui->stackedWidget->addWidget(m_view); + ui->pbtn_showImg->setToolTip(tr("load last image which uploaded last time")); initTableWidgetUi(); - HGPdtToolDb_SetDeviceType(m_pdtToolDbDevice, m_devType.toStdString().c_str()); - HGPdtToolDb_SetDeviceVersion(m_pdtToolDbDevice, m_devFwNum.toStdString().c_str()); - HGPdtToolDb_SetDeviceName(m_pdtToolDbDevice, m_devName.toStdString().c_str()); + if(!m_devType.isEmpty()) + HGPdtToolDb_SetDeviceType(m_pdtToolDbDevice, m_devType.toStdString().c_str()); + if(!m_devFwNum.isEmpty()) + HGPdtToolDb_SetDeviceVersion(m_pdtToolDbDevice, m_devFwNum.toStdString().c_str()); + if(!m_devName.isEmpty()) + HGPdtToolDb_SetDeviceName(m_pdtToolDbDevice, m_devName.toStdString().c_str()); m_hg = new hgscanner(this, m_handle); } @@ -162,7 +167,6 @@ void Form_mainInterface::on_testResultImg(void *img) ret = HGPdtToolDb_UploadDeviceEntryImage(m_pdtToolDbDevice, entryName, m_mainwnd->m_ftpHost.toStdString().c_str(), m_mainwnd->m_ftpPort, fileName.toStdString().c_str()); - qDebug() << ret << m_mainwnd->m_ftpHost << m_mainwnd->m_ftpPort << fileName; QFile file(fileName); file.remove(); } @@ -193,12 +197,21 @@ void Form_mainInterface::on_pbtn_fail_clicked() int row = ui->tableWidget->currentRow(); QTableWidgetItem *item = ui->tableWidget->item(row, 1); QString title = item->text(); - setTestItemStatus(title, HGPDTTOOLDB_ENTRYSTATUS_NOTPASS); - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(getItemStatusStr(HGPDTTOOLDB_ENTRYSTATUS_NOTPASS))); - ui->tableWidget->item(row, 2)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + Dialog_ExcepDesc dlg(this); + if (dlg.exec()) + { + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(getItemStatusStr(HGPDTTOOLDB_ENTRYSTATUS_NOTPASS))); + ui->tableWidget->item(row, 2)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + ui->tableWidget->item(row, 2)->setBackgroundColor(QColor(255,0,0)); - ui->tableWidget->item(row, 2)->setBackgroundColor(QColor(255,0,0)); + QString str = dlg.getExcepDesc(); + setTestItemStatus(title, HGPDTTOOLDB_ENTRYSTATUS_NOTPASS); + HGPdtToolDb_SetDeviceEntryExcepDesc(m_pdtToolDbDevice, getTestItem(title), str.toStdString().c_str()); + + QTableWidgetItem *item2 = ui->tableWidget->item(row, 2); + item2->setToolTip(str); + } } void Form_mainInterface::on_pbtn_pass_clicked() @@ -212,6 +225,11 @@ void Form_mainInterface::on_pbtn_pass_clicked() ui->tableWidget->item(row, 2)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); ui->tableWidget->item(row, 2)->setBackgroundColor(QColor(0,255,0)); + HGPdtToolDb_SetDeviceEntryExcepDesc(m_pdtToolDbDevice, getTestItem(title), ""); + + QTableWidgetItem *item2 = ui->tableWidget->item(row, 2); + item2->setToolTip(""); + on_pbtn_nextStep_clicked(); } @@ -309,6 +327,11 @@ void Form_mainInterface::initTableWidgetUi() break; } } + + HGChar desc[512] = {0}; + HGPdtToolDb_GetDeviceEntryExcepDesc(m_pdtToolDbDevice, getTestItem(node.title), desc, 512); + QTableWidgetItem *item = ui->tableWidget->item(i, 2); + item->setToolTip(desc); } std::map::iterator iter; @@ -400,6 +423,7 @@ QString Form_mainInterface::getCacheFileName() void Form_mainInterface::on_tableWidget_currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous) { (void)previous; + ui->pbtn_showImg->setVisible(false); int row = current->row(); int count = ui->tableWidget->rowCount(); ui->pbtn_preStep->setEnabled(row != 0); @@ -413,6 +437,12 @@ void Form_mainInterface::on_tableWidget_currentItemChanged(QTableWidgetItem *cur m_textTips->setViewContent(m_map_title_name.value(title).desc); ui->stackedWidget->setCurrentWidget(m_textTips); + + HGUInt entryName = getTestItem(title); + if (entryName <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION && entryName >= HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE) + { + ui->pbtn_showImg->setVisible(true); + } } void Form_mainInterface::on_pbtn_start_clicked() @@ -423,3 +453,27 @@ void Form_mainInterface::on_pbtn_start_clicked() QString name = m_map_title_name.value(title).name; int ret = func_test_go(name.toStdWString().c_str(), L"null", m_hg); } + +void Form_mainInterface::on_pbtn_showImg_clicked() +{ + QString fileName = getCacheFileName(); + + int row = ui->tableWidget->currentRow(); + QTableWidgetItem *item = ui->tableWidget->item(row, 1); + QString title = item->text(); + HGResult ret = HGPdtToolDb_DownloadDeviceEntryImage(m_pdtToolDbDevice, getTestItem(title), m_mainwnd->m_ftpHost.toStdString().c_str(), + m_mainwnd->m_ftpPort, fileName.toStdString().c_str()); + if(ret == HGBASE_ERR_OK) + { + ui->stackedWidget->setCurrentWidget(m_view); + HGImage img; + HGImgFmt_LoadImage(fileName.toStdString().c_str(), 0, 0, 0, 0, &img); + m_view->addImage(img); + QFile file(fileName); + file.remove(); + } + else + { + QMessageBox::information(this, tr("tips"), tr("no image")); + } +} diff --git a/app/HGProductionTool/form_maininterface.h b/app/HGProductionTool/form_maininterface.h index 8038d51..59db03c 100644 --- a/app/HGProductionTool/form_maininterface.h +++ b/app/HGProductionTool/form_maininterface.h @@ -55,6 +55,8 @@ private slots: void on_pbtn_start_clicked(); + void on_pbtn_showImg_clicked(); + private: void initTableWidgetUi(); HGUInt getTestItem(const QString &title); diff --git a/app/HGProductionTool/form_maininterface.ui b/app/HGProductionTool/form_maininterface.ui index 94ab8a4..1dca20d 100644 --- a/app/HGProductionTool/form_maininterface.ui +++ b/app/HGProductionTool/form_maininterface.ui @@ -6,8 +6,8 @@ 0 0 - 607 - 429 + 691 + 401 @@ -109,6 +109,13 @@ + + + + SHOWIMG + + + diff --git a/app/HGProductionTool/hgscanner.cpp b/app/HGProductionTool/hgscanner.cpp index 0795273..3b3241a 100644 --- a/app/HGProductionTool/hgscanner.cpp +++ b/app/HGProductionTool/hgscanner.cpp @@ -7,6 +7,7 @@ hgscanner::hgscanner(Form_mainInterface *form, SANE_Handle h) : m_interface(form) , devHandle_(h) { + cb_ = nullptr; } hgscanner::~hgscanner() diff --git a/app/HGProductionTool/mainwindow.cpp b/app/HGProductionTool/mainwindow.cpp index 434eaf6..f02e582 100644 --- a/app/HGProductionTool/mainwindow.cpp +++ b/app/HGProductionTool/mainwindow.cpp @@ -242,8 +242,7 @@ int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigne emit p->sane_dev_remove(sane_dev->name); } - if (code == SANE_EVENT_STATUS || code == SANE_EVENT_ERROR || code == SANE_EVENT_WORKING - || code == SANE_EVENT_IMAGE_OK || code == SANE_EVENT_SCAN_FINISHED) + if (code == SANE_EVENT_IMAGE_OK || code == SANE_EVENT_SCAN_FINISHED) { HGBase_EnterLock(p->m_lock); Form_mainInterface* interface = p->FindInterface(hdev);