diff --git a/app/HGProductionTool/dialog_inputserialnum.cpp b/app/HGProductionTool/dialog_inputserialnum.cpp index 64f6c1d..c3b86a4 100644 --- a/app/HGProductionTool/dialog_inputserialnum.cpp +++ b/app/HGProductionTool/dialog_inputserialnum.cpp @@ -1,16 +1,20 @@ #include "dialog_inputserialnum.h" #include "ui_dialog_inputserialnum.h" #include "mainwindow.h" +#include "base/HGBase.h" -Dialog_InputSerialNum::Dialog_InputSerialNum(class MainWindow *mainWnd, const QString &devName, SANE_Handle handle, const QString &serialNum, const QString &devType) : +Dialog_InputSerialNum::Dialog_InputSerialNum(class MainWindow *mainWnd, const QString &devName, HGPdtToolDbUserMgr pdtToolDbuserMgr, + SANE_Handle handle, const QString &serialNum, const QString &devType) : QDialog(mainWnd), ui(new Ui::Dialog_InputSerialNum), m_mainWnd(mainWnd), m_handle(handle), m_valid(true), m_serialNum(serialNum), - m_devType(devType) - , m_devName(devName) + m_devType(devType), + m_devName(devName), + m_pdtToolDbuserMgr(pdtToolDbuserMgr), + m_hg(nullptr) { ui->setupUi(this); @@ -21,6 +25,7 @@ Dialog_InputSerialNum::Dialog_InputSerialNum(class MainWindow *mainWnd, const QS this->setFont(ft); ui->lineEdit_sn->setValidator(new QRegExpValidator(QRegExp("[a-zA-Z0-9]+$"))); + ui->lineEdit_sn->setMaxLength(14); if (handle != nullptr) { @@ -35,6 +40,11 @@ Dialog_InputSerialNum::Dialog_InputSerialNum(class MainWindow *mainWnd, const QS ui->lineEdit_sn->setText(""); ui->pbtn_setSn->setEnabled(false); } + + if (m_handle != nullptr) + m_hg = new hgscanner(nullptr, nullptr, this, m_handle); + + connect(this, SIGNAL(testResult()), this, SLOT(on_testResult())); } Dialog_InputSerialNum::~Dialog_InputSerialNum() @@ -63,6 +73,53 @@ void Dialog_InputSerialNum::Invalid(const QString &devName) } } +void Dialog_InputSerialNum::setSpeedAndSleep() +{ + if (m_hg != nullptr) + { + HGChar cfgPath[512] = {0}; + HGBase_GetConfigPath(cfgPath, 512); + HGBase_CreateDir(cfgPath); + strcat(cfgPath, m_devType.toStdString().c_str()); + strcat(cfgPath, ".json"); + + HGPdtToolDb_DownloadFile(m_pdtToolDbuserMgr, m_devType.toStdString().c_str(), cfgPath); + + AnalysisJson analysisJson(QString::fromStdString(cfgPath)); + AnalysisJson::json_global jsonGlobal = analysisJson.GetGlobal(); + LPWRITECFG lp = new WRITECFG; + + VIDPID vidpid; + vidpid.VID = jsonGlobal.vid_to; + vidpid.PID = jsonGlobal.pid_to; + int vidpidValue = vidpid.Value; + lp->cat = WRITE_CAT_VID_PID; + lp->val = (void*)&vidpidValue; + func_test_go(WRITE_CFG_NAME, (const wchar_t*)lp, m_hg); + m_mainWnd->addTestingRef(); + + int speedMode = jsonGlobal.speed_mode ; + lp->cat = WRITE_CAT_SPEED; + lp->val = (void*)&speedMode; + func_test_go(WRITE_CFG_NAME, (const wchar_t*)lp, m_hg); + m_mainWnd->addTestingRef(); + + int sleepTime = jsonGlobal.sleep_time; + lp->cat = WRITE_CAT_SLEEP; + lp->val = (void*)&sleepTime; + func_test_go(WRITE_CFG_NAME, (const wchar_t*)lp, m_hg); + m_mainWnd->addTestingRef(); + + delete lp; + } + +} + +void Dialog_InputSerialNum::on_testResult() +{ + m_mainWnd->releaseTesting(); +} + void Dialog_InputSerialNum::on_pbtn_ok_clicked() { if (!m_valid) @@ -114,4 +171,6 @@ void Dialog_InputSerialNum::on_pbtn_setSn_clicked() ui->lineEdit_sn->setText(m_mainWnd->getDevSn(m_handle)); QMessageBox::information(this, tr("tips"), tr("set sn succeed")); } + + setSpeedAndSleep(); } diff --git a/app/HGProductionTool/dialog_inputserialnum.h b/app/HGProductionTool/dialog_inputserialnum.h index b1ce6d8..6ad0b0d 100644 --- a/app/HGProductionTool/dialog_inputserialnum.h +++ b/app/HGProductionTool/dialog_inputserialnum.h @@ -3,6 +3,8 @@ #include #include "sane/sane_ex.h" +#include "HGPdtToolDb.h" +#include "hgscanner.h" namespace Ui { class Dialog_InputSerialNum; @@ -13,12 +15,31 @@ class Dialog_InputSerialNum : public QDialog Q_OBJECT public: - explicit Dialog_InputSerialNum(class MainWindow *mainWnd, const QString &devName, SANE_Handle handle, const QString &serialNum, const QString &devType); + explicit Dialog_InputSerialNum(class MainWindow *mainWnd, const QString &devName, HGPdtToolDbUserMgr pdtToolDbuserMgr, + SANE_Handle handle, const QString &serialNum, const QString &devType); ~Dialog_InputSerialNum(); QString GetSn(); QString GetDevType(); void Invalid(const QString &devName); + void setSpeedAndSleep(); + +signals: + void testResult(); + +private slots: + void on_testResult(); + +private: + union VIDPID + { + struct + { + unsigned short VID; + unsigned short PID; + }; + unsigned int Value; + }; private slots: void on_pbtn_ok_clicked(); @@ -36,6 +57,8 @@ private: QString m_serialNum; QString m_devType; QString m_devName; + HGPdtToolDbUserMgr m_pdtToolDbuserMgr; + hgscanner *m_hg; }; #endif // DIALOG_INPUTSERIALNUM_H diff --git a/app/HGProductionTool/dialog_inputserialnum.ui b/app/HGProductionTool/dialog_inputserialnum.ui index 1a85ecc..6734f5c 100644 --- a/app/HGProductionTool/dialog_inputserialnum.ui +++ b/app/HGProductionTool/dialog_inputserialnum.ui @@ -6,8 +6,8 @@ 0 0 - 536 - 206 + 572 + 212 @@ -45,7 +45,7 @@ 190 80 191 - 20 + 31 @@ -107,7 +107,7 @@ 190 30 191 - 20 + 31 @@ -120,10 +120,10 @@ - 400 + 390 30 - 75 - 23 + 131 + 31 diff --git a/app/HGProductionTool/dialog_userinput.cpp b/app/HGProductionTool/dialog_userinput.cpp index 73b71ee..becc7cd 100644 --- a/app/HGProductionTool/dialog_userinput.cpp +++ b/app/HGProductionTool/dialog_userinput.cpp @@ -45,8 +45,7 @@ Dialog_UserInput::Dialog_UserInput(ui_helper::value_type type, const QString &ti ft.setPointSize(15); this->setFont(ft); - - ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("^-?(([0-9]{0,16}(\\.[0-9]{1,16})$)|([0-9]+$))"))); + ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("^-?(([0-9]{0,16}(\\.[0-9]{1,16})$)|([a-zA-Z0-9]+$))"))); } Dialog_UserInput::~Dialog_UserInput() diff --git a/app/HGProductionTool/form_burnmode.cpp b/app/HGProductionTool/form_burnmode.cpp index 3614e38..05148c5 100644 --- a/app/HGProductionTool/form_burnmode.cpp +++ b/app/HGProductionTool/form_burnmode.cpp @@ -222,7 +222,7 @@ DeviceManager::DeviceManager(class MainWindow *mainwnd, HGPdtToolDbUserMgr pdtTo m_sn = sn; m_devType = devType; - m_hg = new hgscanner(nullptr, m_burnMode, m_handle); + m_hg = new hgscanner(nullptr, m_burnMode, nullptr, m_handle); } DeviceManager::~DeviceManager() diff --git a/app/HGProductionTool/form_maininterface.cpp b/app/HGProductionTool/form_maininterface.cpp index 8207e31..a59af62 100644 --- a/app/HGProductionTool/form_maininterface.cpp +++ b/app/HGProductionTool/form_maininterface.cpp @@ -49,7 +49,7 @@ Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, Dialog_logIn:: if (m_handle) { str = tr("Device has connected"); - m_hg = new hgscanner(this, nullptr, m_handle); + m_hg = new hgscanner(this, nullptr, nullptr, m_handle); } else str = tr("Device hasnot connected"); @@ -470,13 +470,13 @@ QString Form_mainInterface::getSpeedMode(SANE_Int speedMode) int speed = 0; if (m_devType == "G100") - speed = G100[(int)speedMode]; + speed = G100[(int)speedMode - 1]; else if (m_devType == "G200") - speed = G200[(int)speedMode]; + speed = G200[(int)speedMode - 1]; else if (m_devType == "G300") - speed = G300[(int)speedMode]; + speed = G300[(int)speedMode - 1]; else if (m_devType == "G400") - speed = G400[(int)speedMode]; + speed = G400[(int)speedMode - 1]; return QString::number(speed) + "PPM"; } diff --git a/app/HGProductionTool/hgscanner.cpp b/app/HGProductionTool/hgscanner.cpp index 381188c..b34dcf1 100644 --- a/app/HGProductionTool/hgscanner.cpp +++ b/app/HGProductionTool/hgscanner.cpp @@ -2,12 +2,14 @@ #include #include "form_maininterface.h" #include "form_burnmode.h" +#include "dialog_inputserialnum.h" #include "dialog_userinput.h" #include -hgscanner::hgscanner(Form_mainInterface *form, Form_BurnMode *burnMode, SANE_Handle h) +hgscanner::hgscanner(Form_mainInterface *form, Form_BurnMode *burnMode, Dialog_InputSerialNum *inputSnDlg, SANE_Handle h) : m_interface(form) , m_burnMode(burnMode) + , m_inputSnDlg(inputSnDlg) , devHandle_(h) { cb_ = nullptr; @@ -71,10 +73,8 @@ void hgscanner::test_callback(const wchar_t* name, test_event ev, void* data, si { if (data != nullptr) { - if (m_burnMode != nullptr) - { - emit m_burnMode->testResult(flag); - } + if (m_inputSnDlg != nullptr) + emit m_inputSnDlg->testResult(); } } else if (ev == TEST_EVENT_RESULT) diff --git a/app/HGProductionTool/hgscanner.h b/app/HGProductionTool/hgscanner.h index c693b0f..31f5d5b 100644 --- a/app/HGProductionTool/hgscanner.h +++ b/app/HGProductionTool/hgscanner.h @@ -5,11 +5,12 @@ class Form_mainInterface; class Form_BurnMode; +class Dialog_InputSerialNum; class hgscanner :public ui_helper { public: - hgscanner(Form_mainInterface *form, Form_BurnMode *burnMode, SANE_Handle h); + hgscanner(Form_mainInterface *form, Form_BurnMode *burnMode, Dialog_InputSerialNum *inputSnDlg, SANE_Handle h); ~hgscanner(); virtual parameter* get_user_input(data_from from, value_type type, const wchar_t* title, const wchar_t* desc = NULL); virtual void test_callback(const wchar_t* name/*test name*/, test_event ev, void* data, size_t flag); @@ -20,6 +21,7 @@ public: private: class Form_mainInterface *m_interface; class Form_BurnMode *m_burnMode; + class Dialog_InputSerialNum *m_inputSnDlg; SANE_Handle devHandle_; }; diff --git a/app/HGProductionTool/mainwindow.cpp b/app/HGProductionTool/mainwindow.cpp index f57ff0f..f098f31 100644 --- a/app/HGProductionTool/mainwindow.cpp +++ b/app/HGProductionTool/mainwindow.cpp @@ -41,6 +41,7 @@ MainWindow::MainWindow(HGPdtToolDbUserMgr pdtToolDbuserMgr, Dialog_logIn::LogInT if (m_loginType == Dialog_logIn::LogInType_Burn) { ui->act_newDevice->setVisible(false); + ui->act_refreshDevice->setVisible(false); m_formBurnMode = new Form_BurnMode(this, this); @@ -51,6 +52,8 @@ MainWindow::MainWindow(HGPdtToolDbUserMgr pdtToolDbuserMgr, Dialog_logIn::LogInT } else { + ui->act_refreshDevice->setVisible(true); + m_top_splitter = new QSplitter(Qt::Horizontal); m_bot_splitter = new QSplitter(Qt::Horizontal); m_top_splitter->setMinimumWidth(600); @@ -264,6 +267,7 @@ void MainWindow::addTestingRef() { ++m_testingRef; + ui->act_refreshDevice->setEnabled(false); ui->act_close->setEnabled(false); ui->act_manage->setEnabled(false); ui->act_logOut->setEnabled(false); @@ -278,6 +282,7 @@ void MainWindow::releaseTesting() if (0 == m_testingRef) { + ui->act_refreshDevice->setEnabled(true); ui->act_close->setEnabled(true); ui->act_manage->setEnabled(true); ui->act_logOut->setEnabled(true); @@ -418,7 +423,7 @@ void MainWindow::on_sane_dev_arrive(QString devName) sane_open(devName.toStdString().c_str(), &devHandle); if (nullptr != devHandle) { - m_inputSnDlg = new Dialog_InputSerialNum(this, devName, devHandle, getDevSn(devHandle), getDevType(devHandle)); + m_inputSnDlg = new Dialog_InputSerialNum(this, devName, m_pdtToolDbuserMgr, devHandle, getDevSn(devHandle), getDevType(devHandle)); if (m_inputSnDlg->exec()) { HGPdtToolDbDevice pdtToolDbDevice = nullptr; @@ -507,7 +512,7 @@ void MainWindow::on_update_userStatus() void MainWindow::on_act_newDevice_triggered() { - m_inputSnDlg = new Dialog_InputSerialNum(this, "", nullptr, "", ""); + m_inputSnDlg = new Dialog_InputSerialNum(this, "", nullptr, nullptr, "", ""); if (m_inputSnDlg->exec()) { HGPdtToolDbDevice pdtToolDbDevice = nullptr; @@ -619,7 +624,7 @@ void MainWindow::on_act_refreshDevice_triggered() sane_open(name[i].c_str(), &devHandle); if (nullptr != devHandle) { - m_inputSnDlg = new Dialog_InputSerialNum(this, name[i].c_str(), devHandle, getDevSn(devHandle), getDevType(devHandle)); + m_inputSnDlg = new Dialog_InputSerialNum(this, name[i].c_str(), m_pdtToolDbuserMgr, devHandle, getDevSn(devHandle), getDevType(devHandle)); if (m_inputSnDlg->exec()) { HGPdtToolDbDevice pdtToolDbDevice = nullptr;