From fae6326c7e7d0abc7897736956b2e40729aa7238 Mon Sep 17 00:00:00 2001
From: yangjiaxuan <171295266@qq.com>
Date: Thu, 15 Dec 2022 15:00:12 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=83=AD=E6=8B=94=E6=8F=92?=
=?UTF-8?q?=E6=B5=81=E7=A8=8B=EF=BC=8Cjson=E8=AF=BB=E5=8F=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/HGProductionTool/HGProductionTool.pro | 10 +-
app/HGProductionTool/ProductionTool_zh_CN.qm | Bin 5065 -> 5065 bytes
app/HGProductionTool/ProductionTool_zh_CN.ts | 2 +-
app/HGProductionTool/analysisjson.cpp | 9 +-
app/HGProductionTool/dialog_uploadcfgfile.cpp | 1 +
app/HGProductionTool/mainwindow.cpp | 92 ++++++++----------
app/HGProductionTool/mainwindow.h | 17 +++-
7 files changed, 73 insertions(+), 58 deletions(-)
diff --git a/app/HGProductionTool/HGProductionTool.pro b/app/HGProductionTool/HGProductionTool.pro
index 592561a..1d90fc2 100644
--- a/app/HGProductionTool/HGProductionTool.pro
+++ b/app/HGProductionTool/HGProductionTool.pro
@@ -25,6 +25,7 @@ win32 {
contains(QT_ARCH, i386) {
LIBS += -L../../../sdk/lib/win/x86/Release -lHGBase -lHGImgFmt -lHGImgProc
LIBS += -L../../../sdk/lib/win/x86/OEM/huagao -lsane
+ LIBS += -L../../code/base/Debug/ -ltest
CONFIG(release, debug|release) {
LIBS += -L../../db/Release -lHGPdtToolDb
DESTDIR = ../../../release/win/x86/Release
@@ -36,7 +37,6 @@ win32 {
contains(QT_ARCH, x86_64){
LIBS += -L../../../sdk/lib/win/x64/Release -lHGBase -lHGImgFmt -lHGImgProc
LIBS += -L../../../sdk/lib/win/x64/OEM/huagao -lsane
-
CONFIG(release, debug|release) {
LIBS += -L../../db/x64/Release -lHGPdtToolDb
DESTDIR = ../../../release/win/x64/Release
@@ -62,8 +62,10 @@ SOURCES += \
dialog_uploadcfgfile.cpp \
form_maininterface.cpp \
form_texttips.cpp \
+ hgscanner.cpp \
main.cpp \
- mainwindow.cpp
+ mainwindow.cpp \
+ ui_helper.cpp
HEADERS += \
HGImgView.h \
@@ -76,7 +78,9 @@ HEADERS += \
dialog_uploadcfgfile.h \
form_maininterface.h \
form_texttips.h \
- mainwindow.h
+ hgscanner.h \
+ mainwindow.h \
+ ui_helper.h
FORMS += \
dialog_accountmanage.ui \
diff --git a/app/HGProductionTool/ProductionTool_zh_CN.qm b/app/HGProductionTool/ProductionTool_zh_CN.qm
index ff789a1d60d87b182c2285a09ed5b767fe3b0deb..634121b51b6a2d89f2b913870de12eb473db396f 100644
GIT binary patch
delta 17
ZcmX@9eo}qIeqNT;cE4|%5A(9I0RTqL2Ot0d
delta 17
ZcmX@9eo}qIeqNTcck!W{5A(9I0RTr&2M7QF
diff --git a/app/HGProductionTool/ProductionTool_zh_CN.ts b/app/HGProductionTool/ProductionTool_zh_CN.ts
index 5bf13d1..d0fd2b0 100644
--- a/app/HGProductionTool/ProductionTool_zh_CN.ts
+++ b/app/HGProductionTool/ProductionTool_zh_CN.ts
@@ -257,7 +257,7 @@
- 选择目录
+ 选择文件
diff --git a/app/HGProductionTool/analysisjson.cpp b/app/HGProductionTool/analysisjson.cpp
index 17753fa..d9cdf7f 100644
--- a/app/HGProductionTool/analysisjson.cpp
+++ b/app/HGProductionTool/analysisjson.cpp
@@ -4,6 +4,7 @@
#include
#include
#include
+#include
AnalysisJson::AnalysisJson(QString path)
{
@@ -23,7 +24,13 @@ std::vector AnalysisJson::GetNode()
if(!m_json.isObject())
return nodes;
auto obj = m_json.object();
- for(auto key : obj.keys())
+
+ auto keys = obj.keys().toVector();
+ std::sort(keys.begin(),keys.end(),[](QString x,QString y){
+ return x.toInt()setupUi(this);
+ setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
}
Dialog_uploadCfgFile::~Dialog_uploadCfgFile()
diff --git a/app/HGProductionTool/mainwindow.cpp b/app/HGProductionTool/mainwindow.cpp
index 8fc283b..d20e837 100644
--- a/app/HGProductionTool/mainwindow.cpp
+++ b/app/HGProductionTool/mainwindow.cpp
@@ -17,11 +17,18 @@ MainWindow::MainWindow(HGPdtToolDbUserMgr userMgr, QWidget *parent)
, m_top_splitter(nullptr)
, m_bot_splitter(nullptr)
, m_splitterCount(1)
+ , m_handle(nullptr)
, m_isLogOut(false)
{
ui->setupUi(this);
setWindowIcon(QIcon(":image/image_rsc/logo/logo.ico"));
+ connect(this, SIGNAL(sane_dev_arrive(QString)), this, SLOT(on_sane_dev_arrive(QString)), Qt::QueuedConnection);
+ connect(this, SIGNAL(sane_dev_remove(QString)), this, SLOT(on_sane_dev_remove(QString)), Qt::QueuedConnection);
+
+ SANE_Int v = 0;
+ sane_init_ex(&v, sane_ex_callback, this);
+
HGUInt userType = 0;
HGPdtToolDb_GetUserType(m_pdtToolDbuserMgr, &userType);
if (userType == HGPDTTOOLDB_USERTYPE_NORMAL)
@@ -42,7 +49,6 @@ MainWindow::MainWindow(HGPdtToolDbUserMgr userMgr, QWidget *parent)
vLayout->setStretch(0, 1);
vLayout->setStretch(1, 0);
this->centralWidget()->setLayout(vLayout);
- test();
}
MainWindow::~MainWindow()
@@ -58,7 +64,31 @@ bool MainWindow::isExitApp()
return !m_isLogOut;
}
-std::vector MainWindow::get_devices()
+int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigned int *len, void *param)
+{
+ (void)hdev;
+ (void)len;
+ MainWindow *p = (MainWindow *)param;
+ switch (code)
+ {
+ case SANE_EVENT_DEVICE_ARRIVED:
+ {
+ SANE_Device_Ex* sane_dev = (SANE_Device_Ex*)data;
+ emit p->sane_dev_arrive(sane_dev->name);
+ }
+ break;
+ case SANE_EVENT_DEVICE_LEFT:
+ {
+ SANE_Device* sane_dev = (SANE_Device*)data;
+ emit p->sane_dev_remove(sane_dev->name);
+ }
+ break;
+ }
+
+ return 0;
+}
+
+std::vector MainWindow::getDevices()
{
std::vector name;
const SANE_Device** devs_list;
@@ -77,59 +107,21 @@ std::vector MainWindow::get_devices()
return name;
}
-
-int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param)
+void MainWindow::on_sane_dev_arrive(QString devName)
{
- switch (code)
- {
- case SANE_EVENT_DEVICE_ARRIVED:
- (SANE_Device*)data;
- break;
- case SANE_EVENT_DEVICE_LEFT:
- (SANE_Device*)data;
- break;
- case SANE_EVENT_WORKING:
- (char*)data;
- break;
- case SANE_EVENT_SCAN_FINISHED:
- (char*)data;
- break;
- case SANE_EVENT_STATUS:
- (char*)data;
- break;
- case SANE_EVENT_ERROR:
- (char*)data;
- break;
- case SANE_EVENT_IMAGE_OK:
- SANE_Image* sane_img = (SANE_Image*)data;
- break;
- }
- // sane_ex_callback1(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param);
+ SANE_Status ret = sane_open(devName.toStdString().c_str(), &m_handle);
- return 0;
-}
-void MainWindow::test()
-{
- SANE_Handle devHandle;
- SANE_Status status = SANE_STATUS_GOOD;
- SANE_Int version_code = 0;
- status = sane_init_ex(&version_code, sane_ex_callback, NULL);
- Sleep(2000);
- const SANE_Device** device_list;
- //status = sane_get_devices(&device_list, SANE_TRUE);
- std::vector name = get_devices();
-
- // SANE_String_Const n = name[0].c_str();
- int len = name[0].size();
- char* buf = new char[len];
- strcpy(buf, name[0].c_str());
- sane_open(buf, &devHandle);
ui_helper* helper;
- hgscanner* hg = new hgscanner(devHandle);
+ hgscanner* hg = new hgscanner(m_handle);
helper = dynamic_cast(hg);
- // sane_ex_callback1();
- func_test_go(L"test-35", L"null", helper);
+ func_test_go(L"test-31", L"null", helper);
}
+
+void MainWindow::on_sane_dev_remove(QString devName)
+{
+
+}
+
void MainWindow::on_act_newDevice_triggered()
{
m_splitterCount++;
diff --git a/app/HGProductionTool/mainwindow.h b/app/HGProductionTool/mainwindow.h
index 7770f4c..f41c7bf 100644
--- a/app/HGProductionTool/mainwindow.h
+++ b/app/HGProductionTool/mainwindow.h
@@ -20,11 +20,21 @@ public:
~MainWindow();
static QString getLogInfo(HGResult ret);
-
bool isExitApp();
- void test();
+
+
+private:
static int sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param);
- std::vector get_devices();
+
+ std::vector getDevices();
+
+signals:
+ void sane_dev_arrive(QString devName);
+ void sane_dev_remove(QString devName);
+
+private slots:
+ void on_sane_dev_arrive(QString devName);
+ void on_sane_dev_remove(QString devName);
private slots:
void on_act_newDevice_triggered();
@@ -44,6 +54,7 @@ private slots:
private:
QSplitter *m_top_splitter;
QSplitter *m_bot_splitter;
+ SANE_Handle m_handle;
int m_splitterCount;
bool m_isLogOut;