diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index 0e2cdcc..a935d35 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -1348,13 +1348,12 @@ void hg_scanner_239::thread_get_dves_image(void) std::lock_guard lock(io_lock_); memset(buf, 0, size); + io_->set_timeout(500); //2023 11 30之前一直使用1000ms ,但是为了能够快速响应下次的状态信息返回这里设置为500ms ret = io_->read_interrupt(buf, &size); - io_->set_timeout(1000); } if (ret == SCANNER_ERR_TIMEOUT) { - std::this_thread::sleep_for(std::chrono::milliseconds(400)); if (sw.elapsed_s() > 120 && !is_auto_scan()) { status_ = ret; @@ -1443,7 +1442,6 @@ void hg_scanner_239::thread_get_dves_image(void) if (!svdevs_err_.empty()) { status_ = svdevs_err_.front(); - svdevs_err_.clear(); } LOG_INFO(LOG_LEVEL_DEBUG_INFO, "received 'STOPSCAN' message in usb thread, check remaining image and finish scanning ...\n"); @@ -1508,7 +1506,11 @@ void hg_scanner_239::thread_get_dves_image(void) notify_ui_working_status(str.c_str(), SANE_EVENT_ERROR, status_); } else + { + svdevs_err_.clear(); break; + } + } } else if (info->From == setting3399::V4L2)