From eb83eec0d532282e3cf329466c8b215f58f27e11 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Wed, 1 Jun 2022 16:11:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=83=A8=E5=88=86=E6=97=A5?= =?UTF-8?q?=E5=BF=97=EF=BC=9B=E4=BF=AE=E5=A4=8DWIN=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E6=9E=9A=E4=B8=BE=E6=A8=A1=E5=9D=97BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hgdriver/hgdev/hg_ipc.cpp | 2 +- hgdriver/hgdev/hg_scanner_200.cpp | 10 +++++----- hgdriver/hgdev/usb_manager.cpp | 14 ++++++++++---- hgdriver/wrapper/hg_log.cpp | 22 +++++++++++----------- hgdriver/wrapper/hg_log.h | 2 ++ hgdriver/wrapper/huagaoxxx_warraper_ex.cpp | 5 ++--- 6 files changed, 31 insertions(+), 24 deletions(-) diff --git a/hgdriver/hgdev/hg_ipc.cpp b/hgdriver/hgdev/hg_ipc.cpp index e6f0e2a..c9f66b0 100644 --- a/hgdriver/hgdev/hg_ipc.cpp +++ b/hgdriver/hgdev/hg_ipc.cpp @@ -250,7 +250,7 @@ char* shared_memory::get_buf(void) #else int* h = (int*)&obj_; char* buf = (char*)shmat(*h, 0, 0); - VLOG_MINI_3(LOG_LEVEL_DEBUG_INFO, "shared memory %d tiny_buffer = %s, error = %d\n", *h, hg_log::format_ptr(buf).c_str(), errno); + VLOG_MINI_3(LOG_LEVEL_DEBUG_INFO, "shared memory %d buffer = %s, error = %d\n", *h, hg_log::format_ptr(buf).c_str(), errno); #endif return buf; diff --git a/hgdriver/hgdev/hg_scanner_200.cpp b/hgdriver/hgdev/hg_scanner_200.cpp index 337bbe4..d1eed39 100644 --- a/hgdriver/hgdev/hg_scanner_200.cpp +++ b/hgdriver/hgdev/hg_scanner_200.cpp @@ -604,11 +604,11 @@ void hg_scanner_200::image_process(std::shared_ptr& buffer) param.double_side = img_conf_.is_duplex; param.dpi = img_conf_.resolution_dst; - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"param.black_white :%d\r\n",param.black_white); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"param.channels :%d\r\n",param.channels); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"param.color_mode :%d\r\n",param.color_mode); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"param.double_side :%d\r\n",param.double_side); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"param.dpi :%d\r\n",param.dpi); + //VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"param.black_white :%d\r\n",param.black_white); + //VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"param.channels :%d\r\n",param.channels); + //VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"param.color_mode :%d\r\n",param.color_mode); + //VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"param.double_side :%d\r\n",param.double_side); + //VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"param.dpi :%d\r\n",param.dpi); handle = hg_imgproc::init(&img_conf_,¶m,pid_); diff --git a/hgdriver/hgdev/usb_manager.cpp b/hgdriver/hgdev/usb_manager.cpp index 9ed5d14..fa60e14 100644 --- a/hgdriver/hgdev/usb_manager.cpp +++ b/hgdriver/hgdev/usb_manager.cpp @@ -890,13 +890,19 @@ int usb_io::read_bulk(void* buf, int* len) int total = 0, err = libusb_bulk_transfer(handle_, endpoints_.bulk.in.port, (unsigned char*)buf, *len, &total, to_); - *len = total; - last_err_ = usb_manager::usb_error_2_hg_err(err); - if (err) { - VLOG_MINI_4(LOG_LEVEL_DEBUG_INFO, "libusb_bulk_transfer(%x, %d/%d) = %s\n", endpoints_.bulk.in.port, *len, total, libusb_error_name(err)); + VLOG_MINI_4(LOG_LEVEL_DEBUG_INFO, "read_bulk(%x, %d/%d) = %s\n", endpoints_.bulk.in.port, total, *len, libusb_error_name(err)); + if (err == LIBUSB_ERROR_TIMEOUT && *len == total) + { + int old = to_; + to_ *= 1.5f; + err = LIBUSB_SUCCESS; + VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, " Read full length, we consider it as success, and increament timeout from %d to %d\n", old, to_); + } } + *len = total; + last_err_ = usb_manager::usb_error_2_hg_err(err); return last_err_; } diff --git a/hgdriver/wrapper/hg_log.cpp b/hgdriver/wrapper/hg_log.cpp index 94fe077..26ee663 100644 --- a/hgdriver/wrapper/hg_log.cpp +++ b/hgdriver/wrapper/hg_log.cpp @@ -167,11 +167,7 @@ extern "C" static bool on_found(const char* file, void* param) { LPFF lpff = (LPFF)param; -#ifdef WIN32 - char pth = '\\'; -#else - char pth = '/'; -#endif + char pth = PATH_SEPARATOR[0]; const char* name = strrchr(file, pth); if (name++ == nullptr) @@ -217,13 +213,17 @@ extern "C" ret = GetLastError(); else { - do + pei.dwSize = sizeof(pei); + if (Module32FirstW(h, &pei)) { - std::string ansi(u2a(pei.szExePath)); - if (!found_file(ansi.c_str(), param)) - break; - } while (Module32NextW(h, &pei)); - + do + { + std::string ansi(u2a(pei.szExePath)); + if (!found_file(ansi.c_str(), param)) + break; + pei.dwSize = sizeof(pei); + } while (Module32NextW(h, &pei)); + } CloseHandle(h); } diff --git a/hgdriver/wrapper/hg_log.h b/hgdriver/wrapper/hg_log.h index 565606b..d6ae189 100644 --- a/hgdriver/wrapper/hg_log.h +++ b/hgdriver/wrapper/hg_log.h @@ -11,8 +11,10 @@ #ifdef WIN32 #define bzero(a, l) memset(a, 0, l) #define PATH_SEPARATOR "\\" +#define DLL_EXTESION ".dll" #else #define PATH_SEPARATOR "/" +#define DLL_EXTESION ".so" #endif #ifdef OEM_HANWANG diff --git a/hgdriver/wrapper/huagaoxxx_warraper_ex.cpp b/hgdriver/wrapper/huagaoxxx_warraper_ex.cpp index d700ae8..eec4c1f 100644 --- a/hgdriver/wrapper/huagaoxxx_warraper_ex.cpp +++ b/hgdriver/wrapper/huagaoxxx_warraper_ex.cpp @@ -34,9 +34,9 @@ extern "C" { std::string name(""), pe(hg_log::pe_path(&name)), - path("\\"), + path(PATH_SEPARATOR), scanner(g_scanner_path), - sane(hg_log::get_module_full_path((g_sane_name + ".so").c_str())); + sane(hg_log::get_module_full_path((g_sane_name + DLL_EXTESION).c_str())); #ifdef WIN32 size_t pos = g_scanner_path.rfind('\\'); if (pos++ != std::string::npos) @@ -45,7 +45,6 @@ extern "C" size_t pos = 0; g_scanner_path = hg_log::get_module_full_path((std::string(GET_BACKEND_NAME) + ".so").c_str()); scanner = g_scanner_path; - path = "/"; pos = g_scanner_path.rfind('/'); if (pos++ != std::string::npos) g_scanner_path.erase(pos);