From 4adf21f0dfea9d7e8444b3cd1424a233cad5653d Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Sat, 23 Sep 2023 09:15:57 +0800 Subject: [PATCH] make code compatible for linux --- hgdriver/hgdev/CMakeLists.txt | 8 ++++-- hgdriver/hgdev/hg_scanner_239.cpp | 33 ++++++++++++------------ hgdriver/hgdev/hg_scanner_300.cpp | 1 + hgdriver/hgdev/scanner_manager.cpp | 5 ++-- hgdriver/hgdev/user-opt/device_opt.cpp | 4 ++- hgdriver/hgdev/user-opt/offline_opt.cpp | 1 + hgdriver/hgdev/user-opt/simple_logic.cpp | 1 + hgdriver/wrapper/CMakeLists.txt | 5 +++- hgsane/CMakeLists.txt | 6 +++-- hgsane/entry.cpp | 2 +- hgsane/sane_opt/sane_opts.cpp | 4 +-- hgsane/sane_option.cpp | 6 ++--- sdk/json/gb_json.cpp | 1 + twain/ds/s2t.cpp | 1 + 14 files changed, 48 insertions(+), 30 deletions(-) diff --git a/hgdriver/hgdev/CMakeLists.txt b/hgdriver/hgdev/CMakeLists.txt index e7a96df..144ef0a 100644 --- a/hgdriver/hgdev/CMakeLists.txt +++ b/hgdriver/hgdev/CMakeLists.txt @@ -5,7 +5,11 @@ add_definitions(-DUOS) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -O2") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -O2") aux_source_directory(${PROJECT_SOURCE_DIR} DIR_SRCS) -file(GLOB DIR_HEADS "${PROJECT_SOURCE_DIR}/*.h" "${PROJECT_SOURCE_DIR}/*.hpp" "${PROJECT_SOURCE_DIR}/../../sdk/hginclude/*.h" "${PROJECT_SOURCE_DIR}/../../sdk/hginclude/*.cpp") +file(GLOB DIR_HEADS "${PROJECT_SOURCE_DIR}/*.h" "${PROJECT_SOURCE_DIR}/*.hpp" + "${PROJECT_SOURCE_DIR}/user-opt/*.h" "${PROJECT_SOURCE_DIR}/user-opt/*.cpp" + "${PROJECT_SOURCE_DIR}/../../sdk/hginclude/*.h" "${PROJECT_SOURCE_DIR}/../../sdk/hginclude/*.cpp" + "${PROJECT_SOURCE_DIR}/../../sdk/json/*.h" "${PROJECT_SOURCE_DIR}/../../sdk/json/*.c*" + ) set(DIR_SRCS ${DIR_SRCS} ${DIR_HEADS}) add_library(${PROJECT_NAME} STATIC ${DIR_SRCS}) @@ -54,6 +58,6 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/../3rdparty/tiff/include ${PROJECT_SOURCE_DIR}/../../../sdk/include ${PROJECT_SOURCE_DIR}/../../sdk/hginclude - + ${PROJECT_SOURCE_DIR}/../../sdk ) set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../../../build) diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index 261b8c7..b9b2e62 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -4,6 +4,7 @@ #include #include "filetools.h" #include "../../sdk/json/gb_json.h" +#include #if defined(WIN32) || defined(_WIN64) #include "scanner_manager.h" @@ -113,7 +114,7 @@ namespace settings {200.0f, 1}, {240.0f, 1}, {300.0f, 0}, - {600.0f, 1} //临时版本? 原来? + {600.0f, 1} //临时版本�? 原来�? }; bool is_equal(float l, float r) { @@ -339,7 +340,7 @@ int hg_scanner_239::set_auto_flat(int data) } if ((fw[5] == 'A' && atoi(fw.substr(6, 4).c_str()) <= 9999)) { - data = data == 1 ? 1 : 0; //暂时没有用? + data = data == 1 ? 1 : 0; //暂时没有用�? } if (!wait_usb_.is_waiting()) { @@ -511,10 +512,10 @@ void hg_scanner_239::init_version(void) { firmware_sup_wait_paper_ = year_date.compare("3B0629") >= 0 ? true : false; firmware_sup_log_export_ = true; - firmware_sup_pick_strength_ = false; //不支 + firmware_sup_pick_strength_ = false; //不支� firmware_sup_wake_device_ = year_date.compare("3C0518") >= 0 ? true : false; firmware_sup_color_corr_ = year.compare("3C") >= 0 ? true : false; - firmware_sup_double_img = false; //不支 + firmware_sup_double_img = false; //不支� firmware_sup_devs_lock_ = year.compare("3C") >= 0 ? true : false; firmware_sup_dpi_300 = false; firmware_sup_dpi_600 = true; @@ -598,7 +599,7 @@ int hg_scanner_239::writedown_device_configuration(bool type, setting_hardware: dev_conf->params_3399.is_fixedpaper = false; dev_conf->params_3399.en_autosize = true; } - if (!firmware_sup_auto_speed_ && image_prc_param_.bits.paper == PAPER_AUTO_MATCH)//3399 ,?C之前的版?匹配原始尺寸设置 12 + if (!firmware_sup_auto_speed_ && image_prc_param_.bits.paper == PAPER_AUTO_MATCH)//3399 ,�?C之前的版�?匹配原始尺寸设置 12 { dev_conf->params_3399.paper = 12; } @@ -891,7 +892,7 @@ int hg_scanner_239::on_resolution_changed(int& dpi) else dev_conf_.params_3399.dpi = dpi >= 500 ? 3 : (dpi < 500 && dpi> 299) ? 2 : 1; - //dev_conf_.params_3399.dpi = 1; //dpi 华凌cis和敦南cis 默认?无需改变 + //dev_conf_.params_3399.dpi = 1; //dpi 华凌cis和敦南cis 默认�?无需改变 int ret = writedown_device_configuration(); return ret; } @@ -949,7 +950,7 @@ int hg_scanner_239::on_skew_check_changed(bool& check) int hg_scanner_239::on_skew_check_level_changed(int& check) { int ret = SCANNER_ERR_OK, - val = check - 1,//上面设置的是1 - 5 ,接受范围值为0 - 4,默? + val = check - 1,//上面设置的是1 - 5 ,接受范围值为0 - 4,默�? old = dev_conf_.params_3399.screw_detect_level; setting_hardware::HGSCANCONF_3399 cf; @@ -1333,7 +1334,7 @@ void hg_scanner_239::thread_get_dves_image(void) break; } } -////239 暂时先关闭双张存图弹窗提示,待到固件更新再确认是否需要弹? +////239 暂时先关闭双张存图弹窗提示,待到固件更新再确认是否需要弹�? //while ((count = get_image_count()) > 0) //{ // int s = SANE_Image_Statu_OK; @@ -1388,7 +1389,7 @@ void hg_scanner_239::thread_get_dves_image(void) // fetch all buffered images and exit ... //while(!is_dev_image_process_done()) - if (img_conf_.resolution_dst > 200 && is_quality_ == IMG_QUALITY) //删除这段代码,你可能需要考虑一下后? + if (img_conf_.resolution_dst > 200 && is_quality_ == IMG_QUALITY) //删除这段代码,你可能需要考虑一下后�? std::this_thread::sleep_for(std::chrono::milliseconds(5000)); else std::this_thread::sleep_for(std::chrono::milliseconds(2000)); @@ -1499,7 +1500,7 @@ int hg_scanner_239::start(void) reset(); - //211220固件版本不支持返? + //211220固件版本不支持返�? ret = get_scan_is_sleep(val); if (!val && ret == SCANNER_ERR_OK) { @@ -1781,7 +1782,7 @@ int hg_scanner_239::get_scan_is_sleep(SANE_Bool& type) std::lock_guard lock(io_lock_); int ret = 0,val; - ret = read_register(setting3399::SR_GET_SLEEP_STAUTUS, &val); //0休眠 1唤醒状? + ret = read_register(setting3399::SR_GET_SLEEP_STAUTUS, &val); //0休眠 1唤醒状�? if (ret == SCANNER_ERR_OK) { type = val == 1 ? true : false; @@ -1864,7 +1865,7 @@ int hg_scanner_239::get_device_log(string &logpath) if (ret != SCANNER_ERR_OK) return ret; - ofstream f; + std::ofstream f; f.open(save_path,ios::out | ios::trunc); if (!f.is_open()) return SCANNER_ERR_CREATE_FILE_FAILED; @@ -1953,7 +1954,7 @@ int hg_scanner_239::set_scan_lock_check_val(string check_str) { return SCANNER_ERR_INVALID_PARAMETER; } - int num = 32 - keys.size(); //保持32位下? + int num = 32 - keys.size(); //保持32位下�? if (num > 0) { std::string str(num, '0'); @@ -2013,7 +2014,7 @@ int hg_scanner_239::set_firmware_upgrade(std::string filename) return SCANNER_ERR_OPEN_FILE_FAILED; } fwname.seekg(0, std::ios::end); - int total = fwname.tellg();//记录总长? + int total = fwname.tellg();//记录总长�? fwname.seekg(0, std::ios::beg); int pos = fwname.tellg();//记录pos位置 @@ -2052,7 +2053,7 @@ int hg_scanner_239::set_firmware_upgrade(std::string filename) return SCANNER_ERR_DEVICE_UPGRADE_FAIL; int to_cnt = 0; - // 到这个位置已经能够升级成功了 后面对升级结果做下判? + // 到这个位置已经能够升级成功了 后面对升级结果做下判�? auto now = std::chrono::steady_clock::now(); while (std::chrono::duration(std::chrono::steady_clock::now() - now).count() < 70) { @@ -2119,7 +2120,7 @@ int hg_scanner_239::set_dev_islock_file(int islockfile) } if (islockfile != 0 && islockfile != 1) { - return SCANNER_ERR_INVALID_PARAMETER; //这个地方设置的参数必须保证正? + return SCANNER_ERR_INVALID_PARAMETER; //这个地方设置的参数必须保证正�? } string device_log_path = "/var/log/black_list_file.txt"; string str = std::to_string(islockfile); diff --git a/hgdriver/hgdev/hg_scanner_300.cpp b/hgdriver/hgdev/hg_scanner_300.cpp index 7f31c00..e97be1d 100644 --- a/hgdriver/hgdev/hg_scanner_300.cpp +++ b/hgdriver/hgdev/hg_scanner_300.cpp @@ -2,6 +2,7 @@ #include "../../sdk/hginclude/utils.h" #include +#include #if defined(WIN32) || defined(_WIN64) #include "scanner_manager.h" diff --git a/hgdriver/hgdev/scanner_manager.cpp b/hgdriver/hgdev/scanner_manager.cpp index 70a3b86..1ca873a 100644 --- a/hgdriver/hgdev/scanner_manager.cpp +++ b/hgdriver/hgdev/scanner_manager.cpp @@ -3,6 +3,7 @@ #include "../../sdk/hginclude/utils.h" #include #include +#include #include #include "raw_src.h" #include "../../../sdk/include/huagao/brand.h" @@ -402,7 +403,7 @@ void hg_scanner_mgr::on_hgscanner_pnp(usb_event ev, libusb_device* device, int v int index = -1; for (int i = 0; i < _countof(g_supporting_devices); ++i) { - // 064B 澶氬彴璁惧浣跨敤杩欎釜vid锛屾墍浠ュ姞杞芥椂涓嶄細娓呮瑕佹墦寮€鍝竴鍙拌澶囷紝鍙湁閫氳繃澶栭儴杩涜鍔犺浇鏀瑰彉瀹炰? + // 064B 澶氬彴璁惧浣跨敤杩欎釜vid锛屾墍浠ュ姞杞芥椂涓嶄細娓呮瑕佹墦寮€鍝竴鍙拌澶囷紝鍙湁閫氳繃澶栭儴杩涜鍔犺浇鏀瑰彉瀹炰�? if (g_supporting_devices[i].vid == vid && g_supporting_devices[i].pid == pid) { index = i; @@ -437,7 +438,7 @@ void hg_scanner_mgr::on_hgscanner_pnp(usb_event ev, libusb_device* device, int v break; } } - if (add) // 澶勭悊瀵硅薄鈥渄evice鈥濇敼鍙樼殑鎯呮? + if (add) // 澶勭悊瀵硅薄鈥渄evice鈥濇敼鍙樼殑鎯呮�? { i = 0; for (auto& v : online_devices_) diff --git a/hgdriver/hgdev/user-opt/device_opt.cpp b/hgdriver/hgdev/user-opt/device_opt.cpp index d40aa71..4ee7f68 100644 --- a/hgdriver/hgdev/user-opt/device_opt.cpp +++ b/hgdriver/hgdev/user-opt/device_opt.cpp @@ -4,6 +4,8 @@ #include #include "../../../sdk/hginclude/huagaoxxx_warraper_ex.h" #include +#include +#include //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -226,7 +228,7 @@ static struct }g_known_group_with_sn[] = { {"base", "\xE5\x9F\xBA\xE6\x9C\xAC\xE8\xAE\xBE\xE7\xBD\xAE"} , {"bright", "\xE4\xBA\xAE\xE5\xBA\xA6"} , {"imgp", "\xE5\x9B\xBE\xE5\x83\x8F\xE5\xA4\x84\xE7\x90\x86"} - , {"feeder", "\xE9\x80\x81\xE7\xBA\xB8\xE6\x96\xB9\xE5\xBC\x8F\xE8\xAE\xBE\xE7\xBD\xAE"} // ã\xE8\xAE\xBE\xE7\xBD\xAE + , {"feeder", "\xE9\x80\x81\xE7\xBA\xB8\xE6\x96\xB9\xE5\xBC\x8F\xE8\xAE\xBE\xE7\xBD\xAE"} // ���ã�\xE8\xAE\xBE\xE7\xBD\xAE }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/hgdriver/hgdev/user-opt/offline_opt.cpp b/hgdriver/hgdev/user-opt/offline_opt.cpp index f31e589..b0122c6 100644 --- a/hgdriver/hgdev/user-opt/offline_opt.cpp +++ b/hgdriver/hgdev/user-opt/offline_opt.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include "../scanner_manager.h" // for version #include "user.h" diff --git a/hgdriver/hgdev/user-opt/simple_logic.cpp b/hgdriver/hgdev/user-opt/simple_logic.cpp index 30855bb..61df9e6 100644 --- a/hgdriver/hgdev/user-opt/simple_logic.cpp +++ b/hgdriver/hgdev/user-opt/simple_logic.cpp @@ -2,6 +2,7 @@ #include "simple_logic.h" +#include ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/hgdriver/wrapper/CMakeLists.txt b/hgdriver/wrapper/CMakeLists.txt index c875ea6..c677bf7 100644 --- a/hgdriver/wrapper/CMakeLists.txt +++ b/hgdriver/wrapper/CMakeLists.txt @@ -13,7 +13,10 @@ add_compile_options(-std=c++11) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -O2") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -O2") aux_source_directory(${PROJECT_SOURCE_DIR} DIR_SRCS) -file(GLOB DIR_HEADS "${PROJECT_SOURCE_DIR}/*.h" "${PROJECT_SOURCE_DIR}/*.hpp" "${PROJECT_SOURCE_DIR}/../../sdk/hginclude/*.h" "${PROJECT_SOURCE_DIR}/../../sdk/hginclude/*.cpp") +file(GLOB DIR_HEADS "${PROJECT_SOURCE_DIR}/*.h" "${PROJECT_SOURCE_DIR}/*.hpp" + "${PROJECT_SOURCE_DIR}/../../sdk/hginclude/*.h" "${PROJECT_SOURCE_DIR}/../../sdk/hginclude/*.cpp" + "${PROJECT_SOURCE_DIR}/../../sdk/json/*.h" "${PROJECT_SOURCE_DIR}/../../sdk/json/*.c*" + ) set(DIR_SRCS ${DIR_SRCS} ${DIR_HEADS}) if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) diff --git a/hgsane/CMakeLists.txt b/hgsane/CMakeLists.txt index e0fb275..afcb768 100644 --- a/hgsane/CMakeLists.txt +++ b/hgsane/CMakeLists.txt @@ -11,7 +11,9 @@ add_compile_options(-std=c++11) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -O2") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -O2") aux_source_directory(${PROJECT_SOURCE_DIR} DIR_SRCS) -file(GLOB DIR_HEADS "${PROJECT_SOURCE_DIR}/*.h" "${PROJECT_SOURCE_DIR}/*.hpp" "${PROJECT_SOURCE_DIR}/../*.h" "${PROJECT_SOURCE_DIR}/../*.c" "${PROJECT_SOURCE_DIR}/../*.cpp") +file(GLOB DIR_HEADS "${PROJECT_SOURCE_DIR}/*.h" "${PROJECT_SOURCE_DIR}/*.hpp" + "${PROJECT_SOURCE_DIR}/sane_opt/*" + ) set(DIR_SRCS ${DIR_SRCS} ${DIR_HEADS}) add_library(${PROJECT_NAME} SHARED ${DIR_SRCS}) link_directories(${PROJECT_NAME} PRIVATE @@ -26,7 +28,7 @@ target_link_libraries(${PROJECT_NAME} PRIVATE hgdriver target_link_libraries(${PROJECT_NAME} PRIVATE -static-libgcc -static-libstdc++ -Wl,--exclude-libs,ALL -zdefs -Bdirect pthread dl -Wl,-rpath,$ORIGIN) target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/../sdk/hginclude - ${PROJECT_SOURCE_DIR}/../sdk/json + ${PROJECT_SOURCE_DIR}/../sdk ${PROJECT_SOURCE_DIR}/../../sdk/include ) diff --git a/hgsane/entry.cpp b/hgsane/entry.cpp index 676098d..ad6cf90 100644 --- a/hgsane/entry.cpp +++ b/hgsane/entry.cpp @@ -100,7 +100,7 @@ extern "C" { // avoid compiler exporting name in C++ style !!! /// following are extensions for standard ... SANE_Status inner_sane_init_ex(SANE_Int* version_code, sane_callback cb, void* param) { - hg_sane_middleware::set_app_callback(cb, param, hg_sane_middleware::APP_CALLBACK_EX); + hg_sane_middleware::set_app_callback((void*)cb, param, hg_sane_middleware::APP_CALLBACK_EX); if (!hg_sane_middleware::instance()->is_ready()) return (SANE_Status)SCANNER_ERR_LANG_PAK_LOST; diff --git a/hgsane/sane_opt/sane_opts.cpp b/hgsane/sane_opt/sane_opts.cpp index 85abb13..c85ae4a 100644 --- a/hgsane/sane_opt/sane_opts.cpp +++ b/hgsane/sane_opt/sane_opts.cpp @@ -2,7 +2,7 @@ #include #include - +#include ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -397,7 +397,7 @@ SANE_Option_Descriptor* device_opts::get_opt_descriptor(const void* opt, int* fi if (IS_PTR_NUMBER(opt)) { - int sn = (int)opt; + int sn = (int)(long)opt; if(sn < SANE_OPT_ID_BASE) sn -= ind_base; if (opts_.count(sn)) diff --git a/hgsane/sane_option.cpp b/hgsane/sane_option.cpp index 9c8f19d..379cecc 100644 --- a/hgsane/sane_option.cpp +++ b/hgsane/sane_option.cpp @@ -181,11 +181,11 @@ gb_json* sane_std_opts::get_opt_json(scanner_handle h, int opt) long len = 0; gb_json* jsn = nullptr; - if (hg_scanner_get_parameter(h, (const char*)opt, buf, &len) == SCANNER_ERR_INSUFFICIENT_MEMORY) + if (hg_scanner_get_option(h, (const char*)opt, buf, &len) == SCANNER_ERR_INSUFFICIENT_MEMORY) { buf = new char[len + 8]; memset(buf, 0, len + 8); - if (hg_scanner_get_parameter(h, (const char*)opt, buf, &len) == SCANNER_ERR_OK) + if (hg_scanner_get_option(h, (const char*)opt, buf, &len) == SCANNER_ERR_OK) { jsn = new gb_json(); if (!jsn->attach_text(buf)) @@ -400,7 +400,7 @@ scanner_err sane_std_opts::set_value(scanner_handle h, int opt, void* buf) utils::to_log_with_api(hg_scanner_log_is_enable, hg_scanner_log, LOG_LEVEL_DEBUG, "%d->%d: %s\n", opt, op->user.opt, (char*)data); - statu = hg_scanner_set_parameter(h, (const char*)op->user.opt, data, &len); + statu = hg_scanner_set_option(h, (const char*)op->user.opt, data, &len); if (statu == SCANNER_ERR_NOT_EXACT) to_known_opt_value(op, data, buf); if (data) diff --git a/sdk/json/gb_json.cpp b/sdk/json/gb_json.cpp index aacc2e8..9ffbc29 100644 --- a/sdk/json/gb_json.cpp +++ b/sdk/json/gb_json.cpp @@ -3,6 +3,7 @@ #include "cJSON.h" #include #include +#include namespace special_char_trans { diff --git a/twain/ds/s2t.cpp b/twain/ds/s2t.cpp index befea28..b80731e 100644 --- a/twain/ds/s2t.cpp +++ b/twain/ds/s2t.cpp @@ -2,6 +2,7 @@ #include "../../../sdk/include/sane/sane_option_definitions.h" #include "scanned_img.h" +#include // 标准TWAIN属性值与SANE属性值之间的转换 //