📄 rangermanager.cpp
字号:
}
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportSetItemOutput(long ItemId)
{
ASSERT(m_pRanger != NULL);
if (CanRetrieveOnOutput())
m_pRanger->SuspendItem();
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportItemSuspended(long ItemId)
{
ASSERT(m_pRanger != NULL);
if (CanRetrieveOnOutput())
{
_GetAllImages();
}
m_pRanger->ContinueItem();
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportTrackIsClear ()
{
ASSERT(m_pRanger != NULL);
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());
g_asyncResult_EnableShutdown.SetResult(GetCurrentState());
// indicate that scan session is End
m_bProcessingSession = FALSE;
}
}
//----------------------------------------------------------------------------------------
void CRangerManager::OnTransportItemInPocket(long ItemId)
{
ASSERT(m_pRanger != NULL);
m_dwPageID++;
if (m_pObserver && m_bProcessingSession)
{
// Get All Image
if (CanRetrieveOnInPocket())
_GetAllImages();
// finish page
RANGER_PAGE_END_INFO info;
_GetMICRs(info.lstMICR);
info.itemState = (Transport_ItemState)m_pRanger->GetItemState();
m_pObserver->OnPageEnd(info);
}
}
void CRangerManager::_GetTransportInformation()
{
ASSERT(m_pRanger != NULL);
// General
// m_curTransportInfo.General.ID = m_pRanger->GetTransportID();
m_curTransportInfo.General.Make = m_pRanger->GetTransportInfo("General", "Make");
m_curTransportInfo.General.Model = m_pRanger->GetTransportInfo("General", "Model");
m_curTransportInfo.General.NativeAPI = m_pRanger->GetTransportInfo("General", "NativeAPI");
m_curTransportInfo.General.bMainHopperPresent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "MainHopperPresent"));
m_curTransportInfo.General.bMergeHopperPresent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "MergeHopperPresent"));
m_curTransportInfo.General.bDropStationPresent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "DropStationPresent"));
m_curTransportInfo.General.bViewStationPresent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "ViewStationPresent"));
m_curTransportInfo.General.bMicrEncoderPresen = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "MicrEncoderPresen"));
m_curTransportInfo.General.bFrontEndorserPresent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "FrontEndorserPresent"));
m_curTransportInfo.General.bRearEndorserPresent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "RearEndorserPresent"));
m_curTransportInfo.General.bFrontStampPresent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "FrontStampPresent"));
m_curTransportInfo.General.bRearStampPresent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "RearStampPresent"));
m_curTransportInfo.General.bMicrofilmerPresent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "MicrofilmerPresent"));
m_curTransportInfo.General.nMicrReaderCount = SRangerDataTypeHelper::StringToINT(m_pRanger->GetTransportInfo("General", "MicrReaderCount"));
m_curTransportInfo.General.nOcrReaderCount = SRangerDataTypeHelper::StringToINT(m_pRanger->GetTransportInfo("General", "OcrReaderCount"));
m_curTransportInfo.General.nFrontImageCount = SRangerDataTypeHelper::StringToINT(m_pRanger->GetTransportInfo("General", "FrontImageCount"));
m_curTransportInfo.General.nRearImageCount = SRangerDataTypeHelper::StringToINT(m_pRanger->GetTransportInfo("General", "RearImageCount"));
m_curTransportInfo.General.nMaxStorableFrontImages = SRangerDataTypeHelper::StringToINT(m_pRanger->GetTransportInfo("General", "MaxStorableFrontImages"));
m_curTransportInfo.General.nMaxStorableRearImages = SRangerDataTypeHelper::StringToINT(m_pRanger->GetTransportInfo("General", "MaxStorableRearImages"));
m_curTransportInfo.General.bImagesAvailableDuringOutputEvent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "ImagesAvailableDuringOutputEvent"));
m_curTransportInfo.General.bImagesAvailableDuringPocketEvent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "ImagesAvailableDuringPocketEvent"));
m_curTransportInfo.General.bCanSetImageRootDir = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "CanSetImageRootDir"));
m_curTransportInfo.General.bCanSuspendItems = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "CanSuspendItems"));
m_curTransportInfo.General.nPocketCount = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "PocketCount"));
m_curTransportInfo.General.nHardwareRejectPocket = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "HardwareRejectPocket"));
m_curTransportInfo.General.eExceptionManager = SRangerDataTypeHelper::StringToExceptionManager(m_pRanger->GetTransportInfo("General", "ExceptionManager"));
m_curTransportInfo.General.bIQAPresent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "IQAPresent"));
m_curTransportInfo.General.bIQAAvailableDuringOutputEvent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "IQAAvailableDuringOutputEvent"));
m_curTransportInfo.General.bIQAAvailableDuringPocketEvent = SRangerDataTypeHelper::StringToBOOL(m_pRanger->GetTransportInfo("General", "IQAAvailableDuringPocketEvent"));
// encoder
m_curTransportInfo.Encoder.font = SRangerDataTypeHelper::StringToEncoderFont(m_pRanger->GetTransportInfo("Encoder", "Font"));
//FrontEndorser
m_curTransportInfo.FrontEndorser.nMaxLines = SRangerDataTypeHelper::StringToINT(m_pRanger->GetTransportInfo("FrontEndorser", "MaxLines"));
// RearEndorser
m_curTransportInfo.RearEndorser.nMaxLines = SRangerDataTypeHelper::StringToINT(m_pRanger->GetTransportInfo("RearEndorser", "MaxLines"));
// FrontStamp
m_curTransportInfo.FrontStamp.stampType = SRangerDataTypeHelper::StringToStampType(m_pRanger->GetTransportInfo("FrontStamp", "StampType"));
m_curTransportInfo.FrontStamp.positionType = SRangerDataTypeHelper::StringToPositionType(m_pRanger->GetTransportInfo("FrontStamp", "PositionType"));
// RearStamp
m_curTransportInfo.RearStamp.stampType = SRangerDataTypeHelper::StringToStampType(m_pRanger->GetTransportInfo("RearStamp", "StampType"));
m_curTransportInfo.RearStamp.positionType = SRangerDataTypeHelper::StringToPositionType(m_pRanger->GetTransportInfo("RearStamp", "PositionType"));
// Microfilmer
m_curTransportInfo.MicroFilmer.nMaxLineLength = SRangerDataTypeHelper::StringToINT(m_pRanger->GetTransportInfo("Microfilmer", "MaxLineLength"));
// MicrReaderN
for (int i = 0;i < m_curTransportInfo.General.nMicrReaderCount;i++)
{
TANSPORTINFO_MICRREADER micrReader;
micrReader.Index = i+1;
CString strMicrReader;
strMicrReader.Format("MicrReader%d",micrReader.Index);
micrReader.Font = SRangerDataTypeHelper::StringToMICRFont(m_pRanger->GetTransportInfo(strMicrReader,"Font"));
m_curTransportInfo.MicrReaders.push_back(micrReader);
}
// OcrReaderN
for (int i = 0;i < m_curTransportInfo.General.nOcrReaderCount;i++)
{
TANSPORTINFO_OCRREADER OcrReader;
OcrReader.Index = i+1;
CString strOcrReader;
strOcrReader.Format("OcrReader%d",OcrReader.Index);
OcrReader.Font = SRangerDataTypeHelper::StringToOCRFont(m_pRanger->GetTransportInfo(strOcrReader,"Font"));
m_curTransportInfo.OCRReaders.push_back(OcrReader);
}
// FrontImageN
for (int i = 0;i < m_curTransportInfo.General.nFrontImageCount;i++)
{
TANSPORTINFO_FRONTIMAGE FrontImage;
FrontImage.Index = i+1;
CString strImage;
strImage.Format("FrontImage%d",FrontImage.Index);
FrontImage.ColorType = SRangerDataTypeHelper::StringToImageColorType(m_pRanger->GetTransportInfo(strImage,"ColorType"));
FrontImage.Portion = SRangerDataTypeHelper::StringToImagePortion(m_pRanger->GetTransportInfo(strImage,"ImagePortion"));
FrontImage.Location = SRangerDataTypeHelper::StringToImageLocation(m_pRanger->GetTransportInfo(strImage,"Location"));
m_curTransportInfo.FrontImages.push_back(FrontImage);
}
// RearImageN
for (int i = 0;i < m_curTransportInfo.General.nRearImageCount;i++)
{
TANSPORTINFO_REARIMAGE RearImage;
RearImage.Index = i+1;
CString strImage;
strImage.Format("RearImage%d",RearImage.Index);
RearImage.ColorType = SRangerDataTypeHelper::StringToImageColorType(m_pRanger->GetTransportInfo(strImage,"ColorType"));
RearImage.Portion = SRangerDataTypeHelper::StringToImagePortion(m_pRanger->GetTransportInfo(strImage,"ImagePortion"));
RearImage.Location = SRangerDataTypeHelper::StringToImageLocation(m_pRanger->GetTransportInfo(strImage,"Location"));
m_curTransportInfo.RearImages.push_back(RearImage);
}
}
void CRangerManager::_GetAllImages()
{
ASSERT(m_pRanger != NULL);
if (m_pObserver == NULL) return;
RANGER_IMAGE_DATA_INFO info;
void* pImage ;
int nCount;
// Front Image
// BW
pImage = (void *)m_pRanger->GetImageAddress(TransportFront, ImageColorTypeBitonal);
nCount = m_pRanger->GetImageByteCount(TransportFront, ImageColorTypeBitonal);
if (pImage != NULL && nCount > 0)
{
info.lpImageAddress = pImage;
info.dwImageSize = nCount;
info.dwPageID = m_dwPageID;
info.eImageSide = TIS_Front;
info.eColorMode = TI_CT_Bitonal;
m_pObserver->OnImageData(info);
}
// GrayScale
pImage = (void *)m_pRanger->GetImageAddress(TransportFront, ImageColorTypeGrayscale);
nCount = m_pRanger->GetImageByteCount(TransportFront, ImageColorTypeGrayscale);
if (pImage != NULL && nCount > 0)
{
info.lpImageAddress = pImage;
info.dwImageSize = nCount;
info.dwPageID = m_dwPageID;
info.eImageSide = TIS_Front;
info.eColorMode = TI_CT_Grayscale;
m_pObserver->OnImageData(info);
}
// Color
pImage = (void *)m_pRanger->GetImageAddress(TransportFront, ImageColorTypeColor);
nCount = m_pRanger->GetImageByteCount(TransportFront, ImageColorTypeColor);
if (pImage != NULL && nCount > 0)
{
info.lpImageAddress = pImage;
info.dwImageSize = nCount;
info.dwPageID = m_dwPageID;
info.eImageSide = TIS_Front;
info.eColorMode = TI_CT_Color;
m_pObserver->OnImageData(info);
}
// Rear Image
// BW
pImage = (void *)m_pRanger->GetImageAddress(TransportRear, ImageColorTypeBitonal);
nCount = m_pRanger->GetImageByteCount(TransportRear, ImageColorTypeBitonal);
if (pImage != NULL && nCount > 0)
{
info.lpImageAddress = pImage;
info.dwImageSize = nCount;
info.dwPageID = m_dwPageID;
info.eImageSide = TIS_Rear;
info.eColorMode = TI_CT_Bitonal;
m_pObserver->OnImageData(info);
}
// GrayScale
pImage = (void *)m_pRanger->GetImageAddress(TransportRear, ImageColorTypeGrayscale);
nCount = m_pRanger->GetImageByteCount(TransportRear, ImageColorTypeGrayscale);
if (pImage != NULL && nCount > 0)
{
info.lpImageAddress = pImage;
info.dwImageSize = nCount;
info.dwPageID = m_dwPageID;
info.eImageSide = TIS_Rear;
info.eColorMode = TI_CT_Grayscale;
m_pObserver->OnImageData(info);
}
// Color
pImage = (void *)m_pRanger->GetImageAddress(TransportRear, ImageColorTypeColor);
nCount = m_pRanger->GetImageByteCount(TransportRear, ImageColorTypeColor);
if (pImage != NULL && nCount > 0)
{
info.lpImageAddress = pImage;
info.dwImageSize = nCount;
info.dwPageID = m_dwPageID;
info.eImageSide = TIS_Rear;
info.eColorMode = TI_CT_Color;
m_pObserver->OnImageData(info);
}
}
void CRangerManager::_GetMICRs(std::vector<CString>& lstMICR)
{
std::vector<TANSPORTINFO_MICRREADER>::iterator it;
std::vector<TANSPORTINFO_MICRREADER>::iterator it_begin = m_curTransportInfo.MicrReaders.begin();
std::vector<TANSPORTINFO_MICRREADER>::iterator it_end = m_curTransportInfo.MicrReaders.end();
for (it = it_begin; it != it_end; ++it)
{
TANSPORTINFO_MICRREADER& micrReader = *it;
CString strMICR;
_GetOneMICR(strMICR,micrReader);
lstMICR.push_back(strMICR);
}
}
void CRangerManager::_GetOneMICR(CString& strMICR,TANSPORTINFO_MICRREADER& reader)
{
strMICR = m_pRanger->GetMicrText(reader.Index);
// Maybe translate some symbol
}
void CRangerManager::_EnableOption()
{
ASSERT(m_pRanger != NULL);
m_pRanger->PrepareToChangeOptions();
// write job option
// ...
if (m_pRangerParams) m_pRangerParams->SetScannerSetting();
// set job option
if(m_pObserver)
{
// can set driver option
m_pObserver->OnPrepareFeeding();
}
// enable
m_pRanger->EnableOptions();
}
BOOL CRangerManager::CanRetrieveOnOutput()
{
if (m_curTransportInfo.General.bImagesAvailableDuringOutputEvent &&
m_curTransportInfo.General.bCanSuspendItems&&
!m_curTransportInfo.General.bImagesAvailableDuringPocketEvent )
return TRUE;
return FALSE;
}
BOOL CRangerManager::CanRetrieveOnInPocket()
{
if (m_curTransportInfo.General.bImagesAvailableDuringPocketEvent) return TRUE;
else return FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -