📄 rangermanager.cpp
字号:
RANGEROPERATION_CHECKVALIEDSTATE(Transport_Feeding)
if (bWait) RANGEROPERATION_INITILIZERESULT(g_asyncResult_StopCapture)
m_pRanger->StopFeeding();
if (bWait) RANGEROPERATION_CHECKERESULT(g_asyncResult_StopCapture,Transport_ReadyToFeed)
return TRUE;
}
BOOL CRangerManager::GetTransportInformation(TRANSPORTINFO& info)
{
ASSERT(m_pRanger != NULL);
info = m_curTransportInfo;
return TRUE;
}
const TRANSPORTINFO* CRangerManager::GetTransportInformation() const
{
ASSERT(m_pRanger != NULL);
return (TRANSPORTINFO*)&m_curTransportInfo;
}
CString CRangerManager::GetOneTransportInfomation(LPCSTR SectionName, LPCSTR ValueName)
{
ASSERT(m_pRanger != NULL);
return m_pRanger->GetTransportInfo(SectionName,ValueName);
}
BOOL CRangerManager::EnableOption()
{
// Valid operation State:Transport_ReadyToFeed
// state changes :<Transport_ReadyToFeed> ->Transport_ChangeOptions->Transport_EnablingOptions ->Transport_ReadyToFeed
RANGEROPERATION_CHECKVALIEDSTATE(Transport_ReadyToFeed)
// write option
RANGEROPERATION_INITILIZERESULT(g_asyncResult_EnableOption)
//
m_bPrepareToOption = TRUE;
_EnableOption();
RANGEROPERATION_CHECKERESULT(g_asyncResult_EnableOption,Transport_ReadyToFeed)
}
CString CRangerManager::GetTransportJobOptionFileName()
{
ASSERT(m_pRanger != NULL);
return m_pRanger->GetGenericOptionFileName();
}
void CRangerManager::SetTransportJobOptionFileName(LPCSTR lpszFileName)
{
ASSERT(m_pRanger != NULL);
m_pRanger->SetGenericOptionFileName(lpszFileName);
}
CString CRangerManager::GetOneTransportJobOption(LPCSTR SectionName, LPCSTR ValueName)
{
ASSERT(m_pRanger != NULL);
return m_pRanger->GetGenericOption(SectionName,ValueName);
}
BOOL CRangerManager::SetOneTransportJobOption(LPCSTR SectionName, LPCSTR ValueName,LPCSTR Value)
{
ASSERT(m_pRanger != NULL);
return m_pRanger->SetGenericOption(SectionName,ValueName,Value);
}
CString CRangerManager::GetTransportDriverOptionFileName()
{
ASSERT(m_pRanger != NULL);
return m_pRanger->GetDriverOptionFileName();
}
void CRangerManager::SetTransportDriverOptionFileName(LPCSTR lpszFileName)
{
ASSERT(m_pRanger != NULL);
m_pRanger->SetDriverOptionFileName(lpszFileName);
}
CString CRangerManager::GetOneTransportDriverOption(LPCSTR SectionName, LPCSTR ValueName)
{
ASSERT(m_pRanger != NULL);
return m_pRanger->GetDriverOption(SectionName,ValueName);
}
BOOL CRangerManager::SetOneTransportDriverOption(LPCSTR SectionName, LPCSTR ValueName,LPCSTR Value)
{
ASSERT(m_pRanger != NULL);
return m_pRanger->SetDriverOption(SectionName,ValueName,Value);
}
BOOL CRangerManager::SetPassthroughProperty(LPCSTR lpszProperty,LPCSTR value)
{
ASSERT(m_pRanger != NULL);
return m_pRanger->SetPassthroughProperty(lpszProperty,value);
}
CString CRangerManager::GetPassthroughProperty(LPCSTR lpszProperty)
{
ASSERT(m_pRanger != NULL);
return m_pRanger->GetPassthroughProperty(lpszProperty);
}
CString CRangerManager::CallPassthroughMethod(LPCSTR lpszMethod)
{
ASSERT(m_pRanger != NULL);
return m_pRanger->CallPassthroughMethod(lpszMethod);
}
//----RANGER EVENTS-----------------------------------------------------------------------
void CRangerManager::OnTransportNewState(long CurrentState, long PreviousState)
{
ASSERT(m_pRanger != NULL);
if (m_pObserver)
m_pObserver->OnTransprtStateChanged((TransportState)CurrentState);
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportIsDead()
{
ASSERT(m_pRanger != NULL);
if (m_pObserver && m_bProcessingSession)
{
RANGER_SESSION_END_INFO info;
m_pObserver->OnSessionEnd(info);
}
if (m_pRangerParams)
{
m_pRangerParams->Close();
}
if (m_pObserver)
{
m_pObserver->OnDeviceShutDown();
}
m_bProcessingSession = FALSE;
g_asyncResult_Start.SetResult( GetCurrentState());
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportStartingUpState()
{
ASSERT(m_pRanger != NULL);
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportChangeOptionsState(long PreviousState)
{
ASSERT(m_pRanger != NULL);
const TransportState prestate = (TransportState)PreviousState;
if (prestate == Transport_StartingUp)
{
// Get Transport Information
_GetTransportInformation();
//
if (m_pRangerParams)
{
m_pRangerParams->Create();
m_pRangerParams->GetDefaultScannerSetting();
}
// Notify Device startup
if (m_pObserver)
{
m_pObserver->OnDeviceStartUp();
}
// current state is Transport_ChangeOptions
m_pRanger->EnableOptions();
}
g_asyncResult_EnableShutdown.SetResult(GetCurrentState());
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportEnablingOptionsState()
{
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportReadyToFeedState(long PreviousState)
{
ASSERT(m_pRanger != NULL);
const TransportState prestate = (TransportState)PreviousState;
if (prestate == Transport_EnablingOptions)
{
// succeed to start up
g_asyncResult_Start.SetResult( GetCurrentState());
if (m_bPrepareToOption)
{
// Transport_EnablingOptions -> Transport_ReadyToFeed: StartFeeding
// reset
// finish enable StartCapture
g_asyncResult_EnableOption.SetResult( GetCurrentState());
g_asyncResult_EnableShutdown.SetResult(GetCurrentState());
m_bPrepareToOption = FALSE;
}
}
else if (prestate == Transport_Feeding)
{
if (m_dwPageID == 0)
{
// Session End
if (m_pObserver && m_bProcessingSession)
{
RANGER_SESSION_END_INFO info;
m_pObserver->OnSessionEnd(info);
}
g_asyncResult_StopCapture.SetResult( GetCurrentState());
// indicate that scan session is End
m_bProcessingSession = FALSE;
}
}
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportFeedingState()
{
ASSERT(m_pRanger != NULL);
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportShuttingDownState()
{
ASSERT(m_pRanger != NULL);
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportShutDownState()
{
ASSERT(m_pRanger != NULL);
g_asyncResult_Shutdown.SetResult(GetCurrentState());
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportFeedingStopped(long Reason, long ItemsFed, long ItemsRequested)
{
ASSERT(m_pRanger != NULL);
//Stop capture
//if (m_pObserver)
//{
// RANGER_SESSION_END_INFO info;
// info.Reason = Reason;
// info.ItemsFed = ItemsFed;
// info.ItemsRequested = ItemsRequested;
// m_pObserver->OnSessionEnd(info);
//}
//g_asyncResult_StopCapture.SetResult( GetCurrentState());
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportInExceptionState()
{
ASSERT(m_pRanger != NULL);
// Exception Handle
CRangerException ex(m_pRanger->GetExceptionType(),m_pRanger->GetExceptionDevice());
// TEST
CString strType = ex.GetExceptionTypeString();
CString strDevice = ex.GetExceptionDeviceString();
// notice that exception handle has been completed.
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportExceptionComplete()
{
// state change: Transport_ExceptionInProgress -> other state
ASSERT(m_pRanger != NULL);
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportOverrideOptions()
{
ASSERT(m_pRanger != NULL);
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportPassthroughEvent(LPCTSTR EventName, LPCTSTR Args, long FAR* CancelDefaultResponse)
{
ASSERT(m_pRanger != NULL);
}
//----------------------------------------------------------------------------------------
// end of item life cycle events
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportNewItem()
{
ASSERT(m_pRanger != NULL);
//if (m_pRanger->SetItemID(m_dwPageID))
{
// new Page
if (m_pObserver && m_bProcessingSession)
{
RANGER_PAGE_BEGIN_INFO info;
m_pObserver->OnPageBegin(info);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -