From ac99838ce3fc7440bdf22d1a25c350490bd7a668 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Wed, 24 May 2023 10:32:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E4=B8=9A=E5=8A=A1=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hgdriver/hgdev/hg_scanner_200.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/hgdriver/hgdev/hg_scanner_200.cpp b/hgdriver/hgdev/hg_scanner_200.cpp index b7cd52e..212ca9e 100644 --- a/hgdriver/hgdev/hg_scanner_200.cpp +++ b/hgdriver/hgdev/hg_scanner_200.cpp @@ -289,8 +289,11 @@ int hg_scanner_200::start(void) } USBCB usb = { setting3288dsp::START_COMMAND, img_conf_.scannum, 0 }; - ret = writeusb(usb); - io_->set_timeout(500); + { + std::lock_guard lock(io_lock_); + ret = writeusb(usb); + io_->set_timeout(500); + } VLOG_MINI_1(LOG_LEVEL_WARNING, "write start command = %s\n", hg_scanner_err_name(ret)); if(ret == SCANNER_ERR_OK) @@ -310,8 +313,10 @@ int hg_scanner_200::stop(void) int ret = SCANNER_ERR_OK; USBCB usbcb = { setting3288dsp::STOP, 0, 0}; - ret = writeusb(usbcb); - + { + std::lock_guard lock(io_lock_); + ret = writeusb(usbcb); + } user_cancel_ = true; if (ret == SCANNER_ERR_DEVICE_BUSY) { @@ -971,7 +976,12 @@ int hg_scanner_200::set_auto_flat(int data) { USBCB usbcb = { setting3288dsp::START_FLAT,data,0 }; int len = sizeof(usbcb); - int ret = writeusb(usbcb); + int ret = SCANNER_ERR_OK; + + { + std::lock_guard lock(io_lock_); + ret = writeusb(usbcb); + } if (ret == SCANNER_ERR_OK) {