补充调整:设备离线时扫描单张,状态栏增加提示

This commit is contained in:
yangjiaxuan 2023-12-04 17:30:40 +08:00
parent 6c900e451c
commit 20ab0c7f80
2 changed files with 122 additions and 5 deletions

View File

@ -679,8 +679,27 @@ void MainWindow::on_AcquireInto2()
HGResult ret = HGBASE_ERR_FAIL; HGResult ret = HGBASE_ERR_FAIL;
if (nullptr != m_devUser) if (nullptr != m_devUser)
{ {
bool deviceIsOnline = true;
ret = m_devUser->StartScan(); ret = m_devUser->StartScan();
if (HGBASE_ERR_OK != ret) #if defined(HG_CMP_MSC)
if (HGTWAIN_ERR_DEVICEOFFLINE == ret)
{
deviceIsOnline = false;
}
#else
if (HGSANE_ERR_DEVICEOFFLINE == ret)
{
deviceIsOnline = false;
}
#endif
if (!deviceIsOnline)
{
deleteDevUser();
}
if (HGBASE_ERR_OK != ret && deviceIsOnline)
{ {
on_scanFinishEvent(); on_scanFinishEvent();
} }
@ -1391,7 +1410,32 @@ void MainWindow::on_scanFinishEvent()
else else
ret = m_devUser->StartScan(); ret = m_devUser->StartScan();
if (HGBASE_ERR_OK != ret) bool deviceIsOnline = true;
ret = m_devUser->StartScan();
#if defined(HG_CMP_MSC)
if (HGTWAIN_ERR_DEVICEOFFLINE == ret)
{
deviceIsOnline = false;
}
#else
if (HGSANE_ERR_DEVICEOFFLINE == ret)
{
deviceIsOnline = false;
}
#endif
if (!deviceIsOnline)
{
if (ScanType_SingleScanToCache == m_scanType)
{
QMessageBox::information(this, tr("Prompt"), tr("Device is offline"));
}
deleteDevUser();
}
if (HGBASE_ERR_OK != ret && deviceIsOnline)
{ {
on_scanFinishEvent(); on_scanFinishEvent();
} }
@ -3458,9 +3502,29 @@ void MainWindow::on_act_acquireSingle_triggered()
HGResult ret = HGBASE_ERR_FAIL; HGResult ret = HGBASE_ERR_FAIL;
if (nullptr != m_devUser) if (nullptr != m_devUser)
{ {
bool deviceIsOnline = true;
ret = m_devUser->StartSingleScan(); ret = m_devUser->StartSingleScan();
if (HGBASE_ERR_OK != ret) #if defined(HG_CMP_MSC)
if (HGTWAIN_ERR_DEVICEOFFLINE == ret)
{
deviceIsOnline = false;
}
#else
if (HGSANE_ERR_DEVICEOFFLINE == ret)
{
deviceIsOnline = false;
}
#endif
if (!deviceIsOnline)
{
QMessageBox::information(this, tr("Prompt"), tr("Device is offline"));
deleteDevUser();
}
if (HGBASE_ERR_OK != ret && deviceIsOnline)
{ {
on_scanFinishEvent(); on_scanFinishEvent();
} }
@ -3513,8 +3577,27 @@ void MainWindow::on_act_acquireInto_triggered()
HGResult ret = HGBASE_ERR_FAIL; HGResult ret = HGBASE_ERR_FAIL;
if (nullptr != m_devUser) if (nullptr != m_devUser)
{ {
bool deviceIsOnline = true;
ret = m_devUser->StartScan(); ret = m_devUser->StartScan();
if (HGBASE_ERR_OK != ret) #if defined(HG_CMP_MSC)
if (HGTWAIN_ERR_DEVICEOFFLINE == ret)
{
deviceIsOnline = false;
}
#else
if (HGSANE_ERR_DEVICEOFFLINE == ret)
{
deviceIsOnline = false;
}
#endif
if (!deviceIsOnline)
{
deleteDevUser();
}
if (HGBASE_ERR_OK != ret && deviceIsOnline)
{ {
on_scanFinishEvent(); on_scanFinishEvent();
} }
@ -3582,8 +3665,27 @@ void MainWindow::on_act_insertFromScanner_triggered()
HGResult ret = HGBASE_ERR_FAIL; HGResult ret = HGBASE_ERR_FAIL;
if (nullptr != m_devUser) if (nullptr != m_devUser)
{ {
bool deviceIsOnline = true;
ret = m_devUser->StartScan(); ret = m_devUser->StartScan();
if (HGBASE_ERR_OK != ret) #if defined(HG_CMP_MSC)
if (HGTWAIN_ERR_DEVICEOFFLINE == ret)
{
deviceIsOnline = false;
}
#else
if (HGSANE_ERR_DEVICEOFFLINE == ret)
{
deviceIsOnline = false;
}
#endif
if (!deviceIsOnline)
{
deleteDevUser();
}
if (HGBASE_ERR_OK != ret && deviceIsOnline)
{ {
on_scanFinishEvent(); on_scanFinishEvent();
} }

View File

@ -664,12 +664,22 @@ HGResult HGTwainDSImpl::EnableWithSingleScan(HWND parent, HGDSEventFunc eventFun
HGResult ret = GetCapInt(CAP_XFERCOUNT, &oldXferCount); HGResult ret = GetCapInt(CAP_XFERCOUNT, &oldXferCount);
if (HGBASE_ERR_OK != ret) if (HGBASE_ERR_OK != ret)
{ {
TW_STATUS status;
m_dsmImpl->m_pDSMProc(&m_dsmImpl->m_AppId, &m_iden, DG_CONTROL, DAT_STATUS, MSG_GET, (TW_MEMREF)&status);
if (status.ConditionCode == TWCC_CHECKDEVICEONLINE)
return HGTWAIN_ERR_DEVICEOFFLINE;
return ret; return ret;
} }
ret = SetCapInt(CAP_XFERCOUNT, TWTY_INT16, 1); ret = SetCapInt(CAP_XFERCOUNT, TWTY_INT16, 1);
if (HGBASE_ERR_OK != ret) if (HGBASE_ERR_OK != ret)
{ {
TW_STATUS status;
m_dsmImpl->m_pDSMProc(&m_dsmImpl->m_AppId, &m_iden, DG_CONTROL, DAT_STATUS, MSG_GET, (TW_MEMREF)&status);
if (status.ConditionCode == TWCC_CHECKDEVICEONLINE)
return HGTWAIN_ERR_DEVICEOFFLINE;
return ret; return ret;
} }
@ -678,6 +688,11 @@ HGResult HGTwainDSImpl::EnableWithSingleScan(HWND parent, HGDSEventFunc eventFun
twUI.hParent = (TW_HANDLE)parent; twUI.hParent = (TW_HANDLE)parent;
if (TWRC_SUCCESS != m_dsmImpl->m_pDSMProc(&m_dsmImpl->m_AppId, &m_iden, DG_CONTROL, DAT_USERINTERFACE, MSG_ENABLEDS, (TW_MEMREF)&twUI)) if (TWRC_SUCCESS != m_dsmImpl->m_pDSMProc(&m_dsmImpl->m_AppId, &m_iden, DG_CONTROL, DAT_USERINTERFACE, MSG_ENABLEDS, (TW_MEMREF)&twUI))
{ {
TW_STATUS status;
m_dsmImpl->m_pDSMProc(&m_dsmImpl->m_AppId, &m_iden, DG_CONTROL, DAT_STATUS, MSG_GET, (TW_MEMREF)&status);
if (status.ConditionCode == TWCC_CHECKDEVICEONLINE)
return HGTWAIN_ERR_DEVICEOFFLINE;
return HGTWAIN_ERR_FAIL; return HGTWAIN_ERR_FAIL;
} }