新增边界检测

This commit is contained in:
13038267101 2024-02-27 11:46:38 +08:00
parent 1c4b6a2653
commit 36bf3518e2
5 changed files with 39 additions and 6 deletions

View File

@ -799,7 +799,9 @@ namespace setting3288dsp
SCANNER_ACTIVED=0x10, //设备未休眠 休眠返回0x100 未休眠返回0x10
DOUBLE_FEED_IMAGE=203,//双张校验图像
IMAGE_DIRTY_BAND=204,//图像脏污
IMAGE_DIRTY_CIS = 205
IMAGE_DIRTY_CIS = 205,
//检测到边界异常
BOUNDS_OUT_TEST = 99
} UsbSupported, * PUsbSupported;
//

View File

@ -675,6 +675,7 @@ void hg_scanner::init_setting_func_map(void)
setting_map_[SANE_STD_OPT_NAME_DISCARDBLANK] = &hg_scanner::setting_set_discardblank;
setting_map_[SANE_STD_OPT_NAME_LENS_DIRTY] = &hg_scanner::setting_detect_lens_dirty;
setting_map_[SANE_STD_OPT_NAME_PERIOD] = &hg_scanner::setting_set_period;
setting_map_[SANE_STD_OPT_NAME_OUT_BOUNDARY] = &hg_scanner::setting_set_out_boundary;
@ -1257,6 +1258,9 @@ void hg_scanner::working_done(void*)
case SCANNER_ERR_IMAGE_PROC_FATAL:
notify_ui_working_status(from_default_language(STATU_DESC_SCANNER_ERR_IMAGE_PROC_FATAL), SANE_EVENT_SCAN_FINISHED, status_);
break;
case SCANNER_ERR_DEVICE_OUT_BOUNDARY:
notify_ui_working_status(from_default_language(STATU_DESC_SCANNER_ERR_DEVICE_OUT_BOUNDARY), SANE_EVENT_SCAN_FINISHED, status_);
break;
default:
notify_ui_working_status(user_cancel_ ? hg_log::lang_load(ID_STATU_DESC_SCAN_CANCELED) : hg_log::lang_load(ID_STATU_DESC_SCAN_STOPPED), SANE_EVENT_SCAN_FINISHED, status_);
break;
@ -3044,6 +3048,16 @@ int hg_scanner::setting_set_period(void* data, long* len)
return on_set_period(val);
}
int hg_scanner::setting_set_out_boundary(void* data, long* len)
{
bool use = *((bool*)data);
int ret = on_set_out_boundary(use);
if (ret)
*((bool*)data) = use;
return ret;
}
int hg_scanner::on_color_mode_changed(int& color_mode)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
@ -3116,6 +3130,11 @@ int hg_scanner::on_set_period(int val)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
int hg_scanner::on_set_out_boundary(bool& type)
{
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
}
void hg_scanner::on_device_reconnected(void)
{
std::lock_guard<std::mutex> lock(io_lock_);

View File

@ -245,6 +245,7 @@ protected:
int setting_set_discardblank(void* data, long* len);
int setting_detect_lens_dirty(void* data, long* len);
int setting_set_period(void* data, long* len);
int setting_set_out_boundary(void* data, long* len);
virtual void on_device_reconnected(void);
virtual int on_scanner_closing(bool force);
@ -266,7 +267,8 @@ protected:
virtual int on_cis_get_image(bool type) = 0;
virtual int on_process_double_paper(bool type) = 0; //双张图像校验
virtual int on_detect_lens_dirty(bool &type); //检测镜头脏污
virtual int on_set_period(int val); //PWM占空比
virtual int on_set_period(int val); //PWM占空比
virtual int on_set_out_boundary(bool& type); //边界检测
protected:
virtual int set_setting_value(const char* name, void* data, long* len);

File diff suppressed because one or more lines are too long

View File

@ -46,6 +46,7 @@ protected:
virtual int on_cis_get_image(bool isautopaper) override; //cis 原图获取
virtual int on_process_double_paper(bool type) override; //双张图像校验
virtual int on_set_period(int val) override; //PWM占空比
virtual int on_set_out_boundary(bool& type); //边界检测
protected:
public: