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 작업 내역 병합)

---
 DitGlassRawMessenger/DitGlassRawMessenger/DitGlassRawMessengerDlg.cpp |   88 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 83 insertions(+), 5 deletions(-)

diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/DitGlassRawMessengerDlg.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/DitGlassRawMessengerDlg.cpp
index bf1c099..1fdb749 100644
--- a/DitGlassRawMessenger/DitGlassRawMessenger/DitGlassRawMessengerDlg.cpp
+++ b/DitGlassRawMessenger/DitGlassRawMessenger/DitGlassRawMessengerDlg.cpp
@@ -131,7 +131,6 @@
 	m_vecStrGridDefectHeader.push_back("MergeState");
 
 }
-
 void CDitGlassRawMessengerDlg::DoDataExchange(CDataExchange* pDX)
 {
 	CDialog::DoDataExchange(pDX);
@@ -166,6 +165,9 @@
 	ON_BN_CLICKED(IDC_BTN_STACKAPPLY, &CDitGlassRawMessengerDlg::OnBnClickedBtnStackapply)
 	ON_BN_CLICKED(IDC_TEST_CMD, &CDitGlassRawMessengerDlg::OnBnClickedTestCmd)
 	ON_BN_CLICKED(IDC_BTN_FTP_MANUALUPLOAD, &CDitGlassRawMessengerDlg::OnBnClickedBtnFtpManualupload)
+	/* <LJC 20211122 : #3820 ADD Start> */
+	ON_WM_COPYDATA()
+	/* <LJC 20211122 : #3820 ADD End> */
 END_MESSAGE_MAP()
 
 void GetCompileTime(tm& timestruct)
@@ -196,6 +198,12 @@
 
 BOOL CDitGlassRawMessengerDlg::OnInitDialog()
 {
+
+	/* <LJC 20220407 : #4053 MOD Start> */
+	CString strTemp;
+	strTemp.Format(_T("Version : %s %s"), _T(__DATE__), _T(__TIME__));
+	AKLOG("DITRawMessenger 프로그램 실행( : %s )", strTemp);
+	/* <LJC 20220407 : #4053 MOD End> */
 	CDialog::OnInitDialog();
 
 	DragAcceptFiles(TRUE);
@@ -251,9 +259,13 @@
 		akFileDB.getItem("DataMaxNumCell", &m_ConfigOption.m_nMaxDataNumCell, 200);
 		akFileDB.getItem("DataMaxNumDefect", &m_ConfigOption.m_nMaxDataNumDefect, 50000);
 		akFileDB.getItem("SelectRawType", &m_ConfigOption.m_nSelectRawType, 0);
-		akFileDB.getItem("LogFilePath", m_ConfigOption.m_strLogFilePath, "c:\\AOIServer\\LogRawMessenger\\LogRawMessenger");
+		akFileDB.getItem("LogFilePath", m_ConfigOption.m_strLogFilePath, "D:\\AOIServer\\LogRawMessenger\\LogRawMessenger");
 		akFileDB.getItem("Stack_Use", &m_ConfigOption.m_bUseStack, 0);
 		akFileDB.getItem("Stack_LocalPath", m_ConfigOption.m_strStackLocalPath, "D:\\DIT_ResultData\\Stack");
+		/*< KJG 20211024 - #3487 ADD Start >*/
+		akFileDB.getItem("RawMerge_Use", &m_ConfigOption.m_bUseRawMerge, 0);
+		akFileDB.getItem("RawMerge_LocalPath", m_ConfigOption.m_strRawMergeLocalPath, "D:\\DIT_ResultData\\RawMerge");
+		/*< KJG 20211024 - #3487 ADD End >*/
 		akFileDB.getItem("Stack_EquipID",m_ConfigOption.m_strStackEquipID, "AAAAA");
 		akFileDB.getItem("Stack_Param1",m_ConfigOption.m_strStackParam1, "");
 		akFileDB.getItem("Stack_Param2",m_ConfigOption.m_strStackParam2, "");
@@ -263,6 +275,8 @@
 
 		((CButton*)GetDlgItem(IDC_CHECK_STACKFILEREAD))->SetCheck(m_ConfigOption.m_bUseStack);
 		SetDlgItemText(IDC_EDIT_STACK_LOCALSAVEPATH, m_ConfigOption.m_strStackLocalPath);
+		((CButton*)GetDlgItem(IDC_CHECK_RAWMERGEFILEREAD))->SetCheck(m_ConfigOption.m_bUseRawMerge);
+		SetDlgItemText(IDC_EDIT_RAWMERGE_LOCALSAVEPATH, m_ConfigOption.m_strRawMergeLocalPath);
 		SetDlgItemText(IDC_EDIT_STACK_EQUIPID, m_ConfigOption.m_strStackEquipID);
 		SetDlgItemText(IDC_EDIT_STACK_PARAM1, m_ConfigOption.m_strStackParam1);
 		SetDlgItemText(IDC_EDIT_STACK_PARAM2, m_ConfigOption.m_strStackParam2);
@@ -276,7 +290,7 @@
 
 		CreateDirectory(strPath, NULL);
 		//CakLoggerExt::getInstance()->setWriteFileMode(m_ConfigOption.m_strLogFilePath);
-		CakLoggerExt::getInstance()->setWriteFileMode2("C:\\DIT_LogData\\", "logGlassRawMessenger");
+		CakLoggerExt::getInstance()->setWriteFileMode2("D:\\DIT_LogData\\", "logGlassRawMessenger");
 		CakLoggerExt::getInstance()->m_hParent = GetSafeHwnd();
 
 		m_ctrlLoggerList;
@@ -434,7 +448,7 @@
 		{
 			HMENU hMenu = CreatePopupMenu();
 			AppendMenu(hMenu, MF_STRING, 0, "연구소2파트작품");
-			AppendMenu(hMenu, MF_STRING, WM_DESTROY, "Exit");
+			AppendMenu(hMenu, MF_STRING, WM_DESTROY, "Exit"); 
 			TrackPopupMenu(hMenu, TPM_LEFTALIGN | TPM_RIGHTBUTTON, pos.x, pos.y, 0, GetSafeHwnd(), NULL);
 		}
 		
@@ -593,6 +607,9 @@
 		Sleep(10);
 	}
 	pThis->m_nThreadMainFlag = 0;
+	/* <KMH 20220407 : #4053 ADD Start> */
+	AKLOG("Main Thread End");
+	/* <KMH 20220407 : #4053 ADD End> */
 }
 
 void CDitGlassRawMessengerDlg::MainProcess()
@@ -707,6 +724,12 @@
 			nResult = m_pGlassRawMaker->ReadBinFile(pRawDataBuffer);
 			break;
 		}
+	case grcReviewWriteBIn:
+		{
+			nResult = m_pGlassRawMaker->ReviewWriteBin(pRawDataBuffer);
+			break;
+		}
+ 
 	}
 	
 	PostMessage(UM_GLASSRAW_CLIENTMESSAGE, nCmd);
@@ -756,7 +779,6 @@
 	WriteConfigFile();
 
 }
-
 
 BOOL CDitGlassRawMessengerDlg::DestroyWindow()
 {
@@ -1339,6 +1361,10 @@
 
 	akFileDB.setItem("Stack_Use", m_ConfigOption.m_bUseStack);
 	akFileDB.setItem("Stack_LocalPath", m_ConfigOption.m_strStackLocalPath);
+	/*< KJG 20211024 - #3487 ADD Start >*/
+	akFileDB.setItem("RawMerge_Use", m_ConfigOption.m_bUseRawMerge);
+	akFileDB.setItem("RawMerge_LocalPath", m_ConfigOption.m_strRawMergeLocalPath);
+	/*< KJG 20211024 - #3487 ADD End >*/
 	akFileDB.setItem("Stack_EquipID", m_ConfigOption.m_strStackEquipID);
 	akFileDB.setItem("Stack_Param1",m_ConfigOption.m_strStackParam1);
 	akFileDB.setItem("Stack_Param2",m_ConfigOption.m_strStackParam2);
@@ -1518,6 +1544,10 @@
 {
 	m_ConfigOption.m_bUseStack = ((CButton*)GetDlgItem(IDC_CHECK_STACKFILEREAD))->GetCheck();
 	GetDlgItemText(IDC_EDIT_STACK_LOCALSAVEPATH,m_ConfigOption.m_strStackLocalPath, 256);
+	/*< KJG 20211024 - #3487 ADD Start >*/
+	m_ConfigOption.m_bUseRawMerge = ((CButton*)GetDlgItem(IDC_CHECK_RAWMERGEFILEREAD))->GetCheck();
+	GetDlgItemText(IDC_EDIT_RAWMERGE_LOCALSAVEPATH, m_ConfigOption.m_strRawMergeLocalPath, 256);
+	/*< KJG 20211024 - #3487 ADD End >*/
 	GetDlgItemText(IDC_EDIT_STACK_EQUIPID,m_ConfigOption.m_strStackEquipID, 32);
 	GetDlgItemText(IDC_EDIT_STACK_PARAM1,m_ConfigOption.m_strStackParam1, 32);
 	GetDlgItemText(IDC_EDIT_STACK_PARAM2,m_ConfigOption.m_strStackParam2, 32);
@@ -1599,3 +1629,51 @@
 
 	
 }
+
+/* <LJC 20211122 : #3820 ADD Start> */
+BOOL CDitGlassRawMessengerDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
+{
+	// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
+	CDitGlassRawServer* pServer = (CDitGlassRawServer*)&m_Server;
+	CgrmGlassRawData* pRawDataBuffer = &m_GlassRawDataBuffer;
+	pRawDataBuffer->ImportGlassRaw(pServer->GetGlassRawInfo(), (char*)pServer->GetGlassData(), true);
+	CFTPCopyDataParam* FTPCopyDataParam = ((CFTPCopyDataParam*)pCopyDataStruct->lpData);
+	switch (pCopyDataStruct->dwData)
+	{
+	case COPYDATA_RAW_DOWNLOAD_ACK:
+		{
+		if (FTPCopyDataParam->m_nProcessType == CFTPCopyDataParam::FTPProcessType_DownFile && pServer->GetGlassRawInfo()->m_ServerProcStep == APS_GlassLoading && m_pGlassRawMaker->GetEnableFtpAck() == TRUE)
+		{
+			if (FTPCopyDataParam->m_nSendResultCode == TRUE)
+			{
+				m_pGlassRawMaker->SetEnableFtpAck(FALSE);
+				m_pGlassRawMaker->SearchFIle(pRawDataBuffer);
+				break;
+			}
+			else
+			{
+				m_nMaxMergeList++;
+				m_pGlassRawMaker->DownLoadMergeFile(pRawDataBuffer);
+				if (m_nMaxMergeList > 10)
+				{
+					m_nMaxMergeList = 0;
+					break;
+				}
+
+			}
+		}
+		else
+		{
+			break;
+		}
+		
+		}
+		break;
+
+	default:
+		break;
+	}
+
+	return CDialog::OnCopyData(pWnd, pCopyDataStruct);
+}
+/* <LJC 20211122 : #3820 ADD End> */
\ No newline at end of file

--
Gitblit v1.9.3