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/MacroResultFile.cpp | 78 +++++++++++++++++++++++++++++++++++---- 1 files changed, 70 insertions(+), 8 deletions(-) diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/MacroResultFile.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/MacroResultFile.cpp index 3423e3d..4c493ae 100644 --- a/DitGlassRawMessenger/DitGlassRawMessenger/MacroResultFile.cpp +++ b/DitGlassRawMessenger/DitGlassRawMessenger/MacroResultFile.cpp @@ -130,7 +130,7 @@ return &pBuf[nLen+1]; //구분자 건너 뛰어서 다음 읽을 포인트 넘겨준다 태현[2017/3/29] } -BOOL CMacroResultFile::readOptionFile( char* pFileName /*= "C:\\AOIServer\\ConfigFile\\MacroInfo.cfg"*/ ) +BOOL CMacroResultFile::readOptionFile( char* pFileName /*= "D:\\AOIServer\\ConfigFile\\MacroInfo.cfg"*/ ) { CakFileDB fileDB; fileDB.openfile(pFileName); @@ -254,16 +254,47 @@ if (strlen(buffer) <= 0) continue; paser.process(buffer, " "); int nTokNum = paser.getTokNum(); - if (nTokNum < 31) continue; + if (nTokNum < 52) continue; //kyh 31->52 MacroSubPanel.PRO_IMAGE = paser.getTokStr(20); MacroSubPanel.AVG_GRAY_0 = paser.getTokStr(21); MacroSubPanel.PORTION_0 = paser.getTokStr(22); - MacroSubPanel.AVG_GRAY_1 = paser.getTokStr(24); - MacroSubPanel.PORTION_1 = paser.getTokStr(25); - MacroSubPanel.AVG_GRAY_2 = paser.getTokStr(27); - MacroSubPanel.PORTION_2 = paser.getTokStr(28); - MacroSubPanel.AVG_GRAY_3 = paser.getTokStr(30); - MacroSubPanel.PORTION_3 = paser.getTokStr(31); + //kyh 추가 + MacroSubPanel.CORNER_GRAY_0 = paser.getTokStr(23); + MacroSubPanel.AVG_AMP_0 = paser.getTokStr(24); + MacroSubPanel.FFT_VAR_0 = paser.getTokStr(25); + MacroSubPanel.FFT_VAH_0 = paser.getTokStr(26); + MacroSubPanel.FFT_VAQ_0 = paser.getTokStr(27); + MacroSubPanel.FFT_PK_0 = paser.getTokStr(28); + + MacroSubPanel.AVG_GRAY_1 = paser.getTokStr(29); + MacroSubPanel.PORTION_1 = paser.getTokStr(30); + //kyh 추가 + MacroSubPanel.CORNER_GRAY_1 = paser.getTokStr(31); + MacroSubPanel.AVG_AMP_1 = paser.getTokStr(32); + MacroSubPanel.FFT_VAR_1 = paser.getTokStr(33); + MacroSubPanel.FFT_VAH_1 = paser.getTokStr(34); + MacroSubPanel.FFT_VAQ_1 = paser.getTokStr(35); + MacroSubPanel.FFT_PK_1 = paser.getTokStr(36); + + MacroSubPanel.AVG_GRAY_2 = paser.getTokStr(37); + MacroSubPanel.PORTION_2 = paser.getTokStr(38); + //kyh 추가 + MacroSubPanel.CORNER_GRAY_2 = paser.getTokStr(39); + MacroSubPanel.AVG_AMP_2 = paser.getTokStr(40); + MacroSubPanel.FFT_VAR_2 = paser.getTokStr(41); + MacroSubPanel.FFT_VAH_2 = paser.getTokStr(42); + MacroSubPanel.FFT_VAQ_2 = paser.getTokStr(43); + MacroSubPanel.FFT_PK_2 = paser.getTokStr(44); + + MacroSubPanel.AVG_GRAY_3 = paser.getTokStr(45); + MacroSubPanel.PORTION_3 = paser.getTokStr(46); + //kyh 추가 + MacroSubPanel.CORNER_GRAY_3 = paser.getTokStr(47); + MacroSubPanel.AVG_AMP_3 = paser.getTokStr(48); + MacroSubPanel.FFT_VAR_3 = paser.getTokStr(49); + MacroSubPanel.FFT_VAH_3 = paser.getTokStr(50); + MacroSubPanel.FFT_VAQ_3 = paser.getTokStr(51); + MacroSubPanel.FFT_PK_3 = paser.getTokStr(52); vecMacroSubPanel.push_back(MacroSubPanel); } @@ -280,12 +311,43 @@ strcpy(pGrmMura->m_strProImage, m_vecMacroSubPanel[i].PRO_IMAGE.GetBuffer(0)); strcpy(pGrmMura->m_strAvgGray_0, m_vecMacroSubPanel[i].AVG_GRAY_0.GetBuffer(0)); strcpy(pGrmMura->m_strPortion_0, m_vecMacroSubPanel[i].PORTION_0.GetBuffer(0)); + //kyh 0622 + strcpy(pGrmMura->m_strCorner_Gray_0, m_vecMacroSubPanel[i].CORNER_GRAY_0.GetBuffer(0)); + strcpy(pGrmMura->m_strAvgAmp_0, m_vecMacroSubPanel[i].AVG_AMP_0.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTVar_0, m_vecMacroSubPanel[i].FFT_VAR_0.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTVah_0, m_vecMacroSubPanel[i].FFT_VAH_0.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTVaq_0, m_vecMacroSubPanel[i].FFT_VAQ_0.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTPK_0, m_vecMacroSubPanel[i].FFT_PK_0.GetBuffer(0)); + strcpy(pGrmMura->m_strAvgGray_1, m_vecMacroSubPanel[i].AVG_GRAY_1.GetBuffer(0)); strcpy(pGrmMura->m_strPortion_1, m_vecMacroSubPanel[i].PORTION_1.GetBuffer(0)); + //kyh 0622 + strcpy(pGrmMura->m_strCorner_Gray_1, m_vecMacroSubPanel[i].CORNER_GRAY_1.GetBuffer(0)); + strcpy(pGrmMura->m_strAvgAmp_1, m_vecMacroSubPanel[i].AVG_AMP_1.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTVar_1, m_vecMacroSubPanel[i].FFT_VAR_1.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTVah_1, m_vecMacroSubPanel[i].FFT_VAH_1.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTVaq_1, m_vecMacroSubPanel[i].FFT_VAQ_1.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTPK_1, m_vecMacroSubPanel[i].FFT_PK_1.GetBuffer(0)); + strcpy(pGrmMura->m_strAvgGray_2, m_vecMacroSubPanel[i].AVG_GRAY_2.GetBuffer(0)); strcpy(pGrmMura->m_strPortion_2, m_vecMacroSubPanel[i].PORTION_2.GetBuffer(0)); + //kyh 0622 + strcpy(pGrmMura->m_strCorner_Gray_2, m_vecMacroSubPanel[i].CORNER_GRAY_2.GetBuffer(0)); + strcpy(pGrmMura->m_strAvgAmp_2, m_vecMacroSubPanel[i].AVG_AMP_2.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTVar_2, m_vecMacroSubPanel[i].FFT_VAR_2.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTVah_2, m_vecMacroSubPanel[i].FFT_VAH_2.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTVaq_2, m_vecMacroSubPanel[i].FFT_VAQ_2.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTPK_2, m_vecMacroSubPanel[i].FFT_PK_2.GetBuffer(0)); + strcpy(pGrmMura->m_strAvgGray_3, m_vecMacroSubPanel[i].AVG_GRAY_3.GetBuffer(0)); strcpy(pGrmMura->m_strPortion_3, m_vecMacroSubPanel[i].PORTION_3.GetBuffer(0)); + //kyh 0622 + strcpy(pGrmMura->m_strCorner_Gray_3, m_vecMacroSubPanel[i].CORNER_GRAY_3.GetBuffer(0)); + strcpy(pGrmMura->m_strAvgAmp_3, m_vecMacroSubPanel[i].AVG_AMP_3.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTVar_3, m_vecMacroSubPanel[i].FFT_VAR_3.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTVah_3, m_vecMacroSubPanel[i].FFT_VAH_3.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTVaq_3, m_vecMacroSubPanel[i].FFT_VAQ_3.GetBuffer(0)); + strcpy(pGrmMura->m_strFFTPK_3, m_vecMacroSubPanel[i].FFT_PK_3.GetBuffer(0)); } strcpy(pShared->GetGlassData()->m_strMaxAvgGray, strMaxAvgGray.GetBuffer(0)); strcpy(pShared->GetGlassData()->m_strMaxPortion, strMaxPortion.GetBuffer(0)); -- Gitblit v1.9.3