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

View File

@ -149,7 +149,7 @@ void ImageMatQueue::setparam(const GScanCap& param)
} }
if (param.is_autodiscradblank_normal || param.is_autodiscradblank_vince) { 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))); //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 }; TCHAR szIniFile[MAX_PATH] = { 0 };
SHGetSpecialFolderPath(NULL, szIniFile, CSIDL_WINDOWS, TRUE); SHGetSpecialFolderPath(NULL, szIniFile, CSIDL_WINDOWS, TRUE);
#ifdef MAKEHUAGAO
_tcscat(szIniFile, _T("\\twain_32\\HuaGoScan\\hidedlg.exe")); _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); int iLen = WideCharToMultiByte(CP_ACP, 0, szIniFile, -1, NULL, 0, NULL, NULL);
char* chRtn = new char[iLen * sizeof(char)]; char* chRtn = new char[iLen * sizeof(char)];
WideCharToMultiByte(CP_ACP, 0, szIniFile, -1, chRtn, iLen, NULL, NULL); WideCharToMultiByte(CP_ACP, 0, szIniFile, -1, chRtn, iLen, NULL, NULL);