diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index 748c818..23c66b5 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -1148,6 +1148,7 @@ void hg_scanner_239::thread_correction(void) int size = sizeof(buf), ret = SCANNER_ERR_OK; + bool autoFaltFinish = false; while (run_) { size = sizeof(buf); @@ -1158,12 +1159,13 @@ void hg_scanner_239::thread_correction(void) io_->set_timeout(1000); printf("size:%d\r\n",size); } + if (ret == SCANNER_ERR_TIMEOUT) { - if (sw.elapsed_s() > 10) + if (sw.elapsed_s() > 30 || autoFaltFinish) { is_auto_falt = false; - status_ = SCANNER_ERR_TIMEOUT; + status_ = SCANNER_ERR_DEVICE_AUTO_FAIL_OVER; //notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_FAIL_OUTTIME), SANE_EVENT_ERROR, ret); // 通信超时 VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "设备校正超时 '%s'\n", hg_scanner_err_name(status_)); break; @@ -1188,6 +1190,11 @@ void hg_scanner_239::thread_correction(void) notify_ui_working_status(buf, SANE_EVENT_STATUS, status_); printf("%s\r\n", sinfo.c_str()); + if (NULL != strstr(sinfo.c_str(), "******Correct Done******")) + { + autoFaltFinish = true; + } + if (info->Code == 4) { is_auto_falt = false;