新增锁定功能
This commit is contained in:
parent
e6f800af7c
commit
b4292a6d93
|
@ -875,6 +875,13 @@ namespace setting3399
|
|||
SR_SET_AUTOMATICCONTROLFEEDMODE_THRESHOLD,
|
||||
SR_GET_TRAYPOSITION,
|
||||
SR_SET_TRAYPOSITION,
|
||||
|
||||
SR_GET_LOCK_STATES,
|
||||
SR_SET_LOCK_STATES,
|
||||
SR_GET_TOKEN,
|
||||
SR_SET_TOKEN,
|
||||
SR_GET_TOKEN_LENGHT,
|
||||
SR_DECODE_TOKEN,
|
||||
SR_GET_CUO_ERROR = 0x50,
|
||||
SR_GET_DOU_ERROR,
|
||||
SR_GET_JAM_ERROR,
|
||||
|
|
|
@ -856,11 +856,14 @@ void hg_scanner::working_done(void*)
|
|||
notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_PC_BUSY, SANE_EVENT_SCAN_FINISHED, status_);
|
||||
break;
|
||||
case SCANNER_ERR_INSUFFICIENT_MEMORY:
|
||||
notify_ui_working_status(STATU_DESC_SCANNER_ERR_INSUFFICIENT_MEMORY, SANE_EVENT_SCAN_FINISHED, status_);
|
||||
break;
|
||||
notify_ui_working_status(STATU_DESC_SCANNER_ERR_INSUFFICIENT_MEMORY, SANE_EVENT_SCAN_FINISHED, status_);
|
||||
break;
|
||||
case SCANNER_ERR_TIMEOUT:
|
||||
notify_ui_working_status(STATU_DESC_SCANNER_ERR_TIMEOUT, SANE_EVENT_SCAN_FINISHED, status_);
|
||||
break;
|
||||
notify_ui_working_status(STATU_DESC_SCANNER_ERR_TIMEOUT, SANE_EVENT_SCAN_FINISHED, status_);
|
||||
break;
|
||||
case SCANNER_ERR_DEVICE_ISLOCK:
|
||||
notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_ISLOCK, SANE_EVENT_SCAN_FINISHED, status_);
|
||||
break;
|
||||
default:
|
||||
notify_ui_working_status(user_cancel_ ? STATU_DESC_SCAN_CANCELED : STATU_DESC_SCAN_STOPPED, SANE_EVENT_SCAN_FINISHED, status_);
|
||||
break;
|
||||
|
@ -3418,6 +3421,22 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
|
|||
strcpy((char*)data, str.c_str());
|
||||
return 0;
|
||||
}
|
||||
else if(code == IO_CTRL_CODE_SET_SCAN_LOCK_CHECK_VAL)
|
||||
{
|
||||
string str = (char*)data;
|
||||
set_scan_lock_check_val(str);
|
||||
}
|
||||
else if (code == IO_CTRL_CODE_SET_SCAN_LOCK)
|
||||
{
|
||||
SANE_Bool set_islock = *((SANE_Bool *)data);
|
||||
set_scan_islock(set_islock);
|
||||
}
|
||||
else if (code == IO_CTRL_CODE_GET_SCAN_ISLOCK)
|
||||
{
|
||||
SANE_Bool islock = *((SANE_Bool*)data);
|
||||
get_scan_islock(&islock);
|
||||
*((SANE_Bool*)data) = islock;
|
||||
}
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
}
|
||||
std::string hg_scanner::get_firmware_version(void)
|
||||
|
@ -3456,7 +3475,18 @@ int hg_scanner::get_history_count(void)
|
|||
{
|
||||
return -2;
|
||||
}
|
||||
|
||||
int hg_scanner::set_scan_islock(SANE_Bool set_islock)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
int hg_scanner::get_scan_islock(SANE_Bool* islock)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
int hg_scanner::set_scan_lock_check_val(string check_str)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
int hg_scanner::set_leaflet_scan(void)
|
||||
{
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "PaperSize.h"
|
||||
|
||||
#if defined(WIN32) || defined(_WIN64)
|
||||
#include <openssl/md5.h> //暂时linux 屏蔽
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
@ -99,10 +100,8 @@ protected:
|
|||
int setting_restore(int sn, void* data);
|
||||
int setting_help(int sn, void* data);
|
||||
int setting_color_mode(int sn, void* data);
|
||||
|
||||
int setting_multi_out(int sn, void*data);
|
||||
int setting_multi_out_type(int sn, void*data);
|
||||
|
||||
int setting_rid_color(int sn, void* data);
|
||||
int setting_rid_multi_red(int sn, void* data);
|
||||
int setting_rid_answer_red(int sn, void* data);
|
||||
|
@ -163,12 +162,10 @@ protected:
|
|||
int setting_set_auto_pick_paper(int sn, void* data);
|
||||
int setting_set_auto_pick_paper_threshold(int sn, void* data);
|
||||
int setting_set_auto_paper_scan(int sn, void* data);
|
||||
|
||||
int setting_set_isremove_left_hole(int sn, void* data);
|
||||
int setting_set_isremove_right_hole(int sn, void* data);
|
||||
int setting_set_isremove_top_hole(int sn, void* data);
|
||||
int setting_set_isremove_low_hole(int sn, void* data);
|
||||
|
||||
int setting_set_isremove_left_hole_threshold(int sn, void* data);
|
||||
int setting_set_isremove_right_hole_threshold(int sn, void* data);
|
||||
int setting_set_isremove_top_hole_threshold(int sn, void* data);
|
||||
|
@ -350,27 +347,19 @@ public:
|
|||
static int save_2_tempory_file(std::shared_ptr<std::vector<char>> data, std::string* path_file, unsigned int index = 0);
|
||||
|
||||
public:
|
||||
///////////////////////////////新增 20220425//////////////////////////
|
||||
|
||||
virtual int set_leaflet_scan(void);//单张扫描
|
||||
virtual int get_abuot_info(void);//获取软件关于信息 (基类实现)
|
||||
virtual int restore_default_setting(void);//恢复默认设置 (基类实现)
|
||||
virtual int set_final_image_format(SANE_FinalImgFormat* fmt); // 设置图像处理最终输出(final())的图像数据格式 (基类实现) ***
|
||||
virtual int get_compression_format(void);//获取支持的压缩格式 功能不支持
|
||||
|
||||
|
||||
virtual int clear_roller_num(void); // 清除滚轴计数
|
||||
|
||||
|
||||
virtual int set_compression_format(void);//设置图像数据最终输出的压缩格式
|
||||
virtual int set_auto_color_type(void);// 设置自动匹配颜色模式 (基类实现) ***
|
||||
|
||||
virtual std::string get_firmware_version(void);
|
||||
virtual std::string get_serial_num(void);
|
||||
virtual std::string get_ip(void);
|
||||
|
||||
virtual int get_device_code(void);//获取设备编码
|
||||
|
||||
|
||||
virtual int get_dogear_distance(void);//获取折角检测最小距离阈值
|
||||
virtual int set_dogear_distance(void);// 设置折角检测最小距离阈值
|
||||
virtual int get_scanner_paperon(SANE_Bool* paperon = NULL);//获取设备有无纸张
|
||||
|
@ -378,19 +367,18 @@ public:
|
|||
virtual int get_scan_when_paper_on(void);//设置是否为检测到进纸盘上有纸即开始扫描
|
||||
virtual int get_scan_with_hole(void);// 获取是否为带孔扫描
|
||||
virtual int set_scan_with_hole(void);// 设置是否为带孔扫描
|
||||
|
||||
virtual int get_scan_is_sleep(void);//获取设备是否休眠当中
|
||||
|
||||
virtual int get_sleep_time(int& getsleepime);//获取功耗模式(休眠)
|
||||
virtual int set_sleep_time(int sleeptime);//设置功耗模式(休眠)
|
||||
virtual int get_history_count(void);//获取历史扫描张数 -2:设备不支持该功能;-1:与设备通信失败;其它大于等于0的为正常
|
||||
virtual int get_roller_num(void); //获取滚轮张数 -2:设备不支持该功能;-1:与设备通信失败;其它大于等于0的为正常
|
||||
|
||||
virtual int notify_sleep(void);//唤醒设备
|
||||
virtual int get_device_log(string &log);//获取设备日志
|
||||
virtual int set_devreboot();//设置设备重启
|
||||
virtual int set_devshtudown();//设置设备关机
|
||||
|
||||
virtual int set_scan_islock(SANE_Bool set_islock);
|
||||
virtual int get_scan_islock(SANE_Bool* islock);//获取设备是否锁定 -2:设备不支持该功能;它大于等于0的为正常
|
||||
virtual int set_scan_lock_check_val(string check_str);//获取设备是否锁定 -2:设备不支持该功能;它大于等于0的为正常
|
||||
};
|
||||
|
||||
#ifdef UOS
|
||||
|
|
|
@ -479,8 +479,6 @@ void hg_scanner_239::init_version(void)
|
|||
sn(get_serial_num());
|
||||
|
||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Firmware version: %s\n", fv.c_str());
|
||||
//VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, " HG3399 serial number: %s\n", sn.c_str());
|
||||
//VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, " HG3399 IP: %s\n", get_ip().c_str());
|
||||
|
||||
if (fv.length() >= 10 && (fv[5] > 'A' || atoi(fv.substr(6, 4).c_str()) >= 1209))
|
||||
{
|
||||
|
@ -588,16 +586,6 @@ int hg_scanner_239::get_device_paperon_stautus(void)
|
|||
int ret =read_register(setting3399::SR_GET_PAPERON,0);
|
||||
return ret;
|
||||
}
|
||||
// int hg_scanner_239::writedown_device_configuration()
|
||||
// {
|
||||
// int ret = SCANNER_ERR_OK;
|
||||
|
||||
|
||||
// ret = write_register(SR_CONFIG_SCAN_PARAM, dev_conf_.value);
|
||||
// VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "Writedown scanner configuration(0x%x) = %s\n", dev_conf_.value, hg_scanner_err_name(ret));
|
||||
|
||||
// return ret;
|
||||
// }
|
||||
|
||||
int hg_scanner_239::writedown_device_configuration(setting_hardware::HGSCANCONF_3399 *dev_conf)
|
||||
{
|
||||
|
@ -614,17 +602,11 @@ int hg_scanner_239::writedown_device_configuration(setting_hardware::HGSCANCONF_
|
|||
{
|
||||
dev_conf->params_3399.color = 1;
|
||||
}
|
||||
|
||||
if(image_prc_param_.bits.rid_color != RID_COLOR_NONE
|
||||
&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE))
|
||||
{
|
||||
dev_conf->params_3399.color = 1;
|
||||
}
|
||||
else if (image_prc_param_.bits.rid_color == RID_COLOR_NONE
|
||||
&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE))
|
||||
{
|
||||
dev_conf->params_3399.color = 0;
|
||||
}
|
||||
else if (image_prc_param_.bits.rid_color == RID_COLOR_NONE
|
||||
&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE))
|
||||
{
|
||||
dev_conf->params_3399.color = 0;
|
||||
}
|
||||
|
||||
if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
||||
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
||||
|
@ -658,8 +640,6 @@ int hg_scanner_239::writedown_image_configuration(void)
|
|||
|
||||
if (is_lateral(image_prc_param_.bits.paper))
|
||||
ic.paperAlign = Rot270;
|
||||
// else if (image_prc_param_.bits.text_direction == TEXT_DIRECTION_AUTO)
|
||||
// ic.paperAlign = AutoTextOrientation;
|
||||
else
|
||||
ic.paperAlign = Rot0;
|
||||
|
||||
|
@ -671,7 +651,6 @@ int hg_scanner_239::writedown_image_configuration(void)
|
|||
ic.imageRotateDegree = 0;
|
||||
|
||||
ic.imageRotateDegree *= 90.0f;
|
||||
|
||||
ic.is_duplex = (image_prc_param_.bits.page == PAGE_DOUBLE
|
||||
|| image_prc_param_.bits.page == PAGE_OMIT_EMPTY
|
||||
|| image_prc_param_.bits.page == PAGE_OMIT_EMPTY_RECEIPT
|
||||
|
@ -680,7 +659,6 @@ int hg_scanner_239::writedown_image_configuration(void)
|
|||
ic.en_fold = (image_prc_param_.bits.page == PAGE_FOLIO);
|
||||
ic.pixtype = image_prc_param_.bits.color_mode == COLOR_MODE_AUTO_MATCH ? 2 : image_prc_param_.bits.color_mode;
|
||||
ic.automaticcolor = is_auto_matic_color;
|
||||
|
||||
ic.automaticcolortype = 1;// ic.pixtype; //存疑
|
||||
if (resolution_ >= 300)
|
||||
{
|
||||
|
@ -909,17 +887,6 @@ int hg_scanner_239::pop_first_image(void)
|
|||
|
||||
int hg_scanner_239::read_one_image_from_usb(SANE_Image_Statu statu)
|
||||
{
|
||||
//if (is_dev_tx())
|
||||
// return SCANNER_ERR_OK;
|
||||
|
||||
//if (!is_kernelsnap_211209_)
|
||||
//{
|
||||
// if (image_prc_param_.bits.page == PAGE_DOUBLE && !image_prc_param_.bits.fractate_check)
|
||||
// if (get_image_count() < 3)
|
||||
// return SCANNER_ERR_DEVICE_NO_IMAGE;
|
||||
// if (get_image_count() < 2)
|
||||
// return SCANNER_ERR_DEVICE_NO_IMAGE;
|
||||
//}
|
||||
int r = 0,
|
||||
total = get_front_data_size(),
|
||||
off = 0,
|
||||
|
@ -931,9 +898,6 @@ int hg_scanner_239::read_one_image_from_usb(SANE_Image_Statu statu)
|
|||
|
||||
return status_;
|
||||
}
|
||||
//if (user_cancel_)
|
||||
//return SCANNER_ERR_USER_CANCELED;
|
||||
|
||||
if (total == -1)
|
||||
ret = status_;
|
||||
else
|
||||
|
@ -1320,14 +1284,10 @@ int hg_scanner_239::on_pick_paper_threshold(double threshold)
|
|||
int hg_scanner_239::on_is_auto_paper(bool isautopaper)
|
||||
{
|
||||
dev_conf_.params_3399.is_autopaper = isautopaper;
|
||||
printf("isautopaper:%d\r\n",isautopaper);
|
||||
int ret = writedown_device_configuration();
|
||||
|
||||
if (isautopaper)
|
||||
{
|
||||
//notify_ui_working_status("待纸扫描状态中...", SANE_EVENT_WORKING, status_);
|
||||
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;
|
||||
}
|
||||
|
@ -1623,13 +1583,6 @@ int hg_scanner_239::start(void)
|
|||
VLOG_MINI_1(LOG_LEVEL_WARNING, "start status01 is(%s), the result will be unpredictable.\n", hg_scanner_err_name(ret));
|
||||
return ret;
|
||||
}
|
||||
ret = get_scanner_paperon();
|
||||
if (ret == SCANNER_ERR_DEVICE_NO_PAPER)
|
||||
{
|
||||
status_ = ret;
|
||||
VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = write_command(setting3399::SC_START);
|
||||
|
||||
|
@ -1919,3 +1872,90 @@ int hg_scanner_239::set_devshtudown()
|
|||
if (ret != SCANNER_ERR_OK)
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_239::set_scan_islock(SANE_Bool set_islock)
|
||||
{
|
||||
if (set_islock != 0 && set_islock != 1)
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
|
||||
int val = 0,
|
||||
ret = write_register(setting3399::SR_SET_LOCK_STATES, set_islock);
|
||||
|
||||
if (ret != SCANNER_ERR_OK)
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_239::get_scan_islock(SANE_Bool* islock)
|
||||
{
|
||||
std::string fv(get_firmware_version()),
|
||||
sn(get_serial_num());
|
||||
|
||||
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Set_scan_islock ---> Firmware version: %s\n", fv.c_str());
|
||||
|
||||
if ((fv[5] == 'B') && (atoi(fv.substr(6, 4).c_str()) >= 1017))
|
||||
{
|
||||
int val = 0,
|
||||
ret = read_register(setting3399::SR_GET_LOCK_STATES, &val);
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
*islock = val;
|
||||
if ( val == 1)
|
||||
{
|
||||
ret = SCANNER_ERR_DEVICE_ISLOCK;
|
||||
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
else
|
||||
{
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
}
|
||||
}
|
||||
#define WIN32
|
||||
int hg_scanner_239::set_scan_lock_check_val(string check_str)
|
||||
{
|
||||
if (check_str.empty())
|
||||
{
|
||||
return SCANNER_ERR_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
std::string sn = get_serial_num(),
|
||||
token = check_str + sn,
|
||||
md5_to_hex = "";
|
||||
|
||||
char map[] = "0123456789abcdef";
|
||||
|
||||
unsigned char MD5result[16];
|
||||
SANE_Bool islock;
|
||||
int ret = SCANNER_ERR_OK;
|
||||
ret = get_scan_islock(&islock);
|
||||
|
||||
if (ret != SCANNER_ERR_OK)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
{
|
||||
MD5_CTX ctx;
|
||||
MD5_Init(&ctx);
|
||||
MD5_Update(&ctx, token.c_str(), token.size());
|
||||
MD5_Final(MD5result, &ctx);//MD5result 返回一个标准的16字节数据
|
||||
}
|
||||
for (size_t i = 0; i < 16; i++)
|
||||
{
|
||||
md5_to_hex += map[MD5result[i] / 16];
|
||||
md5_to_hex += map[MD5result[i] % 16];
|
||||
}
|
||||
|
||||
if (md5_to_hex.empty())
|
||||
{
|
||||
return SCANNER_ERR_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
ret = write_register(setting3399::SR_DECODE_TOKEN, md5_to_hex.length());
|
||||
if (ret != SCANNER_ERR_OK)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
int len = md5_to_hex.length();
|
||||
ret = io_->write_bulk(&md5_to_hex[0], &len);
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif
|
|
@ -56,7 +56,7 @@ class hg_scanner_239 : public hg_scanner
|
|||
void discard_all_images(void);
|
||||
|
||||
protected:
|
||||
int on_color_mode_changed(int& color_mode) override;
|
||||
int on_color_mode_changed(int& color_mode) override;
|
||||
virtual int on_paper_changed(int& paper) override;
|
||||
virtual int on_paper_check_changed(bool& check) override;
|
||||
virtual int on_resolution_changed(int& dpi) override;
|
||||
|
@ -127,5 +127,8 @@ public:
|
|||
virtual int get_device_log(string &get_device_log);//获取设备日志
|
||||
virtual int set_devreboot();//设置设备重启
|
||||
virtual int set_devshtudown();//设置设备关机
|
||||
virtual int set_scan_islock(SANE_Bool set_islock);
|
||||
virtual int get_scan_islock(SANE_Bool* islock);
|
||||
virtual int set_scan_lock_check_val(string check_str);
|
||||
};
|
||||
|
||||
|
|
|
@ -723,11 +723,25 @@ int hg_scanner_402::writedown_device_configuration(setting_hardware::HGSCANCONF_
|
|||
int ret = SCANNER_ERR_OK;
|
||||
|
||||
if (!dev_conf)
|
||||
{
|
||||
dev_conf_.params_3399.is_textcorrect = !keep_watermark_;
|
||||
dev_conf = &dev_conf_;
|
||||
|
||||
if (image_prc_param_.bits.rid_color != RID_COLOR_NONE
|
||||
&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE))
|
||||
{
|
||||
dev_conf->params_3399.color = 1;
|
||||
}
|
||||
|
||||
if (image_prc_param_.bits.paper == PAPER_AUTO_MATCH
|
||||
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE
|
||||
|| image_prc_param_.bits.paper == PAPER_MAX_SIZE_CLIP
|
||||
|| image_prc_param_.bits.paper == PAPER_TRIGEMINY
|
||||
|| image_prc_param_.bits.paper == PAPER_16K
|
||||
|| image_prc_param_.bits.paper == PAPER_8K
|
||||
|| image_prc_param_.bits.paper == PAPER_16K_LATERAL
|
||||
)
|
||||
{
|
||||
dev_conf->params_3399.enable_sizecheck = false;
|
||||
}
|
||||
ret = write_register(setting3399::SR_CONFIG_SCAN_PARAM, dev_conf->value);
|
||||
|
||||
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "Writedown scanner configuration(0x%x) = %s\n", dev_conf->value, hg_scanner_err_name(ret));
|
||||
|
@ -1123,49 +1137,24 @@ void hg_scanner_402::discard_all_images(void)
|
|||
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "prev-connection has left %d interrupt packet(s) && %d image(s).\n", pre_int, pre_img);
|
||||
}
|
||||
|
||||
//color_mode =-1 除色选项
|
||||
|
||||
int hg_scanner_402::on_color_mode_changed(int& color_mode)
|
||||
{
|
||||
int ret = SCANNER_ERR_OK;
|
||||
|
||||
if ((((color_mode == COLOR_MODE_24_BITS || color_mode == COLOR_MODE_AUTO_MATCH) && !dev_conf_.params_3399.color) ||
|
||||
((color_mode != COLOR_MODE_24_BITS && color_mode != COLOR_MODE_AUTO_MATCH) && dev_conf_.params_3399.color)) && color_mode != -1)
|
||||
((color_mode != COLOR_MODE_24_BITS && color_mode != COLOR_MODE_AUTO_MATCH) && dev_conf_.params_3399.color)) && color_mode != -1)
|
||||
{
|
||||
dev_conf_.params_3399.color ^= 1;
|
||||
ret = writedown_device_configuration();
|
||||
if(ret)
|
||||
if (ret)
|
||||
dev_conf_.params_3399.color ^= 1;
|
||||
}
|
||||
if(color_mode == COLOR_MODE_AUTO_MATCH)
|
||||
if (color_mode == COLOR_MODE_AUTO_MATCH)
|
||||
{
|
||||
dev_conf_.params_3399.color = 1;
|
||||
}
|
||||
|
||||
setting_hardware::HGSCANCONF_3399 d = dev_conf_;
|
||||
|
||||
if (image_prc_param_.bits.rid_color != RID_COLOR_NONE
|
||||
&&(image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
||||
)
|
||||
{
|
||||
d.params_3399.color = 1;
|
||||
ret = writedown_device_configuration(&d);
|
||||
}
|
||||
|
||||
if(image_prc_param_.bits.rid_color != RID_COLOR_NONE
|
||||
&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
||||
&& color_mode == -1)
|
||||
{
|
||||
d.params_3399.color = 1;
|
||||
}
|
||||
else if (image_prc_param_.bits.rid_color == RID_COLOR_NONE
|
||||
&& (image_prc_param_.bits.color_mode == COLOR_MODE_256_GRAY || image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE)
|
||||
&& color_mode == -1)
|
||||
{
|
||||
d.params_3399.color = 0;
|
||||
}
|
||||
if(color_mode == -1)
|
||||
ret = writedown_device_configuration(&d);
|
||||
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_402::on_paper_changed(int& paper)
|
||||
|
|
|
@ -228,6 +228,7 @@ extern "C"
|
|||
RETURN_IF(err, SCANNER_ERR_DEVICE_NO_IMAGE);
|
||||
RETURN_IF(err, SCANNER_ERR_DEVICE_SCANN_ERROR);
|
||||
RETURN_IF(err, SCANNER_ERR_DEVICE_PC_BUSY);
|
||||
RETURN_IF(err, SCANNER_ERR_DEVICE_ISLOCK);
|
||||
|
||||
// NOTE: multi-thread unsafe here
|
||||
static char g_unk_err[80] = { 0 };
|
||||
|
|
Loading…
Reference in New Issue