mrDarker
2025-08-22 f8ad0695ff2431cb90640be52b523d6434bdbf83
EdgeInspector_App/View/ViewMain_ScanImage.cpp
@@ -1,4 +1,4 @@
// ViewScanImage.cpp : 备泅 颇老涝聪促.
// ViewScanImage.cpp : 备泅 颇老涝聪促.
//
#include "stdafx.h"
@@ -20,7 +20,7 @@
};
// CViewScanImage 措拳 惑磊涝聪促.
// CViewScanImage 措拳 惑磊涝聪促.
IMPLEMENT_DYNAMIC(CViewMain_ScanImage, CDialogEx)
@@ -163,7 +163,7 @@
END_EVENTSINK_MAP()
// CViewScanImage 皋矫瘤 贸府扁涝聪促.
// CViewScanImage 皋矫瘤 贸府扁涝聪促.
BOOL CViewMain_ScanImage::OnInitDialog()
{
   UpdateData(FALSE);
@@ -970,7 +970,7 @@
void CViewMain_ScanImage::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
   // TODO: 咯扁俊 皋矫瘤 贸府扁 内靛甫 眠啊 棺/肚绰 扁夯蔼阑 龋免钦聪促.
   // TODO: 咯扁俊 皋矫瘤 贸府扁 内靛甫 眠啊 棺/肚绰 扁夯蔼阑 龋免钦聪促.
   if(!pScrollBar)
   {
      return CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
@@ -1159,8 +1159,9 @@
void CViewMain_ScanImage::SaveFullImageAll()
{
   if(m_pGlassData == NULL || m_IV2M == NULL)
   if (m_pGlassData == NULL || m_IV2M == NULL) {
      return;
   }
   int            iView;
   CPoint         ptStart;
@@ -1170,7 +1171,7 @@
   int            iSide;
   int            nTotalLength = 0;
   int            nFrame = 0;
   CGlassRecipe *pGlassRcp = m_pGlassData->GetGlassRecipe();
   CGlassRecipe    *pGlassRcp = m_pGlassData->GetGlassRecipe();
#if OFFLINE_KEY == 1
   if (NULL == pGlassRcp) return;
@@ -1179,81 +1180,72 @@
   CString         strRcpName = pGlassRcp->GetRecipeName();
   CString         strGlassID = g_pBase->m_strHPanelID;
   if(strGlassID.IsEmpty() == TRUE)
   {
   if(strGlassID.IsEmpty() == TRUE) {
      strGlassID = _T("Manual_ID");
   }
   if(strRcpName.IsEmpty() == TRUE)
   {
   if(strRcpName.IsEmpty() == TRUE) {
      strRcpName = _T("TestRcp");
   }
   strGlassID.Trim(_T(' '));
   CTime   time = CTime::GetCurrentTime();
   CString         strDate,strTime;
   CString   strDate, strTime;
   strDate.Format(_T("%04d%02d%02d"),time.GetYear(),time.GetMonth(),time.GetDay());
   strTime.Format(_T("%02d%02d%02d"),time.GetHour(),time.GetMinute(),time.GetSecond());
   for(iView=0;iView<MAX_DIMENSION_COUNT;iView++)
   {
   for(iView=0;iView<MAX_DIMENSION_COUNT;iView++) {
      iSide  = GetSideIdx(iView);      
      int         iCam = m_pHardware->GetCameraIndexToDimension((DimensionDir)iSide);
      int         iScan = m_pHardware->GetScanToDimension((DimensionDir)iSide);
      int   iCam = m_pHardware->GetCameraIndexToDimension((DimensionDir)iSide);
      int   iScan = m_pHardware->GetScanToDimension((DimensionDir)iSide);
      CCameraSettings *pCamera = m_pHardware->GetCameraSettings(iCam,iScan);
      if(pCamera == NULL)
      if (pCamera == NULL) {
         return;
      }
      nTotalLength = (pCamera->m_nGrabFrameCount-1)*pCamera->m_FrameSize.cy;
      //nFrame = nTotalLength/nOneFrameSize;
      ptStart.x = 0;
      ptStart.y =  max(0,0);
      ptStart.y = max(0,0);
      int         nMaxSize = (pCamera->m_nGrabFrameCount-1)*pCamera->m_FrameSize.cy;
      int   nMaxSize = (pCamera->m_nGrabFrameCount-1)*pCamera->m_FrameSize.cy;
      CSide_Data* pSideData = m_pGlassData->GetSideData((DimensionDir)iSide);
      if(pSideData != NULL)
      {
      if(pSideData != NULL) {
         ptStart.y = max(0,pSideData->m_nGlassStartLine-1000);
         nTotalLength = min((int)((pSideData->m_nPreGlassEndLine + 1000) - ptStart.y),nMaxSize);
      }   
      if(nTotalLength < 10000)
      if (nTotalLength < 10000) {
         nTotalLength = nMaxSize;
      }
      nFrame = nTotalLength/nOneFrameSize;
      if(ptStart.y < 0)
      nFrame = nTotalLength / nOneFrameSize;
      if (ptStart.y < 0) {
         ptStart.y = 0;
      for(int i = 0; i < nFrame ; i++)
      {
      }
      for(int i = 0; i < nFrame ; i++) {
         nLength = nOneFrameSize;
         if(ptStart.y+nLength >= nMaxSize)
         if (ptStart.y + nLength >= nMaxSize) {
            continue;
         }
         strPath.Format(_T("%s\\DebugFullImage\\%s\\%s\\%s\\%s\\%s__%s_%d"),PATH_INSPECTION_DATA,strDate,strRcpName,strGlassID,strTime,strGlassID,PANEL_SIDE[iSide],i);
         m_IV2M->IV2M_SaveFullImage(strPath,iSide,ptStart,nLength);      
         g_pLog->DisplayMessage(_T("%s %d Save Completed : %s"),PANEL_SIDE[iSide],i,strPath);
         ptStart.y += nLength; 
      }
      nLength = nTotalLength%nOneFrameSize;
      if(nLength > 10)
      {
         if(ptStart.y+nLength < nMaxSize)
         {
      if(nLength > 10) {
         if(ptStart.y+nLength < nMaxSize) {
            strPath.Format(_T("%s\\DebugFullImage\\%s\\%s\\%s\\%s\\%s__%s_%d"),PATH_INSPECTION_DATA,strDate,strRcpName,strGlassID,strTime,strGlassID,PANEL_SIDE[iSide],nFrame);      
            m_IV2M->IV2M_SaveFullImage(strPath,iSide,ptStart,nLength);      
         }         
      }
@@ -1272,18 +1264,20 @@
   int nTotalLength = 0;
   int nFrame = 0;
   if(m_pGlassData == NULL || m_IV2M == NULL)
   if (m_pGlassData == NULL || m_IV2M == NULL) {
      return;
   }
   CGlassRecipe *pGlassRcp = m_pGlassData->GetGlassRecipe();
   CString      strRcpName = pGlassRcp->GetRecipeName();
   int         iCam = m_pHardware->GetCameraIndexToDimension((DimensionDir)iSide);
   int         iScan = m_pHardware->GetScanToDimension((DimensionDir)iSide);
   int   iCam = m_pHardware->GetCameraIndexToDimension((DimensionDir)iSide);
   int   iScan = m_pHardware->GetScanToDimension((DimensionDir)iSide);
   CCameraSettings *pCamera = m_pHardware->GetCameraSettings(iCam,iScan);
   if(pCamera == NULL)
   if (pCamera == NULL) {
      return;
   }
   nTotalLength = pCamera->m_nGrabFrameCount*pCamera->m_FrameSize.cy;
   nFrame = nTotalLength/nOneFrameSize;
@@ -1292,35 +1286,30 @@
   ptStart.y =  max(0,0);
   CSide_Data *pSideData = m_pGlassData->GetSideData((DimensionDir)iSide);
   if(pSideData != NULL)
   {
   if(pSideData != NULL) {
      ptStart.y = max(0,pSideData->m_nGlassStartLine-1000);
      nTotalLength = min((pSideData->m_nGlassEndLine + 1000) - ptStart.y,pCamera->m_nGrabFrameCount*pCamera->m_FrameSize.cy);
   }   
   
   CString         strGlassID = g_pBase->m_strHPanelID;
   if(strGlassID.IsEmpty() == TRUE)
   {
   if(strGlassID.IsEmpty() == TRUE) {
      strGlassID = _T("Manual_ID");
   }
   if(strRcpName.IsEmpty() == TRUE)
   {
   if(strRcpName.IsEmpty() == TRUE) {
      strRcpName = _T("TestRcp");
   }
   strGlassID.Trim(_T(' '));
   CTime   time = CTime::GetCurrentTime();
   CString         strDate,strTime;
   CString   strDate,strTime;
   strDate.Format(_T("%04d%02d%02d"),time.GetYear(),time.GetMonth(),time.GetDay());
   strTime.Format(_T("%02d%02d%02d"),time.GetHour(),time.GetMinute(),time.GetSecond());
   for(int i = 0; i < nFrame ; i++)
   {
   for(int i = 0; i < nFrame ; i++) {
      nLength = nOneFrameSize;
   
      strPath.Format(_T("%s\\DebugFullImage\\%s\\%s\\%s\\%s\\%s__%s_%d"),PATH_INSPECTION_DATA,strDate,strRcpName,strGlassID,strTime,strGlassID,PANEL_SIDE[iSide],i);
@@ -1331,18 +1320,14 @@
      g_pLog->DisplayMessage(_T("%s %d Save Completed : %s"),PANEL_SIDE[iSide],i,strPath);
   }
   nLength = nTotalLength%nOneFrameSize;
   if(nLength)
   {
   nLength = nTotalLength % nOneFrameSize;
   if(nLength) {
      strPath.Format(_T("%s\\DebugFullImage\\%s\\%s\\%s\\%s\\%s__%s_%d"),PATH_INSPECTION_DATA,strDate,strRcpName,strGlassID,strTime,strGlassID,PANEL_SIDE[iSide],nFrame);      
      m_IV2M->IV2M_SaveFullImage(strPath,iSide,ptStart,nLength);      
      g_pLog->DisplayMessage(_T("%s %d Save Completed : %s"),PANEL_SIDE[iSide],nFrame,strPath);
   }
}
UINT CViewMain_ScanImage::ManualProcessAll(LPVOID pParam)