调整固件版本的互斥

This commit is contained in:
13038267101 2023-06-26 18:00:58 +08:00
parent ec7695cb57
commit e9d9ba3cc2
5 changed files with 222 additions and 179 deletions

View File

@ -153,13 +153,15 @@ hg_scanner::hg_scanner(ScannerSerial serial, const char* dev_name, usb_io* io, i
, double_paper_handle_(0), keep_watermark_(false), save_feedmode_type_(false), feedmode_(1), sleeptime_(-1), split3399_(0)
, async_io_(false), is_white_0_(true), isremove_left_hole(false), isremove_right_hole(false), isremove_top_hole(false), isremove_low_hole(false)
, isremove_left_hole_threshold(0), isremove_right_hole_threshold(0), isremove_top_hole_threshold(0), isremove_low_hole_threshold(0)
, dump_usb_path_(""), is_kernelsnap_239_211209_(false), dump_img_(&hg_scanner::dump_image_empty), is_kernelsnap_239_220830_(false), is_kernelsnap3288_221106_(false)
, is_kernelsnap_239_221027_(false), memory_size_(4000/*USB+JPEG压缩及图像处理图队列总共1GB*/), isx86_Advan_(true), stop_fatal_(SCANNER_ERR_OK), is_auto_paper_scan(false)
, size_check(false), save_sleeptime_type_(false), is_kernelsnap_devsislock(false), is_checksum_strat_scan(false), is_cis_image(false)
, dump_usb_path_(""), dump_img_(&hg_scanner::dump_image_empty)
, memory_size_(4000/*USB+JPEG压缩及图像处理图队列总共1GB*/), isx86_Advan_(true), stop_fatal_(SCANNER_ERR_OK), is_auto_paper_scan(false)
, size_check(false), save_sleeptime_type_(false), is_checksum_strat_scan(false), is_cis_image(false)
, is_dpi_color_check(false), save_dpi_color_check_val(0.0f), is_auto_falt(false), HGVersion_mgr_(NULL), HGVersion_Init_(NULL)
, HGVersion_Islock_(NULL), HGVersion_Postlog_(NULL), HGVersion_Free_(NULL), Dynamicopen_HGVersion_pHandle_(NULL), pid_(pid), fetching_id_(-1)
, is_kernelsnap3288_230210_(false), color_correction_(false), is_kernelsnap_239_3C_(false), is_kernelsnap_239_220500_(false), is_kernelsnap3288_230303_(false)
, is_kernelsnap_211227_(false),is_auto_paper_scan_exit_time(60), is_read_int(true), is_kernelsnap_439_3C0606(false), is_auto_feedmode_(false), is_kernelsnap_239_220429_(false)
, HGVersion_Islock_(NULL), HGVersion_Postlog_(NULL), HGVersion_Free_(NULL), Dynamicopen_HGVersion_pHandle_(NULL), pid_(pid), fetching_id_(-1), color_correction_(false)
, is_auto_paper_scan_exit_time(60), is_read_int(true), is_auto_feedmode_(false)
, firmware_sup_wait_paper_(false),firmware_sup_pick_strength_(false),firmware_sup_log_export_(false),firmware_sup_color_corr_(false),firmware_sup_wake_device_(false)
, firmware_sup_double_img(false),firmware_sup_devs_lock_(false),firmware_sup_dpi_300(false),firmware_sup_dpi_600(false),firmware_sup_auto_speed_(false),firmware_sup_morr_(false)
, firmware_sup_color_fill_(false),firmware_sup_history_cnt(false)
{
#if !defined(_WIN32) && !defined(_WIN64) &&defined(x86_64)
isx86_Advan_ = false;
@ -338,7 +340,7 @@ void hg_scanner::thread_devslock_handle(void)
{
wait_devsislock_.wait();
#ifdef OEM_HUAGAO
if (is_firstopen_ && is_kernelsnap_devsislock)
if (is_firstopen_ && firmware_sup_devs_lock_)
{
std::this_thread::sleep_for(std::chrono::milliseconds(500));
ret = set_server_blacklist_lock();
@ -352,7 +354,7 @@ void hg_scanner::thread_devslock_handle(void)
//int ret = SCANNER_ERR_OK;
//wait_devsislock_.wait();
//while (is_firstopen_ && is_kernelsnap_devsislock)
//while (is_firstopen_ && firmware_sup_devs_lock_)
//{
// if (!is_read_int)
// {
@ -1365,24 +1367,38 @@ int hg_scanner::set_color_change(void)
bool hg_scanner::jsn_reorganize()
{
bool enble = false;
if (!is_kernelsnap_239_220830_ && pid_ == 0x239)
if (!firmware_sup_wait_paper_ && pid_ == 0x239)
{
erase_option(SANE_STD_OPT_NAME_WAIT_TO_SCAN);
enble = true;
}
if (!firmware_sup_pick_strength_ && pid_ == 0x239)
{
erase_option(SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH);
erase_option(SANE_STD_OPT_NAME_FEED_STRENGTH);
enble = true;
}
if (!is_kernelsnap_239_220429_ && pid_ == 0x239)
if (!firmware_sup_color_fill_ && (pid_ == 0x239 || pid_ == 0x439))
{
erase_option(SANE_STD_OPT_NAME_IS_FILL_COLOR);
enble = true;
}
if (pid_ == 0x239 || pid_ == 0x439)
if (!firmware_sup_color_corr_ && (pid_ == 0x239 || pid_ == 0x439))
{
erase_option(SANE_STD_OPT_NAME_RID_GRID);
erase_option(SANE_STD_OPT_NAME_RID_MORR);
erase_option(SANE_STD_OPT_NAME_COLOR_CORRECTION);
enble = true;
}
if (!firmware_sup_morr_ && (pid_ == 0x239 || pid_ == 0x439))
{
erase_option(SANE_STD_OPT_NAME_RID_MORR);
}
if (pid_ == 0x239 || pid_ == 0x439) //固件不支持防止渗透等级
{
erase_option(SANE_STD_OPT_NAME_ANTI_PERMEATE_LEVEL);
}
erase_option(SANE_STD_OPT_NAME_RID_GRID); //全系移除 除网纹
return enble;
}
int hg_scanner::hgpaper_to_devspaper(Paper_Map papermap[], int len, int& paper, bool* exact, TwSS* type)
@ -2072,7 +2088,7 @@ int hg_scanner::setting_go_on_when_double_checked(void* data, long* len)
bool ok = true;
std::string val((char*)data);
if (!is_kernelsnap_239_220500_ && val.compare(hg_log::lang_load(ID_OPTION_VALUE_SZTPCL_DQTXBTZSM)))
if (!firmware_sup_double_img && val.compare(hg_log::lang_load(ID_OPTION_VALUE_SZTPCL_DQTXBTZSM)))
{
strcpy((char*)data, hg_log::lang_load(ID_OPTION_VALUE_SZTPCL_SCTXBTZSM));
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
@ -2393,17 +2409,13 @@ int hg_scanner::setting_auto_pick_paper_threshold(void* data, long* len)
int hg_scanner::setting_auto_paper_scan(void* data, long* len)
{
is_auto_paper_scan = *((bool *)data);
if (!is_kernelsnap_239_220430_ && is_auto_paper_scan)
if (!firmware_sup_wait_paper_ && is_auto_paper_scan)
{
is_auto_paper_scan = *(bool*)data = false;
//notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_NOT_SUPPORTED), SANE_EVENT_ERROR, SCANNER_ERR_DEVICE_NOT_SUPPORT);
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
if (!is_auto_paper_scan)
{
on_is_auto_paper(is_auto_paper_scan);
}
return SCANNER_ERR_OK;
}
int hg_scanner::setting_isremove_left_hole(void* data, long* len)
@ -2463,7 +2475,7 @@ int hg_scanner::setting_color_correction(void* data, long* len)
}
if (pid_ == 0x239 || pid_ == 0x439)
{
if (!is_kernelsnap_239_3C_)
if (!firmware_sup_color_corr_)
{
*((bool*)data) = color_correction_ = false;
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
@ -4445,7 +4457,7 @@ void hg_scanner::image_process(std::shared_ptr<tiny_buffer>& buffer, uint32_t id
else if (param.cis_image
|| ((img_conf_.papertype == TwSS::MaxSize || img_conf_.papertype == TwSS::USStatement)
&& pid_ == 0x0300
&& is_kernelsnap3288_230210_))
&& firmware_sup_dpi_600))
{
printf("cis 原图测试无需任何算法\r\n");
}
@ -4475,9 +4487,9 @@ void hg_scanner::image_process(std::shared_ptr<tiny_buffer>& buffer, uint32_t id
float dpi3288 = 200;
if (pid_ == 0x300|| pid_== 0x400)
{
if (is_kernelsnap3288_221106_ && pid_ == 0x300)
if (firmware_sup_dpi_300 && pid_ == 0x300)
dpi3288 = (img_conf_.resolution_dst >= 300) ? 300 : 200;
else if (is_kernelsnap3288_230210_ && pid_ == 0x300)
else if (firmware_sup_dpi_600 && pid_ == 0x300)
dpi3288 = (img_conf_.resolution_dst == 600) ? 600 : (img_conf_.resolution_dst < 600 && img_conf_.resolution_dst >= 300) ? 300 : 200;
else
dpi3288 = 200;
@ -4504,13 +4516,13 @@ void hg_scanner::image_process(std::shared_ptr<tiny_buffer>& buffer, uint32_t id
}
if ( (((img_conf_.resolution_dst != img_conf_.resolution_native) && (pid_ == 0x300 || pid_ == 0x0400 || pid_ == 0x302 || pid_ == 0x402))
&& !is_kernelsnap3288_221106_ && !is_kernelsnap3288_230210_ )
&& !firmware_sup_dpi_300 && !firmware_sup_dpi_600)
|| (pid_ == 0x300 && is_kernelsnap3288_221106_ && img_conf_.resolution_dst != 200 && img_conf_.resolution_dst != 300)
|| (pid_ == 0x300 && is_kernelsnap3288_230210_ && img_conf_.resolution_dst != 200 && img_conf_.resolution_dst != 300 && img_conf_.resolution_dst != 600))
|| (pid_ == 0x300 && firmware_sup_dpi_300 && img_conf_.resolution_dst != 200 && img_conf_.resolution_dst != 300)
|| (pid_ == 0x300 && firmware_sup_dpi_600 && img_conf_.resolution_dst != 200 && img_conf_.resolution_dst != 300 && img_conf_.resolution_dst != 600))
{
float dpi3288 = 0.0;
dpi3288 = (img_conf_.resolution_dst >= 300 && (is_kernelsnap3288_221106_ || is_kernelsnap3288_230210_)) ? 300 : 200;
dpi3288 = (img_conf_.resolution_dst >= 300 && (firmware_sup_dpi_300 || firmware_sup_dpi_600)) ? 300 : 200;
hg_imgproc::resolution_change(ImagePrc_pHandle_, dpi3288);
(this->*dump_img_)(ImagePrc_pHandle_, "resolution_change");

View File

@ -346,23 +346,38 @@ protected:
int pid_;
/////////不同的固件号版本支持
bool is_kernelsnap_239_220830_; //此版本支持待纸扫描,手动睡眠唤醒,分纸强度
bool is_kernelsnap_239_211209_; //获取固件版本号是否是新旧版本
bool is_kernelsnap_239_221027_; //此版本一下不支持拆分模式 pc实现
bool is_kernelsnap3288_221106_; //G300 3288 在221106版本支持真实300dpi
bool is_kernelsnap3288_230210_; //G300 3288 在230210版本支持真实600dpi
bool is_kernelsnap3288_230303_; //G300 3288 支持清除历史扫描张数
//bool is_kernelsnap_239_220830_; //此版本支持,手动睡眠唤醒,分纸强度
//bool is_kernelsnap_239_211209_; //获取固件版本号是否是新旧版本
//bool is_kernelsnap_239_221027_; //此版本一下不支持拆分模式 pc实现
bool is_kernelsnap_devsislock; //支持设备锁的版本
bool is_kernelsnap_239_3C_; //支持偏色校正的版本,自适应配置
bool is_kernelsnap_439_3C0606; //支持偏色校正的版本
bool is_kernelsnap_239_220500_; //支持双张保留的版本
//bool is_kernelsnap3288_221106_; //G300 3288 在221106版本支持真实300dpi
//bool is_kernelsnap3288_230210_; //G300 3288 在230210版本支持真实600dpi
bool is_kernelsnap_239_220429_; //第一个安陆版本,支持设备日志导出
bool is_kernelsnap_239_220430_; //待纸扫描
//bool is_kernelsnap3288_230303_; //G300 3288 支持清除历史扫描张数
bool is_kernelsnap_211227_; //此版本以下不支持真实dpi 只设置1下去
//bool is_kernelsnap_devsislock; //支持设备锁的版本
//bool is_kernelsnap_239_3C_; //支持偏色校正的版本,自适应配置
//bool is_kernelsnap_439_3C0606; //支持偏色校正的版本
//bool is_kernelsnap_239_220500_; //支持双张保留的版本
//bool is_kernelsnap_239_220429_; //第一个安陆版本,支持设备日志导出
//bool is_kernelsnap_239_220430_; //待纸扫描
// bool is_kernelsnap_211227_; //此版本以下不支持真实dpi 只设置1下去
bool firmware_sup_wait_paper_; //固件支持 待纸扫描 139 239-3B0431, 439-3B0629
bool firmware_sup_pick_strength_; //固件支持 分纸强度 139 239-3B0830
bool firmware_sup_log_export_; //固件支持 日志导出 139 239-3B0429
bool firmware_sup_color_corr_; //固件支持 偏色校正 139 239 439-3C
bool firmware_sup_wake_device_; //固件支持 唤醒设备 139 239-3B0830
bool firmware_sup_double_img; //固件支持 双张保留 139 239-3C
bool firmware_sup_devs_lock_; //固件支持 设备锁定 139 239-3b0500, 439-3C, 302_402-2023/3/15
bool firmware_sup_dpi_300; //固件支持 真实DPI300 139 239-21227此版本以下不支持真实dpidpi设置1 //3288 G300 用到
bool firmware_sup_dpi_600; //固件支持 真实DPI600 139 239-21227此版本以下不支持真实dpidpi设置1
bool firmware_sup_auto_speed_; //固件支持 自适应速度 139 239 439 -3C
bool firmware_sup_morr_; //固件支持 摩尔纹 139 239-3C0518
bool firmware_sup_color_fill_; //固件支持 色彩填充 139 239 439 -3C
bool firmware_sup_history_cnt; //固件支持 清除历史张数 3288 G300 220303
SCANCONF img_conf_; //此参数外部不做任何改变请在writedown_image_configuration做修改
std::string img_type_;

View File

@ -157,6 +157,7 @@ namespace settings
hg_scanner_239::hg_scanner_239(const char* dev_name, int pid,usb_io* io) : hg_scanner(G20039Serial, dev_name, io,pid)
, rewrite_conf_(false), reset_(false),is_start_status(false)
{
init_version();
//pid_ = pid;
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "hg_scanner_239(%s) constructing ...\n", hg_log::format_ptr(this).c_str());
dev_conf_.value = 0;
@ -171,7 +172,7 @@ hg_scanner_239::hg_scanner_239(const char* dev_name, int pid,usb_io* io) : hg_sc
init_settings((jsontext4 + jsontext5 + jsontext6).c_str());
}
hg_version_init_handle();
init_version();
#ifdef OEM_HUAGAO
wait_devsislock_.notify();
@ -437,85 +438,115 @@ void hg_scanner_239::init_version(void)
string date = fv.substr(5, 5);
string year = fv.substr(4, 2);
string devType;
string year_date = fv.substr(4, 6);
//if ((dev == "G1" || dev == "G2") && ver == "393")
//{
// if (date >= "A1220" && date <= "A1230")
// {
// if (date >= "A1224")
// {
// is_kernelsnap_devsislock = true;
// }
// }
// else if (date >= "B0326" && date <= "B0334")
// {
// if (date >= "B0333")
// {
// is_kernelsnap_devsislock = true;
// }
// }
// else if (date >= "B0429")
// {
// if (date >= "B1031" || date == "B0500")
// {
// is_kernelsnap_devsislock = true;
// }
// }
if ((dev == "G1" || dev == "G2") && ver == "393")
//}
//else if (dev == "G4" && ver == "393")
//{
// if (date >= "B1108")
// {
// is_kernelsnap_devsislock = true;
// }
//}
if (dev == "G1" || dev == "G2")
{
if (date >= "A1220" && date <= "A1230")
{
if (date >= "A1224")
{
is_kernelsnap_devsislock = true;
firmware_sup_wait_paper_ = year_date >= "3B0431" ? true : false;
firmware_sup_log_export_ = year_date >= "3B0429" ? true : false;
firmware_sup_pick_strength_ = year_date >= "3B0830" ? true : false;
firmware_sup_wake_device_ = year_date >= "3B0830" ? true : false;
firmware_sup_color_corr_ = year >= "3C" ? true : false;
firmware_sup_double_img = year >= "3C" ? true : false;
firmware_sup_devs_lock_ = year_date >= "3b0500" ? true : false;
firmware_sup_dpi_300 = false;
firmware_sup_dpi_600 = date >= "A1227" ? true : false;
firmware_sup_auto_speed_ = year >= "3C" ? true : false;
firmware_sup_morr_ = year_date >= "3C0518" ? true : false;
firmware_sup_color_fill_ = year >= "3C" ? true : false;
}
}
else if (date >= "B0326" && date <= "B0334")
else
{
if (date >= "B0333")
{
is_kernelsnap_devsislock = true;
}
}
else if (date >= "B0429")
{
if (date >= "B1031" || date == "B0500")
{
is_kernelsnap_devsislock = true;
}
firmware_sup_wait_paper_ = year_date >= "3B0629" ? true : false;
firmware_sup_log_export_ = true;
firmware_sup_pick_strength_ = false; //不支持
firmware_sup_wake_device_ = year_date >= "3C0518" ? true : false;
firmware_sup_color_corr_ = year >= "3C" ? true : false;
firmware_sup_double_img = false; //不支持
firmware_sup_devs_lock_ = year >= "3C" ? true : false;
firmware_sup_dpi_300 = false;
firmware_sup_dpi_600 = true;
firmware_sup_auto_speed_ = year >= "3C" ? true : false;
firmware_sup_morr_ = year_date >= "3C0518" ? true : false;
firmware_sup_color_fill_ = year >= "3C" ? true : false;
}
}
else if (dev == "G4" && ver == "393")
{
if (date >= "B1108")
{
is_kernelsnap_devsislock = true;
}
}
if (!is_kernelsnap_devsislock)
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "firmware_sup_wait_paper_:%s\r\n", firmware_sup_wait_paper_ ? "enable" : "close");
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "firmware_sup_log_export_:%s\r\n", firmware_sup_log_export_ ? "enable" : "close");
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "firmware_sup_pick_strength_:%s\r\n", firmware_sup_pick_strength_ ? "enable" : "close");
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "firmware_sup_color_corr_:%s\r\n", firmware_sup_color_corr_ ? "enable" : "close");
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "firmware_sup_double_img:%s\r\n", firmware_sup_double_img ? "enable" : "close");
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "firmware_sup_devs_lock_:%s\r\n", firmware_sup_devs_lock_ ? "enable" : "close");
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "firmware_sup_dpi_300:%s\r\n", firmware_sup_dpi_300 ? "enable" : "close");
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "firmware_sup_dpi_600:%s\r\n", firmware_sup_dpi_600 ? "enable" : "close");
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "firmware_sup_auto_speed_:%s\r\n", firmware_sup_auto_speed_ ? "enable" : "close");
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "firmware_sup_morr_:%s\r\n", firmware_sup_morr_ ? "enable" : "close");
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "firmware_sup_color_fill_:%s\r\n", firmware_sup_color_fill_ ? "enable" : "close");
if (!firmware_sup_devs_lock_)
{
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "devs lock:%s \n", hg_scanner_err_description(SCANNER_ERR_DEVICE_NOT_SUPPORT));
}
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware version: %s\n", fv.c_str());
is_kernelsnap_239_220429_ = date >= "B0429" ? true : false;
is_kernelsnap_239_220430_ = date >= "B0430" ? true : false;
//is_kernelsnap_239_220429_ = date >= "B0429" ? true : false;
//is_kernelsnap_239_220430_ = date >= "B0430" ? true : false;
if (dev == "G1" || dev == "G2" )
{
is_kernelsnap_239_211209_ = date >= "A1209" ? (is_kernelsnap_239_211209_ = atoi(get_fpga().c_str()) >= 35211210) : false;//基本用不到了
is_kernelsnap_239_220830_ = date >= "B0830" ? true: false;
is_kernelsnap_239_221027_ = date >= "B1027" ? true : false;
is_kernelsnap_239_3C_ = year >= "3C" ? true : false;
//if (dev == "G1" || dev == "G2" )
//{
// is_kernelsnap_239_211209_ = date >= "A1209" ? (is_kernelsnap_239_211209_ = atoi(get_fpga().c_str()) >= 35211210) : false;//基本用不到了
// is_kernelsnap_239_220830_ = date >= "B0830" ? true: false;
// is_kernelsnap_239_221027_ = date >= "B1027" ? true : false;
// is_kernelsnap_239_3C_ = year >= "3C" ? true : false;
//
// is_kernelsnap_239_220500_ = date >= "B0500" ? true : false;
is_kernelsnap_239_220500_ = date >= "B0500" ? true : false;
// is_kernelsnap_211227_ = date <= "A1227" ? true : false;
is_kernelsnap_211227_ = date <= "A1227" ? true : false;
VLOG_MINI_6(LOG_LEVEL_DEBUG_INFO,
"Firmware version : %s \
,is_kernelsnap_239_211209_:%d \
,is_kernelsnap_239_220830_:%d \
,is_kernelsnap_239_221027_:%d \
,is_kernelsnap_239_220430_:%d \
,is_kernelsnap_239_3C_:%d\n"
, fv.c_str()
, is_kernelsnap_239_211209_
, is_kernelsnap_239_220830_
, is_kernelsnap_239_221027_
, is_kernelsnap_239_220430_
, is_kernelsnap_239_3C_);
}
else
{
//is_kernelsnap_439_3C0606 = date >= "C0606" ? true : false;
is_kernelsnap_239_3C_ = date >= "C0606" ? true : false;
//}
//else
//{
// //is_kernelsnap_439_3C0606 = date >= "C0606" ? true : false;
// is_kernelsnap_239_3C_ = date >= "C0606" ? true : false;
//
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO \
, "is_kernelsnap_239_3C_:%d \
, is_kernelsnap_239_220430_:%d\r\n" \
, is_kernelsnap_239_3C_ \
, is_kernelsnap_239_220430_);
}
//}
}
@ -551,12 +582,12 @@ int hg_scanner_239::writedown_device_configuration(bool type, setting_hardware:
{
dev_conf->params_3399.enable_sizecheck = false;
}
if (is_kernelsnap_239_3C_ && image_prc_param_.bits.paper == PAPER_AUTO_MATCH)
if (firmware_sup_auto_speed_ && image_prc_param_.bits.paper == PAPER_AUTO_MATCH)
{
dev_conf->params_3399.is_fixedpaper = false;
dev_conf->params_3399.en_autosize = true;
}
if (!is_kernelsnap_239_3C_ && image_prc_param_.bits.paper == PAPER_AUTO_MATCH)//3399 ,在3C之前的版本 匹配原始尺寸设置 12
if (!firmware_sup_auto_speed_ && image_prc_param_.bits.paper == PAPER_AUTO_MATCH)//3399 ,在3C之前的版本 匹配原始尺寸设置 12
{
dev_conf->params_3399.paper = 12;
}
@ -763,10 +794,10 @@ int hg_scanner_239::discard_all_images(void)
}
}
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
if (is_read_int)
{
init_version();
}
//if (is_read_int)
//{
// init_version();
//}
if (pre_int)
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "prev-connection has left %d interrupt packet(s) && %d image(s).\n", pre_int, pre_img);
@ -848,10 +879,10 @@ int hg_scanner_239::on_paper_check_changed(bool& check)
}
int hg_scanner_239::on_resolution_changed(int& dpi)
{
if (is_kernelsnap_211227_)
if (!firmware_sup_dpi_600)
dev_conf_.params_3399.dpi = 1;
else
dev_conf_.params_3399.dpi = dpi == 600 ? 3 : (dpi < 599 && dpi>299) ? 2 : 1;
dev_conf_.params_3399.dpi = dpi >= 500 ? 3 : (dpi < 500 && dpi> 299) ? 2 : 1;
//dev_conf_.params_3399.dpi = 1; //dpi 华凌cis和敦南cis 默认发1无需改变
int ret = writedown_device_configuration();
@ -1021,22 +1052,16 @@ int hg_scanner_239::on_is_auto_paper(bool isautopaper)
{
int val = 0,
ret = SCANNER_ERR_OK;
if (is_kernelsnap_239_220430_ || !isautopaper)
{
dev_conf_.params_3399.is_autopaper = isautopaper;
ret = writedown_device_configuration();
//if (isautopaper)
//notify_ui_working_status("\345\276\205\347\272\270\346\211\253\346\217\217\347\212\266\346\200\201\344\270\255...", SANE_EVENT_WORKING, status_);
}
return ret;
}
int hg_scanner_239::on_cis_get_image(bool isautopaper)
{
is_cis_image = isautopaper;
dev_conf_.params_3399.pc_correct = isautopaper;
return writedown_device_configuration();
return SCANNER_ERR_OK;
}
void hg_scanner_239::on_device_reconnected(void)
{
@ -1364,14 +1389,9 @@ int hg_scanner_239::start(void)
if (handled)
return ret;
//if (is_read_int)
//{
// VLOG_MINI_1(LOG_LEVEL_WARNING, "device status is(%s)\n", STATU_DESC_SCANNER_ERR_DEVICE_DEVS_BOOTING);
// return SCANNER_ERR_DEVICE_DEVS_BOOTING;
//}
user_cancel_ = false;
ret = on_is_auto_paper(is_auto_paper_scan);
split3399_ = 0;
cb_mem_ = true;
@ -1385,8 +1405,8 @@ int hg_scanner_239::start(void)
{
status_ = SCANNER_ERR_DEVICE_SLEEPING;
VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_SLEEPING));
if(is_kernelsnap_239_220830_)
ret = set_notify_sleep();
set_notify_sleep();
return status_;
}
@ -1697,15 +1717,14 @@ int hg_scanner_239::get_scan_is_sleep(SANE_Bool& type)
}
int hg_scanner_239::set_notify_sleep()
{
if (!firmware_sup_wake_device_)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
std::lock_guard<std::mutex> lock(io_lock_);
int val = 0,
ret = SCANNER_ERR_OK;
if (is_kernelsnap_239_220830_)
{
ret = write_register(setting3399::SR_NOTIFY_SLEEP, val);
}
return ret;
int val = 0;
return write_register(setting3399::SR_NOTIFY_SLEEP, val);
}
int hg_scanner_239::get_roller_num(int &num)
{
@ -1716,7 +1735,7 @@ int hg_scanner_239::get_roller_num(int &num)
}
int hg_scanner_239::get_device_log(string &logpath)
{
if (!is_kernelsnap_239_220429_)
if (!firmware_sup_log_export_)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
@ -1801,7 +1820,7 @@ int hg_scanner_239::set_scan_islock(SANE_Bool set_islock)
{
std::lock_guard<std::mutex> lock(io_lock_);
if (!is_kernelsnap_devsislock)
if (!firmware_sup_devs_lock_)
{
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "devs lock:%s \n", hg_scanner_err_description(SCANNER_ERR_DEVICE_NOT_SUPPORT));
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
@ -1823,7 +1842,7 @@ int hg_scanner_239::get_scan_islock(SANE_Bool& islock)
{
std::lock_guard<std::mutex> lock(io_lock_);
if (!is_kernelsnap_devsislock)
if (!firmware_sup_devs_lock_)
{
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "devs lock:%s \n", hg_scanner_err_description(SCANNER_ERR_DEVICE_NOT_SUPPORT));
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
@ -1843,7 +1862,7 @@ int hg_scanner_239::get_scan_islock(SANE_Bool& islock)
}
int hg_scanner_239::set_scan_lock_check_val(string check_str)
{
if (!is_kernelsnap_devsislock)
if (!firmware_sup_devs_lock_)
{
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "devs lock:%s \n", hg_scanner_err_description(SCANNER_ERR_DEVICE_NOT_SUPPORT));
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
@ -1997,7 +2016,7 @@ int hg_scanner_239::get_dev_islock_file(int& islockfile)
{
std::lock_guard<std::mutex> lock(io_lock_);
if (!is_kernelsnap_devsislock)
if (!firmware_sup_devs_lock_)
{
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "devs lock:%s \n", hg_scanner_err_description(SCANNER_ERR_DEVICE_NOT_SUPPORT));
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
@ -2038,7 +2057,7 @@ int hg_scanner_239::set_dev_islock_file(int islockfile)
{
std::lock_guard<std::mutex> lock(io_lock_);
if (!is_kernelsnap_devsislock)
if (!firmware_sup_devs_lock_)
{
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "devs lock:%s \n", hg_scanner_err_description(SCANNER_ERR_DEVICE_NOT_SUPPORT));
return SCANNER_ERR_DEVICE_NOT_SUPPORT;

View File

@ -82,7 +82,7 @@ hg_scanner_300::hg_scanner_300(const char* dev_name,int pid, usb_io* io) : hg_sc
dsp_config.value = 0;
dsp_config.params_3288.enableLed = 1; //默认值
dsp_config.params_3288.isCorrect = 1;
initdevice();
#ifndef MAPPING_FUNCTION_IN_BASE
init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先初始化
#endif
@ -93,7 +93,7 @@ hg_scanner_300::hg_scanner_300(const char* dev_name,int pid, usb_io* io) : hg_sc
else
init_settings((jsontext4 + jsontext5 + jsontext6).c_str());
}
initdevice();
//wait_read_int.notify();
}
hg_scanner_300::~hg_scanner_300()
@ -204,7 +204,7 @@ void hg_scanner_300::thread_handle_usb_read(void)
}
if (sw.elapsed_ms() > 30000 && img_conf_.resolution_dst != 600)//防止状态信息一直取不上来导致卡死
{
if ((img_conf_.papertype == TwSS::MaxSize || img_conf_.papertype == TwSS::USStatement) && pid_ == 0x0300 && is_kernelsnap3288_230210_)
if ((img_conf_.papertype == TwSS::MaxSize || img_conf_.papertype == TwSS::USStatement) && pid_ == 0x0300 && firmware_sup_dpi_600)
{
hg_log::log(LOG_LEVEL_WARNING, "while 30S\n");
}
@ -295,10 +295,10 @@ int hg_scanner_300::discard_all_images(void)
}
if (is_read_int)
{
initdevice();
}
//if (is_read_int)
//{
// initdevice();
//}
return SCANNER_ERR_OK;
}
int hg_scanner_300::get_roller_life(void)
@ -601,8 +601,8 @@ int hg_scanner_300::on_color_mode_changed(int& color_mode)
int hg_scanner_300::on_paper_changed(int& paper)
{
bool exact = true;
Paper_Map* papermap = pid_ == 0x0300 && is_kernelsnap3288_230210_ ? paper_map_3288_600dpi : paper_map_3288;
int paperlen = pid_ == 0x0300 && is_kernelsnap3288_230210_ ? ARRAY_SIZE(paper_map_3288_600dpi) : ARRAY_SIZE(paper_map_3288);
Paper_Map* papermap = pid_ == 0x0300 && firmware_sup_dpi_600 ? paper_map_3288_600dpi : paper_map_3288;
int paperlen = pid_ == 0x0300 && firmware_sup_dpi_600 ? ARRAY_SIZE(paper_map_3288_600dpi) : ARRAY_SIZE(paper_map_3288);
int ind = hgpaper_to_devspaper(papermap, paperlen, paper, &exact, &paper_size_),
ret = exact ? SCANNER_ERR_OK : SCANNER_ERR_NOT_EXACT;
@ -632,12 +632,9 @@ int hg_scanner_300::on_paper_changed(int& paper)
}
int hg_scanner_300::on_paper_check_changed(bool& check)
{
if (!is_kernelsnap3288_230210_ && check)
if (!firmware_sup_dpi_600 && check)
{
check = false;
//notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_NOT_SUPPORT), SANE_EVENT_ERROR, status_);
//VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "on_paper_check_changed:%s\r\n", hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_NOT_SUPPORT));
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
int ret = SCANNER_ERR_OK;
@ -656,14 +653,14 @@ int hg_scanner_300::on_paper_check_changed(bool& check)
int hg_scanner_300::on_resolution_changed(int& dpi)
{
int ret = SCANNER_ERR_OK;
if (is_kernelsnap3288_230210_)
if (firmware_sup_dpi_600)
dsp_config.params_3288.dpi = dpi == 600 ? 3 : (dpi < 599 && dpi>=300) ? 2 : 1;
else if (is_kernelsnap3288_221106_)
else if (firmware_sup_dpi_300)
dsp_config.params_3288.dpi = (dpi >= 300) ? 2 : 1;
else
dsp_config.params_3288.dpi = 1;
VLOG_MINI_3(LOG_LEVEL_WARNING, "on_resolution_changed is dpi:%d .set device dpi(%d),is_kernelsnap3288_221106_ is :%d\n", dpi, dsp_config.params_3288.dpi, is_kernelsnap3288_221106_);
VLOG_MINI_3(LOG_LEVEL_WARNING, "on_resolution_changed is dpi:%d .set device dpi(%d),firmware_sup_dpi_300 is :%d\n", dpi, dsp_config.params_3288.dpi, firmware_sup_dpi_300);
ret = writedown_device_configuration();
return ret;
@ -692,22 +689,22 @@ int hg_scanner_300::set_kernelsnap_ver()
if (!fw.empty())
{
if (atoi(fw.substr(4, 6).c_str()) >= 221106 && atoi(fw.substr(4, 6).c_str()) < 230210)
is_kernelsnap3288_221106_ = true;
firmware_sup_dpi_300 = true;
else if (atoi(fw.substr(4, 6).c_str()) >= 230210)
is_kernelsnap3288_230210_ = true;
firmware_sup_dpi_600 = true;
else
{
is_kernelsnap3288_221106_ = false;
is_kernelsnap3288_230210_ = false;
firmware_sup_dpi_300 = false;
firmware_sup_dpi_600 = false;
}
is_kernelsnap3288_230303_ = atoi(fw.substr(4, 6).c_str()) >= 220303 ? true : false;
firmware_sup_history_cnt = atoi(fw.substr(4, 6).c_str()) >= 220303 ? true : false;
}
else
{
ret = SCANNER_ERR_NO_DATA;
}
VLOG_MINI_2(LOG_LEVEL_WARNING, "hg_scanner_300 is_kernelsnap3288_221106_ :%d ,is_kernelsnap3288_230210_:%d\n", is_kernelsnap3288_221106_, is_kernelsnap3288_230210_);
VLOG_MINI_2(LOG_LEVEL_WARNING, "hg_scanner_300 firmware_sup_dpi_300 :%d ,firmware_sup_dpi_600:%d\n", firmware_sup_dpi_300, firmware_sup_dpi_600);
return SCANNER_ERR_OK;
}
int hg_scanner_300::agreement(TwSS tw,int align)
@ -862,7 +859,7 @@ int hg_scanner_300::set_clear_roller_num(void)
}
int hg_scanner_300::set_clear_history_num(void)
{
if (!is_kernelsnap3288_230303_)
if (!firmware_sup_history_cnt)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}

File diff suppressed because one or more lines are too long