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 | 145 +++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 141 insertions(+), 4 deletions(-) diff --git a/ReviewSystem/ReviewSystem/DlgReviewOffSetTool.cpp b/ReviewSystem/ReviewSystem/DlgReviewOffSetTool.cpp index 2b88f05..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); } @@ -90,6 +94,7 @@ ON_MESSAGE(WM_OFFSETTOOL_MESSAGE2, OnUpdatedata) ON_BN_CLICKED(IDC_BUTTON_SAVE_SETTING_FILE, &DlgReviewOffSetTool::OnBnClickedButtonSaveSettingFile) ON_BN_CLICKED(IDC_CHECK_OFFSET_MODE, &DlgReviewOffSetTool::OnBnClickedCheckOffsetMode) + ON_BN_CLICKED(IDC_OFFSET_LOAD, &DlgReviewOffSetTool::OnBnClickedOffsetLoad) END_MESSAGE_MAP() @@ -422,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++) @@ -440,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; @@ -450,7 +488,10 @@ } } - + if (b_checkHardAlarm == TRUE) + { + AfxMessageBox(_T("湲곗� 珥덇낵�맂 Offset 媛믪씠 議댁옱 �빀�땲�떎."), MB_OK | MB_ICONINFORMATION); + } //UpdateData(FALSE); //Invalidate(TRUE); } @@ -869,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; } @@ -914,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; @@ -992,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; @@ -1033,6 +1091,31 @@ 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; + strMessage.Format(_T("Save Offset Success!!")); + + if (IDOK == AfxMessageBox(strMessage, MB_OK | MB_ICONINFORMATION)) + { + 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; } @@ -1055,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; @@ -1087,3 +1178,49 @@ } + +/*< 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 >*/ + + +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