From 1fd49a571338b6c946bb05dcdf59ec1468df5c50 Mon Sep 17 00:00:00 2001
From: SWK <sungwk82@diteam.co.kr>
Date: 목, 22 12월 2022 12:31:43 +0900
Subject: [PATCH] ongoing50 #4403 CF AOI Reveiw TACT 지연 개선 1. 일정 시간 유지 신호 처리 시 동기화로 인한 불합리 개선 - 일정 시간 유지 필요 시 스래드풀 작업큐를 이용하여 루프처리 방식으로 변경 - 유지 신호 처리 중 출력 신호 발생 시 작업큐에 등록하여 유지 신호와 결합하여 출력 처리 2. FDC 보고 항목 중 SW 버전 체크 루프 불합리 개선 - 프로그램 시작 시 연동 프로그램 버전 체크 간 실행되지 않는 프로그램이 있는 경우 무한 루프 발생 - 무한 루프로 인한 CPU 점유 상승->루프 중간 Sleep추가 및 코드 간소화 3. 로그 메시지에 시간 ms단위 추가(황만수SM 작업 내역 병합)

---
 ReviewSystem/ReviewSystem/DlgReviewOffSetTool.cpp |  125 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 119 insertions(+), 6 deletions(-)

diff --git a/ReviewSystem/ReviewSystem/DlgReviewOffSetTool.cpp b/ReviewSystem/ReviewSystem/DlgReviewOffSetTool.cpp
index 7092656..f7dfac1 100644
--- a/ReviewSystem/ReviewSystem/DlgReviewOffSetTool.cpp
+++ b/ReviewSystem/ReviewSystem/DlgReviewOffSetTool.cpp
@@ -25,6 +25,8 @@
 	, m_editGlassOffSetmodeScanIndex(0)
 	, m_editGlassOffSetmodeXpos(0)
 	, m_editGlassOffSetmodeYpos(0)
+	, m_dWarnStandard(0)
+	, m_dHardStandard(0)
 {
 	m_EditChangeTargetXpos = 0;
 	m_EditChangeTargetYpos = 0;
@@ -72,6 +74,8 @@
 	DDX_Text(pDX, IDC_EDIT_SCAN_INDEX, m_editGlassOffSetmodeScanIndex);
 	DDX_Text(pDX, IDC_EDIT_MOTOR_XPOS, m_editGlassOffSetmodeXpos);
 	DDX_Text(pDX, IDC_EDIT_MOTOR_YPOS, m_editGlassOffSetmodeYpos);
+	DDX_Text(pDX, IDC_EDIT_WARN_STANDARD, m_dWarnStandard);
+	DDX_Text(pDX, IDC_EDIT_HARD_STANDARD, m_dHardStandard);
 }
 
 
@@ -423,8 +427,10 @@
 	int nRow = 1;
 	int nCol = 1;
 	CString strData;
+	/*< LYW 20211111 - #3766 ADD Start >*/
+	BOOL b_checkHardAlarm = FALSE;
+	/*< LYW 20211111 - #3766 ADD End >*/
 
-	
 	nModuleidx = m_ctrlComboModule.GetCurSel();
 
 	for (int nCamidx = 0; nCamidx < m_nCameraCount; nCamidx++)
@@ -441,8 +447,39 @@
 
 				strData.Format(_T("%.03lf"), pOffSet.dXoffSetValue);
 				m_ctrlGridReviewOffSetInfo.SetItemText(nCol, nRow,strData);
+				/*< LYW 20211111 - #3766 ADD Start >*/
+				if (abs(pOffSet.dXoffSetValue) * 1000 >= m_dHardStandard)
+				{
+					m_ctrlGridReviewOffSetInfo.SetItemBkColour(nCol, nRow, RGB(255, 0, 0));
+					b_checkHardAlarm = TRUE;
+				}
+				else if (abs(pOffSet.dXoffSetValue) * 1000 >= m_dWarnStandard)
+				{
+					m_ctrlGridReviewOffSetInfo.SetItemBkColour(nCol, nRow, RGB(255, 255, 0));
+				}
+				else
+				{
+					m_ctrlGridReviewOffSetInfo.SetItemBkColour(nCol, nRow, RGB(255, 255, 210));
+				}
+				/*< LYW 20211111 - #3766 ADD End >*/
+
 				strData.Format(_T("%.03lf"), pOffSet.dYoffSetValue);
 				m_ctrlGridReviewOffSetInfo.SetItemText( nCol, nRow + 1, strData);
+				/*< LYW 20211111 - #3766 ADD Start >*/
+				if (abs(pOffSet.dYoffSetValue) * 1000 >= m_dHardStandard)
+				{
+					m_ctrlGridReviewOffSetInfo.SetItemBkColour(nCol, nRow + 1, RGB(255, 0, 0));
+					b_checkHardAlarm = TRUE;
+				}
+				else if (abs(pOffSet.dYoffSetValue) * 1000 >= m_dWarnStandard)
+				{
+					m_ctrlGridReviewOffSetInfo.SetItemBkColour(nCol, nRow + 1, RGB(255, 255, 0));
+				}
+				else
+				{
+					m_ctrlGridReviewOffSetInfo.SetItemBkColour(nCol, nRow + 1, RGB(255, 255, 210));
+				}
+				/*< LYW 20211111 - #3766 ADD End >*/
 				nRow += 2;
 			}
 			nRow = 1;
@@ -451,7 +488,10 @@
 		}
 	}
 
-
+	if (b_checkHardAlarm == TRUE)
+	{
+		AfxMessageBox(_T("湲곗� 珥덇낵�맂 Offset 媛믪씠 議댁옱 �빀�땲�떎."), MB_OK | MB_ICONINFORMATION);
+	}
 	//UpdateData(FALSE);
 	//Invalidate(TRUE);
 }
@@ -870,12 +910,17 @@
 		pDlgOffsetTool->InitProcess();
 		pDlgOffsetTool->EnableBT();
 	}
-	else
+	else if(pDlgOffsetTool->nThreadType == 1)
 	{
 		pDlgOffsetTool->DissableBT();
 		pDlgOffsetTool->SaveConfigFile();
 		pDlgOffsetTool->EnableBT();
-
+	}
+	else
+	{
+		pDlgOffsetTool->DissableBT();
+		pDlgOffsetTool->OffsetLoad();
+		pDlgOffsetTool->EnableBT();
 	}
 	return 0;
 }
@@ -915,6 +960,10 @@
 	macroFile.GetItem(_T("CAMERA_COUNT"),m_nCameraCount , 0);
 	macroFile.GetItem(_T("SCAN_COUNT"), m_nScanCount, 0);
 	macroFile.GetItem(_T("XPOS_COUNT"), m_XposCount, 0);
+	/*< LYW 20211111 - #3766 ADD Start >*/
+	macroFile.GetItem(_T("WARN_STANDARD"), m_dWarnStandard, 0);
+	macroFile.GetItem(_T("HARD_STANDARD"), m_dHardStandard, 0);
+	/*< LYW 20211111 - #3766 ADD End >*/
 	CString strItem = _T("");
 	double dXoffset=0;
 	double dYoffset=0;
@@ -993,6 +1042,14 @@
 	strItem.Format(_T("XPOS_COUNT"));
 	macroFile.SetItem(strItem, m_XposCount);
 
+	/*< LYW 20211111 - #3766 ADD Start >*/
+	strItem.Format(_T("WARN_STANDARD"));
+	macroFile.SetItem(strItem, m_dWarnStandard);
+
+	strItem.Format(_T("HARD_STANDARD"));
+	macroFile.SetItem(strItem, m_dHardStandard);
+	/*< LYW 20211111 - #3766 ADD End >*/
+
 	
 	CString strData;
 	double dData= 0;
@@ -1034,6 +1091,15 @@
 
 	bReturn = macroFile.Write(strFilePath);
 
