增加扫描前无纸检测配置开关,以解决部分老设备没有无纸检测协议导致无法扫描的情况
This commit is contained in:
parent
13b4327281
commit
ddf6b6e4d1
|
@ -180,6 +180,9 @@ hg_scanner::hg_scanner(ScannerSerial serial, const char* dev_name, usb_io* io, i
|
||||||
dump_img_ = &hg_scanner::dump_image_real;
|
dump_img_ = &hg_scanner::dump_image_real;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hg_log::ini_get("func", "no-paper-chk") == "1")
|
||||||
|
no_paper_check_ = true;
|
||||||
|
|
||||||
std::string mem = hg_log::ini_get("mem", "max_img");
|
std::string mem = hg_log::ini_get("mem", "max_img");
|
||||||
if (!mem.empty())
|
if (!mem.empty())
|
||||||
{
|
{
|
||||||
|
|
|
@ -89,9 +89,9 @@ class hg_scanner
|
||||||
std::string family_;
|
std::string family_;
|
||||||
std::string save_multiout; //保存多留输出类型
|
std::string save_multiout; //保存多留输出类型
|
||||||
bool save_sizecheck;
|
bool save_sizecheck;
|
||||||
bool read_over_with_no_data_; // 针对第三方调用,在最后一段数据时是否返回“SCANNER_ERR_NO_DATA”
|
bool read_over_with_no_data_; // <EFBFBD><EFBFBD>笆蝚砌<EFBFBD><EFBFBD>寡<EFBFBD><EFBFBD>剁<EFBFBD><EFBFBD>冽<EFBFBD><EFBFBD>𦒘<EFBFBD>畾菜㺭<EFBFBD>格𧒄<EFBFBD>臬炏餈𥪜<EFBFBD><EFBFBD>侻CANNER_ERR_NO_DATA<EFBFBD>?
|
||||||
int is_color_type_;//保存最后下发到设备的颜色类型
|
int is_color_type_;//靽嘥<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𦒘<EFBFBD><EFBFBD>穃<EFBFBD>霈曉<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>脩掩<EFBFBD>?
|
||||||
bool have_max_size; //条目是否存在最大尺寸
|
bool have_max_size; //<EFBFBD>∠𤌍<EFBFBD>臬炏摮睃銁<EFBFBD><EFBFBD>憭批偕撖?
|
||||||
|
|
||||||
|
|
||||||
sane_callback ui_ev_cb_;
|
sane_callback ui_ev_cb_;
|
||||||
|
@ -135,17 +135,17 @@ class hg_scanner
|
||||||
void reset_custom_area_range(int paper);
|
void reset_custom_area_range(int paper);
|
||||||
float reset_custom_area_jsn_value(const char* name, double& var, float range_l, float range_u, float value_l, float value_u); // return cur value
|
float reset_custom_area_jsn_value(const char* name, double& var, float range_l, float range_u, float value_l, float value_u); // return cur value
|
||||||
int set_color_change(void);
|
int set_color_change(void);
|
||||||
bool jsn_reorganize(); // 固件版本不同 初始化json要做出相对应的删除
|
bool jsn_reorganize(); // <EFBFBD>箔辣<EFBFBD><EFBFBD>𧋦銝滚<EFBFBD> <20>嘥<EFBFBD><E598A5>馛son閬<6E><E996AC><EFBFBD>箇㮾撖孵<E69296><E5ADB5><EFBFBD><EFBFBD><EFBFBD>?
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
||||||
// 设置接口
|
// 设置接口
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// 配置序号映射数组,各子类必须重载“init_setting_map”方法以初始化该数组 --> 2022-05-09:基类中以title自动匹配功能序号,子类不必再处理并屏蔽此项工作
|
// <EFBFBD>滨蔭摨誩噡<EFBFBD>惩<EFBFBD><EFBFBD>啁<EFBFBD>嚗<EFBFBD><EFBFBD>摮鞟掩敹<EFBFBD>◆<EFBFBD>滩蝸<EFBFBD>𦤹nit_setting_map<EFBFBD>脲䲮瘜蓥誑<EFBFBD>嘥<EFBFBD><EFBFBD>𤥁砲<EFBFBD>啁<EFBFBD> --> 2022-05-09嚗𡁜抅蝐颱葉隞另itle<6C>芸𢆡<E88AB8>寥<EFBFBD><E5AFA5>蠘<EFBFBD>摨誩噡嚗<E599A1><E59A97>蝐颱<E89D90>敹<EFBFBD><E695B9>憭<EFBFBD><E686AD>撟嗅<E6929F><E59785>賣迨憿孵極雿?
|
||||||
// 比如: 某型设备的“颜色模式”功能号为1,则 setting_map_[HG_BASE_SETTING_INDEX_COLOR_MODE] = 1
|
// 瘥𥪜<EFBFBD>嚗? <20>𣂼<EFBFBD>霈曉<E99C88><E69B89><EFBFBD><EFBFBD>𣈯<EFBFBD><F0A388AF>脫芋撘謿<E69298>嘥<EFBFBD><E598A5>賢噡銝?嚗<><E59A97> setting_map_[HG_BASE_SETTING_INDEX_COLOR_MODE] = 1
|
||||||
// 如果设备的“颜色模式”配置逻辑与基类预定义的不同,
|
// 如果设备的“颜色模式”配置逻辑与基类预定义的不同,
|
||||||
// 则 setting_map_[HG_BASE_SETTING_INDEX_COLOR_MODE] = -1,在子类重载的set_setting_value方法中处理
|
// <EFBFBD>?setting_map_[HG_BASE_SETTING_INDEX_COLOR_MODE] = -1嚗<31>銁摮鞟掩<E99E9F>滩蝸<E6BBA9><E89DB8>et_setting_value<75>寞<EFBFBD>銝剖<E98A9D><E58996>?
|
||||||
//
|
//
|
||||||
// 2022-06-28: 属性处理函数改用map结构存储,只须处理set_setting_map函数即可
|
// 2022-06-28: 属性处理函数改用map结构存储,只须处理set_setting_map函数即可
|
||||||
// int setting_map_[HG_BASE_SETTING_INDEX_MAX];
|
// int setting_map_[HG_BASE_SETTING_INDEX_MAX];
|
||||||
|
@ -259,14 +259,14 @@ protected:
|
||||||
virtual int on_skew_check_level_changed(int& check) = 0;
|
virtual int on_skew_check_level_changed(int& check) = 0;
|
||||||
virtual int on_get_feedmode(int& feedmode) = 0; //获取分纸强度
|
virtual int on_get_feedmode(int& feedmode) = 0; //获取分纸强度
|
||||||
virtual int on_set_feedmode(int feedmode) = 0; //设置分纸强度
|
virtual int on_set_feedmode(int feedmode) = 0; //设置分纸强度
|
||||||
virtual int on_pic_type(bool& pic) = 0; //照片模式或者文本模式
|
virtual int on_pic_type(bool& pic) = 0; //<EFBFBD>抒<EFBFBD>璅∪<EFBFBD><EFBFBD>𤥁<EFBFBD><EFBFBD><EFBFBD><EFBFBD>祆芋撘?
|
||||||
virtual int on_pick_paper(bool autostrength) = 0; //设置搓纸使能
|
virtual int on_pick_paper(bool autostrength) = 0; //设置搓纸使能
|
||||||
virtual int on_pick_paper_threshold(double threshold) = 0; //设置搓纸阈值
|
virtual int on_pick_paper_threshold(double threshold) = 0; //霈曄蔭<EFBFBD>梶爾<EFBFBD><EFBFBD><EFBFBD>?
|
||||||
virtual int on_is_auto_paper(bool isautopaper) = 0; //待纸扫描
|
virtual int on_is_auto_paper(bool isautopaper) = 0; //待纸扫描
|
||||||
virtual int on_cis_get_image(bool type) = 0;
|
virtual int on_cis_get_image(bool type) = 0;
|
||||||
virtual int on_process_double_paper(bool type) = 0; //双张图像校验
|
virtual int on_process_double_paper(bool type) = 0; //双张图像校验
|
||||||
virtual int on_detect_lens_dirty(bool &type); //检测镜头脏污
|
virtual int on_detect_lens_dirty(bool &type); //璉<EFBFBD>瘚钅<EFBFBD>憭渲<EFBFBD>瘙?
|
||||||
virtual int on_set_period(int val); //PWM占空比
|
virtual int on_set_period(int val); //PWM<EFBFBD>删征瘥?
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
virtual int set_setting_value(const char* name, void* data, long* len);
|
virtual int set_setting_value(const char* name, void* data, long* len);
|
||||||
|
@ -274,7 +274,7 @@ protected:
|
||||||
virtual void thread_handle_usb_read(void) = 0;
|
virtual void thread_handle_usb_read(void) = 0;
|
||||||
virtual void thread_handle_islock_read();
|
virtual void thread_handle_islock_read();
|
||||||
int hg_version_init_handle();
|
int hg_version_init_handle();
|
||||||
int set_server_blacklist_lock(); // 0:不锁定 1:锁定
|
int set_server_blacklist_lock(); // 0:銝漤<EFBFBD>摰?1:<3A><><EFBFBD>
|
||||||
void hg_version_free_handle();
|
void hg_version_free_handle();
|
||||||
// adjust color or apply custom gamma
|
// adjust color or apply custom gamma
|
||||||
void adjust_color(hg_imgproc::HIMGPRC handle);
|
void adjust_color(hg_imgproc::HIMGPRC handle);
|
||||||
|
@ -300,9 +300,9 @@ protected:
|
||||||
int status_;
|
int status_;
|
||||||
bool async_io_;
|
bool async_io_;
|
||||||
bool cb_mem_;
|
bool cb_mem_;
|
||||||
bool test_1_paper_; // 是否为单张扫描模式
|
bool test_1_paper_; // <EFBFBD>臬炏銝箏<EFBFBD>撘䭾醌<EFBFBD>𤩺芋撘?
|
||||||
std::vector<std::string> jsn_children_;
|
std::vector<std::string> jsn_children_;
|
||||||
std::vector<string> erase_depend_; //需要删除父依赖项
|
std::vector<string> erase_depend_; //<EFBFBD><EFBFBD>閬<EFBFBD><EFBFBD><EFBFBD>斤<EFBFBD>靘肽<EFBFBD>憿?
|
||||||
json setting_jsn_;
|
json setting_jsn_;
|
||||||
IMGPRCFIXPARAM image_prc_param_;
|
IMGPRCFIXPARAM image_prc_param_;
|
||||||
|
|
||||||
|
@ -311,57 +311,57 @@ protected:
|
||||||
int noise_range_; // 噪点优化尺寸
|
int noise_range_; // 噪点优化尺寸
|
||||||
TwSS paper_size_;
|
TwSS paper_size_;
|
||||||
int omit_empty_level_; // 跳过空白页灵敏度
|
int omit_empty_level_; // 跳过空白页灵敏度
|
||||||
int resolution_; // 分辨率
|
int resolution_; // <EFBFBD><EFBFBD>儘<EFBFBD>?
|
||||||
double rid_hole_range_; // 穿孔移除范围
|
double rid_hole_range_; // 穿孔移除范围
|
||||||
int bright_; // 亮度
|
int bright_; // 亮度
|
||||||
int contrast_; // 对比度
|
int contrast_; // 撖寞<EFBFBD>摨?
|
||||||
double gamma_; // 伽玛
|
double gamma_; // 伽玛
|
||||||
int threshold_; // 阈值
|
int threshold_; // <EFBFBD><EFBFBD><EFBFBD>?
|
||||||
int anti_noise_; // 背景搞噪等级
|
int anti_noise_; // 背景搞噪等级
|
||||||
int margin_; // 边缘缩进
|
int margin_; // 边缘缩进
|
||||||
int fractate_level_; // 折角检测复杂度
|
int fractate_level_; // 折角检测复杂度
|
||||||
int scan_count_; // 扫描张数,各实例化类在重载set_setting_value中,如果发现该设置项对该参数有影响时,需要对此值作更改
|
int scan_count_; // 扫描张数,各实例化类在重载set_setting_value中,如果发现该设置项对该参数有影响时,需要对此值作更改
|
||||||
bool is_auto_matic_color;// 自动颜色识别
|
bool is_auto_matic_color;// 自动颜色识别
|
||||||
int is_quality_; // 画质设置 0 - 速度优先;1 - 画质优先
|
int is_quality_; // <EFBFBD>餉捶霈曄蔭 0 - <20>笔漲隡睃<E99AA1>嚗? - <20>餉捶隡睃<E99AA1>
|
||||||
bool is_color_fill; // 色彩填充
|
bool is_color_fill; // 色彩填充
|
||||||
bool is_multiout; // 多流输出
|
bool is_multiout; // 多流输出
|
||||||
int bw_threshold_; // 黑白图像阈值 (added on 2022-06-28)
|
int bw_threshold_; // 暺𤑳蒾<EFBFBD>曉<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?嚗Òdded on 2022-06-28嚗?
|
||||||
int feedmode_; // 分纸强度
|
int feedmode_; // 分纸强度
|
||||||
int sleeptime_; // 睡眠时间
|
int sleeptime_; // 睡眠时间
|
||||||
bool is_auto_paper_scan; // 待纸扫描
|
bool is_auto_paper_scan; // 待纸扫描
|
||||||
bool size_check; // 尺寸检测
|
bool size_check; // 撠箏站璉<EFBFBD>瘚?
|
||||||
bool save_feedmode_type_; //保存分支强度狀態
|
bool save_feedmode_type_; //靽嘥<EFBFBD><EFBFBD><EFBFBD>𣈲撘箏漲<EFBFBD><EFBFBD><EFBFBD>?
|
||||||
bool save_sleeptime_type_; //保存休眠時間
|
bool save_sleeptime_type_; //保存休眠時間
|
||||||
bool isremove_left_hole; //设置左边除穿孔
|
bool isremove_left_hole; //霈曄蔭撌西器<EFBFBD>斤忽摮?
|
||||||
bool isremove_right_hole; //设置右边除穿孔
|
bool isremove_right_hole; //霈曄蔭<EFBFBD>唾器<EFBFBD>斤忽摮?
|
||||||
bool isremove_top_hole; //设置上边除穿孔
|
bool isremove_top_hole; //霈曄蔭銝𡃏器<EFBFBD>斤忽摮?
|
||||||
bool isremove_low_hole; //设置下边除穿孔
|
bool isremove_low_hole; //霈曄蔭銝贝器<EFBFBD>斤忽摮?
|
||||||
double isremove_left_hole_threshold; //设置左边除穿孔阈值
|
double isremove_left_hole_threshold; //霈曄蔭撌西器<EFBFBD>斤忽摮娪<EFBFBD><EFBFBD>?
|
||||||
double isremove_right_hole_threshold; //设置右边除穿孔阈值
|
double isremove_right_hole_threshold; //霈曄蔭<EFBFBD>唾器<EFBFBD>斤忽摮娪<EFBFBD><EFBFBD>?
|
||||||
double isremove_top_hole_threshold; //设置上边除穿孔阈值
|
double isremove_top_hole_threshold; //霈曄蔭銝𡃏器<EFBFBD>斤忽摮娪<EFBFBD><EFBFBD>?
|
||||||
double isremove_low_hole_threshold; //设置下边除穿孔阈值
|
double isremove_low_hole_threshold; //霈曄蔭銝贝器<EFBFBD>斤忽摮娪<EFBFBD><EFBFBD>?
|
||||||
int fold_type_; //对折类型
|
int fold_type_; //对折类型
|
||||||
bool is_cis_image; //设置cis获取原图
|
bool is_cis_image; //设置cis获取原图
|
||||||
bool is_dpi_color_check; //纵向DPI、色差检测 ,畸变自动计算
|
bool is_dpi_color_check; //蝥萄<EFBFBD>DPI<EFBFBD><EFBFBD>𠧧撌格<EFBFBD>瘚? ,<2C>詨<EFBFBD><E8A9A8>芸𢆡霈∠<E99C88>
|
||||||
float save_dpi_color_check_val; //保存纵向DPI、色差检测 ,畸变自动计算 的值
|
float save_dpi_color_check_val; //靽嘥<EFBFBD>蝥萄<EFBFBD>DPI<EFBFBD><EFBFBD>𠧧撌格<EFBFBD>瘚? ,<2C>詨<EFBFBD><E8A9A8>芸𢆡霈∠<E99C88> <20><><EFBFBD>?
|
||||||
bool is_auto_falt; //是否进行平场校正
|
bool is_auto_falt; //是否进行平场校正
|
||||||
bool color_correction_; //是否色彩校正
|
bool color_correction_; //是否色彩校正
|
||||||
int is_auto_paper_scan_exit_time; //待纸扫描退出时间
|
int is_auto_paper_scan_exit_time; //敺<EFBFBD>爾<EFBFBD>急<EFBFBD><EFBFBD><EFBFBD><EFBFBD>箸𧒄<EFBFBD>?
|
||||||
bool is_auto_feedmode_; //是否启用自动分纸强度
|
bool is_auto_feedmode_; //是否启用自动分纸强度
|
||||||
bool is_discardblank; //是否启动跳过空白页
|
bool is_discardblank; //<EFBFBD>臬炏<EFBFBD>臬𢆡頝唾<EFBFBD>蝛箇蒾憿?
|
||||||
bool is_lens_dirty; //是否检测镜头脏污
|
bool is_lens_dirty; //<EFBFBD>臬炏璉<EFBFBD>瘚钅<EFBFBD>憭渲<EFBFBD>瘙?
|
||||||
int split3399_; //3399设备正面和反面图像是相对的,所以对折时反面需要进行特殊处理
|
int split3399_; //3399霈曉<EFBFBD>甇<EFBFBD>𢒰<EFBFBD><EFBFBD><EFBFBD><EFBFBD>W㦛<EFBFBD>𤩺糓<EFBFBD>詨笆<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞亙笆<EFBFBD>䀹𧒄<EFBFBD>漤𢒰<EFBFBD><EFBFBD>閬<EFBFBD><EFBFBD>銵𣬚鸌畾𠰴<EFBFBD><EFBFBD>?
|
||||||
int pid_;
|
int pid_;
|
||||||
|
|
||||||
|
|
||||||
SANE_DISTORTION_VAL distortion_val; //畸变修正结构体保存
|
SANE_DISTORTION_VAL distortion_val; //<EFBFBD>詨<EFBFBD>靽格迤蝏𤘪<EFBFBD>雿㮖<EFBFBD>摮?
|
||||||
|
|
||||||
/////////不同的固件号版本支持
|
/////////不同的固件号版本支持
|
||||||
|
|
||||||
bool firmware_sup_wait_paper_; //固件支持 待纸扫描 139 239-3B0431, 439-3B0629
|
bool firmware_sup_wait_paper_; //固件支持 待纸扫描 139 239-3B0431, 439-3B0629
|
||||||
bool firmware_sup_pick_strength_; //固件支持 分纸强度 139 239-3B0830
|
bool firmware_sup_pick_strength_; //固件支持 分纸强度 139 239-3B0830
|
||||||
bool firmware_sup_log_export_; //固件支持 日志导出 139 239-3B0429
|
bool firmware_sup_log_export_; //固件支持 日志导出 139 239-3B0429
|
||||||
bool firmware_sup_log_export_G300_; //固件支持 不用协议,直接读片上文件,设备日志导出 300 - 0430
|
bool firmware_sup_log_export_G300_; //<EFBFBD>箔辣<EFBFBD>舀<EFBFBD> 銝滨鍂<E6BBA8>讛悅嚗𣬚凒<F0A3AC9A>亥粉<E4BAA5><E7B289><EFBFBD><EFBFBD><EFBFBD>辣嚗諹挽憭<E68CBD>𠯫敹堒紡<E5A092>? 300 - 0430
|
||||||
bool firmware_sup_color_corr_; //固件支持 偏色校正 139 239 439-3C
|
bool firmware_sup_color_corr_; //固件支持 偏色校正 139 239 439-3C
|
||||||
bool firmware_sup_wake_device_; //固件支持 唤醒设备 139 239-3B0830
|
bool firmware_sup_wake_device_; //固件支持 唤醒设备 139 239-3B0830
|
||||||
bool firmware_sup_double_img; //固件支持 双张保留 139 239-3C
|
bool firmware_sup_double_img; //固件支持 双张保留 139 239-3C
|
||||||
|
@ -369,19 +369,19 @@ protected:
|
||||||
bool firmware_sup_dpi_300; //固件支持 真实DPI300 139 239-21227,此版本以下,不支持真实dpi,dpi设置1 //3288 G300 用到
|
bool firmware_sup_dpi_300; //固件支持 真实DPI300 139 239-21227,此版本以下,不支持真实dpi,dpi设置1 //3288 G300 用到
|
||||||
bool firmware_sup_dpi_600; //固件支持 真实DPI600 139 239-21227,此版本以下,不支持真实dpi,dpi设置1
|
bool firmware_sup_dpi_600; //固件支持 真实DPI600 139 239-21227,此版本以下,不支持真实dpi,dpi设置1
|
||||||
bool firmware_sup_auto_speed_; //固件支持 自适应速度 139 239 439 -3C
|
bool firmware_sup_auto_speed_; //固件支持 自适应速度 139 239 439 -3C
|
||||||
bool firmware_sup_morr_; //固件支持 摩尔纹 139 239-3C0518
|
bool firmware_sup_morr_; //<EFBFBD>箔辣<EFBFBD>舀<EFBFBD> <20>拙<EFBFBD>蝥? 139 239-3C0518
|
||||||
bool firmware_sup_color_fill_; //固件支持 色彩填充 139 239 439 -3C
|
bool firmware_sup_color_fill_; //固件支持 色彩填充 139 239 439 -3C
|
||||||
bool firmware_sup_history_cnt; //固件支持 清除历史张数 3288 G300 220303
|
bool firmware_sup_history_cnt; //固件支持 清除历史张数 3288 G300 220303
|
||||||
bool firmware_sup_double_check; //固件支持 双张校验 231027
|
bool firmware_sup_double_check; //固件支持 双张校验 231027
|
||||||
bool firmware_sup_dirty_check; //固件支持 脏污检测 231027
|
bool firmware_sup_dirty_check; //<EFBFBD>箔辣<EFBFBD>舀<EFBFBD> <20>𤩺情璉<E68385>瘚? 231027
|
||||||
bool firmware_sup_backup_restore; //固件支持 备份还原 231021
|
bool firmware_sup_backup_restore; //固件支持 备份还原 231021
|
||||||
bool firmware_sup_boardTime; //固件支持 板级时间校验 231021
|
bool firmware_sup_boardTime; //固件支持 板级时间校验 231021
|
||||||
bool firmware_sup_permeation_level; //固件支持 防渗透等级 3399-3C1206
|
bool firmware_sup_permeation_level; //<EFBFBD>箔辣<EFBFBD>舀<EFBFBD> <20>脫<EFBFBD><E884AB>讐<EFBFBD>蝥? 3399-3C1206
|
||||||
bool firmware_sup_device_7010; //G300 设备但是7010 2023/9/21
|
bool firmware_sup_device_7010; //G300 设备但是7010 2023/9/21
|
||||||
int mat_width;
|
int mat_width;
|
||||||
int mat_height;
|
int mat_height;
|
||||||
|
|
||||||
SCANCONF img_conf_; //此参数外部不做任何改变,请在writedown_image_configuration做修改
|
SCANCONF img_conf_; //甇文<EFBFBD><EFBFBD>啣<EFBFBD><EFBFBD>其<EFBFBD><EFBFBD>帋遙雿閙㺿<EFBFBD>矋<EFBFBD>霂瑕銁writedown_image_configuration<EFBFBD>帋耨<EFBFBD>?
|
||||||
std::string img_type_;
|
std::string img_type_;
|
||||||
|
|
||||||
std::string dump_usb_path_; // 诊断模式,输出USB原始图像
|
std::string dump_usb_path_; // 诊断模式,输出USB原始图像
|
||||||
|
@ -392,6 +392,7 @@ protected:
|
||||||
unsigned long memory_size_; // MB
|
unsigned long memory_size_; // MB
|
||||||
unsigned long wait_mem_seconds_; // wait up to wait_mem_seconds_ if memory usage is great than memory_size_
|
unsigned long wait_mem_seconds_; // wait up to wait_mem_seconds_ if memory usage is great than memory_size_
|
||||||
bool isx86_Advan_;
|
bool isx86_Advan_;
|
||||||
|
bool no_paper_check_ = false; // <20>急<EFBFBD><E680A5>齿糓<E9BDBF>行<EFBFBD>瘚𧢲<E7989A>蝥貊𠶖<E8B28A><F0A0B696><EFBFBD><EFBFBD>臭誑<E887AD>朞<EFBFBD><E69C9E>滨蔭[func]no-paper-chk=1撘<31><E69298>?
|
||||||
int stop_fatal_;
|
int stop_fatal_;
|
||||||
BlockingQueue<std::shared_ptr<tiny_buffer>> imgs_;
|
BlockingQueue<std::shared_ptr<tiny_buffer>> imgs_;
|
||||||
|
|
||||||
|
@ -406,7 +407,7 @@ protected:
|
||||||
int init_settings(int pid);
|
int init_settings(int pid);
|
||||||
void change_string_2_lang_id(const char* name, const char* key);
|
void change_string_2_lang_id(const char* name, const char* key);
|
||||||
std::string get_setting_item_string(const char* name, const char* key);
|
std::string get_setting_item_string(const char* name, const char* key);
|
||||||
int on_scann_error(int err); // 返回“0”忽略错误继续执行,其它值则停止后续工作
|
int on_scann_error(int err); // 餈𥪜<EFBFBD><EFBFBD>?<3F>嘥蕭<E598A5>仿<EFBFBD>霂舐誧蝏剜<E89D8F>銵䕘<E98AB5><E49598>嗅<EFBFBD><E59785>澆<EFBFBD><E6BE86>𨀣迫<F0A880A3>𡒊賒撌乩<E6928C>
|
||||||
int try_third_app_handle_start(bool& handled);
|
int try_third_app_handle_start(bool& handled);
|
||||||
int try_third_app_after_start(int err);
|
int try_third_app_after_start(int err);
|
||||||
std::shared_ptr<tiny_buffer> aquire_memory(int size, bool from_usb = true);
|
std::shared_ptr<tiny_buffer> aquire_memory(int size, bool from_usb = true);
|
||||||
|
@ -423,24 +424,24 @@ protected:
|
||||||
int wait_one_image_from_start(bool& handled);
|
int wait_one_image_from_start(bool& handled);
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
// 新增自定义伽玛曲线及扫描区域属性 - 2022-05-05
|
// <EFBFBD>啣<EFBFBD><EFBFBD>芸<EFBFBD>銋劐播<EFBFBD>𥟇𤩅蝥踹<EFBFBD><EFBFBD>急<EFBFBD><EFBFBD>箏<EFBFBD>撅墧<EFBFBD>?- 2022-05-05
|
||||||
bool custom_gamma_; // 为true时,应用custom_gamma_val_阵列调整图像色彩;为false时,保持原来的处理方式
|
bool custom_gamma_; // 銝演rue<EFBFBD>塚<EFBFBD>摨𠉛鍂custom_gamma_val_<EFBFBD>萄<EFBFBD>靚<EFBFBD>㟲<EFBFBD>曉<EFBFBD><EFBFBD>脣蔗嚗𥕢蛹false<EFBFBD>塚<EFBFBD>靽脲<EFBFBD><EFBFBD><EFBFBD>䔉<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䲮撘?
|
||||||
SANE_Gamma *custom_gamma_val_; // 当为RGB或者彩色时,为三组256字节的数据;当为黑白或灰度时,只有一组256字节
|
SANE_Gamma *custom_gamma_val_; // 敶㮖蛹RGB<EFBFBD>𤥁<EFBFBD><EFBFBD>蔗<EFBFBD>脫𧒄嚗䔶蛹銝厩<EFBFBD>256摮𡑒<EFBFBD><EFBFBD><EFBFBD>㺭<EFBFBD>殷<EFBFBD>敶㮖蛹暺𤑳蒾<EFBFBD>𣇉<EFBFBD>摨行𧒄嚗<EFBFBD>蘨<EFBFBD>劐<EFBFBD>蝏?56摮𡑒<E691AE>
|
||||||
bool custom_area_; // 是否启用自定义区域,为true时才使用下列4个数据;为false时保持原来的处理方式
|
bool custom_area_; // 是否启用自定义区域,为true时才使用下列4个数据;为false时保持原来的处理方式
|
||||||
double custom_area_lt_x_; // 自定义区域左上角x坐标
|
double custom_area_lt_x_; // 自定义区域左上角x坐标
|
||||||
double custom_area_lt_y_; // 自定义区域左上角y坐标
|
double custom_area_lt_y_; // 自定义区域左上角y坐标
|
||||||
double custom_area_br_x_; // 自定义区域右下角x坐标
|
double custom_area_br_x_; // 自定义区域右下角x坐标
|
||||||
double custom_area_br_y_; // 自定义区域右下角y坐标
|
double custom_area_br_y_; // 自定义区域右下角y坐标
|
||||||
SIZE paper_size_mm_; // 当前纸张尺寸(mm)
|
SIZE paper_size_mm_; // 敶枏<EFBFBD>蝥詨<EFBFBD>撠箏站嚗ém嚗?
|
||||||
// 新增自定义伽玛曲线及扫描区域属性 - END
|
// <EFBFBD>啣<EFBFBD><EFBFBD>芸<EFBFBD>銋劐播<EFBFBD>𥟇𤩅蝥踹<EFBFBD><EFBFBD>急<EFBFBD><EFBFBD>箏<EFBFBD>撅墧<EFBFBD>?- END
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// 2022-07-23 新增双张之后留图继续扫描
|
// 2022-07-23 新增双张之后留图继续扫描
|
||||||
int double_paper_handle_; // 汉王要求出现双张的时候可保留
|
int double_paper_handle_; // 汉王要求出现双张的时候可保留
|
||||||
bool keep_watermark_; // 汉王要求图像处理过程中保留水印 - 是否与背景移除、背景填充相关???
|
bool keep_watermark_; // 瘙厩<EFBFBD>閬<EFBFBD><EFBFBD><EFBFBD>曉<EFBFBD>憭<EFBFBD><EFBFBD>餈<EFBFBD><EFBFBD>銝凋<EFBFBD><EFBFBD>蹱偌<EFBFBD>?- <20>臬炏銝舘<E98A9D><E88898>舐宏<E88890>扎<EFBFBD><E6898E><EFBFBD><EFBFBD>臬‵<E887AC><E280B5>㮾<EFBFBD>喉<EFBFBD>嚗<EFBFBD><E59A97>
|
||||||
|
|
||||||
// 2022-08-31 新增黑白图像是否反色输出(PNM黑白像素与BMP黑白像素相反)
|
// 2022-08-31 <EFBFBD>啣<EFBFBD>暺𤑳蒾<EFBFBD>曉<EFBFBD><EFBFBD>臬炏<EFBFBD>滩𠧧颲枏枂嚗㇊NM暺𤑳蒾<EFBFBD>讐<EFBFBD>銝𦻓MP暺𤑳蒾<EFBFBD>讐<EFBFBD><EFBFBD>詨<EFBFBD>嚗?
|
||||||
bool is_white_0_; // 是否‘0’代表白色
|
bool is_white_0_; // <EFBFBD>臬炏<EFBFBD>?<3F>嗘誨銵函蒾<E587BD>?
|
||||||
|
|
||||||
public:
|
public:
|
||||||
int start(void);
|
int start(void);
|
||||||
|
@ -479,7 +480,7 @@ public:
|
||||||
virtual int reset(void);
|
virtual int reset(void);
|
||||||
virtual int device_io_control(unsigned long code, void* data, unsigned* len);
|
virtual int device_io_control(unsigned long code, void* data, unsigned* len);
|
||||||
virtual int discard_all_images(void) = 0;
|
virtual int discard_all_images(void) = 0;
|
||||||
virtual int get_roller_life(void); // 获取滚轴最大寿命
|
virtual int get_roller_life(void); // <EFBFBD>瑕<EFBFBD>皛朞蓬<EFBFBD><EFBFBD>憭批紊<EFBFBD>?
|
||||||
|
|
||||||
public:
|
public:
|
||||||
hg_scanner(ScannerSerial serial, const char* dev_name, usb_io* io,int pid);
|
hg_scanner(ScannerSerial serial, const char* dev_name, usb_io* io,int pid);
|
||||||
|
@ -496,52 +497,52 @@ public:
|
||||||
virtual std::string get_device_model(void);
|
virtual std::string get_device_model(void);
|
||||||
|
|
||||||
virtual int set_device_model(string str);
|
virtual int set_device_model(string str);
|
||||||
virtual int set_serial_num(string str) = 0; //设置序列号
|
virtual int set_serial_num(string str) = 0; //霈曄蔭摨誩<EFBFBD><EFBFBD>?
|
||||||
virtual int set_vid_pid(int data) = 0; //设置vidpid
|
virtual int set_vid_pid(int data) = 0; //设置vidpid
|
||||||
virtual int get_vid_pid(int& data) = 0; //获取vidpid
|
virtual int get_vid_pid(int& data) = 0; //获取vidpid
|
||||||
|
|
||||||
/////////////成功返回:SCANNER_ERR_OK /////////////
|
/////////////成功返回:SCANNER_ERR_OK /////////////
|
||||||
/////////////失败返回:IO错误码 /////////////
|
/////////////憭梯揖餈𥪜<EFBFBD>:IO<49>躰秤<E8BAB0>? /////////////
|
||||||
virtual int set_leaflet_scan(void) = 0; //单张扫描
|
virtual int set_leaflet_scan(void) = 0; //单张扫描
|
||||||
virtual int get_abuot_info(void); //获取软件关于信息 (基类实现)
|
virtual int get_abuot_info(void); //获取软件关于信息 (基类实现)
|
||||||
virtual int restore_default_setting(void); //恢复默认设置 (基类实现)
|
virtual int restore_default_setting(void); //恢复默认设置 (基类实现)
|
||||||
virtual int set_final_image_format(SANE_FinalImgFormat* fmt);//设置图像处理最终输出(final())的图像数据格式 (基类实现) ***
|
virtual int set_final_image_format(SANE_FinalImgFormat* fmt);//设置图像处理最终输出(final())的图像数据格式 (基类实现) ***
|
||||||
|
|
||||||
|
|
||||||
virtual int get_compression_format(void); //获取支持的压缩格式 不支持
|
virtual int get_compression_format(void); //<EFBFBD>瑕<EFBFBD><EFBFBD>舀<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝻拇聢撘? 銝齿𣈲<E9BDBF>?
|
||||||
virtual int set_compression_format(void); //设置图像数据最终输出的压缩格式 不支持
|
virtual int set_compression_format(void); //霈曄蔭<EFBFBD>曉<EFBFBD><EFBFBD>唳旿<EFBFBD><EFBFBD>蝏<EFBFBD><EFBFBD><EFBFBD>箇<EFBFBD><EFBFBD>讠憬<EFBFBD>澆<EFBFBD> 銝齿𣈲<E9BDBF>?
|
||||||
virtual int set_auto_color_type(void); //设置自动匹配颜色模式 (基类实现)
|
virtual int set_auto_color_type(void); //设置自动匹配颜色模式 (基类实现)
|
||||||
virtual int set_clear_roller_num(void) = 0; //清除滚轴计数
|
virtual int set_clear_roller_num(void) = 0; //清除滚轴计数
|
||||||
virtual int set_clear_history_num(void) = 0; //清除历史张数
|
virtual int set_clear_history_num(void) = 0; //清除历史张数
|
||||||
virtual int get_device_code(void); //获取设备编码 不支持
|
virtual int get_device_code(void); //<EFBFBD>瑕<EFBFBD>霈曉<EFBFBD>蝻𣇉<EFBFBD> 銝齿𣈲<E9BDBF>?
|
||||||
virtual int get_scanner_paperon(SANE_Bool& type)=0; //获取设备有无纸张 /*/ type : false无纸(不正常状态false) true有纸 */
|
virtual int get_scanner_paperon(SANE_Bool& type)=0; //<EFBFBD>瑕<EFBFBD>霈曉<EFBFBD><EFBFBD>㗇<EFBFBD>蝥詨<EFBFBD> /*/ type : false<73>删爾嚗<E788BE><E59A97>甇<EFBFBD>虜<EFBFBD>嗆<EFBFBD><E59786>alse嚗? true<75>厩爾 */
|
||||||
virtual int get_scan_is_sleep(SANE_Bool& type) = 0; //获取设备是否休眠当中 /*/ type : false休眠(不正常状态false) true未休眠*/
|
virtual int get_scan_is_sleep(SANE_Bool& type) = 0; //<EFBFBD>瑕<EFBFBD>霈曉<EFBFBD><EFBFBD>臬炏隡𤑳<EFBFBD>敶㮖葉 /*/ type : false隡𤑳<E99AA1>嚗<EFBFBD><E59A97>甇<EFBFBD>虜<EFBFBD>嗆<EFBFBD><E59786>alse嚗? true<75>芯<EFBFBD><E88AAF>?/
|
||||||
virtual int get_sleep_time(int& data) = 0; //获取功耗模式(休眠) /*/ data > 0*/
|
virtual int get_sleep_time(int& data) = 0; //<EFBFBD>瑕<EFBFBD><EFBFBD>蠘<EFBFBD>埈芋撘𧶏<EFBFBD>隡𤑳<EFBFBD>嚗? /*/ data > 0*/
|
||||||
virtual int set_sleep_time(int data) = 0; //设置功耗模式(休眠) /*/ data > 0*/
|
virtual int set_sleep_time(int data) = 0; //霈曄蔭<EFBFBD>蠘<EFBFBD>埈芋撘𧶏<EFBFBD>隡𤑳<EFBFBD>嚗? /*/ data > 0*/
|
||||||
virtual int get_history_scan_count(int &data) = 0; //获取历史扫描张数 /*/ data > 0*/
|
virtual int get_history_scan_count(int &data) = 0; //获取历史扫描张数 /*/ data > 0*/
|
||||||
virtual int get_roller_num(int &data) = 0; //获取滚轮张数 /*/ data > 0*/
|
virtual int get_roller_num(int &data) = 0; //获取滚轮张数 /*/ data > 0*/
|
||||||
virtual int set_notify_sleep(void) = 0; //唤醒设备
|
virtual int set_notify_sleep(void) = 0; //唤醒设备
|
||||||
virtual int get_device_log(string &log) = 0; //获取设备日志 /*/ log :储存路径*/
|
virtual int get_device_log(string &log) = 0; //获取设备日志 /*/ log :储存路径*/
|
||||||
virtual int set_devreboot(int data) = 0; //设置设备重启 /*/ data:0 reboot data:1 1进入loader,0普通重启
|
virtual int set_devreboot(int data) = 0; //霈曄蔭霈曉<EFBFBD><EFBFBD>滚鍳 /*/ data:0 reboot data:1 1餈𥕦<E9A488>loader,0<>桅<EFBFBD>𡁻<EFBFBD><F0A181BB>?
|
||||||
virtual int set_devshtudown() = 0; //设置设备关机
|
virtual int set_devshtudown() = 0; //设置设备关机
|
||||||
virtual int set_scan_islock(SANE_Bool type) = 0; //设置设备是否锁定 /*/ type:0解锁,1锁定*/
|
virtual int set_scan_islock(SANE_Bool type) = 0; //霈曄蔭霈曉<EFBFBD><EFBFBD>臬炏<EFBFBD><EFBFBD><EFBFBD> /*/ type:0閫<30><E996AB>嚗?<3F><><EFBFBD>*/
|
||||||
virtual int get_scan_islock(SANE_Bool& type) = 0; //获取设备是否锁定 /*/ type:0解锁,1锁定*/
|
virtual int get_scan_islock(SANE_Bool& type) = 0; //<EFBFBD>瑕<EFBFBD>霈曉<EFBFBD><EFBFBD>臬炏<EFBFBD><EFBFBD><EFBFBD> /*/ type:0閫<30><E996AB>嚗?<3F><><EFBFBD>*/
|
||||||
virtual int set_scan_lock_check_val(string str) = 0; //获取设备是否锁定 /*/ str:校验码*/
|
virtual int set_scan_lock_check_val(string str) = 0; //<EFBFBD>瑕<EFBFBD>霈曉<EFBFBD><EFBFBD>臬炏<EFBFBD><EFBFBD><EFBFBD> /*/ str:<3A>⊿<EFBFBD><E28ABF>?/
|
||||||
virtual int set_firmware_upgrade(std::string str) = 0; //固件升级 /*/ str:文件名路径*/
|
virtual int set_firmware_upgrade(std::string str) = 0; //<EFBFBD>箔辣<EFBFBD><EFBFBD>漣 /*/ str:<3A><>辣<EFBFBD>滩楝敺?/
|
||||||
virtual int set_clean_paper_road() = 0; //清理纸道
|
virtual int set_clean_paper_road() = 0; //清理纸道
|
||||||
virtual int get_dev_islock_file(int &data) = 0; //获取设备文件 /*/ data:0 未上锁,1 上锁。-1 未发现黑名单列表 -2列表没有信息*/
|
virtual int get_dev_islock_file(int &data) = 0; //<EFBFBD>瑕<EFBFBD>霈曉<EFBFBD><EFBFBD><EFBFBD>辣 /*/ data:0 <20>芯<EFBFBD><E88AAF><EFBFBD><EFBFBD>1 銝𢠃<E98A9D><F0A2A083>?1 <20>芸<EFBFBD><E88AB8>圈<EFBFBD><E59C88>滚<EFBFBD><E6BB9A>𡑒” -2<>𡑒”瘝⊥<E7989D>靽⊥<E99DBD>*/
|
||||||
virtual int set_dev_islock_file(int data) = 0; //设置设备文件 /*/ data:0 未上锁,1 上锁*/
|
virtual int set_dev_islock_file(int data) = 0; //设置设备文件 /*/ data:0 未上锁,1 上锁*/
|
||||||
virtual int get_scan_mode(bool& type) ; //获取设备是否计数模式 /*/ type:false计数模式 true非计数模式
|
virtual int get_scan_mode(bool& type) ; //<EFBFBD>瑕<EFBFBD>霈曉<EFBFBD><EFBFBD>臬炏霈⊥㺭璅∪<EFBFBD> /*/ type:false霈⊥㺭璅∪<E79285> true<75>噼恣<E599BC>唳芋撘?
|
||||||
virtual int set_speed_mode(int data) = 0; //设置速度模式 /*/ 设备不同值不同,详情见子类注释
|
virtual int set_speed_mode(int data) = 0; //霈曄蔭<EFBFBD>笔漲璅∪<EFBFBD> /*/ 霈曉<E99C88>銝滚<E98A9D><E6BB9A>潔<EFBFBD><E6BD94>䕘<EFBFBD>霂行<E99C82>閫<EFBFBD><E996AB>蝐餅釣<E9A485>?
|
||||||
virtual int get_speed_mode(int &data) = 0; //获取速度模式 /*/ 设备不同值不同,详情见子类注释
|
virtual int get_speed_mode(int &data) = 0; //<EFBFBD>瑕<EFBFBD><EFBFBD>笔漲璅∪<EFBFBD> /*/ 霈曉<E99C88>銝滚<E98A9D><E6BB9A>潔<EFBFBD><E6BD94>䕘<EFBFBD>霂行<E99C82>閫<EFBFBD><E996AB>蝐餅釣<E9A485>?
|
||||||
virtual int set_distortion_image(bool type); //设置畸变校正图 /*/ 基类处理
|
virtual int set_distortion_image(bool type); //霈曄蔭<EFBFBD>詨<EFBFBD><EFBFBD>⊥迤<EFBFBD>? /*/ <20>箇掩憭<E68EA9><E686AD>
|
||||||
virtual int get_distortion_check_val(int &val); //获取自动计算畸变校正值 /*/ 基类处理
|
virtual int get_distortion_check_val(int &val); //<EFBFBD>瑕<EFBFBD><EFBFBD>芸𢆡霈∠<EFBFBD><EFBFBD>詨<EFBFBD><EFBFBD>⊥迤<EFBFBD>? /*/ <20>箇掩憭<E68EA9><E686AD>
|
||||||
virtual int set_devs_distortion_check_val(float data) = 0; //设置畸变矫正值 float;
|
virtual int set_devs_distortion_check_val(float data) = 0; //霈曄蔭<EFBFBD>詨<EFBFBD><EFBFBD>急迤<EFBFBD>? float;
|
||||||
virtual int get_devs_distortion_check_val(float& data) = 0; //获取设备畸变值 float;
|
virtual int get_devs_distortion_check_val(float& data) = 0; //<EFBFBD>瑕<EFBFBD>霈曉<EFBFBD><EFBFBD>詨<EFBFBD><EFBFBD>? float;
|
||||||
virtual int set_auto_flat(int data) = 0; //设置自动平场校正
|
virtual int set_auto_flat(int data) = 0; //设置自动平场校正
|
||||||
// data:0(ALL) 1(200dpi、gray) 2(200dpi、color) 3(300dpi、gray) 4(300dpi、color) 5(600dpi、gray) 6(600dpi、color)
|
// data:0(ALL) 1(200dpi、gray) 2(200dpi、color) 3(300dpi、gray) 4(300dpi、color) 5(600dpi、gray) 6(600dpi、color)
|
||||||
virtual int set_updata0303(void) ;
|
virtual int set_updata0303(void) ;
|
||||||
virtual int get_motor_board_ver(string &ver); //获取G239电机板的固件号 //3399设备支持
|
virtual int get_motor_board_ver(string &ver); //<EFBFBD>瑕<EFBFBD>G239<EFBFBD>菜㦤<EFBFBD>輻<EFBFBD><EFBFBD>箔辣<EFBFBD>?//3399霈曉<E99C88><E69B89>舀<EFBFBD>
|
||||||
virtual int set_devs_time(string times); //设置设备时间 //3399设备支持
|
virtual int set_devs_time(string times); //设置设备时间 //3399设备支持
|
||||||
virtual int get_devs_time(string ×); //获取设备时间 //3399设备支持
|
virtual int get_devs_time(string ×); //获取设备时间 //3399设备支持
|
||||||
virtual int get_devs_cpu(int& cpu); //获取设备内存大小(kb)
|
virtual int get_devs_cpu(int& cpu); //获取设备内存大小(kb)
|
||||||
|
|
|
@ -87,7 +87,7 @@ hg_scanner_200::hg_scanner_200(const char* dev_name,int pid, usb_io* io) : hg_sc
|
||||||
|
|
||||||
dsp_config_.value = 0;
|
dsp_config_.value = 0;
|
||||||
#ifndef MAPPING_FUNCTION_IN_BASE
|
#ifndef MAPPING_FUNCTION_IN_BASE
|
||||||
init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先初始化
|
init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先åˆ<EFBFBD>始åŒ?
|
||||||
#endif
|
#endif
|
||||||
if (init_settings(0x200))
|
if (init_settings(0x200))
|
||||||
init_settings((jsontext1 + jsontext2 + jsontext3).c_str());
|
init_settings((jsontext1 + jsontext2 + jsontext3).c_str());
|
||||||
|
@ -305,13 +305,17 @@ int hg_scanner_200::do_start(void)
|
||||||
}
|
}
|
||||||
printf_devconfig();
|
printf_devconfig();
|
||||||
SANE_Bool type = false;
|
SANE_Bool type = false;
|
||||||
ret = get_scanner_paperon(type);
|
|
||||||
if (!type)
|
if (!no_paper_check_)
|
||||||
{
|
{
|
||||||
status_ = ret = SCANNER_ERR_DEVICE_NO_PAPER;
|
ret = get_scanner_paperon(type);
|
||||||
//notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER, SANE_EVENT_ERROR, status_);
|
if (!type)
|
||||||
VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER));
|
{
|
||||||
return ret;
|
status_ = ret = SCANNER_ERR_DEVICE_NO_PAPER;
|
||||||
|
//notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER, SANE_EVENT_ERROR, status_);
|
||||||
|
VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
USBCB usb = { setting3288dsp::START_COMMAND, img_conf_.scannum, 0 };
|
USBCB usb = { setting3288dsp::START_COMMAND, img_conf_.scannum, 0 };
|
||||||
|
@ -487,7 +491,7 @@ int hg_scanner_200::writedown_device_configuration(bool type,setting_hardware::H
|
||||||
int ret = SCANNER_ERR_OK,
|
int ret = SCANNER_ERR_OK,
|
||||||
len = 0;
|
len = 0;
|
||||||
|
|
||||||
setting_hardware::HGSCANCONF_DSP p = dsp_config_; //不得改变外部的值
|
setting_hardware::HGSCANCONF_DSP p = dsp_config_; //ä¸<EFBFBD>得改å<EFBFBD>˜å¤–部的å€?
|
||||||
|
|
||||||
if (!d)
|
if (!d)
|
||||||
d = &p;
|
d = &p;
|
||||||
|
@ -684,7 +688,7 @@ int hg_scanner_200::on_is_auto_paper(bool isautopaper)
|
||||||
int hg_scanner_200::on_cis_get_image(bool isautopaper)
|
int hg_scanner_200::on_cis_get_image(bool isautopaper)
|
||||||
{
|
{
|
||||||
is_cis_image = isautopaper;
|
is_cis_image = isautopaper;
|
||||||
dsp_config_.params_dsp.isCorrect = isautopaper == true ? 0 : 1; //0设置获取cis原图,1校正之后的图
|
dsp_config_.params_dsp.isCorrect = isautopaper == true ? 0 : 1; //0设置获å<EFBFBD>–cis原图ï¼?æ ¡æ£ä¹‹å<E280B9>Žçš„图
|
||||||
return writedown_device_configuration();
|
return writedown_device_configuration();
|
||||||
}
|
}
|
||||||
int hg_scanner_200::on_process_double_paper(bool type)
|
int hg_scanner_200::on_process_double_paper(bool type)
|
||||||
|
@ -742,7 +746,7 @@ void hg_scanner_200::writedown_image_configuration(void)
|
||||||
ic.hardwarecaps.skrewdetectlevel = dsp_config_.params_dsp.screw_detect_level;
|
ic.hardwarecaps.skrewdetectlevel = dsp_config_.params_dsp.screw_detect_level;
|
||||||
// ic.hardwarecaps.is_autopaper = dsp_config_.params_dsp.is_autopaper;
|
// ic.hardwarecaps.is_autopaper = dsp_config_.params_dsp.is_autopaper;
|
||||||
ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
||||||
ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //暂无参数 设置休眠时间 两个参数3399未使用
|
ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //æš‚æ— å<EFBFBD>‚æ•° è®¾ç½®ä¼‘çœ æ—¶é—´ 两个å<C2AA>‚æ•°3399未使ç”?
|
||||||
|
|
||||||
image_configuration(ic);
|
image_configuration(ic);
|
||||||
//agreement();
|
//agreement();
|
||||||
|
@ -770,7 +774,7 @@ std::string hg_scanner_200::get_firmware_version()
|
||||||
{
|
{
|
||||||
char buf[20] = { 0 };
|
char buf[20] = { 0 };
|
||||||
int ret = SCANNER_ERR_OK,
|
int ret = SCANNER_ERR_OK,
|
||||||
len = 8; //协议定义长度为8 300 400 =10
|
len = 8; //å<EFBFBD><EFBFBD>议定义长度ä¸? 300 400 =10
|
||||||
USBCB cmd = { setting3288dsp::GET_FW_VERSION, len, 0 };
|
USBCB cmd = { setting3288dsp::GET_FW_VERSION, len, 0 };
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -788,7 +792,7 @@ std::string hg_scanner_200::get_serial_num()
|
||||||
{
|
{
|
||||||
char buf[20] = { 0 };
|
char buf[20] = { 0 };
|
||||||
int ret = SCANNER_ERR_OK,
|
int ret = SCANNER_ERR_OK,
|
||||||
len = 12; //协议定义长度为8 300 400 =10
|
len = 12; //å<EFBFBD><EFBFBD>议定义长度ä¸? 300 400 =10
|
||||||
USBCB cmd = { setting3288dsp::GET_SERIAL, len, 0 };
|
USBCB cmd = { setting3288dsp::GET_SERIAL, len, 0 };
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -89,7 +89,7 @@ hg_scanner_300::hg_scanner_300(const char* dev_name,int pid, usb_io* io) :
|
||||||
{
|
{
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "hg_scanner_300(%s) constructing ...\n", hg_log::format_ptr(this).c_str());
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "hg_scanner_300(%s) constructing ...\n", hg_log::format_ptr(this).c_str());
|
||||||
dsp_config.value = 0;
|
dsp_config.value = 0;
|
||||||
dsp_config.params_3288.enableLed = 1; //默认值
|
dsp_config.params_3288.enableLed = 1; //暺䁅恕<EFBFBD>?
|
||||||
dsp_config.params_3288.isCorrect = 1;
|
dsp_config.params_3288.isCorrect = 1;
|
||||||
|
|
||||||
int ret = initdevice();
|
int ret = initdevice();
|
||||||
|
@ -118,7 +118,7 @@ hg_scanner_300::hg_scanner_300(const char* dev_name,int pid, usb_io* io) :
|
||||||
firmware_sup_log_export_G300_ = year_date.compare("230430") >= 0 ? true : false;
|
firmware_sup_log_export_G300_ = year_date.compare("230430") >= 0 ? true : false;
|
||||||
|
|
||||||
#ifndef MAPPING_FUNCTION_IN_BASE
|
#ifndef MAPPING_FUNCTION_IN_BASE
|
||||||
init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先初始化
|
init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//隡睃<EFBFBD><EFBFBD>嘥<EFBFBD><EFBFBD>?
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (init_settings(pid_))
|
if (init_settings(pid_))
|
||||||
|
@ -159,11 +159,11 @@ void hg_scanner_300::thread_handle_usb_read(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
//printf("usb.u32_Data = %d ret = %d\r\n",usb.u32_Data,ret);
|
//printf("usb.u32_Data = %d ret = %d\r\n",usb.u32_Data,ret);
|
||||||
//如果设备出现卡纸 或者双张等设备信息问题,需要等到设备进行发送stop才能停止。 所以始终以 "停止" 消息为结束信号
|
//憒<EFBFBD><EFBFBD>霈曉<EFBFBD><EFBFBD>箇緵<EFBFBD>∠爾 <20>𤥁<EFBFBD><F0A4A581><EFBFBD>撘删<E69298>霈曉<E99C88>靽⊥<E99DBD><E28AA5>桅<EFBFBD>嚗屸<E59A97>閬<EFBFBD><E996AC><EFBFBD>啗挽憭<E68CBD><E686AD>銵<EFBFBD><E98AB5><EFBFBD><EFBFBD>top<6F>滩<EFBFBD><E6BBA9>𨀣迫<F0A880A3>?<3F><>隞亙<E99A9E>蝏<EFBFBD>誑 "<22>𨀣迫" 瘨<><E798A8>銝箇<E98A9D><E7AE87>煺縑<E785BA>?
|
||||||
//如果有图的情况下,并且卡纸或双张等,设备会先发送卡纸双张信息。所以接受到错误信息之后,仍需要把图像取出来。
|
//憒<EFBFBD><EFBFBD><EFBFBD>匧㦛<EFBFBD><EFBFBD><EFBFBD><EFBFBD>萎<EFBFBD>嚗<EFBFBD>僎銝𥪜㨃蝥豢<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝑㚁<EFBFBD>霈曉<EFBFBD>隡𡁜<EFBFBD><EFBFBD>煾<EFBFBD><EFBFBD>㨃蝥詨<EFBFBD>撘牐縑<EFBFBD>胯<EFBFBD><EFBFBD><EFBFBD>隞交𦻖<EFBFBD>堒<EFBFBD><EFBFBD>躰秤靽⊥<EFBFBD>銋见<EFBFBD>嚗䔶<EFBFBD><EFBFBD><EFBFBD>閬<EFBFBD><EFBFBD><EFBFBD>曉<EFBFBD><EFBFBD>硋枂<EFBFBD>乓<EFBFBD>?
|
||||||
if (ret == SCANNER_ERR_DEVICE_STOPPED)
|
if (ret == SCANNER_ERR_DEVICE_STOPPED)
|
||||||
{
|
{
|
||||||
status_ = !savestatus_.empty() ? savestatus_[0] : SCANNER_ERR_OK;//以第一个消息为准
|
status_ = !savestatus_.empty() ? savestatus_[0] : SCANNER_ERR_OK;//隞亦洵銝<EFBFBD>銝芣<EFBFBD><EFBFBD>臭蛹<EFBFBD>?
|
||||||
savestatus_.clear();
|
savestatus_.clear();
|
||||||
if (user_cancel_)
|
if (user_cancel_)
|
||||||
{
|
{
|
||||||
|
@ -240,7 +240,7 @@ void hg_scanner_300::thread_handle_usb_read(void)
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "%s\n", hg_scanner_err_description(status_));
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "%s\n", hg_scanner_err_description(status_));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (sw.elapsed_ms() > 30000 && img_conf_.resolution_dst != 600)//防止状态信息一直取不上来导致卡死
|
if (sw.elapsed_ms() > 30000 && img_conf_.resolution_dst != 600)//<EFBFBD>脫迫<EFBFBD>嗆<EFBFBD><EFBFBD>縑<EFBFBD>臭<EFBFBD><EFBFBD>游<EFBFBD>銝滢<EFBFBD><EFBFBD>亙紡<EFBFBD>游㨃甇?
|
||||||
{
|
{
|
||||||
if ((img_conf_.papertype == TwSS::MaxSize || img_conf_.papertype == TwSS::USStatement) && pid_ == 0x0300 && firmware_sup_dpi_600)
|
if ((img_conf_.papertype == TwSS::MaxSize || img_conf_.papertype == TwSS::USStatement) && pid_ == 0x0300 && firmware_sup_dpi_600)
|
||||||
{
|
{
|
||||||
|
@ -248,7 +248,7 @@ void hg_scanner_300::thread_handle_usb_read(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!savestatus_.empty())//以第一个消息为准
|
if (!savestatus_.empty())//隞亦洵銝<EFBFBD>銝芣<EFBFBD><EFBFBD>臭蛹<EFBFBD>?
|
||||||
{
|
{
|
||||||
status_ = savestatus_[0];
|
status_ = savestatus_[0];
|
||||||
}
|
}
|
||||||
|
@ -260,7 +260,7 @@ void hg_scanner_300::thread_handle_usb_read(void)
|
||||||
}
|
}
|
||||||
if (sw.elapsed_s() > 130)
|
if (sw.elapsed_s() > 130)
|
||||||
{
|
{
|
||||||
if (!savestatus_.empty())//以第一个消息为准
|
if (!savestatus_.empty())//隞亦洵銝<EFBFBD>銝芣<EFBFBD><EFBFBD>臭蛹<EFBFBD>?
|
||||||
{
|
{
|
||||||
status_ = savestatus_[0];
|
status_ = savestatus_[0];
|
||||||
}
|
}
|
||||||
|
@ -271,7 +271,7 @@ void hg_scanner_300::thread_handle_usb_read(void)
|
||||||
}
|
}
|
||||||
if (ret == SCANNER_ERR_OK && usb.u32_Count > 0)
|
if (ret == SCANNER_ERR_OK && usb.u32_Count > 0)
|
||||||
{
|
{
|
||||||
int totalNum = usb.u32_Count & 0x3fffffff; // 2022-08-04: 兼容Android,默认图片大小均在1GB以内
|
int totalNum = usb.u32_Count & 0x3fffffff; // 2022-08-04: <EFBFBD>澆捆Android嚗屸<EFBFBD>霈文㦛<EFBFBD><EFBFBD>之撠誩<EFBFBD><EFBFBD>?GB隞亙<E99A9E>
|
||||||
VLOG_MINI_2(LOG_LEVEL_WARNING, "Get Scaner Image Size:%d bytes,Image Num[%d]\n", totalNum,img_num);
|
VLOG_MINI_2(LOG_LEVEL_WARNING, "Get Scaner Image Size:%d bytes,Image Num[%d]\n", totalNum,img_num);
|
||||||
img_num++;
|
img_num++;
|
||||||
if (totalNum)
|
if (totalNum)
|
||||||
|
@ -371,18 +371,21 @@ int hg_scanner_300::do_start(void)
|
||||||
|
|
||||||
return status_;
|
return status_;
|
||||||
}
|
}
|
||||||
ret = get_scanner_paperon(val);
|
if (!no_paper_check_)
|
||||||
if (!val && ret == SCANNER_ERR_OK)
|
|
||||||
{
|
{
|
||||||
status_ = SCANNER_ERR_DEVICE_NO_PAPER;
|
ret = get_scanner_paperon(val);
|
||||||
|
if (!val && ret == SCANNER_ERR_OK)
|
||||||
|
{
|
||||||
|
status_ = SCANNER_ERR_DEVICE_NO_PAPER;
|
||||||
|
|
||||||
return status_;
|
return status_;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (ret != SCANNER_ERR_OK)
|
if (ret != SCANNER_ERR_OK)
|
||||||
{
|
{
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
if (is_devs_sleep_)//设备在睡眠的状态当中获取固件是失败的,所以在这个地方进行标志位设置。(总感觉不保险)
|
if (is_devs_sleep_)//霈曉<EFBFBD><EFBFBD>函辺<EFBFBD>删<EFBFBD><EFBFBD>嗆<EFBFBD><EFBFBD><EFBFBD>銝剛繮<EFBFBD>硋𤐄隞嗆糓憭梯揖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞亙銁餈嗘葵<EFBFBD>唳䲮餈𥡝<EFBFBD><EFBFBD><EFBFBD><EFBFBD>雿滩挽蝵柴<EFBFBD><EFBFBD><EFBFBD><EFBFBD>餅<EFBFBD>閫劐<EFBFBD>靽嗪埯嚗?
|
||||||
{
|
{
|
||||||
is_devs_sleep_ = false;
|
is_devs_sleep_ = false;
|
||||||
set_kernelsnap_ver();
|
set_kernelsnap_ver();
|
||||||
|
@ -807,7 +810,7 @@ int hg_scanner_300::initdevice()
|
||||||
if (status_ != SCANNER_ERR_DEVICE_SLEEPING)
|
if (status_ != SCANNER_ERR_DEVICE_SLEEPING)
|
||||||
{
|
{
|
||||||
set_kernelsnap_ver();
|
set_kernelsnap_ver();
|
||||||
is_devs_sleep_ = false; // 睡眠唤醒 客户提前点击设置这边固件版本号 还没有做判断的
|
is_devs_sleep_ = false; // <EFBFBD>∠<EFBFBD><EFBFBD>日<EFBFBD> 摰X<E691B0><EFBCB8>𣂼<EFBFBD><F0A382BC>孵稬霈曄蔭餈躰器<E8BAB0>箔辣<E7AE94><E8BEA3>𧋦<EFBFBD>?餈䀹瓷<E480B9>匧<EFBFBD><E58CA7>斗鱏<E69697>?
|
||||||
}
|
}
|
||||||
return status_;
|
return status_;
|
||||||
}
|
}
|
||||||
|
@ -839,7 +842,7 @@ void hg_scanner_300::writedown_image_configuration(void)
|
||||||
|
|
||||||
// ic.hardwarecaps.is_autopaper = dsp_config_.params_dsp.is_autopaper;
|
// ic.hardwarecaps.is_autopaper = dsp_config_.params_dsp.is_autopaper;
|
||||||
ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
||||||
ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //暂无参数 设置休眠时间 两个参数3399未使用
|
ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㺭 霈曄蔭隡𤑳<E99AA1><F0A491B3>園𡢿 銝支葵<E694AF><E891B5>㺭3399<39>芯蝙<E88AAF>?
|
||||||
image_configuration(ic);
|
image_configuration(ic);
|
||||||
}
|
}
|
||||||
void hg_scanner_300::printf_devconfig(setting_hardware::HGSCANCONF_3288 *d)
|
void hg_scanner_300::printf_devconfig(setting_hardware::HGSCANCONF_3288 *d)
|
||||||
|
@ -980,7 +983,7 @@ int hg_scanner_300::get_correction_image(int inx , int dpi, int mode)
|
||||||
|
|
||||||
cv::Mat white_mat;
|
cv::Mat white_mat;
|
||||||
cv::Mat black_mat;;
|
cv::Mat black_mat;;
|
||||||
for (size_t i = 0; i < 2; i++) //黑白一起保存下来
|
for (size_t i = 0; i < 2; i++) //暺𤑳蒾銝<EFBFBD>韏瑚<EFBFBD>摮䀝<EFBFBD><EFBFBD>?
|
||||||
{
|
{
|
||||||
vector<unsigned char> imagedata;
|
vector<unsigned char> imagedata;
|
||||||
|
|
||||||
|
@ -1022,7 +1025,7 @@ int hg_scanner_300::get_correction_image(int inx , int dpi, int mode)
|
||||||
if (mat.empty())
|
if (mat.empty())
|
||||||
{
|
{
|
||||||
VLOG_MINI_1(LOG_LEVEL_WARNING, "get_correction_image image is NULL:%d\n", image_info.info.params.status);
|
VLOG_MINI_1(LOG_LEVEL_WARNING, "get_correction_image image is NULL:%d\n", image_info.info.params.status);
|
||||||
return SCANNER_ERR_NO_DATA; //只要有一张图没有 直接退了
|
return SCANNER_ERR_NO_DATA; //<EFBFBD>芾<EFBFBD><EFBFBD>劐<EFBFBD>撘惩㦛瘝⊥<EFBFBD> <20>湔𦻖<E6B994><F0A6BB96>鈭?
|
||||||
}
|
}
|
||||||
float f = 0.0;
|
float f = 0.0;
|
||||||
|
|
||||||
|
@ -1055,7 +1058,7 @@ std::string hg_scanner_300::get_firmware_version()
|
||||||
{
|
{
|
||||||
char buf[20] = { 0 };
|
char buf[20] = { 0 };
|
||||||
int ret = SCANNER_ERR_OK,
|
int ret = SCANNER_ERR_OK,
|
||||||
len = 10; //协议定义长度为10 100 200 =8
|
len = 10; //<EFBFBD>讛悅摰帋<EFBFBD><EFBFBD>踹漲銝?0 100 200 =8
|
||||||
USBCB cmd = { setting3288dsp::GET_FW_VERSION,len,0,};
|
USBCB cmd = { setting3288dsp::GET_FW_VERSION,len,0,};
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -84,7 +84,7 @@ hg_scanner_306::hg_scanner_306(const char* dev_name,int pid, usb_io* io) :
|
||||||
{
|
{
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "hg_scanner_306(%s) constructing ...\n", hg_log::format_ptr(this).c_str());
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "hg_scanner_306(%s) constructing ...\n", hg_log::format_ptr(this).c_str());
|
||||||
dsp_config.value = 0;
|
dsp_config.value = 0;
|
||||||
dsp_config.params_7010.enableLed = 1; //默认值
|
dsp_config.params_7010.enableLed = 1; //暺䁅恕<EFBFBD>?
|
||||||
dsp_config.params_7010.isCorrect = 1;
|
dsp_config.params_7010.isCorrect = 1;
|
||||||
|
|
||||||
int ret = get_device_type(firmware_sup_device_7010);
|
int ret = get_device_type(firmware_sup_device_7010);
|
||||||
|
@ -101,7 +101,7 @@ hg_scanner_306::hg_scanner_306(const char* dev_name,int pid, usb_io* io) :
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef MAPPING_FUNCTION_IN_BASE
|
#ifndef MAPPING_FUNCTION_IN_BASE
|
||||||
init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先初始化
|
init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//隡睃<EFBFBD><EFBFBD>嘥<EFBFBD><EFBFBD>?
|
||||||
#endif
|
#endif
|
||||||
if (init_settings(pid_))
|
if (init_settings(pid_))
|
||||||
init_settings((jsontext1 + jsontext2 + jsontext3).c_str());
|
init_settings((jsontext1 + jsontext2 + jsontext3).c_str());
|
||||||
|
@ -136,11 +136,11 @@ void hg_scanner_306::thread_handle_usb_read(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
//printf("usb.u32_Data = %d ret = %d\r\n",usb.u32_Data,ret);
|
//printf("usb.u32_Data = %d ret = %d\r\n",usb.u32_Data,ret);
|
||||||
//如果设备出现卡纸 或者双张等设备信息问题,需要等到设备进行发送stop才能停止。 所以始终以 "停止" 消息为结束信号
|
//憒<EFBFBD><EFBFBD>霈曉<EFBFBD><EFBFBD>箇緵<EFBFBD>∠爾 <20>𤥁<EFBFBD><F0A4A581><EFBFBD>撘删<E69298>霈曉<E99C88>靽⊥<E99DBD><E28AA5>桅<EFBFBD>嚗屸<E59A97>閬<EFBFBD><E996AC><EFBFBD>啗挽憭<E68CBD><E686AD>銵<EFBFBD><E98AB5><EFBFBD><EFBFBD>top<6F>滩<EFBFBD><E6BBA9>𨀣迫<F0A880A3>?<3F><>隞亙<E99A9E>蝏<EFBFBD>誑 "<22>𨀣迫" 瘨<><E798A8>銝箇<E98A9D><E7AE87>煺縑<E785BA>?
|
||||||
//如果有图的情况下,并且卡纸或双张等,设备会先发送卡纸双张信息。所以接受到错误信息之后,仍需要把图像取出来。
|
//憒<EFBFBD><EFBFBD><EFBFBD>匧㦛<EFBFBD><EFBFBD><EFBFBD><EFBFBD>萎<EFBFBD>嚗<EFBFBD>僎銝𥪜㨃蝥豢<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝑㚁<EFBFBD>霈曉<EFBFBD>隡𡁜<EFBFBD><EFBFBD>煾<EFBFBD><EFBFBD>㨃蝥詨<EFBFBD>撘牐縑<EFBFBD>胯<EFBFBD><EFBFBD><EFBFBD>隞交𦻖<EFBFBD>堒<EFBFBD><EFBFBD>躰秤靽⊥<EFBFBD>銋见<EFBFBD>嚗䔶<EFBFBD><EFBFBD><EFBFBD>閬<EFBFBD><EFBFBD><EFBFBD>曉<EFBFBD><EFBFBD>硋枂<EFBFBD>乓<EFBFBD>?
|
||||||
if (ret == SCANNER_ERR_DEVICE_STOPPED)
|
if (ret == SCANNER_ERR_DEVICE_STOPPED)
|
||||||
{
|
{
|
||||||
status_ = !savestatus_.empty() ? savestatus_[0] : SCANNER_ERR_OK;//以第一个消息为准
|
status_ = !savestatus_.empty() ? savestatus_[0] : SCANNER_ERR_OK;//隞亦洵銝<EFBFBD>銝芣<EFBFBD><EFBFBD>臭蛹<EFBFBD>?
|
||||||
savestatus_.clear();
|
savestatus_.clear();
|
||||||
if (user_cancel_)
|
if (user_cancel_)
|
||||||
{
|
{
|
||||||
|
@ -217,7 +217,7 @@ void hg_scanner_306::thread_handle_usb_read(void)
|
||||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "%s\n", hg_scanner_err_description(status_));
|
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "%s\n", hg_scanner_err_description(status_));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (sw.elapsed_ms() > 30000 && img_conf_.resolution_dst != 600)//防止状态信息一直取不上来导致卡死
|
if (sw.elapsed_ms() > 30000 && img_conf_.resolution_dst != 600)//<EFBFBD>脫迫<EFBFBD>嗆<EFBFBD><EFBFBD>縑<EFBFBD>臭<EFBFBD><EFBFBD>游<EFBFBD>銝滢<EFBFBD><EFBFBD>亙紡<EFBFBD>游㨃甇?
|
||||||
{
|
{
|
||||||
if ((img_conf_.papertype == TwSS::MaxSize || img_conf_.papertype == TwSS::USStatement) && pid_ == 0x0300 && firmware_sup_dpi_600)
|
if ((img_conf_.papertype == TwSS::MaxSize || img_conf_.papertype == TwSS::USStatement) && pid_ == 0x0300 && firmware_sup_dpi_600)
|
||||||
{
|
{
|
||||||
|
@ -225,19 +225,19 @@ void hg_scanner_306::thread_handle_usb_read(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!savestatus_.empty())//以第一个消息为准
|
if (!savestatus_.empty())//隞亦洵銝<EFBFBD>銝芣<EFBFBD><EFBFBD>臭蛹<EFBFBD>?
|
||||||
{
|
{
|
||||||
status_ = savestatus_[0];
|
status_ = savestatus_[0];
|
||||||
}
|
}
|
||||||
savestatus_.clear();
|
savestatus_.clear();
|
||||||
hg_log::log(LOG_LEVEL_WARNING, "Get Status TimeOut,get image out 30S\n");
|
hg_log::log(LOG_LEVEL_WARNING, "Get Status TimeOut,get image out 30S\n");
|
||||||
notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_GET_IMAGE_OUTTIME), SANE_EVENT_ERROR, status_); // 鍙栧浘閫氫俊瓒呮椂
|
notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_GET_IMAGE_OUTTIME), SANE_EVENT_ERROR, status_); // <EFBFBD>蹱𡵆瘚㗛𢥫瘞思<EFBFBD><EFBFBD>鍦䴴璊?
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sw.elapsed_s() > 130)
|
if (sw.elapsed_s() > 130)
|
||||||
{
|
{
|
||||||
if (!savestatus_.empty())//以第一个消息为准
|
if (!savestatus_.empty())//隞亦洵銝<EFBFBD>銝芣<EFBFBD><EFBFBD>臭蛹<EFBFBD>?
|
||||||
{
|
{
|
||||||
status_ = savestatus_[0];
|
status_ = savestatus_[0];
|
||||||
}
|
}
|
||||||
|
@ -327,18 +327,22 @@ int hg_scanner_306::do_start(void)
|
||||||
|
|
||||||
return status_;
|
return status_;
|
||||||
}
|
}
|
||||||
ret = get_scanner_paperon(val);
|
if (!no_paper_check_)
|
||||||
if (!val && ret == SCANNER_ERR_OK)
|
|
||||||
{
|
{
|
||||||
status_ = SCANNER_ERR_DEVICE_NO_PAPER;
|
ret = get_scanner_paperon(val);
|
||||||
|
if (!val && ret == SCANNER_ERR_OK)
|
||||||
|
{
|
||||||
|
status_ = SCANNER_ERR_DEVICE_NO_PAPER;
|
||||||
|
|
||||||
return status_;
|
return status_;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret != SCANNER_ERR_OK)
|
if (ret != SCANNER_ERR_OK)
|
||||||
{
|
{
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
if (is_devs_sleep_)//设备在睡眠的状态当中获取固件是失败的,所以在这个地方进行标志位设置。(总感觉不保险)
|
if (is_devs_sleep_)//霈曉<EFBFBD><EFBFBD>函辺<EFBFBD>删<EFBFBD><EFBFBD>嗆<EFBFBD><EFBFBD><EFBFBD>銝剛繮<EFBFBD>硋𤐄隞嗆糓憭梯揖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞亙銁餈嗘葵<EFBFBD>唳䲮餈𥡝<EFBFBD><EFBFBD><EFBFBD><EFBFBD>雿滩挽蝵柴<EFBFBD><EFBFBD><EFBFBD><EFBFBD>餅<EFBFBD>閫劐<EFBFBD>靽嗪埯嚗?
|
||||||
{
|
{
|
||||||
is_devs_sleep_ = false;
|
is_devs_sleep_ = false;
|
||||||
set_kernelsnap_ver();
|
set_kernelsnap_ver();
|
||||||
|
@ -765,7 +769,7 @@ int hg_scanner_306::initdevice()
|
||||||
if (status_ != SCANNER_ERR_DEVICE_SLEEPING)
|
if (status_ != SCANNER_ERR_DEVICE_SLEEPING)
|
||||||
{
|
{
|
||||||
set_kernelsnap_ver();
|
set_kernelsnap_ver();
|
||||||
is_devs_sleep_ = false; // 睡眠唤醒 客户提前点击设置这边固件版本号 还没有做判断的
|
is_devs_sleep_ = false; // <EFBFBD>∠<EFBFBD><EFBFBD>日<EFBFBD> 摰X<E691B0><EFBCB8>𣂼<EFBFBD><F0A382BC>孵稬霈曄蔭餈躰器<E8BAB0>箔辣<E7AE94><E8BEA3>𧋦<EFBFBD>?餈䀹瓷<E480B9>匧<EFBFBD><E58CA7>斗鱏<E69697>?
|
||||||
}
|
}
|
||||||
return SCANNER_ERR_OK;
|
return SCANNER_ERR_OK;
|
||||||
}
|
}
|
||||||
|
@ -797,7 +801,7 @@ void hg_scanner_306::writedown_image_configuration(void)
|
||||||
|
|
||||||
// ic.hardwarecaps.is_autopaper = dsp_config_.params_dsp.is_autopaper;
|
// ic.hardwarecaps.is_autopaper = dsp_config_.params_dsp.is_autopaper;
|
||||||
ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
ic.hardwarecaps.capturepixtype = 0; //暂无参数 获取图像类型
|
||||||
ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //暂无参数 设置休眠时间 两个参数3399未使用
|
ic.hardwarecaps.lowpowermode = LowPowerMode::Min_None; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㺭 霈曄蔭隡𤑳<E99AA1><F0A491B3>園𡢿 銝支葵<E694AF><E891B5>㺭3399<39>芯蝙<E88AAF>?
|
||||||
image_configuration(ic);
|
image_configuration(ic);
|
||||||
}
|
}
|
||||||
void hg_scanner_306::printf_devconfig(setting_hardware::HGSCANCONF_7010 *d)
|
void hg_scanner_306::printf_devconfig(setting_hardware::HGSCANCONF_7010 *d)
|
||||||
|
@ -877,7 +881,7 @@ int hg_scanner_306::get_correction_image(int inx , int dpi, int mode)
|
||||||
|
|
||||||
cv::Mat white_mat;
|
cv::Mat white_mat;
|
||||||
cv::Mat black_mat;;
|
cv::Mat black_mat;;
|
||||||
for (size_t i = 0; i < 2; i++) //黑白一起保存下来
|
for (size_t i = 0; i < 2; i++) //暺𤑳蒾銝<EFBFBD>韏瑚<EFBFBD>摮䀝<EFBFBD><EFBFBD>?
|
||||||
{
|
{
|
||||||
vector<unsigned char> imagedata;
|
vector<unsigned char> imagedata;
|
||||||
|
|
||||||
|
@ -915,7 +919,7 @@ int hg_scanner_306::get_correction_image(int inx , int dpi, int mode)
|
||||||
if (mat.empty())
|
if (mat.empty())
|
||||||
{
|
{
|
||||||
VLOG_MINI_1(LOG_LEVEL_WARNING, "get_correction_image image is NULL:%d\n", image_info.info.params.status);
|
VLOG_MINI_1(LOG_LEVEL_WARNING, "get_correction_image image is NULL:%d\n", image_info.info.params.status);
|
||||||
return SCANNER_ERR_NO_DATA; //只要有一张图没有 直接退了
|
return SCANNER_ERR_NO_DATA; //<EFBFBD>芾<EFBFBD><EFBFBD>劐<EFBFBD>撘惩㦛瘝⊥<EFBFBD> <20>湔𦻖<E6B994><F0A6BB96>鈭?
|
||||||
}
|
}
|
||||||
|
|
||||||
float f = 0.0;
|
float f = 0.0;
|
||||||
|
@ -941,7 +945,7 @@ std::string hg_scanner_306::get_firmware_version()
|
||||||
{
|
{
|
||||||
char buf[20] = { 0 };
|
char buf[20] = { 0 };
|
||||||
int ret = SCANNER_ERR_OK,
|
int ret = SCANNER_ERR_OK,
|
||||||
len = 10; //协议定义长度为10 100 200 =8
|
len = 10; //<EFBFBD>讛悅摰帋<EFBFBD><EFBFBD>踹漲銝?0 100 200 =8
|
||||||
USBCB cmd = { setting3288dsp::GET_FW_VERSION,len,0,};
|
USBCB cmd = { setting3288dsp::GET_FW_VERSION,len,0,};
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -1228,13 +1232,13 @@ int hg_scanner_306::set_scan_lock_check_val(string str)
|
||||||
}
|
}
|
||||||
//#enum scanner_err
|
//#enum scanner_err
|
||||||
//#{
|
//#{
|
||||||
//# SCANNER_ERR_OK = 0, //设备正常状态
|
//# SCANNER_ERR_OK = 0, //霈曉<EFBFBD>甇<EFBFBD>虜<EFBFBD>嗆<EFBFBD>?
|
||||||
//# SCANNER_ERR_SLEEP, 1 //设备处于休眠当中
|
//# SCANNER_ERR_SLEEP, 1 //设备处于休眠当中
|
||||||
//# SCANNER_ERR_UPDATE_OK, 2 //设备更新:成功
|
//# SCANNER_ERR_UPDATE_OK, 2 //霈曉<EFBFBD><EFBFBD>湔鰵嚗𡁏<EFBFBD><EFBFBD>?
|
||||||
//# SCANNER_ERR_UPDATE_UPDATAING, 3 //设备更新:进行中
|
//# SCANNER_ERR_UPDATE_UPDATAING, 3 //设备更新:进行中
|
||||||
//# SCANNER_ERR_UPDATE_CHECK_VAL_ERROR, 4 //设备更新:校验检测错误
|
//# SCANNER_ERR_UPDATE_CHECK_VAL_ERROR, 4 //霈曉<EFBFBD><EFBFBD>湔鰵嚗𡁏嵗撉峕<EFBFBD>瘚钅<EFBFBD>霂?
|
||||||
//# SCANNER_ERR_UPDATE_CHECK_FILE_LOST, 5 //设备更新:文件丢失
|
//# SCANNER_ERR_UPDATE_CHECK_FILE_LOST, 5 //霈曉<EFBFBD><EFBFBD>湔鰵嚗𡁏<EFBFBD>隞嗡腺憭?
|
||||||
//# SCANNER_ERR_UPDATE_UNZIP_FAIL, 6 //设备更新:解压失败
|
//# SCANNER_ERR_UPDATE_UNZIP_FAIL, 6 //霈曉<EFBFBD><EFBFBD>湔鰵嚗朞圾<EFBFBD>见仃韐?
|
||||||
//#};
|
//#};
|
||||||
int hg_scanner_306::set_firmware_upgrade(std::string str)
|
int hg_scanner_306::set_firmware_upgrade(std::string str)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue