From aa2c9d14b1b4058639d938ef7f943c7c7fc7c210 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期四, 14 八月 2025 14:57:08 +0800
Subject: [PATCH] 1. 离线全部执行和在线执行时可以选择启用或禁用侧面检功能
---
EdgeInspector_App/Recipe/HardwareSettings.cpp | 342 ++++++++++++++++++++++++++++++++------------------------
1 files changed, 197 insertions(+), 145 deletions(-)
diff --git a/EdgeInspector_App/Recipe/HardwareSettings.cpp b/EdgeInspector_App/Recipe/HardwareSettings.cpp
index 2a5f35c..f5f9d15 100644
--- a/EdgeInspector_App/Recipe/HardwareSettings.cpp
+++ b/EdgeInspector_App/Recipe/HardwareSettings.cpp
@@ -1,4 +1,4 @@
-#include "StdAfx.h"
+锘�#include "StdAfx.h"
#include "HardwareSettings.h"
//////////////////////////////////////////////////////////////////////////
@@ -1034,6 +1034,9 @@
// ly,2025.07.10
m_bSaveResultByHour = rhs.m_bSaveResultByHour;
+ // ly,2025.08.14
+ m_bUseRipInspection = rhs.m_bUseRipInspection;
+
// ly,2025.07.07
m_bEnableAutoCopy = rhs.m_bEnableAutoCopy;
m_strCopyToolExePath = rhs.m_strCopyToolExePath;
@@ -1138,84 +1141,97 @@
BOOL CHardwareSettings::SetCameraCount(int nCameraCount,int nScanCount)
{
- CCameraSettings *ptmpSet = NULL;
- int nBackCamCnt = 0,nBackScanCnt = 0;
- int iLoop;
-
- if(m_pCameraSettings != NULL)
- {
- if((m_nCameraCount*m_nScanCount) > 0)
- {
- ptmpSet = new CCameraSettings[m_nCameraCount*m_nScanCount];
-
- for(iLoop=0;iLoop<m_nCameraCount*m_nScanCount;iLoop++)
- {
- ptmpSet[iLoop] = m_pCameraSettings[iLoop];
- }
- nBackCamCnt = m_nCameraCount;
- nBackScanCnt = m_nScanCount;
- }
- delete[] m_pCameraSettings, m_pCameraSettings=NULL;
- }
-
- m_nCameraCount = nCameraCount;
- m_nScanCount = nScanCount;
-
- if(m_nCameraCount <= 0 || m_nScanCount <= 0)
+ if (nCameraCount <= 0 || nScanCount <= 0) {
return FALSE;
+ }
- m_pCameraSettings = new CCameraSettings[m_nCameraCount*m_nScanCount];
+ // 鍏堜繚瀛樻棫鐨勭浉鏈哄拰鎵弿鏁�
+ static int nOldCameraCount = m_nCameraCount;
+ static int nOldScanCount = m_nScanCount;
- int iCam,iScan;
-
- iLoop=0;
- for(iCam=0;iCam<m_nCameraCount;iCam++)
- {
- for(iScan=0;iScan<m_nScanCount;iScan++)
- {
- m_pCameraSettings[iLoop].m_iCamera = iCam;
- m_pCameraSettings[iLoop].m_iScan = iScan;
- iLoop++;
+ // 淇濆瓨鏃ц缃暟鎹�
+ CCameraSettings* pOldSettings = nullptr;
+ if (m_pCameraSettings != nullptr && nOldCameraCount > 0 && nOldScanCount > 0)
+ {
+ pOldSettings = new CCameraSettings[nOldCameraCount * nOldScanCount];
+ for (int i = 0; i < nOldCameraCount * nOldScanCount; ++i) {
+ pOldSettings[i] = m_pCameraSettings[i];
}
}
- if(ptmpSet != NULL)
- {
- for(iLoop=0;iLoop<nBackCamCnt*nBackScanCnt;iLoop++)
- {
- SetCameraSettings(&ptmpSet[iLoop]);
- }
- delete[] ptmpSet, ptmpSet=NULL;
+ // 鏇存柊鎴愬憳鍙橀噺
+ m_nCameraCount = nCameraCount;
+ m_nScanCount = nScanCount;
+
+ // 閲嶆柊鍒嗛厤鏂扮粨鏋�
+ int nNewCount = m_nCameraCount * m_nScanCount;
+ int nOldCount = nOldCameraCount * nOldScanCount;
+ if (m_pCameraSettings != nullptr) {
+ delete[] m_pCameraSettings;
+ m_pCameraSettings = nullptr;
}
+ m_pCameraSettings = new CCameraSettings[m_nCameraCount * m_nScanCount];
+
+ // 鍒濆鍖栨柊缁撴瀯
+ int iIndex = 0;
+ for (int iCam = 0; iCam < m_nCameraCount; ++iCam) {
+ for (int iScan = 0; iScan < m_nScanCount; ++iScan, ++iIndex) {
+ m_pCameraSettings[iIndex].m_iCamera = iCam;
+ m_pCameraSettings[iIndex].m_iScan = iScan;
+ }
+ }
+
+ // 鎷疯礉鍥炴棫璁剧疆
+ if (pOldSettings != nullptr) {
+ for (int iCam = 0; iCam < nOldCameraCount; ++iCam) {
+ for (int iScan = 0; iScan < nOldScanCount; ++iScan) {
+ if (iCam < m_nCameraCount && iScan < m_nScanCount) {
+ int nNewIndex = iCam * m_nScanCount + iScan;
+ int nOldIndex = iCam * nOldScanCount + iScan;
+
+ if (nNewIndex < nNewCount && nOldIndex < nOldCount)
+ {
+ SetCameraSettings(&pOldSettings[nOldIndex]);
+ }
+ }
+ }
+ }
+ delete[] pOldSettings;
+ }
+
+ // 鏇存柊鏃х殑鐩告満鍜屾壂鎻忔暟
+ nOldCameraCount = m_nCameraCount;
+ nOldScanCount = m_nScanCount;
return TRUE;
}
-CCameraSettings *CHardwareSettings::GetCameraSettings(int iCamera,int iScan)
+CCameraSettings* CHardwareSettings::GetCameraSettings(int iCamera,int iScan)
{
- if(iCamera >= m_nCameraCount || iScan >= m_nScanCount
- || m_nCameraCount <= 0 || m_nScanCount <= 0)
- return NULL;
-
- for(int iLoop=0;iLoop<m_nCameraCount*m_nScanCount;iLoop++)
- {
- if(m_pCameraSettings[iLoop].m_iCamera == iCamera && m_pCameraSettings[iLoop].m_iScan == iScan)
- return &m_pCameraSettings[iLoop];
+ if (nullptr == m_pCameraSettings || iCamera < 0 || iScan < 0) {
+ return nullptr;
}
- return NULL;
+ if (iCamera >= m_nCameraCount || iScan >= m_nScanCount) {
+ return nullptr;
+ }
+
+ int nIndex = iCamera * m_nScanCount + iScan;
+ return &m_pCameraSettings[nIndex];
}
BOOL CHardwareSettings::SetCameraSettings(CCameraSettings *pCamera)
{
- if(pCamera == NULL || m_nCameraCount <= 0 || m_nScanCount <= 0)
+ if (pCamera == nullptr || m_pCameraSettings == nullptr) {
return FALSE;
+ }
- CCameraSettings *pOrgCam = GetCameraSettings(pCamera->m_iCamera,pCamera->m_iScan);
- if(pOrgCam == NULL)
+ CCameraSettings* pTarget = GetCameraSettings(pCamera->m_iCamera, pCamera->m_iScan);
+ if (pTarget == nullptr) {
return FALSE;
+ }
- *pOrgCam = *pCamera;
+ *pTarget = *pCamera;
return TRUE;
}
@@ -1268,6 +1284,10 @@
// ly,2025.07.10
else if ((void*)&m_bSaveResultByHour == pValue)
str = _T("SAVE_RESULT_BY_HOUR");
+
+ // ly,2025.08.14
+ else if ((void*)&m_bUseRipInspection == pValue)
+ str = _T("USE_RIP_INSPECTION");
// ly,2025.07.07
else if ((void*)&m_bEnableAutoCopy == pValue)
@@ -1438,6 +1458,12 @@
if (str.IsEmpty() == TRUE)
return FALSE;
BasicInfoFile.GetItemValue((TCHAR*)(LPCTSTR)str, m_bSaveResultByHour, FALSE);
+
+ // ly,2025.08.14
+ str = GetFileString((void*)&m_bUseRipInspection);
+ if (str.IsEmpty() == TRUE)
+ return FALSE;
+ BasicInfoFile.GetItemValue((TCHAR*)(LPCTSTR)str, m_bUseRipInspection, FALSE);
// ly,2025.07.07
str = GetFileString((void*)&m_bEnableAutoCopy);
@@ -1619,6 +1645,12 @@
return FALSE;
Register.GetItemValue((TCHAR*)(LPCTSTR)str, m_bSaveResultByHour, FALSE);
+ // ly,2025.08.14
+ str = GetFileString((void*)&m_bUseRipInspection);
+ if (str.IsEmpty() == TRUE)
+ return FALSE;
+ Register.GetItemValue((TCHAR*)(LPCTSTR)str, m_bUseRipInspection, FALSE);
+
// ly,2025.07.07
str = GetFileString((void*)&m_bEnableAutoCopy);
if (str.IsEmpty() == TRUE)
@@ -1782,6 +1814,12 @@
return FALSE;
Register.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bSaveResultByHour);
+ // ly,2025.08.14
+ str = GetFileString((void*)&m_bUseRipInspection);
+ if (str.IsEmpty() == TRUE)
+ return FALSE;
+ Register.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bUseRipInspection);
+
// ly,2025.07.07
str = GetFileString((void*)&m_bEnableAutoCopy);
if (str.IsEmpty() == TRUE)
@@ -1813,33 +1851,39 @@
BOOL CHardwareSettings::WriteHardwareSettingsFile(CString strFilePath)
{
- CConfig BasicInfoFile;
- CString str;
- int iCam,iScan,iLight,iLoop;
+ g_pLog->DisplayMessage(_T("HWSettings Start writing hardware settings to file: %s"), strFilePath);
- if(BasicInfoFile.SetRegiConfig(NULL, NULL, (TCHAR*)(LPCTSTR)strFilePath, FileMap_Mode) == FALSE)
- {
+ int iCam, iScan, iLight, iLoop;
+
+ CConfig BasicInfoFile;
+ if(BasicInfoFile.SetRegiConfig(NULL, NULL, (TCHAR*)(LPCTSTR)strFilePath, FileMap_Mode) == FALSE) {
CFile File;
- if (!File.Open((TCHAR*)(LPCTSTR)strFilePath, CFile::modeCreate))
- {
+ if (!File.Open((TCHAR*)(LPCTSTR)strFilePath, CFile::modeCreate)) {
+ DWORD dwErr = GetLastError();
+ g_pLog->DisplayMessage(_T("HWSettings failed | Path=%s | Error=%lu"), strFilePath, dwErr);
return FALSE;
}
File.Close();
}
+ CString str;
str = GetFileString((void *)&m_nCameraCount);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
+
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nCameraCount);
str = GetFileString((void *)&m_nScanCount);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nScanCount);
str = GetFileString((void *)&m_nBoardType);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nBoardType);
// str = GetFileString((void *)&m_dOneScanTime);
@@ -1848,198 +1892,206 @@
// BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_dOneScanTime);
str = GetFileString((void *)&m_strMachineName);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
- BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,(TCHAR*)(LPCTSTR)m_strMachineName);
+ }
+ BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,(TCHAR*)(LPCTSTR)m_strMachineName);
str = GetFileString((void *)&m_strLineID);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
+
return FALSE;
- BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,(TCHAR*)(LPCTSTR)m_strLineID);
+ }
+ BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,(TCHAR*)(LPCTSTR)m_strLineID);
str = GetFileString((void *)&m_nPLCSignalRetry);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nPLCSignalRetry);
str = GetFileString((void *)&m_bInsDirReverse);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_bInsDirReverse);
str = GetFileString((void *)&m_bUseColorVisual);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_bUseColorVisual);
str = GetFileString((void *)&m_nSaveImageQuality);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nSaveImageQuality);
- if(m_pCameraSettings != NULL)
- {
+ if (m_pCameraSettings != NULL) {
iLoop = 0;
- for(iCam=0;iCam<m_nCameraCount;iCam++)
- {
- for(iScan=0;iScan<m_nScanCount;iScan++)
- {
- m_pCameraSettings[iLoop].WriteHardwareSettingsFile(&BasicInfoFile);
+ for (iCam = 0; iCam < m_nCameraCount; iCam++) {
+ for (iScan = 0; iScan < m_nScanCount; iScan++) {
+ m_pCameraSettings[iLoop].WriteHardwareSettingsFile(&BasicInfoFile);
iLoop++;
}
}
}
str = GetFileString((void *)&m_nLightCount_Trans);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nLightCount_Trans);
str = GetFileString((void *)&m_nLightCount_Reflect);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nLightCount_Reflect);
str = GetFileString((void *)&m_nFolderRemoveDay);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nFolderRemoveDay);
- if(m_pLightSettings != NULL)
- {
- for(iLight=0;iLight<m_nLightCount_Trans+m_nLightCount_Reflect;iLight++)
- {
+ if (m_pLightSettings != NULL) {
+ for (iLight = 0; iLight < m_nLightCount_Trans + m_nLightCount_Reflect; iLight++) {
m_pLightSettings[iLight].WriteHardwareSettingsFile(&BasicInfoFile);
- }
+ }
}
m_PLCSettings.WriteHardwareSettingsFile(&BasicInfoFile);
-
m_SoftWareSettings.WriteHardwareSettingsFile(&BasicInfoFile);
-
str = GetFileString((void *)&m_bUseFreerun);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,(int) m_bUseFreerun);
str = GetFileString((void *)&m_nFreerunPeriod);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nFreerunPeriod);
str = GetFileString((void *)&m_nFreerunExposureTime);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nFreerunExposureTime);
str = GetFileString((void *)&m_bUse_MvsolTriggerControl);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_bUse_MvsolTriggerControl);
str = GetFileString((void *)&m_nPort_MvsolTriggerControl);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_nPort_MvsolTriggerControl);
str = GetFileString((void *)&m_bUse_SaveDebugImage);
- if(str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str,m_bUse_SaveDebugImage);
// ly,2025.07.10
str = GetFileString((void*)&m_bSaveResultByHour);
- if (str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bSaveResultByHour);
+
+ // ly,2025.08.14
+ str = GetFileString((void*)&m_bUseRipInspection);
+ if (str.IsEmpty() == TRUE) {
+ return FALSE;
+ }
+ BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bUseRipInspection);
// ly,2025.07.07
str = GetFileString((void*)&m_bEnableAutoCopy);
- if (str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bEnableAutoCopy);
+
str = GetFileString((void*)&m_strCopyToolExePath);
- if (str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, m_strCopyToolExePath);
+
str = GetFileString((void*)&m_strCopyToolConfigPath);
- if (str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, m_strCopyToolConfigPath);
+
str = GetFileString((void*)&m_bEnableAutoDelete);
- if (str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bEnableAutoDelete);
+
str = GetFileString((void*)&m_strDeleteToolExePath);
- if (str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
+ }
+
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, m_strDeleteToolExePath);
str = GetFileString((void*)&m_strDeleteToolConfigPath);
- if (str.IsEmpty() == TRUE)
+ if (str.IsEmpty() == TRUE) {
return FALSE;
- BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, m_strDeleteToolConfigPath);
+ }
+ BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, m_strDeleteToolConfigPath);
BasicInfoFile.WriteToFile();
+
+ g_pLog->DisplayMessage(_T("HWSettings Finished writing hardware settings file: %s"), strFilePath);
return TRUE;
}
-
int CHardwareSettings::GetScanToDimension(DimensionDir eDir)
{
- int iScan,iFindScan;
- int iCam;
- CCameraSettings *pCamera;
-
- iFindScan = -1;
- for(iCam=0;iCam<GetCameraCount();iCam++)
- {
- for(iScan=0;iScan<GetScanCount();iScan++)
- {
- pCamera = GetCameraSettings(iCam,iScan);
- if(pCamera == NULL)
- continue;
-
- if(pCamera->m_eDimension == eDir)
- {
- iFindScan = iScan;
- break;
+ for (int iCam = 0; iCam < GetCameraCount(); ++iCam) {
+ for (int iScan = 0; iScan < GetScanCount(); ++iScan) {
+ CCameraSettings* pCamera = GetCameraSettings(iCam, iScan);
+ if (pCamera != nullptr && pCamera->m_eDimension == eDir) {
+ return iScan;
}
}
-
- if(iFindScan != -1)
- break;
}
- return iFindScan;
+ return -1;
}
-CAMERA_SCANDIR CHardwareSettings::GetScanToScanDir(int iCam,int iScan)
+CAMERA_SCANDIR CHardwareSettings::GetScanToScanDir(int iCam, int iScan)
{
- CCameraSettings *pCamera;
-
- pCamera = GetCameraSettings(iCam,iScan);
- if(pCamera == NULL)
+ CCameraSettings *pCamera = GetCameraSettings(iCam, iScan);
+ if (pCamera == nullptr) {
return SCANGLASS_NONE;
+ }
return pCamera->m_eScanDir;
}
int CHardwareSettings::GetCameraIndexToDimension(DimensionDir eDir)
{
- CCameraSettings *pCamera;
- int iCam,iScan;
+ if (m_pCameraSettings == nullptr) {
+ return -1;
+ }
- for(iCam=0;iCam<GetCameraCount();iCam++)
- {
- for(iScan=0;iScan<GetScanCount();iScan++)
- {
- pCamera = GetCameraSettings(iCam,iScan);
- if(pCamera == NULL)
- continue;
-
- if(pCamera->m_eDimension == eDir)
- {
+ for (int iCam = 0; iCam < GetCameraCount(); ++iCam) {
+ for (int iScan = 0; iScan < GetScanCount(); ++iScan) {
+ CCameraSettings* pCamera = GetCameraSettings(iCam, iScan);
+ if (pCamera && pCamera->m_eDimension == eDir) {
return iCam;
}
}
--
Gitblit v1.9.3