diff --git a/hgdriver/hgdev/hg_scanner.cpp b/hgdriver/hgdev/hg_scanner.cpp index a9785d0..c9f3b1e 100644 --- a/hgdriver/hgdev/hg_scanner.cpp +++ b/hgdriver/hgdev/hg_scanner.cpp @@ -3358,7 +3358,9 @@ std::string hg_scanner::name(void) } int hg_scanner::status(void) { - if (!wait_usb_.is_waiting() || !wait_img_.is_waiting()) + if (!online_) + return SCANNER_ERR_DEVICE_NOT_FOUND; + else if (!wait_usb_.is_waiting() || !wait_img_.is_waiting()) return SCANNER_ERR_DEVICE_BUSY; else return status_; diff --git a/hgsane/sane_hg_mdw.cpp b/hgsane/sane_hg_mdw.cpp index 32b2bb0..0b01482 100644 --- a/hgsane/sane_hg_mdw.cpp +++ b/hgsane/sane_hg_mdw.cpp @@ -1720,6 +1720,8 @@ SANE_Status hg_sane_middleware::set_option(SANE_Handle h, const void* option, SA if (!handle || (action == SANE_ACTION_GET_VALUE && !value)) return SANE_STATUS_INVAL; + if (hg_scanner_get_status(handle, 0) == SCANNER_ERR_DEVICE_NOT_FOUND) + return local_utility::scanner_err_2_sane_statu(SCANNER_ERR_DEVICE_NOT_FOUND); if (action == SANE_ACTION_GET_VALUE) {