diff --git a/hgdriver/hgdev/hg_scanner.cpp b/hgdriver/hgdev/hg_scanner.cpp index 022d352..276aad7 100644 --- a/hgdriver/hgdev/hg_scanner.cpp +++ b/hgdriver/hgdev/hg_scanner.cpp @@ -3045,6 +3045,19 @@ int hg_scanner::reset(void) } int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len) { + SANE_Bool devs_status = false; + int ret = get_scan_is_sleep(devs_status); + if (ret == SCANNER_ERR_OK) + { + if (!devs_status) + { + if (pid_ == 0x239 || pid_ == 0x402) + { + set_notify_sleep(); + } + return SCANNER_ERR_DEVICE_SLEEPING; + } + } if (code == IO_CTRL_CODE_RESTORE_SETTINGS) { int ret = invoke_setting_xxx(&hg_scanner::setting_restore, data); diff --git a/hgdriver/hgdev/hg_scanner_239.h b/hgdriver/hgdev/hg_scanner_239.h index 147b098..83f2a80 100644 --- a/hgdriver/hgdev/hg_scanner_239.h +++ b/hgdriver/hgdev/hg_scanner_239.h @@ -106,7 +106,7 @@ public: virtual int get_roller_num(int& data) override; //获取滚轮张数 /*/ data > 0*/ virtual int set_notify_sleep(void) override; //唤醒设备 virtual int get_device_log(string& log) override; //获取设备日志 /*/ log :储存路径*/ - virtual int set_devreboot(int data) override; //设置设备重启 + virtual int set_devreboot(int data) override; //设置设备重启 virtual int set_devshtudown() override; //设置设备关机 virtual int set_scan_islock(SANE_Bool type) override; //设置设备是否锁定 /*/ type:0解锁,1锁定*/ virtual int get_scan_islock(SANE_Bool& type) override; //获取设备是否锁定 /*/ type:0解锁,1锁定*/