+	/*< LYW 20220525 - #4161 ADD Start >*/
+	CString strRTMSBackUpFilePath;
+	strRTMSBackUpFilePath.Format(_T("%s\\%s"), _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT, REVIEW_OFFSET_CONFIGFILE_NAME);
+
+	if (bReturn)
+	{
+		CopyFile(REVIEW_OFFSET_CONFIGFILE_FULL_PATHNAME, strRTMSBackUpFilePath, FALSE);
+	}
+	/*< LYW 20220525 - #4161 ADD End >*/
 
 	// #3563 LYW_ CF AOI Review Offset �뙆�씪誘명꽣 ���옣�떆 �셿猷� �뙘�뾽 異붽� ADD START
 	CString strMessage;
@@ -1044,6 +1110,11 @@
 		g_pLog->DisplayMessage(_T("Save Offset Success!!"));
 	}
 	// #3563 LYW_ CF AOI Review Offset �뙆�씪誘명꽣 ���옣�떆 �셿猷� �뙘�뾽 異붽� ADD END
+	/*< LYW 20211111 - #3766 ADD Start >*/
+	UpdateGridcontrol();
+	UpdateData(TRUE);
+	Invalidate(FALSE);
+	/*< LYW 20211111 - #3766 ADD End >*/
 
 	return bReturn;
 }
@@ -1067,6 +1138,14 @@
 
 LRESULT DlgReviewOffSetTool::OnUserFunc(WPARAM wParam, LPARAM lParam)
 {
+	int nmsg = (int)wParam;
+	if (nmsg == 0)
+	{
+		nThreadType = 2;
+		m_ctrlProcessBar.SetPos(0);
+		m_pThread = AfxBeginThread(ThradProcess, this);
+		return 0;
+	}
 	UpdateData(FALSE);
 	Invalidate(TRUE);
 	return 0;
@@ -1103,11 +1182,45 @@
 /*< LYW 20211025 - #3684 ADD Start >*/
 void DlgReviewOffSetTool::OnBnClickedOffsetLoad()
 {
-
 	// TODO: �뿬湲곗뿉 而⑦듃濡� �븣由� 泥섎━湲� 肄붾뱶瑜� 異붽��빀�땲�떎.
+	nThreadType = 2;
+	m_ctrlProcessBar.SetPos(0);
+	m_pThread = AfxBeginThread(ThradProcess, this);
+}
+void DlgReviewOffSetTool::OffsetLoad()
+{
 	ReadConfigFile();
 	UpdateGridcontrol();
 	UpdateData(TRUE);
 	Invalidate(FALSE);
 }
-/*< LYW 20211025 - #3684 ADD End >*/
\ No newline at end of file
+/*< LYW 20211025 - #3684 ADD End >*/
+
+
+BOOL DlgReviewOffSetTool::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
+{
+	// TODO: �뿬湲곗뿉 �듅�닔�솕�맂 肄붾뱶瑜� 異붽� 諛�/�삉�뒗 湲곕낯 �겢�옒�뒪瑜� �샇異쒗빀�땲�떎.
+	if (m_ctrlGridReviewOffSetInfo.GetSafeHwnd() && wParam == (WPARAM)m_ctrlGridReviewOffSetInfo.GetDlgCtrlID())
+	{
+		//*pResult = 1;
+		GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam;
+		if (NM_DBLCLK == pDispInfo->hdr.code)
+		{
+			//int nCol = pDispInfo->item.col;
+			if (pDispInfo->item.row)
+			{
+				int nRow = (pDispInfo->item.row) - 1;
+				int CamIdx = nRow / m_nScanCount;
+				int scanIdx = nRow % m_nScanCount;
+
+				if (m_pDDL2P)
+				{
+					m_pDDL2P->IDRO2P_SetOffsetPram(CamIdx, scanIdx, TRUE);
+				}
+
+			}
+		}
+	}
+
+	return CDialogEx::OnNotify(wParam, lParam, pResult);
+}

--
Gitblit v1.9.3