回调函数调整

This commit is contained in:
13038267101 2022-12-15 20:16:43 +08:00
parent b11649ea9e
commit d3a3560afa
4 changed files with 26 additions and 19 deletions

View File

@ -2,6 +2,7 @@
#include "sane/sane_ex.h" #include "sane/sane_ex.h"
#include "ui_helper.h" #include "ui_helper.h"
#include "test_base.h" #include "test_base.h"
class hgscanner :public ui_helper class hgscanner :public ui_helper
{ {
public: public:
@ -12,8 +13,7 @@ public:
virtual int register_sane_callback(sane_callback cb, void* param); virtual int register_sane_callback(sane_callback cb, void* param);
virtual int unregister_sane_callback(sane_callback cb); virtual int unregister_sane_callback(sane_callback cb);
virtual int io_control(unsigned long code, void* data, unsigned* len); virtual int io_control(unsigned long code, void* data, unsigned* len);
static int sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param); sane_callback cb_;
sane_callback cb_;
private: private:
SANE_Handle devHandle_; SANE_Handle devHandle_;

View File

@ -7,7 +7,6 @@
#include "dialog_changepwd.h" #include "dialog_changepwd.h"
#include "dialog_accountmanage.h" #include "dialog_accountmanage.h"
#include "dialog_uploadcfgfile.h" #include "dialog_uploadcfgfile.h"
#include "hgscanner.h"
MainWindow::MainWindow(QWidget *parent) MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
@ -60,6 +59,7 @@ void MainWindow::Init()
SANE_Int v = 0; SANE_Int v = 0;
sane_init_ex(&v, sane_ex_callback, this); sane_init_ex(&v, sane_ex_callback, this);
Sleep(500);
} }
void MainWindow::Deinit() void MainWindow::Deinit()
@ -94,7 +94,7 @@ int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigne
{ {
(void)hdev; (void)hdev;
(void)len; (void)len;
MainWindow *p = (MainWindow *)param; MainWindow* p = (MainWindow*)param;
switch (code) switch (code)
{ {
case SANE_EVENT_DEVICE_ARRIVED: case SANE_EVENT_DEVICE_ARRIVED:
@ -111,6 +111,11 @@ int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigne
break; break;
} }
if (!hdev)
{
return -1;
}
p->hg->cb_(hdev, code, data, len, NULL);
return 0; return 0;
} }
@ -135,12 +140,12 @@ std::vector<std::string> MainWindow::getDevices()
void MainWindow::on_sane_dev_arrive(QString devName) void MainWindow::on_sane_dev_arrive(QString devName)
{ {
// SANE_Status ret = sane_open(devName.toStdString().c_str(), &m_handle); SANE_Status ret = sane_open(devName.toStdString().c_str(), &m_handle);
// ui_helper* helper; ui_helper* helper;
// hgscanner* hg = new hgscanner(m_handle); this->hg = new hgscanner(m_handle);
// helper = dynamic_cast<hgscanner*>(hg); helper = dynamic_cast<hgscanner*>(this->hg);
// func_test_go(L"test-31", L"null", helper); func_test_go(L"test-31", L"null", helper);
} }
void MainWindow::on_sane_dev_remove(QString devName) void MainWindow::on_sane_dev_remove(QString devName)
@ -269,8 +274,8 @@ QString MainWindow::getLogInfo(HGResult ret)
return str; return str;
} }
void MainWindow::on_act_upload_triggered() //void MainWindow::on_act_upload_triggered()
{ //{
Dialog_uploadCfgFile dlg(m_pdtToolDbuserMgr, this); // Dialog_uploadCfgFile dlg(m_pdtToolDbuserMgr, this);
dlg.exec(); // dlg.exec();
} //}

View File

@ -7,6 +7,8 @@
#include <QSplitter> #include <QSplitter>
#include "HGPdtToolDb.h" #include "HGPdtToolDb.h"
#include "sane/sane_ex.h" #include "sane/sane_ex.h"
#include "hgscanner.h"
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; } namespace Ui { class MainWindow; }
QT_END_NAMESPACE QT_END_NAMESPACE
@ -20,7 +22,7 @@ class MainWindow : public QMainWindow
public: public:
MainWindow(QWidget *parent = nullptr); MainWindow(QWidget *parent = nullptr);
~MainWindow(); ~MainWindow();
hgscanner* hg;
void Init(); void Init();
void Deinit(); void Deinit();
static QString getLogInfo(HGResult ret); static QString getLogInfo(HGResult ret);
@ -56,7 +58,7 @@ private slots:
void on_act_close_triggered(); void on_act_close_triggered();
void on_act_upload_triggered(); /* void on_act_upload_triggered();*/
private: private:
QSplitter *m_top_splitter; QSplitter *m_top_splitter;

View File

@ -151,13 +151,13 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader> <PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalIncludeDirectories>../include/x64;../../../sdk/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../include/x64;../../../sdk/include;C:\Users\modehua\Desktop\sane\code_app\build\windows\x64\Debug;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC> <EnableUAC>false</EnableUAC>
<AdditionalLibraryDirectories>../lib/x64;../../../sdk/lib/win/x64/Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>../lib/x64;../../../sdk/lib/win/x64/Release;C:\Users\modehua\Desktop\sane\code_production\db\HGPdtToolDb\x64\Debug;C:\Users\modehua\Desktop\sane\code_app\build\windows\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>libmysql.lib;HGBase.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libmysql.lib;HGBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>HGPdtToolDb.def</ModuleDefinitionFile> <ModuleDefinitionFile>HGPdtToolDb.def</ModuleDefinitionFile>
</Link> </Link>