From a285d896606b945313457f59a612d1c01f658d4c Mon Sep 17 00:00:00 2001 From: lovelyyoung <1002639516@qq.com> Date: Wed, 26 Jan 2022 17:05:59 +0800 Subject: [PATCH] =?UTF-8?q?3288=20400=20=E6=95=A6=E5=8D=97cis=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HuaGoCorrect/A3.cpp | 11 ++ HuaGoCorrect/A3.h | 2 +- HuaGoCorrect/A4.cpp | 12 +- HuaGoCorrect/HuaGoCorrect.aps | Bin 129792 -> 108944 bytes HuaGoCorrect/HuaGoCorrect.rc | Bin 39372 -> 39500 bytes HuaGoCorrect/HuaGoCorrect.vcxproj | 2 + HuaGoCorrect/HuaGoCorrect.vcxproj.filters | 6 + HuaGoCorrect/HuaGoCorrectDlg.cpp | 14 +- HuaGoCorrect/HuaGoCorrectDlg.h | 3 + HuaGoCorrect/IScanner.h | 5 +- HuaGoCorrect/Resource.h | Bin 14666 -> 14850 bytes HuaGoCorrect/ScannerTypeConfig.cpp | 61 +++++++ HuaGoCorrect/ScannerTypeConfig.h | 29 +++ HuaGoCorrect/commondef.h | 24 ++- HuaGoCorrect/gscan3399.cpp | 9 +- HuaGoCorrect/gscan3399.h | 6 +- HuaGoCorrect/gscn_drv.cpp | 208 ++++++++++++---------- HuaGoCorrect/gscn_drv.h | 5 +- 18 files changed, 279 insertions(+), 118 deletions(-) create mode 100644 HuaGoCorrect/ScannerTypeConfig.cpp create mode 100644 HuaGoCorrect/ScannerTypeConfig.h diff --git a/HuaGoCorrect/A3.cpp b/HuaGoCorrect/A3.cpp index e3accd9..f9268f7 100644 --- a/HuaGoCorrect/A3.cpp +++ b/HuaGoCorrect/A3.cpp @@ -46,6 +46,7 @@ BEGIN_MESSAGE_MAP(CA3, CDialog) ON_BN_CLICKED(IDC_BTNSETSPEED, &CA3::OnBnClickedBtnsetspeed) ON_BN_CLICKED(IDC_BTNGETSPEED, &CA3::OnBnClickedBtngetspeed) ON_BN_CLICKED(IDC_BTNGETIP, &CA3::OnBnClickedBtngetip) + ON_BN_CLICKED(IDC_BTNGETSYSINFO, &CA3::OnBnClickedBtnGetSysInfo) END_MESSAGE_MAP() @@ -363,3 +364,13 @@ void CA3::OnBnClickedBtngetip() SetDlgItemText(IDC_LBIPADDR, vs); } } + +void CA3::OnBnClickedBtnGetSysInfo() +{ + auto parent = (CHuaGoCorrectDlg*)GetParent(); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + std::string version = parent->m_drv->GetSysInfo(); + CString vs(version.c_str()); + MessageBox(vs, TEXT("ϵͳϢ"),MB_OK); + } +} diff --git a/HuaGoCorrect/A3.h b/HuaGoCorrect/A3.h index eaee330..e657a69 100644 --- a/HuaGoCorrect/A3.h +++ b/HuaGoCorrect/A3.h @@ -28,7 +28,7 @@ public: afx_msg void OnBnClickedBtnsetuvsp(); afx_msg void OnBnClickedBtngetcolorsp(); afx_msg void OnBnClickedBtnsetcolorsp(); - + afx_msg void OnBnClickedBtnGetSysInfo(); private: void OnGetOrSetSp(bool get, int type); public: diff --git a/HuaGoCorrect/A4.cpp b/HuaGoCorrect/A4.cpp index 0e5c3dc..e682202 100644 --- a/HuaGoCorrect/A4.cpp +++ b/HuaGoCorrect/A4.cpp @@ -265,7 +265,8 @@ void CA4::OnBnClickedBtnGethor() auto parent = (CHuaGoCorrectDlg*)GetParent(); int ratio = 0; if (parent->m_drv.get() && parent->m_drv->IsConnected()) { - parent->m_drv->GetRatio(0, ratio); + int dpi = parent->GetSelectDPIIndex() == 0 ? 1 : (parent->GetSelectDPIIndex() == 1 ? 2 : 3); + parent->m_drv->GetRatio(0, ratio, dpi); float f_ratio = *(float*)∶ CString str; str.Format(L"%.4f", f_ratio); @@ -279,7 +280,8 @@ void CA4::OnBnClickedBtnGetver() auto parent = (CHuaGoCorrectDlg*)GetParent(); int ratio = 0; if (parent->m_drv.get() && parent->m_drv->IsConnected()) { - parent->m_drv->GetRatio(1, ratio); + int dpi = parent->GetSelectDPIIndex() == 0 ? 1 : (parent->GetSelectDPIIndex() == 1 ? 2 : 3); + parent->m_drv->GetRatio(1, ratio, dpi); float f_ratio = *(float*)∶ CString str; str.Format(L"%.4f", f_ratio); @@ -292,13 +294,14 @@ void CA4::OnBnClickedBtnSethor() { auto parent = (CHuaGoCorrectDlg*)GetParent(); if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + int dpi = parent->GetSelectDPIIndex() == 0 ? 1 : (parent->GetSelectDPIIndex() == 1 ? 2 : 3); CString str; GetDlgItemText(IDC_tbxHOR, str); USES_CONVERSION; std::string s_str(W2A(str)); float f_value = atof(s_str.c_str()); int value = *(int*)&f_value; - parent->m_drv->SetRatio(0, value); + parent->m_drv->SetRatio(0, value, dpi); } } @@ -307,13 +310,14 @@ void CA4::OnBnClickedBtnSetver() { auto parent = (CHuaGoCorrectDlg*)GetParent(); if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + int dpi = parent->GetSelectDPIIndex() == 0 ? 1 : (parent->GetSelectDPIIndex() == 1 ? 2 : 3); CString str; GetDlgItemText(IDC_tbxVER, str); USES_CONVERSION; std::string s_str(W2A(str)); float f_value = atof(s_str.c_str()); int value = *(int*)&f_value; - parent->m_drv->SetRatio(1, value); + parent->m_drv->SetRatio(1, value, dpi); } } diff --git a/HuaGoCorrect/HuaGoCorrect.aps b/HuaGoCorrect/HuaGoCorrect.aps index 83e34458d2660a7cb3e3720c4d99ce70aaa79625..767d48eae057d77cafeed804fe1c41b55045fbdb 100644 GIT binary patch delta 3011 zcmbtWdrXs86h8+FRDp^L0tF@_LY=c~vEnplllMcyvjv%rpio70)Zt_PK^V?unrJrM zb>3wUB^eU4k*L9lONb0-G8a^EFs4Njm`q%l(?!s*M|bY`wGQ+jnte^b``vSXzjMw# z=e}yjylT5VYr}Evp?UK)E9()`SC~_Gu1~R=W3(mKQj1wESD{VZ{W!7eMxLG+-;_$oh-dFk-quz5~;0?``0IzoLJ$;s;dWELnQC5{uP# z**cHx!mU`v4|UvTi1a}a0qzq;`V-!+ITUiTw@DNJPa;I2T~aqkC~oS9kSZ;e?VeWZcy#5vthoRJ=! zE|5=p@Q7$@f0A3xbxf9RRb5A|&@^7h@;S1txwQ@J=9SMVdODDoZctie-T4Dvg=rL< zu3%NcQ~jA67$sX9zJWoDoynzgW}9#q#DEI&6+kJhf#$tEd4E>jt{%v;77N@tjy6iq zIXUvhNiB(1w9LyBA*+h^k&pmXN&?vU#Kz8&C)i-;${< zw1_e?!PghJ5~p&uA(*<|A2?i2j4vBRC_2Pe+u^ z9}Z$L&;1!2Nps|mJP^$t^ptX-8^TJ#s2`Hb+uS{b6_O(HE*A5;JE)9yr}E_Dt7w4f zU~-fv9<21+0U7jO52ZByDw~hp#f83_RaC4vNQN~~MAI^jzB3>TQmB_f--YyT0wZB~ z=OYYVG*z_SUdCS=#Q?4wMTHBjJ^!($9@)xKeAh!uK}K@lF$_ev)2CZ~O=*biCSTxWuGfS^B9gjW-#MS(yT<*HNJ)WV|smCCQjqn3tBBoF!{M zXBDcs_yxPRFC6RHNmZyquZQETLlue*O(UxMBqN-1r#L8IsZap%)Y|Re(;Gks3MFk> z(j%t5cofQXSOI3j?xd=uP;Jb#sI;^-Sfv`7iDdvIJ65)U)s($1?NBn0-7MEK<>pFX zv5hVvn2z4d*uKq6CWCgfnDU@!MHkA|lSTFHjM0F%**#+jtJ@ODLQJWVE^PdQ@Z(r z$BfCd$;7-jM7R{CTOcwlc%g}JC~|Fhn9AZTxi0y_HLTB);~M2_c7J2g(*KvL^JHVO zYi_?4ZdvuFnXb_;G25nG)bX}a4D_A2*w*r)QJn87t|r~`)r94@&hp$yeSeg$Dm?Zv zT_a9Oofx-BcXqT*9W_jgwQ-tQzwY#xSFWF*Lb}a}MLdiEXMC8pJ!AoWwWyp(+HmQa zh&(|$g&(WFs*XBA^vf?ep`On{FOleQG*kVejw&=A}REnDyLp#m-f5~`YO_g2RQYcp3|Qr|1EUKlkJy1t5-su$jw6J zU){xEFB|ENI^yD{uvVH(}Q delta 14391 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 GsQo|ISYi+W diff --git a/HuaGoCorrect/HuaGoCorrect.rc b/HuaGoCorrect/HuaGoCorrect.rc index a374b95b40497f824e02f5f4373c7411ce0362f9..2879126c97834bf52349b5621cc5d7b0f1b3ecb7 100644 GIT binary patch delta 74 zcmX@Jnd!_HrVS1vtdMLw!eKA_1lSs+G@<9E&dx`+Px36nQiNl8aC1T%Ot c_%XOK_%rA*7&DkK7y@ZSAhg)5XtO#N0Gt&SbpQYW delta 25 hcmX@Jh3U*@rVS1vj24?+MLw!eo;HPV^8uTlSOAQz3djHe diff --git a/HuaGoCorrect/HuaGoCorrect.vcxproj b/HuaGoCorrect/HuaGoCorrect.vcxproj index 74f2e67..c60ce25 100644 --- a/HuaGoCorrect/HuaGoCorrect.vcxproj +++ b/HuaGoCorrect/HuaGoCorrect.vcxproj @@ -234,6 +234,7 @@ opencv_imgproc2410d.lib;%(AdditionalDependencies) + @@ -255,6 +256,7 @@ opencv_imgproc2410d.lib;%(AdditionalDependencies) + diff --git a/HuaGoCorrect/HuaGoCorrect.vcxproj.filters b/HuaGoCorrect/HuaGoCorrect.vcxproj.filters index dd309b4..abf502f 100644 --- a/HuaGoCorrect/HuaGoCorrect.vcxproj.filters +++ b/HuaGoCorrect/HuaGoCorrect.vcxproj.filters @@ -123,6 +123,9 @@ 头文件 + + 头文件 + @@ -176,6 +179,9 @@ 源文件 + + 源文件 + diff --git a/HuaGoCorrect/HuaGoCorrectDlg.cpp b/HuaGoCorrect/HuaGoCorrectDlg.cpp index bf26f4f..6c1f4ea 100644 --- a/HuaGoCorrect/HuaGoCorrectDlg.cpp +++ b/HuaGoCorrect/HuaGoCorrectDlg.cpp @@ -177,10 +177,10 @@ BOOL CHuaGoCorrectDlg::OnInitDialog() // ݵõtabRectm_VisonDlgӶԻ򣬲Ϊ m_VisonDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW); - m_ComboxDpi.InsertString(0, _T("300")); - m_ComboxDpi.InsertString(1, _T("200")); - m_ComboxDpi.InsertString(2, _T("150")); - m_ComboxDpi.SetCurSel(1); + m_ComboxDpi.InsertString(0, _T("200")); + m_ComboxDpi.InsertString(1, _T("300")); + m_ComboxDpi.InsertString(2, _T("600")); + m_ComboxDpi.SetCurSel(0); m_ComboxColor.InsertString(0, _T("gray")); m_ComboxColor.InsertString(1, _T("color")); @@ -345,8 +345,8 @@ void CHuaGoCorrectDlg::Scan() m_drv->PID == 0x8739 || m_drv->PID == 0x8629) { - config.g200params.dpi = 1;//only support 200DPI - config.g200params.paper = 2; + config.g200params.dpi = m_iDpiIndex==0?1:(m_iDpiIndex==1?2:3);//only support 200DPI + config.g200params.paper = 16; config.g200params.pc_correct = ((CButton*)GetDlgItem(IDC_CKBORGINIMG))->GetCheck(); config.g200params.color = m_iColorIndex == 1 ? 1 : 0; config.g200params.double_feed_enbale = TRUE; @@ -355,7 +355,7 @@ void CHuaGoCorrectDlg::Scan() } else { - config.g400params.dpi = 1;//only support 200DPI + config.g400params.dpi = m_iDpiIndex == 0 ? 1 : (m_iDpiIndex == 1 ? 2 : 3);//only support 200DPI ;// 1;//only support 200DPI config.g400params.pageSize = 0; config.g400params.isCorrect = !((CButton*)GetDlgItem(IDC_CKBORGINIMG))->GetCheck(); config.g400params.isColor = m_iColorIndex == 1 ? 1 : 0; diff --git a/HuaGoCorrect/HuaGoCorrectDlg.h b/HuaGoCorrect/HuaGoCorrectDlg.h index d1d3ab7..dbbca9a 100644 --- a/HuaGoCorrect/HuaGoCorrectDlg.h +++ b/HuaGoCorrect/HuaGoCorrectDlg.h @@ -110,6 +110,9 @@ public: afx_msg void OnCbnSelchangeCmbUsbs(); afx_msg void OnBnClickedBtnstart(); afx_msg void OnBnClickedBtnstop(); + int GetSelectDPIIndex() { + return m_iDpiIndex; + } private: CString updateFilePath; std::thread m_updateThread; diff --git a/HuaGoCorrect/IScanner.h b/HuaGoCorrect/IScanner.h index 3148010..9dbd39d 100644 --- a/HuaGoCorrect/IScanner.h +++ b/HuaGoCorrect/IScanner.h @@ -18,8 +18,8 @@ public: virtual std::string GetMbVersion() = 0; virtual std::string GetIpAddr() = 0; virtual std::string GetKernelVersion() =0; - virtual void SetRatio(int tyepe, int ration) = 0; - virtual void GetRatio(int type, int& ratio) = 0; + virtual void SetRatio(int tyepe, int ration,int dpi=0) = 0; + virtual void GetRatio(int type, int& ratio,int dpi=0) = 0; virtual void Reboot(bool loader=false) = 0; virtual void PowerOff() = 0; virtual bool is_scan() = 0; @@ -54,6 +54,7 @@ public: virtual void SetFlatCallback(std::function func) = 0; virtual void GetSpeedMode(int& speedmode,bool get) = 0 ; virtual void GetOrSetVIDPID(int& value, bool get) = 0; + virtual std::string GetSysInfo() = 0; void SetPath(std::string csFilePath) { csPath = csFilePath; diff --git a/HuaGoCorrect/Resource.h b/HuaGoCorrect/Resource.h index 7247a599bc50a136ebfc677affad9d4a40bb5ec6..d1cbf591d5ce8399aeb342a187dae823e8242468 100644 GIT binary patch delta 80 zcmX?A)Ks$Jnb~ALGYMWNhERqOAoOSOV=$T=D6c*Fh=t7L2TUxJ<+O#kBN>7jJb^N9 g4E~cBGRdH3tDJS{$ddZ0H>1{YXATM delta 24 gcmZoFIaRdbnc3!f=1&+W+n9?@zGopad5vWl0GDG66951J diff --git a/HuaGoCorrect/ScannerTypeConfig.cpp b/HuaGoCorrect/ScannerTypeConfig.cpp new file mode 100644 index 0000000..c6c0a31 --- /dev/null +++ b/HuaGoCorrect/ScannerTypeConfig.cpp @@ -0,0 +1,61 @@ +#include "stdafx.h" +#include "ScannerTypeConfig.h" +#include "json.hpp" +#include +#include +#include + + + +ScannerTypeConfig::ScannerTypeConfig() +{ + if (_access("scannerconfig.json", 0) != 0) + { + json j = json::array(); + { + for (size_t i = 0; i < m_supscanner.size(); i++) + { + json t_j; + auto tsup = m_supscanner[i]; + to_json(t_j, tsup); + j.push_back(t_j); + } + } + std::ofstream ofs("scannerconfig.json"); + //ofs << std::setw(4) << js << std::endl; + } +} + +ScannerTypeConfig::~ScannerTypeConfig() +{ + +} + +std::vector ScannerTypeConfig::GetSupScanners() +{ + return std::vector(); +} + +void ScannerTypeConfig::AddSupScanner(SupScanner add) +{ +} + +void ScannerTypeConfig::initconfig() +{ +} + +void ScannerTypeConfig::from_json(json& j, SupScanner& sup) +{ + j.at("VID").get_to(sup.VID); + j.at("PID").get_to(sup.PID); + j.at("ScannerType").get_to(sup.ScannerType); +} + +void ScannerTypeConfig::to_json(json& j, SupScanner& sup) +{ + j = json{ + {"VID",sup.VID}, + {"PID",sup.PID}, + {"ScannerType",sup.ScannerType} + }; +} diff --git a/HuaGoCorrect/ScannerTypeConfig.h b/HuaGoCorrect/ScannerTypeConfig.h new file mode 100644 index 0000000..60a4b27 --- /dev/null +++ b/HuaGoCorrect/ScannerTypeConfig.h @@ -0,0 +1,29 @@ +#pragma once +#include "commondef.h" +#include +#include +#include "json.hpp" + +using json = nlohmann::json; +class ScannerTypeConfig +{ +public: + ScannerTypeConfig(); + ~ScannerTypeConfig(); + std::vector GetSupScanners(); + void AddSupScanner(SupScanner add); +private: + void initconfig(); + void from_json(json& j, SupScanner& sup); + void to_json(json& j, SupScanner& sup); + const std::vector< SupScanner> m_supscanner = { + {0x064b,0x7823,ScannerType::S_G139}, + {0x3072,0x0139,ScannerType::S_G139}, + {0x3072,0x0239,ScannerType::S_G239}, + {0x3072,0x0300,ScannerType::S_G300_3288}, + {0x3072,0x0300,ScannerType::S_G300UV_3288}, + {0x3072,0x0339,ScannerType::S_G300_3399}, + {0x3072,0x0400,ScannerType::S_G400_3288}, + {0x3072,0x0439,ScannerType::S_G400_3399}, + }; +}; diff --git a/HuaGoCorrect/commondef.h b/HuaGoCorrect/commondef.h index 1eb3a2b..f3ef036 100644 --- a/HuaGoCorrect/commondef.h +++ b/HuaGoCorrect/commondef.h @@ -167,7 +167,9 @@ enum tagUsbKeyWords :unsigned int GET_UV_EXPOSA = 0x100, GET_UV_EXPOSB = 0x101, SET_UV_EXPOSA = 0x102, - SET_UV_EXPOSB = 0x103 + SET_UV_EXPOSB = 0x103, + GETSYSINFO_LEN = 0x200, + GETSYSINFO = 0x201 }; typedef enum tagUsbKeyWords UsbKeyWords, * PUsbKeyWords; @@ -416,4 +418,22 @@ struct HGEIntInfo HGType From; unsigned int Code; unsigned int Img_Index; -}; \ No newline at end of file +}; + +enum class ScannerType +{ + S_G139, + S_G239, + S_G300_3288, + S_G300UV_3288, + S_G300_3399, + S_G400_3288, + S_G400_3399 +}; + + +typedef struct { + unsigned short VID; + unsigned short PID; + ScannerType ScannerType; +}SupScanner; \ No newline at end of file diff --git a/HuaGoCorrect/gscan3399.cpp b/HuaGoCorrect/gscan3399.cpp index bbda6b1..10098c6 100644 --- a/HuaGoCorrect/gscan3399.cpp +++ b/HuaGoCorrect/gscan3399.cpp @@ -197,12 +197,12 @@ std::string gscan3399::GetKernelVersion() return version; } -void gscan3399::SetRatio(int tyepe, int ration) +void gscan3399::SetRatio(int tyepe, int ration,int dpi) { scanner_write_reg(m_usb, tyepe == 0 ? SR_SET_H_RATIO : SR_SET_V_RATIO, ration); } -void gscan3399::GetRatio(int type, int& ratio) +void gscan3399::GetRatio(int type, int& ratio,int dpi) { ratio = scanner_read_reg(m_usb, type == 0 ? SR_GET_H_RATIO : SR_GET_V_RATIO); } @@ -532,6 +532,11 @@ void gscan3399::GetOrSetVIDPID(int& value, bool get) } } +std::string gscan3399::GetSysInfo() +{ + return "Unsupported"; +} + void gscan3399::usbcallback(bool isleft, void* usrdata) { gscan3399* This = (gscan3399*)usrdata; diff --git a/HuaGoCorrect/gscan3399.h b/HuaGoCorrect/gscan3399.h index 6fa25ad..859afc3 100644 --- a/HuaGoCorrect/gscan3399.h +++ b/HuaGoCorrect/gscan3399.h @@ -19,8 +19,8 @@ public: virtual std::string GetKernelVersion(); virtual std::string GetIpAddr(); virtual std::string GetMbVersion(); - virtual void SetRatio(int tyepe, int ration); - virtual void GetRatio(int type, int& ratio); + virtual void SetRatio(int tyepe, int ration,int dpi=0); + virtual void GetRatio(int type, int& ratio,int dpi=0); virtual void Reboot(bool loader=false); virtual void PowerOff(); virtual bool is_scan(); @@ -72,7 +72,7 @@ public: virtual void SetFlatCallback(std::function func); virtual void GetSpeedMode(int& speedmode,bool getorset); virtual void GetOrSetVIDPID(int& value, bool get) override; - + virtual std::string GetSysInfo() override; private: static void usbcallback(bool isleft, void* usrdata); int read_data(void* data, int length, int timeout); diff --git a/HuaGoCorrect/gscn_drv.cpp b/HuaGoCorrect/gscn_drv.cpp index 577c08b..001d8c2 100644 --- a/HuaGoCorrect/gscn_drv.cpp +++ b/HuaGoCorrect/gscn_drv.cpp @@ -14,10 +14,10 @@ //#define BYTE unsigned char GScn_Drv::GScn_Drv() - :selectDeviceIndex(-1),m_scannerType(-1),m_isScanning(false) + :selectDeviceIndex(-1), m_scannerType(-1), m_isScanning(false) { //run(); - + XdPrint(L"Init GScn_Drv() \n"); m_bRun = false; @@ -25,7 +25,7 @@ GScn_Drv::GScn_Drv() InitMSGMap(); InitScannerDiviceMap(); - + } GScn_Drv::~GScn_Drv() @@ -42,38 +42,38 @@ GScn_Drv::~GScn_Drv() void GScn_Drv::InitMSGMap() { - if (ntcMsg.size()>0) + if (ntcMsg.size() > 0) ntcMsg.clear(); - ntcMsg[COUNT_MODE]="ģʽ˳ģʽ"; - ntcMsg[NO_FEED]="ֽֽţ"; - ntcMsg[OPEN_COVER]="ɨǿǣ"; - ntcMsg[FEED_IN_ERROR]="ʰֽ"; - ntcMsg[PAPER_JAM]="ֽ"; - ntcMsg[DETECT_DOUBLE_FEED]="˫ţ"; - ntcMsg[DETECT_STAPLE]="룡"; - ntcMsg[PAPER_SKEW]="ֽб"; - ntcMsg[HARDWARE_ERROR]="Ӳ"; - ntcMsg[PC_SCAN_BUSY_or_ERROR]="PC"; + ntcMsg[COUNT_MODE] = "ģʽ˳ģʽ"; + ntcMsg[NO_FEED] = "ֽֽţ"; + ntcMsg[OPEN_COVER] = "ɨǿǣ"; + ntcMsg[FEED_IN_ERROR] = "ʰֽ"; + ntcMsg[PAPER_JAM] = "ֽ"; + ntcMsg[DETECT_DOUBLE_FEED] = "˫ţ"; + ntcMsg[DETECT_STAPLE] = "룡"; + ntcMsg[PAPER_SKEW] = "ֽб"; + ntcMsg[HARDWARE_ERROR] = "Ӳ"; + ntcMsg[PC_SCAN_BUSY_or_ERROR] = "PC"; } void GScn_Drv::InitScannerDiviceMap() { - if (devType.size()>0) + if (devType.size() > 0) { devType.clear(); } - devType["G100"]=G100; - devType["G200"]=G200; - devType["G300"]=G300; - devType["G400"]=G400; - devType["G500"]=G500; + devType["G100"] = G100; + devType["G200"] = G200; + devType["G300"] = G300; + devType["G400"] = G400; + devType["G500"] = G500; } static int iNum = 0; -void GScn_Drv::open(int vid, int pid,int index) +void GScn_Drv::open(int vid, int pid, int index) { auto devs = UsbScan_List::find_vid_pid(vid, pid); @@ -83,9 +83,9 @@ void GScn_Drv::open(int vid, int pid,int index) m_usb->open();//?ͬʱڶͬɨ豸ʱĬѡȡһvid pidƥ豸 VID = vid; PID = pid; - selectDeviceIndex=index; - m_scannerType=G300; - h= ::FindWindow(NULL, L"HGScannerTool"); + selectDeviceIndex = index; + m_scannerType = G300; + h = ::FindWindow(NULL, L"HGScannerTool"); } } @@ -108,7 +108,7 @@ std::string GScn_Drv::popMat(int num) } -int GScn_Drv::aquire_image(std::string& image,int num) +int GScn_Drv::aquire_image(std::string& image, int num) { while (true) { @@ -166,7 +166,7 @@ void GScn_Drv::SetExpose(int aside, int bside) void GScn_Drv::GetSptime(int type, int& time) { - USBCB usb = {0,0,0}; + USBCB usb = { 0,0,0 }; switch (type) { case 0: @@ -213,7 +213,7 @@ void GScn_Drv::GetSleepTime(int& sleeptime) USBCB usb = { GET_SLEEP_TIME,0,0 }; m_usb->write_bulk(&usb, sizeof(usb)); m_usb->read_bulk(&usb, sizeof(usb)); - sleeptime=usb.u32_Data; + sleeptime = usb.u32_Data; } } @@ -243,7 +243,7 @@ void GScn_Drv::GetSpeedMode(int& speedmode, bool get) { if (m_usb.get() && m_usb->is_connected()) { - USBCB speed = { get ? GET_SPEED_MODE:SET_SPEED_MODE,speedmode,0 }; + USBCB speed = { get ? GET_SPEED_MODE : SET_SPEED_MODE,speedmode,0 }; m_usb->write_bulk(&speed, sizeof(speed)); if (get) { @@ -267,6 +267,24 @@ void GScn_Drv::GetOrSetVIDPID(int& value, bool get) } } +std::string GScn_Drv::GetSysInfo() +{ + UsbKeyWords keyword = GETSYSINFO_LEN; + USBCB cmd = { keyword ,0,0 }; + m_usb->write_bulk(&cmd, sizeof(cmd)); + m_usb->read_bulk(&cmd, sizeof(cmd)); + int len = cmd.u32_Count; + string str; + str.resize(4096); + cmd.u32_CMD = GETSYSINFO; + cmd.u32_Count = 0; + cmd.u32_Data = 0; + m_usb->write_bulk(&cmd, sizeof(cmd)); + m_usb->read_bulk(&str[0], len); + int aa = 0; + return str; +} + void GScn_Drv::reset() { while (!m_pImages.empty()) @@ -282,8 +300,8 @@ void GScn_Drv::pushMat(JpegBuffer& data) } bool GScn_Drv::IsConnected() -{ - if(m_usb.get()) +{ + if (m_usb.get()) return m_usb->is_connected(); else return false; @@ -294,7 +312,7 @@ bool GScn_Drv::IsConnected() cv::Mat GScn_Drv::Get_Img_Data(int bufferSize) { std::lock_guard lck(m_Locker); - cv::Mat iData(1, bufferSize,CV_8UC1); + cv::Mat iData(1, bufferSize, CV_8UC1); USBCB usbcb = { GET_IMAGE,0,bufferSize }; DWORD transfer; @@ -399,8 +417,8 @@ DWORD GScn_Drv::usbmain() try { while (m_bRun) - { - if (devState==DEV_ISRUNNING) + { + if (devState == DEV_ISRUNNING) { if (!IsConnected()) { @@ -411,60 +429,60 @@ DWORD GScn_Drv::usbmain() switch (usbcb.u32_Data) { case HAVE_IMAGE: + { + int totalNum = usbcb.u32_Count; + DWORD transferCount = 0; + iNum++; + cv::Mat imgData = Get_Img_Data(totalNum); + switch (m_scannerType) { - int totalNum = usbcb.u32_Count; - DWORD transferCount = 0; - iNum++; - cv::Mat imgData = Get_Img_Data(totalNum); - switch(m_scannerType) + case G100: + case G200: + { + cv::Mat bufferF = imgData.clone(); + cv::Mat bufferB = imgData.clone(); + int j = 0; + int k = 0; + for (int i = 0; i < totalNum / 1024; i++) { - case G100: - case G200: + if (imgData.data[1023 + i * 1024] == 0) { - cv::Mat bufferF = imgData.clone(); - cv::Mat bufferB = imgData.clone(); - int j = 0; - int k = 0; - for (int i = 0; i < totalNum / 1024; i++) + j++; + memcpy(&(bufferB.data[(j - 1) * 1023]), &(imgData.data[(j + k - 1) * 1024]), 1023); + } + else if (imgData.data[1023 + i * 1024] == 255) { - if (imgData.data[1023 + i * 1024] == 0) - { - j++; - memcpy(&(bufferB.data[(j - 1) * 1023]), &(imgData.data[(j + k - 1) * 1024]), 1023); - } - else if (imgData.data[1023 + i * 1024] == 255) - { - k++; - memcpy(&(bufferF.data[(k - 1) * 1023]), &(imgData.data[(j + k - 1) * 1024]), 1023); - } + k++; + memcpy(&(bufferF.data[(k - 1) * 1023]), &(imgData.data[(j + k - 1) * 1024]), 1023); } - pushMat(JpegBuffer(bufferB,m_config.g200params.color==1?TJPF_BGR:TJPF_GRAY,0,0)); - pushMat(JpegBuffer(bufferF, m_config.g200params.color == 1 ? TJPF_BGR : TJPF_GRAY,1,0)); - break; - } - case G300: - case G400: - case G500: - { - pushMat(JpegBuffer(imgData, m_config.g200params.color == 1 ? TJPF_BGR : TJPF_GRAY,0,0)); - //auto img = fopen("inmg.jpg", "wb+"); - //fwrite(imgData.data, 1, totalNum, img); - //fclose(img); } - break; - default: - break; - } - Pop_Image(); + pushMat(JpegBuffer(bufferB, m_config.g200params.color == 1 ? TJPF_BGR : TJPF_GRAY, 0, 0)); + pushMat(JpegBuffer(bufferF, m_config.g200params.color == 1 ? TJPF_BGR : TJPF_GRAY, 1, 0)); break; } + case G300: + case G400: + case G500: + { + pushMat(JpegBuffer(imgData, m_config.g200params.color == 1 ? TJPF_BGR : TJPF_GRAY, 0, 0)); + //auto img = fopen("inmg.jpg", "wb+"); + //fwrite(imgData.data, 1, totalNum, img); + //fclose(img); + } + break; + default: + break; + } + Pop_Image(); + break; + } case STOP_SCAN: - { - m_isScanning=false; - devState = DEV_STOP; - m_pImages.SetScanFlag(false); - break; - } + { + m_isScanning = false; + devState = DEV_STOP; + m_pImages.SetScanFlag(false); + break; + } case AUTO_FLAT_FINISHED: { m_isScanning = false; @@ -499,7 +517,7 @@ DWORD GScn_Drv::usbmain() case DETECT_STAPLE: case PAPER_SKEW: case HARDWARE_ERROR: - case PC_SCAN_BUSY_or_ERROR:{ + case PC_SCAN_BUSY_or_ERROR: { USES_CONVERSION; MessageBox(h, CString(ntcMsg[usbcb.u32_Data].c_str()), L"ʾ?", MB_OK | MB_ICONERROR); devState = DEV_WRONG; @@ -567,7 +585,7 @@ void GScn_Drv::Scanner_StartScan(UINT16 count) USBCB usbcb = { START_COMMAND,AUTO_SCAN_MODE ,0 }; m_usb->write_bulk(&usbcb, sizeof(usbcb)); iNum = 0; - m_pImages.pixType=m_config.g200params.color; + m_pImages.pixType = m_config.g200params.color; m_pImages.SetDevModel(m_scannerType); m_pImages.SetFilePath(csPath); m_pImages.run(); @@ -581,14 +599,14 @@ std::string GScn_Drv::GetFWVersion() { if (m_usb->is_connected()) { - std::lock_guard lck(m_imgLocker); + std::lock_guard lck(m_imgLocker); std::string pFWVersion = " "; USBCB usbcb = { GET_FW_VERSION,0,0 }; - XdPrint(L"Get GetFWVersion"); + XdPrint(L"Get GetFWVersion"); m_usb->write_bulk(&usbcb, sizeof(usbcb)); CString cslog; - cslog.Format(L"GetFWVersion Read_Data %d",usbcb.u32_Data); + cslog.Format(L"GetFWVersion Read_Data %d", usbcb.u32_Data); m_usb->read_bulk(&pFWVersion[0], 10); return pFWVersion; @@ -619,7 +637,7 @@ void GScn_Drv::SetSerialNum(std::string pvalue) if (m_usb->is_connected()) { std::lock_guard lck(m_imgLocker); - USBCB sercmd = { SEND_SERIAL ,0,14}; + USBCB sercmd = { SEND_SERIAL ,0,14 }; m_usb->write_bulk(&sercmd, sizeof(sercmd)); m_usb->write_bulk(&pvalue, pvalue.length()); } @@ -640,7 +658,7 @@ int GScn_Drv::GetScanNum() m_usb->write_bulk(&usbcb, sizeof(usbcb)); CString cslog; - cslog.Format(L"GetScanNum Read_Data %d",usbcb.u32_Data); + cslog.Format(L"GetScanNum Read_Data %d", usbcb.u32_Data); //WriteLog(cslog); m_usb->read_bulk(&usbcb, sizeof(usbcb)); @@ -694,7 +712,7 @@ void GScn_Drv::SendFlatData(CorrectParam param, int index) CaptureParams GScn_Drv::GetFlatData() { - CaptureParams param = {0}; + CaptureParams param = { 0 }; USBCB usbcb = { GET_FLAT_DATA,0,0 }; DWORD transfer; m_usb->write_bulk(&usbcb, sizeof(usbcb)); @@ -728,7 +746,7 @@ void GScn_Drv::DevStateChange() /////////////////////////////////////////////////////////////////////////// std::string GScn_Drv::GetSerialNum() { - if (!m_usb.get()&&!m_usb->is_connected()) + if (!m_usb.get() && !m_usb->is_connected()) { return ""; } @@ -738,22 +756,22 @@ std::string GScn_Drv::GetSerialNum() str.resize(14); USBCB usbcb = { GET_SERIAL,0,14 }; m_usb->write_bulk(&usbcb, sizeof(usbcb)); - XdPrint(L"GetSerialNum Read_Data %d",usbcb.u32_Data); + XdPrint(L"GetSerialNum Read_Data %d", usbcb.u32_Data); m_usb->read_bulk(&str, 14); return str; } -void GScn_Drv::SetRatio(int tyepe, int ration) +void GScn_Drv::SetRatio(int tyepe, int ration, int dpi) { UsbKeyWords keyword = tyepe == 0 ? SET_JUST_COF_H : SET_JUST_COF_V; - USBCB cmd = { keyword ,ration,0}; + USBCB cmd = { keyword ,ration,dpi }; m_usb->write_bulk(&cmd, sizeof(cmd)); } -void GScn_Drv::GetRatio(int type, int& ratio) +void GScn_Drv::GetRatio(int type, int& ratio, int dpi) { UsbKeyWords keyword = type == 0 ? GET_JUST_COF_H : GET_JUST_COF_V; - USBCB cmd = { keyword ,0,0 }; + USBCB cmd = { keyword ,0,dpi }; m_usb->write_bulk(&cmd, sizeof(cmd)); m_usb->read_bulk(&cmd, sizeof(cmd)); ratio = cmd.u32_Data; @@ -761,7 +779,7 @@ void GScn_Drv::GetRatio(int type, int& ratio) void GScn_Drv::Reboot(bool loader) { - USBCB cmd = { REBOOT,loader?1:0,0 }; + USBCB cmd = { REBOOT,loader ? 1 : 0,0 }; m_usb->write_bulk(&cmd, sizeof(cmd)); } @@ -783,7 +801,7 @@ USBCB GScn_Drv::Get_Scanner_Status() //XdPrint("Get_Scanner_Status Read_Data %d \n",usbcb.u32_Data); - m_usb->read_bulk(&usbcb,sizeof(usbcb)); + m_usb->read_bulk(&usbcb, sizeof(usbcb)); //XdPrint("Get_Scanner_Status return usbcb \n",usbcb.u32_Data); return usbcb; @@ -792,7 +810,7 @@ USBCB GScn_Drv::Get_Scanner_Status() /////////////////////////////////////////////////////////////////////////// bool GScn_Drv::is_scan() { - return devState==DEV_ISRUNNING; + return devState == DEV_ISRUNNING; } /////////////////////////////////////////////////////////////////////////// diff --git a/HuaGoCorrect/gscn_drv.h b/HuaGoCorrect/gscn_drv.h index 7b0c7b0..7c3b390 100644 --- a/HuaGoCorrect/gscn_drv.h +++ b/HuaGoCorrect/gscn_drv.h @@ -30,8 +30,8 @@ public: virtual std::string GetMbVersion(); virtual std::string GetIpAddr(); virtual std::string GetKernelVersion(); - virtual void SetRatio(int tyepe, int ration); - virtual void GetRatio(int type, int& ratio); + virtual void SetRatio(int tyepe, int ration,int dpi=0); + virtual void GetRatio(int type, int& ratio,int dpi=0); virtual void Reboot(bool loader=false); virtual void PowerOff() {}; virtual bool is_scan()override; @@ -80,6 +80,7 @@ public: virtual void SetFlatCallback(std::function func)override; virtual void GetSpeedMode(int& speedmode, bool get)override; virtual void GetOrSetVIDPID(int& value, bool get) override; + virtual std::string GetSysInfo() override; private: volatile int devState; volatile bool m_bRun;