| | |
| | | DWORD dwTick = GetTickCount(); |
| | | g_pLog->DisplayMessage(_T("Full Image Save Start")); |
| | | |
| | | int iCam,iScan; |
| | | CHardwareSettings *pHard = &m_HardwareRecipe; |
| | | CCameraSettings *pCamera; |
| | | CGlassRecipe *pGlsRcp = &m_GlassRecipe; |
| | | CString strFolder,strFileJpg,strPanelID; |
| | | pINSPECTFULLIMAGE_BUFFER pBuffer; |
| | | int nQuality = pHard->m_nSaveImageQuality; |
| | | int iCam, iScan; |
| | | CHardwareSettings* pHard = &m_HardwareRecipe; |
| | | CCameraSettings* pCamera; |
| | | CGlassRecipe* pGlsRcp = &m_GlassRecipe; |
| | | CString strFolder, strFileJpg, strPanelID; |
| | | pINSPECTFULLIMAGE_BUFFER pBuffer; |
| | | int nQuality = pHard->m_nSaveImageQuality; |
| | | |
| | | if (nQuality < 0 || nQuality > 100) { |
| | | nQuality = 30; |
| | |
| | | strPanelID = _T("TestGlass"); |
| | | } |
| | | |
| | | for(iCam=0;iCam<pHard->GetCameraCount();iCam++) { |
| | | for(iScan=0;iScan<MAX_SCAN_COUNT;iScan++) { |
| | | pCamera = pHard->GetCameraSettings(iCam,iScan); |
| | | for (iCam = 0; iCam < pHard->GetCameraCount(); iCam++) { |
| | | for (iScan = 0; iScan < MAX_SCAN_COUNT; iScan++) { |
| | | pCamera = pHard->GetCameraSettings(iCam, iScan); |
| | | if (pCamera == NULL) { |
| | | continue; |
| | | } |
| | | |
| | | pBuffer = m_pInspect[iCam]->GetFullImgBuffer(iScan); |
| | | pBuffer = m_pInspect[iCam]->GetFullImgBuffer(iScan); |
| | | if (pBuffer == NULL) { |
| | | continue; |
| | | } |
| | | |
| | | g_pLog->DisplayMessage(_T("Sava %s iCam=%d, iScan=%d, szImage.cx=%ld, pBuffer->szImage.cy=%ld"), PANEL_SIDE[pCamera->m_eDimension], iCam, iScan, pBuffer->szImage.cx, pBuffer->szImage.cy); |
| | | |
| | | if(pBuffer->pImage != NULL && pBuffer->szImage.cx > 100 && pBuffer->szImage.cy > 100) { |
| | | strFileJpg.Format(_T("%s\\%s_%s_%s.jpg"),strFolder, strPanelID, PANEL_SIDE[pCamera->m_eDimension],g_pBase->m_strLoadingTime); |
| | | if (pBuffer->pImage != NULL && pBuffer->szImage.cx > 100 && pBuffer->szImage.cy > 100) { |
| | | strFileJpg.Format(_T("%s\\%s_%s_%s.jpg"), strFolder, strPanelID, PANEL_SIDE[pCamera->m_eDimension], g_pBase->m_strLoadingTime); |
| | | SaveFullImageModern(strFileJpg, pBuffer->pImage, pBuffer->szImage.cx, pBuffer->szImage.cy, (int)pCamera->m_eDimension, 0, nQuality); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | g_pLog->DisplayMessage(_T("Full Image Save Completed : Time[%d]"),GetTickCount()-dwTick); |
| | |
| | | |
| | | g_pStatus->m_iScanIdx = 1; |
| | | |
| | | AfxBeginThread(ScanStartCam_0,this); |
| | | AfxBeginThread(ScanStartCam_1,this); |
| | | AfxBeginThread(ScanStartCam_2,this); |
| | | AfxBeginThread(ScanStartCam_3,this); |
| | | AfxBeginThread(ScanStartCam_0, this); |
| | | AfxBeginThread(ScanStartCam_1, this); |
| | | AfxBeginThread(ScanStartCam_2, this); |
| | | AfxBeginThread(ScanStartCam_3, this); |
| | | AfxBeginThread(ScanStartCam_4, this); |
| | | AfxBeginThread(ScanStartCam_5, this); |
| | | |
| | | AfxBeginThread(CheckScanStart,this); |
| | | } |
| | |
| | | |
| | | g_pStatus->m_iScanIdx = 0; |
| | | |
| | | AfxBeginThread(ScanStartCam_0,this); |
| | | AfxBeginThread(ScanStartCam_1,this); |
| | | AfxBeginThread(ScanStartCam_2,this); |
| | | AfxBeginThread(ScanStartCam_3,this); |
| | | AfxBeginThread(ScanStartCam_0, this); |
| | | AfxBeginThread(ScanStartCam_1, this); |
| | | AfxBeginThread(ScanStartCam_2, this); |
| | | AfxBeginThread(ScanStartCam_3, this); |
| | | AfxBeginThread(ScanStartCam_4, this); |
| | | AfxBeginThread(ScanStartCam_5, this); |
| | | |
| | | AfxBeginThread(CheckScanStart,this); |
| | | |
| | |
| | | |
| | | UINT CInterfaceManager::CheckScanStart(LPVOID pParam) |
| | | { |
| | | CInterfaceManager *pInter = static_cast<CInterfaceManager*>(pParam); |
| | | CInterfaceManager *pInter = static_cast<CInterfaceManager*>(pParam); |
| | | double CurTime = GetTickCount(); |
| | | |
| | | double CurTime = GetTickCount(); |
| | | |
| | | do |
| | | { |
| | | if (GetTickCount() - CurTime > 10000) |
| | | { |
| | | do { |
| | | if (GetTickCount() - CurTime > 10000) { |
| | | g_pLog->DisplayMessage(_T("Scan Start Ack TimeOut : Scan %d-%d"),g_pStatus->m_iScanIdx,pInter->m_nScanStartCount); |
| | | break; |
| | | } |
| | | |
| | | if(pInter->m_nScanStartCount == MAX_CAMERA_COUNT) |
| | | { |
| | | if(pInter->m_nScanStartCount == MAX_CAMERA_COUNT) { |
| | | g_pLog->DisplayMessage(_T("Scan Start Ack Ok : Scan %d-%d"),g_pStatus->m_iScanIdx,pInter->m_nScanStartCount); |
| | | break; |
| | | } |
| | |
| | | } while (1); |
| | | |
| | | g_pLog->DisplayMessage(_T("Scan Start Ack Signal Send : Scan %d-%d"),g_pStatus->m_iScanIdx,pInter->m_nScanStartCount); |
| | | if(g_pStatus->m_iScanIdx == 0) |
| | | { |
| | | if(g_pStatus->m_iScanIdx == 0) { |
| | | if(pInter->m_pThread_SendMSG != NULL) |
| | | pInter->m_pThread_SendMSG->AddSendMSG(SEND_MESSAGE_CONTROLSIGNAL,IToC_Ack_LongScanStartSuccess,TRUE); |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | if(pInter->m_pThread_SendMSG != NULL) |
| | | pInter->m_pThread_SendMSG->AddSendMSG(SEND_MESSAGE_CONTROLSIGNAL,IToC_Ack_ShortScanStartSuccess,TRUE); |
| | | } |
| | |
| | | int nPeriod = m_HardwareRecipe.m_nFreerunPeriod; |
| | | int nExposureTime = m_HardwareRecipe.m_nFreerunExposureTime; |
| | | |
| | | CCameraSettings *pCamSettings = m_HardwareRecipe.GetCameraSettings(iCam,g_pStatus->m_iScanIdx); |
| | | |
| | | g_pStatus->SetGrabFrametoScan(g_pStatus->m_iScanIdx,pCamSettings->m_nGrabFrameCount); |
| | | if(m_pGrabber[iCam] != NULL) |
| | | { |
| | | m_pGrabber[iCam]->GrabScanStart(g_pStatus->m_iScanIdx,bFreerun,nPeriod,nExposureTime); |
| | | CCameraSettings* pCamSettings = m_HardwareRecipe.GetCameraSettings(iCam, g_pStatus->m_iScanIdx); |
| | | g_pStatus->SetGrabFrametoScan(iCam, g_pStatus->m_iScanIdx, pCamSettings->m_nGrabFrameCount); |
| | | if(m_pGrabber[iCam] != NULL) { |
| | | m_pGrabber[iCam]->GrabScanStart(g_pStatus->m_iScanIdx, bFreerun, nPeriod, nExposureTime); |
| | | g_pLog->DisplayMessage(_T("Cam %d Scan %d Grab Start : GrabFrameCount %d"), iCam, g_pStatus->m_iScanIdx, pCamSettings->m_nGrabFrameCount); |
| | | g_pLog->DisplayMessage(_T("Cam %d Scan %d Grab Start : bFreerun %d, nPeriod %d, nExposureTime %d"),iCam, g_pStatus->m_iScanIdx, bFreerun, nPeriod, nExposureTime); |
| | | } |
| | | |
| | | if(m_pInspect[iCam] != NULL) |
| | | { |
| | | if(m_pInspect[iCam] != NULL) { |
| | | m_pInspect[iCam]->SetSimulation(FALSE); |
| | | m_pInspect[iCam]->SetViewScanHWnd(m_pView->GetViewScanHWnd()); |
| | | |
| | | if(m_pInspect[iCam]->ScanStart(g_pStatus->m_iScanIdx) == FALSE) |
| | | { |
| | | if(m_pInspect[iCam]->ScanStart(g_pStatus->m_iScanIdx) == FALSE) { |
| | | g_pLog->DisplayMessage(_T("Cam %d Scan %d Start Fail"),iCam,g_pStatus->m_iScanIdx); |
| | | } |
| | | } |
| | |
| | | CInterfaceManager *pInter = static_cast<CInterfaceManager*>(pParam); |
| | | |
| | | pInter->ScanStartCamera(3); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | UINT CInterfaceManager::ScanStartCam_4(LPVOID pParam) |
| | | { |
| | | CInterfaceManager* pInter = static_cast<CInterfaceManager*>(pParam); |
| | | |
| | | pInter->ScanStartCamera(4); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | UINT CInterfaceManager::ScanStartCam_5(LPVOID pParam) |
| | | { |
| | | CInterfaceManager* pInter = static_cast<CInterfaceManager*>(pParam); |
| | | |
| | | pInter->ScanStartCamera(5); |
| | | |
| | | return 0; |
| | | } |
| | |
| | | Param.nScanCount = g_pBase->m_nScanCount; |
| | | Param.nBoardIdx = g_pBase->m_nBoardID[iCam]; |
| | | Param.nBoardCh = g_pBase->m_nBoardCh[iCam]; |
| | | Param.nImgFlipX = 0; |
| | | Param.nBoardCh = 0; |
| | | Param.nImgFlipX = 0; |
| | | Param.nCameraIdx = iCam; |
| | | Param.nCameraScan = 0; |
| | | |
| | |
| | | Param.nBoardIdx = nBoardId; |
| | | } |
| | | |
| | | if(Param.nBoardIdx < 0) |
| | | if (Param.nBoardIdx < 0) { |
| | | Param.nBoardIdx = nBoardId; |
| | | } |
| | | |
| | | g_pLog->DisplayMessage( _T("Grabber Board ID[%d-%d]-Init"), Param.nBoardIdx, iCam); |
| | | |
| | |
| | | double dRatio = 1. - tmp; |
| | | dRatio = dRatio - 0.01 < 0.0 ? 1.0 : dRatio; |
| | | |
| | | g_pLog->DisplayMessage(_T("Save Full Image Start(%s, %s, %d, %d, %d)"), strPath, PANEL_SIDE[iSide], nStartY, nImgHeight, nQuality); |
| | | |
| | | #if 0 |
| | | IplImage* pImg = cvCreateImageHeader(cvSize(nImgWidth, nImgHeight), 8, 1); |
| | | IplImage* pImgNew = cvCreateImage(cvSize((int)(nImgWidth * dRatio), (int)(nImgHeight * dRatio)), 8, 1); |