新增 唤醒设备接口 分纸强度 获取设备日志
This commit is contained in:
parent
10b33ee1a3
commit
6e3a6d2b95
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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);//唤醒设备
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue