1.增加USB传输超时退出功能,以避免机器通信异常,驱动无法退出问题

2.调整图像处理部分构造传参
This commit is contained in:
lovelyyoung 2020-08-15 16:08:47 +08:00
parent ac12acc233
commit 784d9abd0f
3 changed files with 15 additions and 8 deletions

View File

@ -283,7 +283,7 @@ std::string GScanO200::GetFWVersion()
std::string GScanO200::GetSerialNum()
{
return "G20018000298";
//return "G20018000298";
if (m_usb.get() && m_usb->is_connected())
{
std::lock_guard<std::mutex> lck(m_imgLocker);
@ -407,11 +407,6 @@ void GScanO200::Stop_scan()
USBCB usbcb = { STOP ,0,0 };
if (m_usb.get() && m_usb->is_connected())
m_usb->write_bulk(&usbcb, sizeof(usbcb));
#ifdef G200
//m_pImages->setscanflags(false);
//devState = DEV_STOP;
#endif // G200
}
void GScanO200::ResetScanner()
@ -483,7 +478,7 @@ void GScanO200::usbhotplug(bool isleft)
if (isleft) {
//std::lock_guard<std::mutex> lck(m_Locker);
//FileTools::
("D:\\1.txt", "usbhotplug left");
//("D:\\1.txt", "usbhotplug left");
devState = DEV_WRONG;
Error_Code = USB_DISCONNECTED;
m_pImages->setscanflags(false);
@ -518,6 +513,7 @@ void GScanO200::usbmain()
////FileTools::write_log("D:\\1.txt", "thread usb start");
try
{
StopWatch sw;
while (devState == DEV_ISRUNNING) {
if ((m_usb.get() && !m_usb->is_connected())) {
this_thread::sleep_for(chrono::milliseconds(200));
@ -533,6 +529,12 @@ void GScanO200::usbmain()
// continue;
// }
//}
if (sw.elapsed_ms() > 10000)
{
m_pImages->setscanflags(false);
devState = haveError ? DevState::DEV_WRONG : DevState::DEV_STOP;
return;
}
if (gcap.resolution_dst >= 300.0f)
{
@ -565,6 +567,7 @@ void GScanO200::usbmain()
#endif // LOG
m_usb->set_timeout(200);
Pop_Image();
sw.reset();
break;
}
case STOP_SCAN:

View File

@ -149,7 +149,7 @@ void ImageMatQueue::setparam(const GScanCap& param)
}
if (param.is_autodiscradblank_normal || param.is_autodiscradblank_vince) {
m_iaList.push_back(shared_ptr<CImageApply>(new CImageApplyDiscardBlank(param.is_autodiscradblank_normal ? true : false)));
m_iaList.push_back(shared_ptr<CImageApply>(new CImageApplyDiscardBlank()));
//m_iaList.push_back(shared_ptr<CImageApply>(new CImageApplyDiscardBlank(param.areanum,param.devnmax)));
}

View File

@ -435,7 +435,11 @@ CString GetHidedlgPath()
{
TCHAR szIniFile[MAX_PATH] = { 0 };
SHGetSpecialFolderPath(NULL, szIniFile, CSIDL_WINDOWS, TRUE);
#ifdef MAKEHUAGAO
_tcscat(szIniFile, _T("\\twain_32\\HuaGoScan\\hidedlg.exe"));
#else // MAKEHUAGAO
_tcscat(szIniFile, _T("\\twain_32\\ZhibenScan\\hidedlg.exe"));
#endif
int iLen = WideCharToMultiByte(CP_ACP, 0, szIniFile, -1, NULL, 0, NULL, NULL);
char* chRtn = new char[iLen * sizeof(char)];
WideCharToMultiByte(CP_ACP, 0, szIniFile, -1, chRtn, iLen, NULL, NULL);