| | |
| | | #include "StdAfx.h" |
| | | #include "StdAfx.h" |
| | | #include "SapControl.h" |
| | | |
| | | #define FRAME_HEAD_MARKER 0x55AAFF00 |
| | |
| | | |
| | | BOOL CSapControl::CreateXfer() |
| | | { |
| | | // Xfer勤甸 积己 |
| | | // Xfer勤甸 积己 |
| | | if (DisplayStatus("CorXferNew", CorXferNew(m_hBoard, m_hAcq, *m_hBuffer, NULL, &m_hXfer))) |
| | | return FALSE; |
| | | |
| | |
| | | xfer_desc.incByte = m_Param.nFrameWidth; |
| | | |
| | | #ifdef FRAME_CALLBACK |
| | | // 妮归 窃荐 殿废 |
| | | // 妮归 窃荐 殿废 |
| | | if (DisplayStatus("CorXferRegisterCallback" |
| | | , CorXferRegisterCallback(m_hXfer |
| | | , CORXFER_VAL_EVENT_TYPE_END_OF_FRAME |
| | | , XferCallback, (void*)this))) |
| | | #else |
| | | // 妮归 窃荐 殿废 |
| | | // 妮归 窃荐 殿废 |
| | | if (DisplayStatus("CorXferRegisterCallback" |
| | | , CorXferRegisterCallback(m_hXfer |
| | | , CORXFER_VAL_EVENT_TYPE_END_OF_NLINES + m_Param.nFrameHeight |
| | |
| | | if (DisplayStatus("CorXferAppend", CorXferAppend(m_hXfer, m_hAcq, m_hBuffer[i], NULL))) |
| | | return FALSE; |
| | | |
| | | // 妮归 窃荐 殿废 |
| | | // 妮归 窃荐 殿废 |
| | | if (DisplayStatus("CorXferRegisterCallback" |
| | | , CorXferRegisterCallback(m_hXfer |
| | | , CORXFER_VAL_EVENT_TYPE_END_OF_FRAME |
| | |
| | | return FALSE; |
| | | |
| | | ////////////////////////////////////////////////////////////////////////// |
| | | // Buffer 且寸 |
| | | // Buffer 且寸 |
| | | CORSTATUS st; |
| | | int i; |
| | | SIZE_T tempBufferSize= m_Param.nGrabBufSize; |
| | |
| | | |
| | | for (i = 0; i <nBufferrCount; i++) |
| | | { |
| | | // Memory Address 且寸. |
| | | // Memory Address 且寸. |
| | | m_pX64Buffer[i] = (void*)(m_pOneLargeBuffer+ nBufferSize*i); |
| | | if (m_pX64Buffer[i]) |
| | | { |
| | |
| | | if (DisplayStatus("CorAcqSetPrms", CorAcqSetPrms(m_hAcq, m_hVic, m_hCam, TRUE))) |
| | | return FALSE; |
| | | |
| | | // 荐笼且 康惑狼 农扁 眠免 |
| | | // 荐笼且 康惑狼 农扁 眠免 |
| | | // if (DisplayStatus("CorAcqGetPrm", CorAcqGetPrm(m_hAcq, CORACQ_PRM_SCALE_HORZ, &g_pBase->m_nFrameWidth))) |
| | | // return FALSE; |
| | | |
| | |
| | | |
| | | if(bFreeRun == FALSE) |
| | | { |
| | | // 悼扁 康惑犬焊 版快 |
| | | // 悼扁 康惑犬焊 版快 |
| | | if( DisplayStatus( "CorAcqSetPrm", CorAcqSetPrm(m_hAcq, CORACQ_PRM_EXT_FRAME_TRIGGER_ENABLE, TRUE))) |
| | | return FALSE; |
| | | |
| | |
| | | { |
| | | g_pLog->DisplayMessage(L"StopAcq : Grab %d, End %d", m_nSetBufferIdx, m_nEndFrameIdx); |
| | | |
| | | //20141022 yjm abort 肺 窍搁 促澜 弊乏矫 磊操焊靛啊 桓绢滚赴促. 犁何泼父 烹窃..揪广 俺绊积ぱぱせ |
| | | //20141022 yjm abort 肺 窍搁 促澜 弊乏矫 磊操焊靛啊 桓绢滚赴促. 犁何泼父 烹窃..揪广 俺绊积ぱぱせ |
| | | if (DisplayStatus("CorXferStop", CorXferStop(m_hXfer)))//if (DisplayStatus("CorXferStop", CorXferAbort(m_hXfer))) |
| | | { |
| | | g_pLog->DisplayMessage(L"CorXferAbort Fail. Grab %d, End %d", m_nSetBufferIdx, m_nEndFrameIdx); |
| | |
| | | if (nYStart + nYSize > nBufSizeY* GetEndFrameIdx()) |
| | | return FALSE; |
| | | |
| | | // 矫累 橇饭烙 锅龋客 场 橇饭烙 锅龋. |
| | | // 矫累 橇饭烙 锅龋客 场 橇饭烙 锅龋. |
| | | int nStartFrameNo = nYStart / nBufSizeY; |
| | | int nEndFrameNo = (nYStart + nYSize) / nBufSizeY; |
| | | LPBYTE lpHeadAddr = GetFrameHeader(iScan,nStartFrameNo); |
| | |
| | | memcpy(lpIn + i * nXSize, lpStart + nLine * nBufSizeX, nXSize); |
| | | if (nStartFrameNo <= nEndFrameNo && (nYStart + i + 1) % nBufSizeY == 0) |
| | | { |
| | | // 捞固瘤甫 蝶郴具窍绰 康开捞 MemFrameNo 版拌俊 吧媚乐绰 版快 贸府. |
| | | // 捞固瘤甫 蝶郴具窍绰 康开捞 MemFrameNo 版拌俊 吧媚乐绰 版快 贸府. |
| | | lpHeadAddr = GetFrameHeader(iScan,++nStartFrameNo); |
| | | lpStart = lpHeadAddr + nXStart; |
| | | nLine = 0; |
| | |
| | | { |
| | | LPBYTE lpBuffer = NULL; |
| | | |
| | | // 捞固瘤甫 嘛篮 利捞 绝绰 版快绰 滚欺甫 府畔茄促. |
| | | // 捞固瘤甫 嘛篮 利捞 绝绰 版快绰 滚欺甫 府畔茄促. |
| | | if (m_nStartFrameIdx == 0 && m_nEndFrameIdx == 0) |
| | | { |
| | | if (nFrameNo >= 0 && nFrameNo < g_pBase->m_pMemFrameNo[m_Param.nCameraIdx]) |
| | |
| | | else |
| | | lpBuffer = NULL; |
| | | } |
| | | else // 捞固瘤甫 嘛篮 版快绰 Frame No甫 犬牢窍咯 滚欺甫 府畔茄促. |
| | | else // 捞固瘤甫 嘛篮 版快绰 Frame No甫 犬牢窍咯 滚欺甫 府畔茄促. |
| | | { |
| | | if (nFrameNo >= m_nStartFrameIdx && nFrameNo < m_nEndFrameIdx) |
| | | { |
| | |
| | | pX64->m_nEndFrameIdx++; //Count |
| | | pX64->m_nSetBufferIdx++; //index |
| | | |
| | | if (pX64->m_nEndFrameIdx > g_pStatus->GetGrabFrameCount(pX64->m_nScanIndex)) |
| | | int nCameraIdx = pX64->m_Param.nCameraIdx; |
| | | if (pX64->m_nEndFrameIdx > g_pStatus->GetGrabFrameCount(nCameraIdx, pX64->m_nScanIndex)) |
| | | { |
| | | pX64->GrabScanStop(); |
| | | g_pStatus->SetGrabEnd(pX64->m_nScanIndex); |
| | | g_pLog->DisplayMessage(_T("%d Over Grab Count : Stop Grab[%d][%d] - %d"), pX64->m_Param.nBoardIdx, pX64->m_nScanIndex, pX64->m_nEndFrameIdx,g_pStatus->GetGrabFrameCount(pX64->m_nScanIndex)); |
| | | g_pStatus->SetGrabEnd(nCameraIdx, pX64->m_nScanIndex); |
| | | g_pLog->DisplayMessage(_T("%d Over Grab Count : Stop Grab[%d][%d] - %d"), pX64->m_Param.nBoardIdx, pX64->m_nScanIndex, pX64->m_nEndFrameIdx,g_pStatus->GetGrabFrameCount(nCameraIdx, pX64->m_nScanIndex)); |
| | | return TRUE; |
| | | } |
| | | |
| | | if (pX64->m_nSetBufferIdx > pX64->m_pFrameBuffer->GetFrameCount()) |
| | | { |
| | | pX64->GrabScanStop(); |
| | | g_pStatus->SetGrabEnd(pX64->m_nScanIndex); |
| | | g_pStatus->SetGrabEnd(nCameraIdx, pX64->m_nScanIndex); |
| | | g_pLog->DisplayMessage(_T("%d Over Grab Buffer Stop Grab[%d][%d] - %d"), pX64->m_Param.nBoardIdx, pX64->m_nScanIndex, pX64->m_nEndFrameIdx,pX64->m_pFrameBuffer->GetFrameCount()); |
| | | return TRUE; |
| | | } |
| | |
| | | if(pBuffer == NULL) |
| | | { |
| | | pX64->GrabScanStop(); |
| | | g_pStatus->SetGrabEnd(pX64->m_nScanIndex); |
| | | g_pStatus->SetGrabEnd(nCameraIdx, pX64->m_nScanIndex); |
| | | g_pLog->DisplayMessage(_T("%d Over Grab Buffer Stop Grab[%d][%d] - %d"), pX64->m_Param.nBoardIdx, pX64->m_nScanIndex, pX64->m_nEndFrameIdx,pX64->m_pFrameBuffer->GetFrameCount()); |
| | | return TRUE; |
| | | } |