新增 唤醒设备接口 分纸强度 获取设备日志

This commit is contained in:
13038267101 2022-07-23 18:01:44 +08:00
parent 10b33ee1a3
commit 6e3a6d2b95
13 changed files with 273 additions and 27 deletions

View File

@ -94,6 +94,7 @@ hg_scanner::hg_scanner(ScannerSerial serial
, setting_count_(0),img_type_(""), online_(false),is_quality_(-1),is_color_fill(false),is_multiout(false),save_multiout(OPTION_VALUE_DLSC_CS_HD_HB)
, final_img_index_(0), custom_area_(false),save_sizecheck(false), bw_threshold_(128), custom_gamma_(false), double_paper_handle_(0)
{
get_app_path();
final_path_ = hg_log::ini_get("paths", "final_img");
if(final_path_.empty())
final_path_ = hg_log::local_data_path() + PATH_SEPARATOR + "imgs";
@ -786,6 +787,13 @@ void hg_scanner::working_done(void*)
test_1_paper_ = false;
}
void hg_scanner::get_app_path()
{
char buf[80];
getcwd(buf, sizeof(buf));
VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"App_path is:%s \r\n",buf);
printf("current working directory : %s\n", buf);
}
void hg_scanner::reset_custom_area_range(int paper)
{
@ -1598,6 +1606,13 @@ int hg_scanner::setting_black_white_threshold(int sn, void* data)
return SCANNER_ERR_OK;
}
int hg_scanner::setting_feedmode(int sn, void* data)
{
feedmode_ = *((int *)data);
return SCANNER_ERR_OK;
}
int hg_scanner::on_color_mode_changed(int& color_mode)
{
int ret = SCANNER_ERR_OK;
@ -1664,6 +1679,14 @@ int hg_scanner::on_skew_check_level_changed(int& check)
{
return SCANNER_ERR_OK;
}
int hg_scanner::on_set_feedmode(int feedmode)
{
return SCANNER_ERR_OK;
}
int hg_scanner::on_get_feedmode(int &feedmode)
{
return SCANNER_ERR_OK;
}
void hg_scanner::on_device_reconnected(void)
{
std::lock_guard<std::mutex> lock(io_lock_);
@ -2237,6 +2260,11 @@ int hg_scanner::get_setting(int setting_no, char* json_txt_buf, int* len)
is_area_y = true;
add = 20;
}
//else if (/* condition */)
{
/* code */
}
if (*len <= text.length() + add)
{
*len = text.length() + 8 + add;
@ -2647,6 +2675,30 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
return SCANNER_ERR_OK;
}
else if(code == IO_CTRL_CODE_GET_LOG_FILE)
{
string save_path = hg_log::temporary_path() + "/device.log";
int ret = get_device_log(save_path);
if (ret != SCANNER_ERR_OK)
{
return ret;
}
FILE* src = fopen(save_path.c_str(), "rb");
if (src)
{
ret = SCANNER_ERR_OK;
fclose(src);
}
else
{
//ret =
}
return ret;
}
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
@ -2666,13 +2718,18 @@ int hg_scanner::get_roller_num(void)
{
return -2;
}
int hg_scanner::get_device_log(string &log)
{
return -2;
}
int hg_scanner::clear_roller_num(void)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
int hg_scanner::get_history_count(void)
{
return -2;
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
@ -2745,6 +2802,10 @@ int hg_scanner::set_sleep_time(int sleeptime)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
int hg_scanner::notify_sleep()
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
int hg_scanner::get_dogear_distance(void)
{

View File

@ -63,6 +63,8 @@ class hg_scanner
void working_begin(void*);
void working_done(void*);
void reset_custom_area_range(int paper);
int set_color_change(void);
@ -147,6 +149,9 @@ protected:
int setting_img_quality(int sn, void*data);
int setting_color_fill(int sn, void*data);
int setting_black_white_threshold(int sn, void* data);
int setting_feedmode(int sn, void* data);
//int get_feedmode(int sn, void* data);
virtual int on_color_mode_changed(int& color_mode); // COLOR_MODE_xxx
virtual int on_paper_changed(int& paper); // PAPER_xxx
@ -156,7 +161,8 @@ protected:
virtual int on_staple_check_changed(bool& check);
virtual int on_skew_check_changed(bool& check);
virtual int on_skew_check_level_changed(int& check);
virtual int on_get_feedmode(int& feedmode);//获取分纸强度
virtual int on_set_feedmode(int feedmode);//设置分纸强度
protected:
virtual void on_device_reconnected(void);
@ -207,6 +213,7 @@ protected:
bool is_multiout; // 多流输出
int bw_threshold_; // 黑白图像阈值 added on 2022-06-28
int feedmode_; //
SCANCONF img_conf_; //此参数外部不做任何改变请在writedown_image_configuration做修改
std::string img_type_;
@ -256,6 +263,7 @@ protected:
int double_paper_handle_;
public:
void get_app_path();
void set_ui_callback(sane_callback cb, bool enable_async_io);
int reset_io(usb_io* io);
int io_disconnected(void);
@ -292,9 +300,9 @@ public:
virtual int set_final_image_format(SANE_FinalImgFormat* fmt); // 设置图像处理最终输出final())的图像数据格式 (基类实现) ***
virtual int get_compression_format(void);//获取支持的压缩格式 功能不支持
virtual int get_roller_num(void); //获取滚轮张数 -2设备不支持该功能-1与设备通信失败其它大于等于0的为正常
virtual int clear_roller_num(void); // 清除滚轴计数
virtual int get_history_count(void);//获取历史扫描张数 -2设备不支持该功能-1与设备通信失败其它大于等于0的为正常
virtual int set_compression_format(void);//设置图像数据最终输出的压缩格式
virtual int set_auto_color_type(void);// 设置自动匹配颜色模式 (基类实现) ***
@ -304,8 +312,7 @@ public:
virtual std::string get_ip(void);
virtual int get_device_code(void);//获取设备编码
virtual int get_sleep_time(int& getsleepime);//获取功耗模式(休眠)//获取功耗模式(休眠)
virtual int set_sleep_time(int sleeptime);//设置功耗模式(休眠)
virtual int get_dogear_distance(void);//获取折角检测最小距离阈值
virtual int set_dogear_distance(void);// 设置折角检测最小距离阈值
@ -316,6 +323,15 @@ public:
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);//获取设备日志
};
#ifdef UOS

File diff suppressed because one or more lines are too long

View File

@ -38,6 +38,8 @@ protected:
virtual int on_skew_check_changed(bool& check);
virtual int on_skew_check_level_changed(int& check);
virtual int on_get_feedmode(int& feedmode);//获取分纸强度
virtual int on_set_feedmode(int feedmode);//设置分纸强度
public:
hg_scanner_200(const char* dev_name,int vid, usb_io* io);
~hg_scanner_200();
@ -87,7 +89,8 @@ public:
virtual int set_scan_with_hole(void);// 设置是否为带孔扫描
virtual int get_scan_is_sleep(void);//获取设备是否休眠当中
virtual int get_device_log(string &log);//获取设备日志
virtual int notify_sleep(void);//唤醒设备
public:
//virtual int get_roller_num(void) override; //获取滚轮张数 -2设备不支持该功能-1与设备通信失败其它大于等于0的为正常

File diff suppressed because one or more lines are too long

View File

@ -67,6 +67,10 @@ protected:
virtual int on_skew_check_changed(bool& check) override;
virtual int on_skew_check_level_changed(int& check) override;
virtual int on_get_feedmode(int &feedmode);//获取分纸强度
virtual int on_set_feedmode(int feedmode);//设置分纸强度
virtual void on_device_reconnected(void) override;
virtual int on_scanner_closing(bool force) override;
virtual void thread_handle_usb_read(void) override;
@ -114,6 +118,12 @@ public:
virtual int set_scan_with_hole(void);// 设置是否为带孔扫描
virtual int get_scan_is_sleep(void);//获取设备是否休眠当中
virtual int notify_sleep(void);//唤醒设备
virtual int get_history_count(void);//获取历史扫描张数 -2设备不支持该功能-1与设备通信失败其它大于等于0的为正常 为实现
virtual int get_device_log(string &log);//获取设备日志
};
static int split3399_; //3399设备正面和反面图像是相对的所以对折时反面需要进行特殊处理

File diff suppressed because one or more lines are too long

View File

@ -38,6 +38,8 @@ protected:
virtual int on_skew_check_changed(bool& check);
virtual int on_skew_check_level_changed(int& check);
virtual int on_get_feedmode(int& feedmode);//获取分纸强度
virtual int on_set_feedmode(int feedmode);//设置分纸强度
public:
hg_scanner_300(const char* dev_name,int pid, usb_io* io);
~hg_scanner_300();
@ -91,4 +93,6 @@ public:
virtual int get_scan_is_sleep(void);//获取设备是否休眠当中
virtual int get_device_log(string &log);//获取设备日志
virtual int notify_sleep(void);//唤醒设备
};

File diff suppressed because one or more lines are too long

View File

@ -38,6 +38,9 @@ protected:
virtual int on_skew_check_changed(bool& check);
virtual int on_skew_check_level_changed(int& check);
virtual int on_get_feedmode(int& feedmode);//获取分纸强度
virtual int on_set_feedmode(int feedmode);//设置分纸强度
public:
hg_scanner_400(const char* dev_name,int vid, usb_io* io);
~hg_scanner_400();
@ -90,4 +93,6 @@ public:
virtual int set_scan_with_hole(void);// 设置是否为带孔扫描
virtual int get_scan_is_sleep(void);//获取设备是否休眠当中
virtual int get_device_log(string &log);//获取设备日志
virtual int notify_sleep(void);//唤醒设备
};

File diff suppressed because one or more lines are too long

View File

@ -67,6 +67,9 @@ protected:
virtual int on_skew_check_changed(bool& check) override;
virtual int on_skew_check_level_changed(int& check) override;
virtual int on_get_feedmode(int &feedmode);//获取分纸强度
virtual int on_set_feedmode(int feedmode);//设置分纸强度
virtual void on_device_reconnected(void) override;
virtual int on_scanner_closing(bool force) override;
virtual void thread_handle_usb_read(void) override;
@ -114,4 +117,6 @@ public:
virtual int set_scan_with_hole(void);// 设置是否为带孔扫描
virtual int get_scan_is_sleep(void);//获取设备是否休眠当中
virtual int get_device_log(string &log);//获取设备日志
virtual int notify_sleep(void);//唤醒设备
};

View File

@ -678,6 +678,6 @@ scanner_err hg_scanner_mgr::hg_scanner_control(scanner_handle h, unsigned long c
}
else if (!h)
return SCANNER_ERR_INVALID_PARAMETER;
else
else if (code == IO_CTRL_CODE_GET_LOG_FILE && len && *len == LOG_FILE_DEVICE)
return (scanner_err)SCAN_PTR(h)->device_io_control(code, data, len);
}