diff --git a/HuaGoCorrect/A4.cpp b/HuaGoCorrect/A4.cpp index e682202..bb4fb7a 100644 --- a/HuaGoCorrect/A4.cpp +++ b/HuaGoCorrect/A4.cpp @@ -72,6 +72,9 @@ BEGIN_MESSAGE_MAP(CA4, CDialog) ON_BN_CLICKED(IDC_BTNBUP, &CA4::OnBnClickedBtnbup) ON_BN_CLICKED(IDC_BTNBDOWN, &CA4::OnBnClickedBtnbdown) ON_BN_CLICKED(IDC_BTNGET_MB_VERSION, &CA4::OnBnClickedBtngetMbVersion) +// ON_BN_CLICKED(IDC_BTGETROLLERNUM, &CA4::OnBnClickedBtgetrollernum) + ON_BN_CLICKED(IDC_BTCLRROLLERNUM, &CA4::OnBnClickedBtclrrollernum) + ON_BN_CLICKED(IDC_BTGETROLLERNUM, &CA4::OnBnClickedBtgetrollernum) END_MESSAGE_MAP() @@ -502,3 +505,29 @@ void CA4::UpdateVidPid(VIDPID vidpid) MessageBox(L"错误的VID PID", L"提示", MB_OK); } } + + +void CA4::OnBnClickedBtgetrollernum() +{ + // TODO: 在此添加控件通知处理程序代码 + auto parent = (CHuaGoCorrectDlg*)GetParent(); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + int num = parent->m_drv->GetRollerNum(); + CString vs(std::to_string(num).c_str()); + SetDlgItemText(IDC_tbxRollerNum, vs); + } +} + + +void CA4::OnBnClickedBtclrrollernum() +{ + // TODO: 在此添加控件通知处理程序代码 + auto parent = (CHuaGoCorrectDlg*)GetParent(); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + parent->m_drv->ClrRollerNum(); + int num = parent->m_drv->GetRollerNum(); + CString vs(std::to_string(num).c_str()); + SetDlgItemText(IDC_tbxRollerNum, vs); + } +} + diff --git a/HuaGoCorrect/A4.h b/HuaGoCorrect/A4.h index 57eeec5..a4b233e 100644 --- a/HuaGoCorrect/A4.h +++ b/HuaGoCorrect/A4.h @@ -86,4 +86,7 @@ public: afx_msg void OnBnClickedBtngetMbVersion(); int AqrVIDPID(); void UpdateVidPid(VIDPID vidpid); +// afx_msg void OnBnClickedBtgetrollernum(); + afx_msg void OnBnClickedBtclrrollernum(); + afx_msg void OnBnClickedBtgetrollernum(); }; diff --git a/HuaGoCorrect/HuaGoCorrect.aps b/HuaGoCorrect/HuaGoCorrect.aps index 767d48e..b1f6a47 100644 Binary files a/HuaGoCorrect/HuaGoCorrect.aps and b/HuaGoCorrect/HuaGoCorrect.aps differ diff --git a/HuaGoCorrect/HuaGoCorrect.rc b/HuaGoCorrect/HuaGoCorrect.rc index 2879126..3c9ce5e 100644 Binary files a/HuaGoCorrect/HuaGoCorrect.rc and b/HuaGoCorrect/HuaGoCorrect.rc differ diff --git a/HuaGoCorrect/IScanner.h b/HuaGoCorrect/IScanner.h index 9dbd39d..3eb939a 100644 --- a/HuaGoCorrect/IScanner.h +++ b/HuaGoCorrect/IScanner.h @@ -33,6 +33,7 @@ public: virtual void run() = 0; virtual void ActiveteUSB() = 0; virtual int GetScanNum() = 0; + virtual int GetRollerNum() = 0; virtual void ClrRollerNum() = 0; virtual void ClrScanNum() = 0; virtual void SendFlatData(CorrectParam param, int index) = 0; diff --git a/HuaGoCorrect/Resource.h b/HuaGoCorrect/Resource.h index d1cbf59..6c2073a 100644 Binary files a/HuaGoCorrect/Resource.h and b/HuaGoCorrect/Resource.h differ diff --git a/HuaGoCorrect/commondef.h b/HuaGoCorrect/commondef.h index fc65d6e..ded5207 100644 --- a/HuaGoCorrect/commondef.h +++ b/HuaGoCorrect/commondef.h @@ -322,6 +322,10 @@ enum Scanner_Reg_Defs SR_GET_PAPERON, SR_SET_SPEEDMODE, SR_GET_SPEEDMODE, + SR_GET_JOSN_SIZE, + SR_GET_JSON, + SR_SET_JSON_PATH, + SR_SET_JSON, SR_GET_CUO_ERROR = 0x50, SR_GET_DOU_ERROR, SR_GET_JAM_ERROR, diff --git a/HuaGoCorrect/gscan3399.cpp b/HuaGoCorrect/gscan3399.cpp index 2f2d7ce..a6f52b3 100644 --- a/HuaGoCorrect/gscan3399.cpp +++ b/HuaGoCorrect/gscan3399.cpp @@ -4,6 +4,8 @@ #include "filetools.h" #include +const std::string HG_SYSINFO_PATH = "/usr/local/huago/sysinfo.json"; + using namespace cv; static std::mutex mx_ctrl; @@ -391,9 +393,15 @@ int gscan3399::GetScanNum() return scanner_read_reg(m_usb, SR_SCAN_COUNT); } +int gscan3399::GetRollerNum() +{ + uint32_t num = scanner_read_reg(m_usb, SR_GET_ROLLER_NUM); + return num; +} + void gscan3399::ClrRollerNum() { - + scanner_read_reg(m_usb, SR_CLR_ROLLER_NUM); } void gscan3399::ClrScanNum() @@ -546,7 +554,10 @@ void gscan3399::GetOrSetVIDPID(int& value, bool get) std::string gscan3399::GetSysInfo() { - return "Unsupported"; + auto info = GetDeviceFile(HG_SYSINFO_PATH); + if(info.empty()) + return "Unsupported"; + return info; } void gscan3399::usbcallback(bool isleft, void* usrdata) @@ -759,3 +770,23 @@ int gscan3399::codeconvter(HGEIntInfo code) return 0; } + +std::string gscan3399::GetDeviceFile(std::string path) +{ + if (m_usb->is_open() && path.size() > 1) + { + scanner_write_reg(m_usb, SR_SET_JSON_PATH, path.size()); + m_usb->write_bulk(&path[0], path.size()); + int size = 0; + if (size = scanner_read_reg(m_usb, SR_GET_JOSN_SIZE)) + { + std::string buff; + buff.resize(size); + scanner_write_reg(m_usb, SR_GET_JSON, size); + m_usb->read_bulk(&buff[0], size); + return buff; + } + return ""; + } + return ""; +} diff --git a/HuaGoCorrect/gscan3399.h b/HuaGoCorrect/gscan3399.h index 859afc3..efafb26 100644 --- a/HuaGoCorrect/gscan3399.h +++ b/HuaGoCorrect/gscan3399.h @@ -44,6 +44,8 @@ public: virtual int GetScanNum(); + virtual int GetRollerNum(); + virtual void ClrRollerNum(); virtual void ClrScanNum(); @@ -87,6 +89,7 @@ private: void OnUsbHotplug(bool isleft); void usb_run(); int codeconvter(HGEIntInfo code); + std::string GetDeviceFile(std::string path); private: volatile int devState; volatile int Error_Code; diff --git a/HuaGoCorrect/gscn_drv.cpp b/HuaGoCorrect/gscn_drv.cpp index 001d8c2..e9454fd 100644 --- a/HuaGoCorrect/gscn_drv.cpp +++ b/HuaGoCorrect/gscn_drv.cpp @@ -275,7 +275,7 @@ std::string GScn_Drv::GetSysInfo() m_usb->read_bulk(&cmd, sizeof(cmd)); int len = cmd.u32_Count; string str; - str.resize(4096); + str.resize(len); cmd.u32_CMD = GETSYSINFO; cmd.u32_Count = 0; cmd.u32_Data = 0; @@ -665,6 +665,22 @@ int GScn_Drv::GetScanNum() return usbcb.u32_Data; } +int GScn_Drv::GetRollerNum() +{ + std::lock_guard lck(m_imgLocker); + USBCB usbcb = { GET_ROLLER_NUM,0,4 }; + DWORD transfer; + XdPrint(L"Get GetRollerNum"); + m_usb->write_bulk(&usbcb, sizeof(usbcb)); + + CString cslog; + cslog.Format(L"GetRollerNum Read_Data %d", usbcb.u32_Data); + //WriteLog(cslog); + + m_usb->read_bulk(&usbcb, sizeof(usbcb)); + return usbcb.u32_Data; +} + void GScn_Drv::ClrRollerNum() { std::lock_guard lck(m_imgLocker); diff --git a/HuaGoCorrect/gscn_drv.h b/HuaGoCorrect/gscn_drv.h index 7c3b390..da9cbee 100644 --- a/HuaGoCorrect/gscn_drv.h +++ b/HuaGoCorrect/gscn_drv.h @@ -49,6 +49,8 @@ public: virtual int GetScanNum()override; + virtual int GetRollerNum() override; + virtual void ClrRollerNum()override; virtual void ClrScanNum()override;