From ea59e5356f149db6e6e2e3f063aa5ee10a44b68e Mon Sep 17 00:00:00 2001 From: KEJ <kimeungju@diteam.co.kr> Date: 금, 24 11월 2023 17:39:42 +0900 Subject: [PATCH] Ongoing80 #4669 CF AOI Review Glass Grade PT판정 처리 추가 1. Glass, Cell PT 판정 추가. 2. GlassRawMessenger 데이터 추가 3. GlassRawMessenger 동기화 --- ReviewSystem/ReviewSystem/DitGlassRawStruct.h | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 111 insertions(+), 9 deletions(-) diff --git a/ReviewSystem/ReviewSystem/DitGlassRawStruct.h b/ReviewSystem/ReviewSystem/DitGlassRawStruct.h index 600196e..41f203d 100644 --- a/ReviewSystem/ReviewSystem/DitGlassRawStruct.h +++ b/ReviewSystem/ReviewSystem/DitGlassRawStruct.h @@ -8,6 +8,8 @@ #define RAWMESSENGER_MAXCAMNUM 30 #define RAWMESSENGER_MAXSCANNUM 20 +#define RAWMESSENGER_MAXHLINUM 8 +#define RAW_CODE_MAX 10 #define MAX_ZONE_NUM 16 @@ -60,6 +62,11 @@ int m_nGlassSizeWidth; int m_nGlassSizeHeight; + /* <KYH 211129 : #3796 ADD Start> */ + int m_nDefectNumJudgeND; + /* <KYH 211129 : #3796 ADD End> */ + //DUMY DATA + int Dumy_int[9]; //설비정보 char m_strLine[32]; @@ -110,6 +117,9 @@ int m_nDefectNumTypeMD; int m_nDefectNumTypeCD; int m_nDefectNumTypeMC; + /* <LJC 20220422 : #3957 ADD Start> */ + int m_nDefectCode[RAW_CODE_MAX]; + /* <LJC 20220422 : #3957 ADD End> */ int m_nDefectNumJudgeOKWhite; int m_nDefectNumJudgeOKBlack; @@ -119,7 +129,10 @@ int m_nDefectNumJudgeRV; int m_nDefectNumJudgeTR; int m_nDefectNumJudgePR; - + int m_nDefectNumJudgePT; //< KEJ 20231123 - #4669 ADD > + /*< LHS 20211029 - #3783 MOD Start >*/ + int m_nDefectNumJudgeLine; + /*< LHS 20211029 - #3783 MOD End >*/ int m_nDefectNumStackTD; int m_nDefectNumStackSD; int m_nDefectNumStackPD; @@ -129,9 +142,9 @@ //카메라/스캔 정보 [김태현 2018/12/5] short m_nCameraNum; short m_nScanNum; - unsigned char m_nGrayLevelAvg[RAWMESSENGER_MAXCAMNUM*RAWMESSENGER_MAXSCANNUM]; - unsigned char m_nGrayLevelMin[RAWMESSENGER_MAXCAMNUM*RAWMESSENGER_MAXSCANNUM]; - unsigned char m_nGrayLevelMax[RAWMESSENGER_MAXCAMNUM*RAWMESSENGER_MAXSCANNUM]; + unsigned char m_nGrayLevelAvg[RAWMESSENGER_MAXCAMNUM*RAWMESSENGER_MAXSCANNUM*RAWMESSENGER_MAXHLINUM]; + unsigned char m_nGrayLevelMin[RAWMESSENGER_MAXCAMNUM*RAWMESSENGER_MAXSCANNUM*RAWMESSENGER_MAXHLINUM]; + unsigned char m_nGrayLevelMax[RAWMESSENGER_MAXCAMNUM*RAWMESSENGER_MAXSCANNUM*RAWMESSENGER_MAXHLINUM]; //얼라인 정보 um[김태현 2018/12/10] double m_nAlignCcdTheta; @@ -143,6 +156,9 @@ double m_nAlignBasicTheta; double m_nAlignBasicShitftX; double m_nAlignBasicShitftY; + char m_strAlignFirst[64]; + char m_strAlignSecond[64]; +// char m_strAlignPath[256]; //CSOT용 물류 정보 [김태현 2018/12/5] char m_strCassetteSequenceNo[16]; @@ -171,7 +187,7 @@ char m_strFlowHistory[2]; char m_strCount1[2]; char m_strCount2[2]; - + char m_StrMergeList[10][12]; //Mura Data 0412 nwh char m_strMaxAvgGray[12]; char m_strMaxPortion[12]; @@ -191,13 +207,26 @@ int m_nStackNum; BOOL m_bStackRead; + /*< KJG 20211024 - #3487 ADD Start >*/ + int m_nRawMergeNum; + BOOL m_bRawMergeRead; + /*< KJG 20211024 - #3487 ADD End >*/ //210203 CJH - CutOff 대상 결함 수 int m_nCutOffDefectNum; //210323 CJH - Server/Frame Shrink 정보 추가 char m_strShrinked[6]; //210326 CJH - RAW 입력 Defect 수량 상한 사용여부 BOOL m_bRawCutoff; + //210907 KJG - EdgeCrack 검사 사용 유무 + BOOL m_bEdgeCrackUse; + BOOL m_bRawMergeUse; + /* < KJG 20220225 - #3850 ADD Start >*/ + char m_strRawMergeStepID[32]; + /* < KJG 20220225 - #3850 ADD End >*/ + /* < KMH 20220614 : #3957 ADD Start > */ + char m_strRawDefectCode[RAW_CODE_MAX][5]; // 4글자만 표기 + /* < KMH 20220614 : #3957 ADD End > */ }; struct _grmBlockData { @@ -251,17 +280,56 @@ int m_nDefectNumTypeMD; int m_nDefectNumTypeCD; int m_nDefectNumTypeMC; + /* <KYH 211129 : #3796 ADD Start> */ + int m_nDefectNumJudgeND; + /* <KYH 211129 : #3796 ADD End> */ + /* <LJC 20220422 : #3957 ADD Start> */ + int m_nDefectCode[RAW_CODE_MAX]; + /* <LJC 20220422 : #3957 ADD End> */ + //DUMY DATA + int Dumy_int[9]; //Mura Data nwh 0404 char m_strProImage[32]; char m_strAvgGray_0[12]; char m_strPortion_0[12]; + //kyh Mura Data 추가 0622 + char m_strCorner_Gray_0[12]; + char m_strAvgAmp_0[12]; + char m_strFFTVar_0[12]; + char m_strFFTVah_0[12]; + char m_strFFTVaq_0[12]; + char m_strFFTPK_0[12]; + char m_strAvgGray_1[12]; char m_strPortion_1[12]; + //kyh Mura Data 추가 0622 + char m_strCorner_Gray_1[12]; + char m_strAvgAmp_1[12]; + char m_strFFTVar_1[12]; + char m_strFFTVah_1[12]; + char m_strFFTVaq_1[12]; + char m_strFFTPK_1[12]; + char m_strAvgGray_2[12]; char m_strPortion_2[12]; + //kyh Mura Data 추가 0622 + char m_strCorner_Gray_2[12]; + char m_strAvgAmp_2[12]; + char m_strFFTVar_2[12]; + char m_strFFTVah_2[12]; + char m_strFFTVaq_2[12]; + char m_strFFTPK_2[12]; + char m_strAvgGray_3[12]; char m_strPortion_3[12]; + //kyh Mura Data 추가 0622 + char m_strCorner_Gray_3[12]; + char m_strAvgAmp_3[12]; + char m_strFFTVar_3[12]; + char m_strFFTVah_3[12]; + char m_strFFTVaq_3[12]; + char m_strFFTPK_3[12]; int m_nDefectNumJudgeOKWhite; int m_nDefectNumJudgeOKBlack; @@ -271,7 +339,10 @@ int m_nDefectNumJudgeRV; int m_nDefectNumJudgeTR; int m_nDefectNumJudgePR; - + int m_nDefectNumJudgePT; //< KEJ 20231123 - #4669 ADD > + /*< LHS 20211029 - #3783 MOD Start >*/ + int m_nDefectNumJudgeLine; + /*< LHS 20211029 - #3783 MOD End >*/ int m_nReflowResult[8]; // 0: Reflow X 1: Reflow OK 2: Reflow NG // Filtering된 Stack별 수 @@ -306,6 +377,7 @@ float m_fManification; float m_fManificResoultion; char m_strRevImageName[256]; + char m_strRevImagePath[256]; ////////////////////////////////////////////////////////////////////////// // Measure 영역 @@ -353,7 +425,11 @@ int m_nPixelConv; // pixel 단위 좌표 int m_nPixelScan; // pixel 단위 좌표 - short m_nPixelSize; // 결함크기 ---------------------------------PS + /* < KMH 20220707 : #4230 MOD Start > */ + // 범위 벗어나서 음수로 표기되면 D_Col Fail + //short m_nPixelSize; // 결함크기 ---------------------------------PS + int m_nPixelSize; // 결함크기 ---------------------------------PS + /* < KMH 20220707 : #4230 MOD End > */ short/*SERVER_DefectType*/ m_DefectType; // 결함 타입 ---------------------------------DT short/*SERVER_DefectSubType*/ m_DefectSubType; // 결함의 판정상태. short/*SERVER_DefectBDType*/ m_DefectBDType; // 결함 타입 - Bright, Dark, Both @@ -379,6 +455,7 @@ int m_nPixelGlassStart; // Glass 시작 픽셀 short m_sDefectLoc; + short m_sZoneClassPixelCount[16]; short m_sZonePixelCount[16]; // Zone별 결함 Pixel 수 short m_sZoneValueMin[16]; // Zone별 결함 Min short m_sZoneValueMax[16]; // Zone별 결함 Max @@ -412,6 +489,7 @@ int m_nUMCellY; // 셀 원점 기준 y 좌표 short m_nModelIdx; // 몇 번째 모델인가? short m_nCellIdx; // 몇번째 셀인가? + char m_strCellName[32]; // 셀 이름 /* < KMH 20220609 : #4183 ADD > */ short m_nCellGate; // 셀별 Gate라인(얼라인 보정 전) short m_nCellData; // 셀별 Data라인(얼라인 보정 전) short m_nCellGateAlign; // 셀별 Gate라인(얼라인 보정 후) @@ -431,7 +509,10 @@ short m_nStackStepCount; // Stack 수 short m_nStackColorIdx; // Color를 선택하는 인덱스. //CString m_strStackStep[CFDEFECT_STACKCOUNT]; // Stack Step. - char m_strStackFirst[60]; // Stack Step. //201221 CJH - 최대 사이즈 60bytes +/* < KMH 20220712 : #4230 MOD Start > */ + // char m_strStackFirst[60]; // Stack Step. //201221 CJH - 최대 사이즈 60bytes + char m_strStackFirst[400]; // Stack Step. // 400 bytes 확장요청 : SDC 채승석P +/* < KMH 20220712 : #4230 MOD End > */ char m_strUnitID[16]; // 유닛아이디 int m_ClassificationType; // enum ClassificationType { ClassType_None= 0, ClassType_PI_Over= 1, ClassType_PI_Under= 2, ClassType_TFE_Circle= 3, ClassType_Bubble, ClassType_Scratch, ClassType_Particle}; Classification Type, PI나 TFE등 추가 분류 알고리즘 적용 결과. @@ -466,8 +547,18 @@ BOOL m_bShrinked; //210323 CJH - Frame Shrink 정보 추가 + char m_strAoiImagePath[255]; + char m_strReviewImagePath[255]; - //리뷰 디펙 정보 [김태현 2019/1/19] + int m_nAlignRectLeft; + int m_nAlignRectTop; + int m_nAlignRectBottom; + int m_nAlignRectRight; + /*< LHS 20211029 - #3783 MOD Start >*/ + char m_strLNDefectCode[12]; + short/*LineDefectType*/ m_LineDefectType; + /*< LHS 20211029 - #3783 MOD End >*/ + _grmDefectReviewData m_ReviewDefect; }; @@ -490,6 +581,8 @@ grcWriteBin = 201, grcReadBin = 202, + + grcReviewWriteBIn = 301, grcGlassRawCommand }; @@ -517,6 +610,9 @@ int m_nCellMaxDataNum; int m_nDefectMaxDataNum; int m_nStackMaxDataNum; + /*< KJG 20211024 - #3487 ADD Start >*/ + int m_nRawMergeMaxDataNum; + /*< KJG 20211024 - #3487 ADD End >*/ //Char 기준 자료가 있는 시작 위치 [김태현 2018/11/12] int m_nGlassDataPoint; @@ -524,12 +620,18 @@ int m_nCellDataPoint; int m_nDefectDataPoint; int m_nStackDataPoint; + /*< KJG 20211024 - #3487 ADD Start >*/ + int m_nRawMergeDataPoint; + /*< KJG 20211024 - #3487 ADD End >*/ int m_nSizeOfGlassData; int m_nSizeOfBlockData; int m_nSizeOfCellData; int m_nSizeOfDefectData; int m_nSizeOfStackData; + /*< KJG 20211024 - #3487 ADD Start >*/ + int m_nSizeOfRawMergeData; + /*< KJG 20211024 - #3487 ADD End >*/ }; struct _grmDitGlassRawInfo : public _grmDitMemInfo, public _grmDitCommand { -- Gitblit v1.9.3