make code compatible for linux

This commit is contained in:
gb 2023-09-23 09:15:57 +08:00
parent 368a339bb2
commit 4adf21f0df
14 changed files with 48 additions and 30 deletions

View File

@ -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)

View File

@ -4,6 +4,7 @@
#include <lang/app_language.h>
#include "filetools.h"
#include "../../sdk/json/gb_json.h"
#include <fstream>
#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} //临时版本å<EFBFBD>? 原æ<C5B8>¥å<EFBFBD>?
{600.0f, 1} //临时版本<EFBFBD>? 原来<EFBFBD>?
};
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; //暂时没有用<EFBFBD>?
}
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; //ä¸<EFBFBD>支æŒ
firmware_sup_pick_strength_ = false; //不支<EFBFBD>
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; //ä¸<EFBFBD>支æŒ
firmware_sup_double_img = false; //不支<EFBFBD>
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ä¹å‰<C3A5>的版æœ?匹é…<C3A9>原å§å°ºå¯¸è®¾ç½® 12
if (!firmware_sup_auto_speed_ && image_prc_param_.bits.paper == PAPER_AUTO_MATCH)//3399 ,<EFBFBD>?C之前的版<E79A84>?匹配原始尺寸设置 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 å<EFBFBD>Žå‡ŒcisåŒæ•¦å<EFBFBD>—cis 默认å<C2A4>?无需改å<C2B9>˜
//dev_conf_.params_3399.dpi = 1; //dpi 华凌cis和敦南cis 默认<E9BB98>?无需改变
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,//上é<EFBFBD>¢è®¾ç½®çš„是1 - 5 ,接å<C2A5>—范å´å€¼ä¸º0 - 4,默è®?
val = check - 1,//上面设置的是1 - 5 接受范围值为0 - 4<EFBC8C>?
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 æšæ—¶å…ˆå…³é—­å<EFBFBD>Œå¼ å­˜å¾å¼¹çª—æ<EFBFBD><EFBFBD>示,待到åºä»¶æ´æ°å†<EFBFBD>确认是å<EFBFBD>¦éœ€è¦<EFBFBD>å¼¹çª?
////239 暂时先关闭双张存图弹窗提示待到固件更新再确认是否需要弹<EFBFBD>?
//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) //删除这段代ç <EFBFBD>,你å<EFBFBD>¯èƒ½éœ€è¦<EFBFBD>考è™ä¸€ä¸å<EFBFBD>Žæž?
if (img_conf_.resolution_dst > 200 && is_quality_ == IMG_QUALITY) //删除这段代码你可能需要考虑一下后<EFBFBD>?
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åºä»¶ç‰ˆæœ¬ä¸<EFBFBD>支æŒ<EFBFBD>è¿”å?
//211220固件版本不支持返<EFBFBD>?
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<std::mutex> 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唤醒状<E98692>?
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(); //ä¿<EFBFBD>æŒ<EFBFBD>32ä½<EFBFBD>ä¸å<EFBFBD>?
int num = 32 - keys.size(); //保持32位下<EFBFBD>?
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();//记录总长<EFBFBD>?
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;
// 到这个ä½<EFBFBD>置已ç»<EFBFBD>能够å<EFBFBD>‡çº§æˆ<EFBFBD>功了 å<>Žé<C5BD>¢å¯¹å<C2B9>‡çº§ç»“æžœå<C593>šä¸åˆ¤æ?
// 到这个位置已经能够升级成功了 后面对升级结果做下判<E4B88B>?
auto now = std::chrono::steady_clock::now();
while (std::chrono::duration<double>(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; //这个地æ¹è®¾ç½®çš„å<EFBFBD>æ•°å¿…é¡»ä¿<EFBFBD>è¯<EFBFBD>æ­£ç¡?
return SCANNER_ERR_INVALID_PARAMETER; //这个地方设置的参数必须保证正<EFBFBD>?
}
string device_log_path = "/var/log/black_list_file.txt";
string str = std::to_string(islockfile);

View File

@ -2,6 +2,7 @@
#include "../../sdk/hginclude/utils.h"
#include <lang/app_language.h>
#include <fstream>
#if defined(WIN32) || defined(_WIN64)
#include "scanner_manager.h"

View File

@ -3,6 +3,7 @@
#include "../../sdk/hginclude/utils.h"
#include <lang/app_language.h>
#include <iostream>
#include <fstream>
#include <string.h>
#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閿涘本澧嶆禒銉ュ<EFBFBD>鏉炶姤妞傛稉宥勭窗濞撳懏顨熺憰浣瑰ⅵ瀵<EFBFBD>偓閸濐亙绔撮崣鎷岊啎婢跺浄绱濋崣顏呮箒闁<EFBFBD>俺绻冩径鏍<EFBFBD>劥鏉╂稖顢戦崝鐘烘祰閺€鐟板綁鐎圭偘绶?
// 064B 澶氬彴璁惧浣跨敤杩欎釜vid锛屾墍浠ュ姞杞芥椂涓嶄細娓呮瑕佹墦寮€鍝竴鍙拌澶囷紝鍙湁閫氳繃澶栭儴杩涜鍔犺浇鏀瑰彉瀹炰<EFBFBD>?
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) // 婢跺嫮鎮婄€电<EFBFBD>钖勯垾娓別vice閳ユ繃鏁奸崣妯兼畱閹<EFBFBD>懏娅?
if (add) // 澶勭悊瀵硅薄鈥渄evice鈥濇敼鍙樼殑鎯呮<EFBFBD>?
{
i = 0;
for (auto& v : online_devices_)

View File

@ -4,6 +4,8 @@
#include <huagao/hgscanner_error.h>
#include "../../../sdk/hginclude/huagaoxxx_warraper_ex.h"
#include <lang/app_language.h>
#include <string.h>
#include <algorithm>
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -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"} // <EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>\xE8\xAE\xBE\xE7\xBD\xAE
};
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -7,6 +7,7 @@
#include <lang/app_language.h>
#include <sane/sane_ex.h>
#include <hginclude/utils.h>
#include <string.h>
#include "../scanner_manager.h" // for version
#include "user.h"

View File

@ -2,6 +2,7 @@
#include "simple_logic.h"
#include <string.h>
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -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)

View File

@ -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
)

View File

@ -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;

View File

@ -2,7 +2,7 @@
#include <json/gb_json.h>
#include <algorithm>
#include <string.h>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -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))

View File

@ -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)

View File

@ -3,6 +3,7 @@
#include "cJSON.h"
#include <stdlib.h>
#include <string.h>
#include <math.h>
namespace special_char_trans
{

View File

@ -2,6 +2,7 @@
#include "../../../sdk/include/sane/sane_option_definitions.h"
#include "scanned_img.h"
#include <algorithm>
// 标准TWAIN属性值与SANE属性值之间的转换
//