修复G300收图BUG
This commit is contained in:
parent
a731792f53
commit
40b7485020
|
@ -267,34 +267,37 @@ void hg_scanner_300::thread_handle_usb_read(void)
|
|||
|
||||
if (ret == SCANNER_ERR_OK && usb.u32_Count > 0)
|
||||
{
|
||||
int totalNum = usb.u32_Count;
|
||||
std::shared_ptr<tiny_buffer> imagedata(aquire_memory(totalNum));
|
||||
|
||||
if (!imagedata.get())
|
||||
int totalNum = usb.u32_Count & 0x3fffffff; // 2022-08-04: 兼容Android,默认图片大小均在1GB以内
|
||||
if (totalNum)
|
||||
{
|
||||
status_ = SCANNER_ERR_INSUFFICIENT_MEMORY;
|
||||
break;
|
||||
}
|
||||
std::shared_ptr<tiny_buffer> imagedata(aquire_memory(totalNum));
|
||||
|
||||
imagedata->set_image_statu(statu);
|
||||
ret = get_img_data(imagedata);
|
||||
io_->set_timeout(200);
|
||||
if (!imagedata.get())
|
||||
{
|
||||
status_ = SCANNER_ERR_INSUFFICIENT_MEMORY;
|
||||
break;
|
||||
}
|
||||
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
ret = pop_image();
|
||||
sw.reset();
|
||||
if (ret != SCANNER_ERR_OK)
|
||||
imagedata->set_image_statu(statu);
|
||||
ret = get_img_data(imagedata);
|
||||
//io_->set_timeout(200);
|
||||
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
ret = pop_image();
|
||||
sw.reset();
|
||||
if (ret != SCANNER_ERR_OK)
|
||||
{
|
||||
status_ = ret;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
status_ = ret;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
status_ = ret;
|
||||
break;
|
||||
}
|
||||
}
|
||||
this_thread::sleep_for(chrono::milliseconds(10));
|
||||
}
|
||||
|
@ -341,7 +344,7 @@ void hg_scanner_300::thread_handle_usb_read(void)
|
|||
|
||||
USBCB usb = {START_COMMAND, img_conf_.scannum, 0};
|
||||
ret = writeusb(usb);
|
||||
io_->set_timeout(500);
|
||||
//io_->set_timeout(500);
|
||||
if(ret == SCANNER_ERR_OK)
|
||||
{
|
||||
//status_ = SCANNER_ERR_DEVICE_BUSY;
|
||||
|
@ -426,7 +429,7 @@ int hg_scanner_300::get_scanner_status(USBCB &usb)
|
|||
if (ret != SCANNER_ERR_OK)
|
||||
return ret;
|
||||
|
||||
io_->set_timeout(200); //必要延时,且不能小于这个数值
|
||||
//io_->set_timeout(200); //必要延时,且不能小于这个数值
|
||||
|
||||
ret = readusb(usb);
|
||||
|
||||
|
@ -452,7 +455,7 @@ int hg_scanner_300::get_img_data(std::shared_ptr<tiny_buffer> &imagedata)
|
|||
status_ = ret;
|
||||
return ret;
|
||||
}
|
||||
io_->set_timeout(500);
|
||||
//io_->set_timeout(500);
|
||||
|
||||
printf_devconfig();
|
||||
|
||||
|
@ -837,7 +840,7 @@ int hg_scanner_300::agreement(TwSS tw,int align)
|
|||
d.params.isColor = 1;
|
||||
}
|
||||
ret = writedown_device_configuration(true,&d);
|
||||
io_->set_timeout(200);
|
||||
//io_->set_timeout(200);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -1068,7 +1071,7 @@ void hg_scanner_300::writedown_image_configuration(void)
|
|||
|
||||
void hg_scanner_300::printf_devconfig(HGSCANCONF_G400 *d)
|
||||
{
|
||||
io_->set_timeout(200);
|
||||
//io_->set_timeout(200);
|
||||
if (!d)
|
||||
d = &dsp_config;
|
||||
|
||||
|
@ -1220,7 +1223,7 @@ int hg_scanner_300::get_scanner_paperon(SANE_Bool* paperon)
|
|||
USBCB usbcb = {GET_PAPER_STATUS, 0, 0};
|
||||
len = sizeof(USBCB);
|
||||
ret = writeusb(usbcb);
|
||||
io_->set_timeout(500);
|
||||
//io_->set_timeout(500);
|
||||
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
|
@ -1265,7 +1268,7 @@ int hg_scanner_300::get_scan_is_sleep()
|
|||
len = sizeof(USBCB);
|
||||
ret = writeusb(usbcb);
|
||||
|
||||
io_->set_timeout(200);
|
||||
//io_->set_timeout(200);
|
||||
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
|
@ -1314,7 +1317,7 @@ int hg_scanner_300::agreement()
|
|||
}
|
||||
|
||||
ret = writedown_device_configuration(true);
|
||||
io_->set_timeout(200);
|
||||
//io_->set_timeout(200);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -263,34 +263,37 @@ void hg_scanner_400::thread_handle_usb_read(void)
|
|||
|
||||
if (ret == SCANNER_ERR_OK && usb.u32_Count > 0)
|
||||
{
|
||||
int totalNum = usb.u32_Count;
|
||||
std::shared_ptr<tiny_buffer> imagedata(aquire_memory(totalNum));
|
||||
|
||||
if (!imagedata.get())
|
||||
int totalNum = usb.u32_Count & 0x3fffffff; // 2022-08-04: 兼容Android,默认图片大小均在1GB以内
|
||||
if (totalNum)
|
||||
{
|
||||
status_ = SCANNER_ERR_INSUFFICIENT_MEMORY;
|
||||
break;
|
||||
}
|
||||
std::shared_ptr<tiny_buffer> imagedata(aquire_memory(totalNum));
|
||||
|
||||
imagedata->set_image_statu(statu);
|
||||
ret = get_img_data(imagedata);
|
||||
// io_->set_timeout(200);
|
||||
if (!imagedata.get())
|
||||
{
|
||||
status_ = SCANNER_ERR_INSUFFICIENT_MEMORY;
|
||||
break;
|
||||
}
|
||||
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
ret = pop_image();
|
||||
sw.reset();
|
||||
if (ret != SCANNER_ERR_OK)
|
||||
imagedata->set_image_statu(statu);
|
||||
ret = get_img_data(imagedata);
|
||||
// io_->set_timeout(200);
|
||||
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
ret = pop_image();
|
||||
sw.reset();
|
||||
if (ret != SCANNER_ERR_OK)
|
||||
{
|
||||
status_ = ret;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
status_ = ret;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
status_ = ret;
|
||||
break;
|
||||
}
|
||||
}
|
||||
this_thread::sleep_for(chrono::milliseconds(10));
|
||||
}
|
||||
|
|
|
@ -13,9 +13,9 @@
|
|||
#include "hg_scanner.h"
|
||||
|
||||
#ifdef OEM_HANWANG
|
||||
#define hg_scanner_439 hw_scanner_239
|
||||
#define hg_scanner_439 hw_scanner_439
|
||||
#elif defined(OEM_LISICHENG)
|
||||
#define hg_scanner_439 lsc_scanner_239
|
||||
#define hg_scanner_439 lsc_scanner_439
|
||||
#endif
|
||||
|
||||
class hg_scanner_439 : public hg_scanner
|
||||
|
|
Loading…
Reference in New Issue