diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index b9a0635..4ee7060 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -1355,7 +1355,7 @@ void hg_scanner_239::thread_get_dves_image(void) if (ret == SCANNER_ERR_TIMEOUT) { - if (sw.elapsed_s() > 120 && !is_auto_scan()) + if (sw.elapsed_s() > 120 && !is_auto_scan() && (get_status() & 0x03) == 0) { status_ = ret; notify_ui_working_status(from_default_language(STATU_DESC_SCANNER_ERR_DEVICE_GET_IMAGE_OUTTIME), SANE_EVENT_ERROR, ret); // 取图通信超时 @@ -1365,16 +1365,15 @@ void hg_scanner_239::thread_get_dves_image(void) if (is_auto_scan() && sw1.elapsed_s() >= is_auto_paper_scan_exit_time && is_auto_paper_scan_exit_time != 0) { - is_quit_wait_paper_scan = true;//标记待纸扫描时间到了自动结束 - do_stop(); - notify_ui_working_status(from_default_language(STATU_DESC_SCANNER_ERR_DEVICE_EXIT_WAIT_SCAN), SANE_EVENT_ERROR, status_); - VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "auto paper scan exit :%s\n", from_default_language(STATU_DESC_SCANNER_ERR_DEVICE_EXIT_WAIT_SCAN)); - } - - if ((get_status() & 0x03) == 0) - { - status_ = SCANNER_ERR_OK; - //break; + if ((get_status() & 0x03) == 0) + { + do_stop(); + is_quit_wait_paper_scan = true;//标记待纸扫描时间到了自动结束 + notify_ui_working_status(from_default_language(STATU_DESC_SCANNER_ERR_DEVICE_EXIT_WAIT_SCAN), SANE_EVENT_ERROR, status_); + VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "auto paper scan exit :%s\n", from_default_language(STATU_DESC_SCANNER_ERR_DEVICE_EXIT_WAIT_SCAN)); + } + else + sw1.reset(); } if (user_cancel_ && is_auto_scan() || is_quit_wait_paper_scan) //其他直接跳过当此循坏