ReviewHistory/ReveiwHistory/DitGlassRawServer.cpp | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
ReviewSystem/ReviewSystem/DlgReviewHistoryTool.cpp | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp | ●●●●● 패치 | 보기 | raw | blame | 히스토리 |
ReviewHistory/ReveiwHistory/DitGlassRawServer.cpp
@@ -15,6 +15,9 @@ CDitGlassRawServer::~CDitGlassRawServer(void) { delete m_pGlassRawData; delete m_pGlassRawInfo; if (m_hMapBasicInfo!=NULL) { ::UnmapViewOfFile(m_hMapBasicInfo); @@ -91,37 +94,40 @@ BOOL CDitGlassRawServer::CreateGlassRawInfo() { if(m_hMapBasicInfo == NULL) { BOOL bCreateMem = TRUE; m_hMapBasicInfo = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE , 0, sizeof(_grmDitGlassRawInfo), SHAREDMEMNAME_BASICINFO); if (::GetLastError() == ERROR_ALREADY_EXISTS) { m_hMapBasicInfo = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,SHAREDMEMNAME_BASICINFO); bCreateMem = FALSE; } if (m_hMapBasicInfo) { m_pGlassRawInfo = (_grmDitGlassRawInfo*)::MapViewOfFile(m_hMapBasicInfo, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(_grmDitGlassRawInfo)); } if(m_hMapBasicInfo == NULL || m_pGlassRawInfo == NULL) { if (m_hMapBasicInfo!=NULL) { ::UnmapViewOfFile(m_hMapBasicInfo); m_pGlassRawInfo = NULL; } m_pGlassRawInfo = NULL; return FALSE; } // if(m_hMapBasicInfo == NULL) // { // BOOL bCreateMem = TRUE; // // m_hMapBasicInfo = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE // , 0, sizeof(_grmDitGlassRawInfo), SHAREDMEMNAME_BASICINFO); // // if (::GetLastError() == ERROR_ALREADY_EXISTS) // { // m_hMapBasicInfo = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,SHAREDMEMNAME_BASICINFO); // bCreateMem = FALSE; // } // // if (m_hMapBasicInfo) // { // m_pGlassRawInfo = (_grmDitGlassRawInfo*)::MapViewOfFile(m_hMapBasicInfo, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(_grmDitGlassRawInfo)); // } // // if(m_hMapBasicInfo == NULL || m_pGlassRawInfo == NULL) // { // if (m_hMapBasicInfo!=NULL) // { // ::UnmapViewOfFile(m_hMapBasicInfo); // m_pGlassRawInfo = NULL; // } // m_pGlassRawInfo = NULL; // return FALSE; // } //0으로 초기화 if(bCreateMem && m_pGlassRawInfo) //if(bCreateMem && m_pGlassRawInfo) //_grmDitGlassRawInfo SemiServer; m_pGlassRawInfo = new _grmDitGlassRawInfo; if (m_pGlassRawInfo) { ZeroMemory(m_pGlassRawInfo,sizeof(_grmDitGlassRawInfo)); @@ -135,7 +141,7 @@ int bytealign = m_pGlassRawInfo->m_nSizeOfGlassData%4; } } //} @@ -144,41 +150,47 @@ BOOL CDitGlassRawServer::CreateGlassRawData() { int nGlassRawSharedSize = (int)(m_pGlassRawInfo->m_nGlassRawDataSize); if(m_hMapGlassData == NULL) { BOOL bCreateMem = TRUE; m_hMapGlassData = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE , 0, nGlassRawSharedSize, SHAREDMEMNAME_GLASSDATA); if (::GetLastError() == ERROR_ALREADY_EXISTS) { m_hMapGlassData = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,SHAREDMEMNAME_GLASSDATA); bCreateMem = FALSE; } if (m_hMapGlassData) { m_pGlassRawData = (char*)::MapViewOfFile(m_hMapGlassData, FILE_MAP_ALL_ACCESS, 0, 0, nGlassRawSharedSize); } if(m_hMapGlassData == NULL || m_pGlassRawData == NULL) { if (m_hMapGlassData != NULL) { ::UnmapViewOfFile(m_hMapGlassData); m_pGlassRawData = NULL; } m_pGlassRawData = NULL; return FALSE; } //0으로 초기화 if(bCreateMem && m_pGlassRawData) ZeroMemory(m_pGlassRawData,sizeof(char)*nGlassRawSharedSize); } int nGlassRawSharedSize = (int)(m_pGlassRawInfo->m_nGlassRawDataSize); // // if(m_hMapGlassData == NULL) // { // BOOL bCreateMem = TRUE; // // m_hMapGlassData = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE // , 0, nGlassRawSharedSize, SHAREDMEMNAME_GLASSDATA); // // if (::GetLastError() == ERROR_ALREADY_EXISTS) // { // m_hMapGlassData = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,SHAREDMEMNAME_GLASSDATA); // bCreateMem = FALSE; // } // // if (m_hMapGlassData) // { // m_pGlassRawData = (char*)::MapViewOfFile(m_hMapGlassData, FILE_MAP_ALL_ACCESS, 0, 0, nGlassRawSharedSize); // } // // if(m_hMapGlassData == NULL || m_pGlassRawData == NULL) // { // if (m_hMapGlassData != NULL) // { // ::UnmapViewOfFile(m_hMapGlassData); // m_pGlassRawData = NULL; // } // m_pGlassRawData = NULL; // return FALSE; // } // // //0으로 초기화 // if(bCreateMem && m_pGlassRawData) ZeroMemory(m_pGlassRawData,sizeof(char)*nGlassRawSharedSize); // } //0으로 초기화 m_pGlassRawData = new char[nGlassRawSharedSize]; if(m_pGlassRawData) ZeroMemory(m_pGlassRawData,sizeof(char)*nGlassRawSharedSize); m_pGlassData = (_grmGlassData*)&m_pGlassRawData[m_pGlassRawInfo->m_nGlassDataPoint]; m_pBlockData = (_grmBlockData*)&m_pGlassRawData[m_pGlassRawInfo->m_nBlockDataPoint]; m_pCellData = (_grmCellData*)&m_pGlassRawData[m_pGlassRawInfo->m_nCellDataPoint]; ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp
@@ -575,23 +575,34 @@ void CDlgDeffectHistroy::OnDblclkListHistoryDefect(NMHDR *pNMHDR, LRESULT *pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. int nPos = m_ctrlListDefectHistory.GetSelectionMark(); if (nPos >= 0) /*< LYW 20211005 - #3662 ADD Start >*/ try { CString strText; strText = m_ctrlListDefectHistory.GetItemText(nPos, 0); int nDefectIdx = _ttoi(strText); if (nDefectIdx < 0) return; LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. //History tool 에 인덱스 번호 넘기기 m_pDDL2P->UpdateSelectDefectInfoMap2(nDefectIdx); int nPos = m_ctrlListDefectHistory.GetSelectionMark(); if (nPos >= 0) { CString strText; strText = m_ctrlListDefectHistory.GetItemText(nPos, 0); int nDefectIdx = _ttoi(strText); if (nDefectIdx < 0) return; //History tool 에 인덱스 번호 넘기기 m_pDDL2P->UpdateSelectDefectInfoMap2(nDefectIdx); } *pResult = 0; } catch (...) { return; } /*< LYW 20211005 - #3662 ADD End >*/ *pResult = 0; } void CDlgDeffectHistroy::OnSize(UINT nType, int cx, int cy) ReviewSystem/ReviewSystem/DlgReviewHistoryTool.cpp
@@ -674,33 +674,44 @@ void CDlgReviewHistoryTool::OnDblclkList1() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. CString strSelect, strGlassID, strStepID, strStepTime; int nTemp, nTemp2; int nidx = 0; /*< LYW 20211005 - #3662 ADD Start >*/ try { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. CString strSelect, strGlassID, strStepID, strStepTime; int nTemp, nTemp2; int nidx = 0; nidx = m_ctrlHistoryList.GetCurSel(); nidx = m_ctrlHistoryList.GetCurSel(); SetSelectIndex(nidx); bool bSelect = false; SetSelectIndex(nidx); bool bSelect = false; CGlassResult* pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(0); CGlassResult* pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(0); pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(GetSelectIndex()); SetHistoryTemp(GetSelectIndex()); const SDefectFilter *pDefectFilter = m_pDDL2P->ISP2P_GetDefectFilter(); //taek 210213 pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(GetSelectIndex()); SetHistoryTemp(GetSelectIndex()); const SDefectFilter *pDefectFilter = m_pDDL2P->ISP2P_GetDefectFilter(); //taek 210213 if(pHistoryResult == NULL) return; if(pDefectFilter == NULL) return; if (pHistoryResult == NULL) return; if (pDefectFilter == NULL) return; //디펙 맵 표현 및 그리드 표현 m_pDlgDefectHistory->UpdateProcessStatus(pHistoryResult); //그리드 표현 m_pDlgDefectHistoryMap->UpdateDefectFilter(pDefectFilter); m_pDlgDefectHistoryMap->UpdateProcessStatus(pHistoryResult); //디펙 맵 표현 UpdateProcess(pHistoryResult); SetDefectImage(GetReviewName(), m_pHistoryTemp); GetHistoryList(); //한번 갱신 해주고 처리하자 m_bHistory = true; //디펙 맵 표현 및 그리드 표현 m_pDlgDefectHistory->UpdateProcessStatus(pHistoryResult); //그리드 표현 m_pDlgDefectHistoryMap->UpdateDefectFilter(pDefectFilter); m_pDlgDefectHistoryMap->UpdateProcessStatus(pHistoryResult); //디펙 맵 표현 UpdateProcess(pHistoryResult); SetDefectImage(GetReviewName(), m_pHistoryTemp); GetHistoryList(); //한번 갱신 해주고 처리하자 m_bHistory = true; } catch (...) { return; } /*< LYW 20211005 - #3662 ADD End >*/ } @@ -828,15 +839,24 @@ void CDlgReviewHistoryTool::OnBnClickedUseDefect() { /*< LYW 20211005 - #3662 ADD Start >*/ try { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. BOOL bCheck = ((CButton*)GetDlgItem(IDC_USE_DEFECT))->GetCheck(); // CGlassResult* pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(0); // pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(GetSelectIndex()); SetHistoryTemp(GetSelectIndex()); SetAllDefect(bCheck); m_pDlgDefectHistoryMap->SetHistoryDefect(bCheck); m_pDlgDefectHistoryMap->UpdateProcessStatus(m_pHistoryTemp); //디펙 맵 표현 m_pDlgDefectHistory->UpdateProcessStatus(m_pHistoryTemp); BOOL bCheck = ((CButton*)GetDlgItem(IDC_USE_DEFECT))->GetCheck(); // CGlassResult* pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(0); // pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(GetSelectIndex()); SetHistoryTemp(GetSelectIndex()); SetAllDefect(bCheck); m_pDlgDefectHistoryMap->SetHistoryDefect(bCheck); m_pDlgDefectHistoryMap->UpdateProcessStatus(m_pHistoryTemp); //디펙 맵 표현 m_pDlgDefectHistory->UpdateProcessStatus(m_pHistoryTemp); } catch (...) { return; } /*< LYW 20211005 - #3662 ADD End >*/ } ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
@@ -3400,67 +3400,76 @@ void CSequenceProcessor_CPJT::UpdateHistoryResultFromTransferData(CGlassResult *pHistoryResult, CGlassResult* pGlassResult) { if (pHistoryResult == NULL || pGlassResult == NULL) return; try { if (pHistoryResult == NULL || pGlassResult == NULL) return; CTime time = CTime::GetCurrentTime(); CTime time = CTime::GetCurrentTime(); CString strTime = _T(""); strTime.Format(_T("%04d-%02d-%02d %02d:%02d:%02d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond()); CString strTime = _T(""); strTime.Format(_T("%04d-%02d-%02d %02d:%02d:%02d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond()); // update transfer data to glass result pHistoryResult->m_nGlassSizeX = pGlassResult->m_nGlassSizeX; pHistoryResult->m_nGlassSizeY = pGlassResult->m_nGlassSizeY; pHistoryResult->m_nCollisionDistanceX = pGlassResult->m_nCollisionDistanceX; pHistoryResult->m_nCollisionDistanceY = pGlassResult->m_nCollisionDistanceY; pHistoryResult->m_nCollisionXPos1 = pGlassResult->m_nCollisionXPos1; pHistoryResult->m_nCollisionXPos2 = pGlassResult->m_nCollisionXPos2; pHistoryResult->m_nOriginDir = pGlassResult->m_nOriginDir; pHistoryResult->m_strResultDate = pGlassResult->m_strResultDate; pHistoryResult->m_vecReviewScheduleResult = pGlassResult->m_vecReviewScheduleResult; pHistoryResult->m_nCornerCutDir = pGlassResult->m_nCornerCutDir; pHistoryResult->m_bReadRawFile = pGlassResult->m_bReadRawFile; pHistoryResult->m_vecReviewResult = pGlassResult->m_vecReviewResult; pHistoryResult->m_strGlassLastName = pGlassResult->m_strGlassLastName; pHistoryResult->m_strGlassID = pGlassResult->m_strGlassID; pHistoryResult->m_strGlassCode = pGlassResult->m_strGlassCode; pHistoryResult->m_strMode = pGlassResult->m_strMode; pHistoryResult->m_strGlassType = pGlassResult->m_strGlassType; pHistoryResult->m_strDummyType = pGlassResult->m_strDummyType; pHistoryResult->m_strProdID = pGlassResult->m_strProdID; pHistoryResult->m_strOperID = pGlassResult->m_strOperID; pHistoryResult->m_strLotID = pGlassResult->m_strLotID; pHistoryResult->m_strPPID = pGlassResult->m_strPPID; pHistoryResult->m_strPPID_RC = pGlassResult->m_strPPID_RC; pHistoryResult->m_strJobType = pGlassResult->m_strJobType; pHistoryResult->m_strJobID = pGlassResult->m_strJobID; pHistoryResult->m_strLotSeqNum = pGlassResult->m_strLotSeqNum; pHistoryResult->m_strSlotSeqNum = pGlassResult->m_strSlotSeqNum; pHistoryResult->m_strPropertyCode = pGlassResult->m_strPropertyCode; pHistoryResult->m_strJobJudgeCode = pGlassResult->m_strJobJudgeCode; pHistoryResult->m_strJobGradeCode = pGlassResult->m_strJobGradeCode; pHistoryResult->m_strSubstrateType = pGlassResult->m_strSubstrateType; pHistoryResult->m_strProcessingFlag = pGlassResult->m_strProcessingFlag; pHistoryResult->m_strInspectionFlag = pGlassResult->m_strInspectionFlag; pHistoryResult->m_strSkipFlag = pGlassResult->m_strSkipFlag; pHistoryResult->m_strJobSize = pGlassResult->m_strJobSize; pHistoryResult->m_strGlassThickness = pGlassResult->m_strGlassThickness; pHistoryResult->m_strJobAngle = pGlassResult->m_strJobAngle; pHistoryResult->m_strJobFlip = pGlassResult->m_strJobFlip; pHistoryResult->m_strCuttingGlassType = pGlassResult->m_strCuttingGlassType; pHistoryResult->m_strProcessingCount = pGlassResult->m_strProcessingCount; pHistoryResult->m_strInspectionJudgeData = pGlassResult->m_strInspectionJudgeData; pHistoryResult->m_strPairJobID = pGlassResult->m_strPairJobID; pHistoryResult->m_strPairFlag = pGlassResult->m_strPairFlag; pHistoryResult->m_strOptionValue = pGlassResult->m_strOptionValue; pHistoryResult->m_strReserved = pGlassResult->m_strReserved; pHistoryResult->strGlassScanSchedule = pGlassResult->strGlassScanSchedule;// cmark pHistoryResult->m_strStepID = pGlassResult->m_strRTMSStepID; //taek 210126 pHistoryResult->m_strEquipID = pGlassResult->m_strEquipID; pHistoryResult->m_strProcessID = pGlassResult->m_strProcessID; pHistoryResult->m_strUploadImgFileName = pGlassResult->m_strUploadImgFileName; pHistoryResult->m_strUnLoadingTime = strTime; pHistoryResult->m_mapDefectResult = pGlassResult->m_mapDefectResult; pHistoryResult->m_AlignResult = pGlassResult->m_AlignResult; // update transfer data to glass result pHistoryResult->m_nGlassSizeX = pGlassResult->m_nGlassSizeX; pHistoryResult->m_nGlassSizeY = pGlassResult->m_nGlassSizeY; pHistoryResult->m_nCollisionDistanceX = pGlassResult->m_nCollisionDistanceX; pHistoryResult->m_nCollisionDistanceY = pGlassResult->m_nCollisionDistanceY; pHistoryResult->m_nCollisionXPos1 = pGlassResult->m_nCollisionXPos1; pHistoryResult->m_nCollisionXPos2 = pGlassResult->m_nCollisionXPos2; pHistoryResult->m_nOriginDir = pGlassResult->m_nOriginDir; pHistoryResult->m_strResultDate = pGlassResult->m_strResultDate; pHistoryResult->m_vecReviewScheduleResult = pGlassResult->m_vecReviewScheduleResult; pHistoryResult->m_nCornerCutDir = pGlassResult->m_nCornerCutDir; pHistoryResult->m_bReadRawFile = pGlassResult->m_bReadRawFile; pHistoryResult->m_vecReviewResult = pGlassResult->m_vecReviewResult; pHistoryResult->m_strGlassLastName = pGlassResult->m_strGlassLastName; pHistoryResult->m_strGlassID = pGlassResult->m_strGlassID; pHistoryResult->m_strGlassCode = pGlassResult->m_strGlassCode; pHistoryResult->m_strMode = pGlassResult->m_strMode; pHistoryResult->m_strGlassType = pGlassResult->m_strGlassType; pHistoryResult->m_strDummyType = pGlassResult->m_strDummyType; pHistoryResult->m_strProdID = pGlassResult->m_strProdID; pHistoryResult->m_strOperID = pGlassResult->m_strOperID; pHistoryResult->m_strLotID = pGlassResult->m_strLotID; pHistoryResult->m_strPPID = pGlassResult->m_strPPID; pHistoryResult->m_strPPID_RC = pGlassResult->m_strPPID_RC; pHistoryResult->m_strJobType = pGlassResult->m_strJobType; pHistoryResult->m_strJobID = pGlassResult->m_strJobID; pHistoryResult->m_strLotSeqNum = pGlassResult->m_strLotSeqNum; pHistoryResult->m_strSlotSeqNum = pGlassResult->m_strSlotSeqNum; pHistoryResult->m_strPropertyCode = pGlassResult->m_strPropertyCode; pHistoryResult->m_strJobJudgeCode = pGlassResult->m_strJobJudgeCode; pHistoryResult->m_strJobGradeCode = pGlassResult->m_strJobGradeCode; pHistoryResult->m_strSubstrateType = pGlassResult->m_strSubstrateType; pHistoryResult->m_strProcessingFlag = pGlassResult->m_strProcessingFlag; pHistoryResult->m_strInspectionFlag = pGlassResult->m_strInspectionFlag; pHistoryResult->m_strSkipFlag = pGlassResult->m_strSkipFlag; pHistoryResult->m_strJobSize = pGlassResult->m_strJobSize; pHistoryResult->m_strGlassThickness = pGlassResult->m_strGlassThickness; pHistoryResult->m_strJobAngle = pGlassResult->m_strJobAngle; pHistoryResult->m_strJobFlip = pGlassResult->m_strJobFlip; pHistoryResult->m_strCuttingGlassType = pGlassResult->m_strCuttingGlassType; pHistoryResult->m_strProcessingCount = pGlassResult->m_strProcessingCount; pHistoryResult->m_strInspectionJudgeData = pGlassResult->m_strInspectionJudgeData; pHistoryResult->m_strPairJobID = pGlassResult->m_strPairJobID; pHistoryResult->m_strPairFlag = pGlassResult->m_strPairFlag; pHistoryResult->m_strOptionValue = pGlassResult->m_strOptionValue; pHistoryResult->m_strReserved = pGlassResult->m_strReserved; pHistoryResult->strGlassScanSchedule = pGlassResult->strGlassScanSchedule;// cmark pHistoryResult->m_strStepID = pGlassResult->m_strRTMSStepID; //taek 210126 pHistoryResult->m_strEquipID = pGlassResult->m_strEquipID; pHistoryResult->m_strProcessID = pGlassResult->m_strProcessID; pHistoryResult->m_strUploadImgFileName = pGlassResult->m_strUploadImgFileName; pHistoryResult->m_strUnLoadingTime = strTime; pHistoryResult->m_mapDefectResult = pGlassResult->m_mapDefectResult; pHistoryResult->m_AlignResult = pGlassResult->m_AlignResult; } catch (...) { m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Review End] UpdateHistoryResultFromTransferData Error")); return; } } void CSequenceProcessor_CPJT::CreateResultDirectory(const CString& strGlassID, const CString& strDate)