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

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;
if (nullptr != m_devUser)
{
bool deviceIsOnline = true;
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();
}
@ -1391,7 +1410,32 @@ void MainWindow::on_scanFinishEvent()
else
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();
}
@ -3458,9 +3502,29 @@ void MainWindow::on_act_acquireSingle_triggered()
HGResult ret = HGBASE_ERR_FAIL;
if (nullptr != m_devUser)
{
bool deviceIsOnline = true;
ret = m_devUser->StartSingleScan();
#if defined(HG_CMP_MSC)
if (HGBASE_ERR_OK != ret)
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();
}
@ -3513,8 +3577,27 @@ void MainWindow::on_act_acquireInto_triggered()
HGResult ret = HGBASE_ERR_FAIL;
if (nullptr != m_devUser)
{
bool deviceIsOnline = true;
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();
}
@ -3582,8 +3665,27 @@ void MainWindow::on_act_insertFromScanner_triggered()
HGResult ret = HGBASE_ERR_FAIL;
if (nullptr != m_devUser)
{
bool deviceIsOnline = true;
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();
}

View File

@ -664,12 +664,22 @@ HGResult HGTwainDSImpl::EnableWithSingleScan(HWND parent, HGDSEventFunc eventFun
HGResult ret = GetCapInt(CAP_XFERCOUNT, &oldXferCount);
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;
}
ret = SetCapInt(CAP_XFERCOUNT, TWTY_INT16, 1);
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;
}
@ -678,6 +688,11 @@ HGResult HGTwainDSImpl::EnableWithSingleScan(HWND parent, HGDSEventFunc eventFun
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))
{
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;
}