From 29b057b25d57dab9ed33aa2a1bc22b6dc68e1a4d Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 금, 01 4월 2022 10:31:31 +0900 Subject: [PATCH] Ongoing70 #4006 CF AOI Review Align Fail시 재판정 Off 기능 추가 --- ReviewSystem/ReviewSystem/DitGlassRawStruct.h | 293 ++++++++++++++++++++++++++++++++------------------------- 1 files changed, 164 insertions(+), 129 deletions(-) diff --git a/ReviewSystem/ReviewSystem/DitGlassRawStruct.h b/ReviewSystem/ReviewSystem/DitGlassRawStruct.h index e84fb29..5a336e2 100644 --- a/ReviewSystem/ReviewSystem/DitGlassRawStruct.h +++ b/ReviewSystem/ReviewSystem/DitGlassRawStruct.h @@ -8,6 +8,7 @@ #define RAWMESSENGER_MAXCAMNUM 30 #define RAWMESSENGER_MAXSCANNUM 20 +#define RAWMESSENGER_MAXHLINUM 8 #define MAX_ZONE_NUM 16 @@ -47,7 +48,7 @@ memset(this, 0, sizeof(_grmGlassData)); } - //Glass 占쏙옙占쏙옙 + //Glass 정보 char m_strFileName[64]; char m_strPath[256]; @@ -56,12 +57,17 @@ int m_nOriginDirection; //{ GD_LeftTop = 0, GD_RightTop = 1, GD_LeftBottom = 10, GD_RightBottom = 11 }; int m_nConerCutDirection; - int m_nScanCoordinateY; //占쏙옙占썩가 0占싱몌옙 占싹뱄옙, 1占싱몌옙 Scan占쏙옙占쏙옙占쏙옙 y占쏙옙(占쏙옙 scan占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙, offline 占쏙옙占쏙옙 占쏙옙占쏙옙) + int m_nScanCoordinateY; //여기가 0이면 일반, 1이면 Scan방향이 y축(즉 scan방향이 단축, offline 설비 같은) 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]; char m_strEquipType[32]; char m_strEquipID[32]; @@ -74,7 +80,7 @@ CTime m_tmReviewLoading; CTime m_tmReviewEnd; - //占썩본 占쏙옙占쏙옙占쏙옙占쏙옙 + //기본 물류정보 char m_strGlassID[32]; //Glass ID char m_strPPID[32]; char m_strEPPID[32]; @@ -91,7 +97,7 @@ char m_strVCRGlassID[32]; - //占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 + //결함 갯수 관리 변수 int m_nDefectNumSizeSmall; int m_nDefectNumSizeMid; int m_nDefectNumSizeLarge; @@ -119,21 +125,23 @@ int m_nDefectNumJudgeRV; int m_nDefectNumJudgeTR; int m_nDefectNumJudgePR; - + /*< LHS 20211029 - #3783 MOD Start >*/ + int m_nDefectNumJudgeLine; + /*< LHS 20211029 - #3783 MOD End >*/ int m_nDefectNumStackTD; int m_nDefectNumStackSD; int m_nDefectNumStackPD; int m_nDefectNumStackSP; - //카占쌨띰옙/占쏙옙캔 占쏙옙占쏙옙 [占쏙옙占쏙옙占쏙옙 2018/12/5] + //카메라/스캔 정보 [김태현 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] + //얼라인 정보 um[김태현 2018/12/10] double m_nAlignCcdTheta; double m_nAlignCcdShitftX; double m_nAlignCcdShitftY; @@ -147,7 +155,7 @@ char m_strAlignSecond[64]; // char m_strAlignPath[256]; - //CSOT占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 [占쏙옙占쏙옙占쏙옙 2018/12/5] + //CSOT용 물류 정보 [김태현 2018/12/5] char m_strCassetteSequenceNo[16]; char m_strOwnerCode[16]; //2. OWNER_CODE char m_strOwnerType[16]; //3. OWNER_TYPE @@ -162,7 +170,7 @@ char m_strGroupID[16]; //14.GROUP_ID char m_cAutoSampleFlag; //15.AUTOSAMPLEFLAG - // CPRJ占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 + // CPRJ용 물류 정보 char m_strProdType[3]; char m_strBatchID[13]; char m_strPairHPanelID[13]; @@ -174,7 +182,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]; @@ -188,19 +196,28 @@ BYTE m_nGlassDataBitSignal[4]; bool m_bJob_end; - //201217 CJH - 占쏙옙占쏙옙 Defect Review 占쏙옙占쏙옙 + //201217 CJH - 찍은 Defect Review 개수 int m_nReviewNum; - //201221 CJH - 占식쏙옙占쏙옙 Stack 占쏙옙占� + //201221 CJH - 파싱한 Stack 결과 int m_nStackNum; BOOL m_bStackRead; - //210203 CJH - CutOff 占쏙옙占� 占쏙옙占쏙옙 占쏙옙 + /*< 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 占쏙옙占쏙옙 占쌩곤옙 + //210323 CJH - Server/Frame Shrink 정보 추가 char m_strShrinked[6]; - //210326 CJH - RAW 占쌉뤄옙 Defect 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙肉⑼옙占� + //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 >*/ }; struct _grmBlockData { @@ -222,7 +239,7 @@ } int getTotalDefectNum(){return m_nDefectNumTypeTB+m_nDefectNumTypeTW+m_nDefectNumTypeRB+m_nDefectNumTypeRW; }; int m_nCellID; //1. PANEL_ID - short m_nModelIdx; // 占쏙옙 占쏙옙째 占쏙옙占싸곤옙? + short m_nModelIdx; // 몇 번째 모델인가? char m_strCellName[32]; int m_rectCellLeft; @@ -235,7 +252,7 @@ int m_nJudgeGlade; - //占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 + //결함 갯수 관리 변수 int m_nDefectNumSizeSmall; int m_nDefectNumSizeMid; int m_nDefectNumSizeLarge; @@ -254,12 +271,17 @@ int m_nDefectNumTypeMD; int m_nDefectNumTypeCD; int m_nDefectNumTypeMC; + /* <KYH 211129 : #3796 ADD Start> */ + int m_nDefectNumJudgeND; + /* <KYH 211129 : #3796 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 + //kyh Mura Data 추가 0622 char m_strCorner_Gray_0[12]; char m_strAvgAmp_0[12]; char m_strFFTVar_0[12]; @@ -269,7 +291,7 @@ char m_strAvgGray_1[12]; char m_strPortion_1[12]; - //kyh Mura Data 占쌩곤옙 0622 + //kyh Mura Data 추가 0622 char m_strCorner_Gray_1[12]; char m_strAvgAmp_1[12]; char m_strFFTVar_1[12]; @@ -279,7 +301,7 @@ char m_strAvgGray_2[12]; char m_strPortion_2[12]; - //kyh Mura Data 占쌩곤옙 0622 + //kyh Mura Data 추가 0622 char m_strCorner_Gray_2[12]; char m_strAvgAmp_2[12]; char m_strFFTVar_2[12]; @@ -289,7 +311,7 @@ char m_strAvgGray_3[12]; char m_strPortion_3[12]; - //kyh Mura Data 占쌩곤옙 0622 + //kyh Mura Data 추가 0622 char m_strCorner_Gray_3[12]; char m_strAvgAmp_3[12]; char m_strFFTVar_3[12]; @@ -305,20 +327,22 @@ int m_nDefectNumJudgeRV; int m_nDefectNumJudgeTR; int m_nDefectNumJudgePR; - + /*< 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占쏙옙 占쏙옙 + // Filtering된 Stack별 수 int m_nDefectTDCount; int m_nDefectSDCount; int m_nDefectPDCount; int m_nDefectSPCount; - // Gate/Data 占쏙옙 占쏙옙占쏙옙 + // Gate/Data 총 갯수 int m_nGateNum; int m_nDataNum; - // 210129 CJH - Cell Origin 占쏙옙占쏙옙 + // 210129 CJH - Cell Origin 방향 int m_nCellXDir; int m_nCellYDir; }; @@ -331,10 +355,10 @@ } ////////////////////////////////////////////////////////////////////////// - //占쏙옙占썩서 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 [占쏙옙占쏙옙占쏙옙 2019/1/19] + //여기서 부터 리뷰 영역 [김태현 2019/1/19] ditRaw::ReviewPlanType m_nPlanType ; int m_nResultCode; //0:None, 1:Success - int m_nShotIndex; //占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 [占쏙옙占쏙옙占쏙옙 2018/12/5] + int m_nShotIndex; //리뷰 찍은 순번 [김태현 2018/12/5] int m_nModuleIndex; int m_nMagnificIndex; float m_fManification; @@ -343,15 +367,15 @@ char m_strRevImagePath[256]; ////////////////////////////////////////////////////////////////////////// - // Measure 占쏙옙占쏙옙 + // Measure 영역 int m_nMeasure_Index; int m_nMeasure_ResultCode; //0:None, 1:Success float m_fMesure_ResultData[8]; // 0:Type, 1:ShiftX, 2:ShiftY ////////////////////////////////////////////////////////////////////////// - // WSI占쏙옙占쏙옙 + // WSI영역 int m_nWsi_ResultCode; //0:None, 1:Success - int m_nWsi_Type; // 占쌉몌옙 / 占쏙옙占쏙옙 + int m_nWsi_Type; // 함몰 / 돌기 float m_fWsi_ResultData[8]; // 0:Type, 1:Height(um), 2:Width char m_strWsi_2DImageFilename[256]; char m_strWsi_3DImageFilename[256]; @@ -359,14 +383,14 @@ int m_nWsi_pReflowResultData[8]; double m_dWsi_DamDistance; - double m_dWsiMmMotorX; // WSI 占쏙옙占쏙옙 占쏙옙표 20180223 HJH + double m_dWsiMmMotorX; // WSI 모터 좌표 20180223 HJH double m_dWsiMmMotorY; - float m_fWsiManification; // WSI 占쏙옙占쏙옙 + float m_fWsiManification; // WSI 배율 ////////////////////////////////////////////////////////////////////////// - // Reflow 占쏙옙占쏙옙 + // Reflow 영역 int m_nReflow_Index; - int m_nReflow_ResultCode; //0:None, // 占쏙옙占쏙옙占쏙옙 Line占쏙옙 占쏙옙占쏙옙. 3 占싱몌옙 : DAM2 Reflow 占쏙옙占쏙옙, 4~5 : DAM1 Reflow 占쏙옙占쏙옙, 6 : no Reflow 占쏙옙占쏙옙 / -1 : image not loaded, -2 : roi setting error, -3 : roi length error, -5 : select wrong side + int m_nReflow_ResultCode; //0:None, // 검출한 Line의 개수. 3 미만 : DAM2 Reflow 판정, 4~5 : DAM1 Reflow 판정, 6 : no Reflow 판정 / -1 : image not loaded, -2 : roi setting error, -3 : roi length error, -5 : select wrong side float m_fReflow_LinePosData[8]; int m_nReflow_Side; int m_nReflow_InspectionMode; @@ -382,108 +406,108 @@ short m_nDefectID; short m_nCameraID; short m_nScanIdx; - //short m_nDefectIdx; // 카占쌨라에쇽옙占쏙옙 占쏙옙占쏙옙 占싸듸옙占쏙옙 - int m_nDefectIdx; // 카占쌨라에쇽옙占쏙옙 占쏙옙占쏙옙 占싸듸옙占쏙옙 201207 CJH - 占쌘몌옙 占쏙옙 占쏙옙침. int占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 + //short m_nDefectIdx; // 카메라에서의 결함 인덱스 + int m_nDefectIdx; // 카메라에서의 결함 인덱스 201207 CJH - 자릿 수 넘침. int형으로 변경 - int m_nPixelConv; // pixel 占쏙옙占쏙옙 占쏙옙표 - int m_nPixelScan; // pixel 占쏙옙占쏙옙 占쏙옙표 + int m_nPixelConv; // pixel 단위 좌표 + int m_nPixelScan; // pixel 단위 좌표 - short m_nPixelSize; // 占쏙옙占쏙옙크占쏙옙 ---------------------------------PS - short/*SERVER_DefectType*/ m_DefectType; // 占쏙옙占쏙옙 타占쏙옙 ---------------------------------DT - short/*SERVER_DefectSubType*/ m_DefectSubType; // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙. - short/*SERVER_DefectBDType*/ m_DefectBDType; // 占쏙옙占쏙옙 타占쏙옙 - Bright, Dark, Both + short m_nPixelSize; // 결함크기 ---------------------------------PS + short/*SERVER_DefectType*/ m_DefectType; // 결함 타입 ---------------------------------DT + short/*SERVER_DefectSubType*/ m_DefectSubType; // 결함의 판정상태. + short/*SERVER_DefectBDType*/ m_DefectBDType; // 결함 타입 - Bright, Dark, Both - short m_sPixelWidth; // 占싫쇽옙占쏙옙占쏙옙 占쏙옙占쏙옙 占십븝옙 - short m_sPixelHeight; // 占싫쇽옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 - short m_nLevelSrcMin; // 占쏙옙占쏙옙 占쏙옙占� Min -----------------------------SN - short m_nLevelSrcMax; // 占쏙옙占쏙옙 占쏙옙占� Max -----------------------------SX - short m_nLevelSrcAvg; // 占쏙옙占쏙옙 占쏙옙占� Avg -----------------------------SA - short m_nLevelRefMin; // 占쏟교댐옙占� 占쏙옙占� Min -------------------------RN - short m_nLevelRefMax; // 占쏟교댐옙占� 占쏙옙占� Max -------------------------RX - short m_nLevelRefAvg; // 占쏟교댐옙占� 占쏙옙占� Avg -------------------------RA - short m_nLevelDiffMin; // 占쏙옙占쏙옙 Min ---------------------------------DN - short m_nLevelDiffMax; // 占쏙옙占쏙옙 Max ---------------------------------DX - short m_nLevelDiffAvg; // 占쏙옙占쏙옙 Avg ---------------------------------DA + short m_sPixelWidth; // 픽셀단위 결함 너비 + short m_sPixelHeight; // 픽셀단위 결함 높이 + short m_nLevelSrcMin; // 결함 밝기 Min -----------------------------SN + short m_nLevelSrcMax; // 결함 밝기 Max -----------------------------SX + short m_nLevelSrcAvg; // 결함 밝기 Avg -----------------------------SA + short m_nLevelRefMin; // 비교대상 밝기 Min -------------------------RN + short m_nLevelRefMax; // 비교대상 밝기 Max -------------------------RX + short m_nLevelRefAvg; // 비교대상 밝기 Avg -------------------------RA + short m_nLevelDiffMin; // 비교차 Min ---------------------------------DN + short m_nLevelDiffMax; // 비교차 Max ---------------------------------DX + short m_nLevelDiffAvg; // 비교차 Avg ---------------------------------DA - int m_nDefectRScale; // 占싫쇽옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 -------------------------RS - short m_sThreshold; // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 Threshold - short m_sThresholdAvg; // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 Threshold AVG - short m_sDefectPeak; // 占쏙옙占쏙옙占쏙옙 Peak. - short m_sDefectLevel; // (DiffAvg - Th) BOE 8G 占쏙옙청占쏙옙占쏙옙 + int m_nDefectRScale; // 픽셀단위 결함 높이 -------------------------RS + short m_sThreshold; // 결함을 검출할 때의 Threshold + short m_sThresholdAvg; // 결함을 검출할 때의 Threshold AVG + short m_sDefectPeak; // 결함의 Peak. + short m_sDefectLevel; // (DiffAvg - Th) BOE 8G 요청사항 - int m_nPixelGlassStart; // Glass 占쏙옙占쏙옙 占싫쇽옙 + 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 - short m_sZoneValueAvg[16]; // Zone占쏙옙 占쏙옙占쏙옙 Avg + short m_sZonePixelCount[16]; // Zone별 결함 Pixel 수 + short m_sZoneValueMin[16]; // Zone별 결함 Min + short m_sZoneValueMax[16]; // Zone별 결함 Max + short m_sZoneValueAvg[16]; // Zone별 결함 Avg short m_sZonePixelPercent[16]; // --------------------------------------Z0~ZF - //210127 CJH - Zone占쏙옙 Source Gray 占쌉뤄옙 - short m_sZoneValueSrcMin[16]; // Zone占쏙옙 Source Min - short m_sZoneValueSrcMax[16]; // Zone占쏙옙 Source Max - short m_sZoneValueSrcAvg[16]; // Zone占쏙옙 Source Avg + //210127 CJH - Zone별 Source Gray 입력 + short m_sZoneValueSrcMin[16]; // Zone별 Source Min + short m_sZoneValueSrcMax[16]; // Zone별 Source Max + short m_sZoneValueSrcAvg[16]; // Zone별 Source Avg - int m_nUMOriginX; // um占쏙옙占쏙옙 x占쏙옙표 (占쏙옙占쏙옙占쏙옙占쏙옙) - int m_nUMOriginY; // um占쏙옙占쏙옙 y占쏙옙표 (占쏙옙占쏙옙占쏙옙占쏙옙) - int m_nUMCenterAlignX; // um占쏙옙占쏙옙 X占쏙옙표 (Glass Center 占쏙옙占쏙옙, 占쏙옙占쏙옙觀占쏙옙占� 占쏙옙) - int m_nUMCenterAlignY; // um占쏙옙占쏙옙 Y占쏙옙표 (Glass Center 占쏙옙占쏙옙, 占쏙옙占쏙옙觀占쏙옙占� 占쏙옙) - int m_nUMCenterX; // um占쏙옙占쏙옙 X占쏙옙표 (Glass Center 占쏙옙占쏙옙, 占쏙옙占쏙옙觀占쏙옙占� 占쏙옙) - int m_nUMCenterY; // um占쏙옙占쏙옙 Y占쏙옙표 (Glass Center 占쏙옙占쏙옙, 占쏙옙占쏙옙觀占쏙옙占� 占쏙옙) - int m_nUMSizeX; // um占쏙옙占쏙옙 X 크占쏙옙 -----------------------------UX - int m_nUMSizeY; // um占쏙옙占쏙옙 Y 크占쏙옙 -----------------------------UY - int m_nUMSize; // um占쏙옙占쏙옙 크占쏙옙. - CRect m_RectUM; // 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占썹각占쏙옙. + int m_nUMOriginX; // um단위 x좌표 (원점기준) + int m_nUMOriginY; // um단위 y조표 (원점기준) + int m_nUMCenterAlignX; // um단위 X좌표 (Glass Center 기준, 얼라인보정 후) + int m_nUMCenterAlignY; // um단위 Y좌표 (Glass Center 기준, 얼라인보정 후) + int m_nUMCenterX; // um단위 X좌표 (Glass Center 기준, 얼라인보정 전) + int m_nUMCenterY; // um단위 Y좌표 (Glass Center 기준, 얼라인보정 전) + int m_nUMSizeX; // um단위 X 크기 -----------------------------UX + int m_nUMSizeY; // um단위 Y 크기 -----------------------------UY + int m_nUMSize; // um단위 크기. + CRect m_RectUM; // 디펙 센터 기준 사각형. - short/*SERVER_DefectSizeType*/ m_DefectSizeType; // 占쏙옙占쏙옙 크占쏙옙 占쏙옙占쏙옙enum SERVER_DefectSizeType { SizeType_Unknown = 0, SizeType_Small, SizeType_Mid, SizeType_Large, SizeType_Huge, SizeType_Ultra }; - short/*SERVER_DefectPeakType*/ m_DefectPeakType; // Peak占쏙옙 占쏙옙占쏙옙. - short/*Judgement*/ m_DefectJudgement; // 占쏙옙占쏙옙 占쏙옙占쏙옙. - BOOL m_bDefectCutoff; // 占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙(TRUE= Cutoff, FALSE) - short/*MAP16_DefectClass*/ m_DefectClass; // BOE Defect Class 16占쏙옙占� 占쏙옙占쏙옙 - int m_nPadRegionIdx; // PAD 占쏙옙占쏙옙 占싸듸옙占쏙옙 + short/*SERVER_DefectSizeType*/ m_DefectSizeType; // 결함 크기 종류enum SERVER_DefectSizeType { SizeType_Unknown = 0, SizeType_Small, SizeType_Mid, SizeType_Large, SizeType_Huge, SizeType_Ultra }; + short/*SERVER_DefectPeakType*/ m_DefectPeakType; // Peak의 종류. + short/*Judgement*/ m_DefectJudgement; // 결함 판정. + BOOL m_bDefectCutoff; // 컷 오프 디펙(TRUE= Cutoff, FALSE) + short/*MAP16_DefectClass*/ m_DefectClass; // BOE Defect Class 16등분 구분 + int m_nPadRegionIdx; // PAD 영역 인덱스 - int m_nUMCellX; // 占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 x 占쏙옙표 - int m_nUMCellY; // 占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 y 占쏙옙표 - short m_nModelIdx; // 占쏙옙 占쏙옙째 占쏙옙占싸곤옙? - short m_nCellIdx; // 占쏙옙占승� 占쏙옙占싸곤옙? - short m_nCellGate; // 占쏙옙占쏙옙 Gate占쏙옙占쏙옙(占쏙옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙) - short m_nCellData; // 占쏙옙占쏙옙 Data占쏙옙占쏙옙(占쏙옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙) - short m_nCellGateAlign; // 占쏙옙占쏙옙 Gate占쏙옙占쏙옙(占쏙옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙) - short m_nCellDataAlign; // 占쏙옙占쏙옙 Data占쏙옙占쏙옙(占쏙옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙) + int m_nUMCellX; // 셀 원점 기준 x 좌표 + int m_nUMCellY; // 셀 원점 기준 y 좌표 + short m_nModelIdx; // 몇 번째 모델인가? + short m_nCellIdx; // 몇번째 셀인가? + short m_nCellGate; // 셀별 Gate라인(얼라인 보정 전) + short m_nCellData; // 셀별 Data라인(얼라인 보정 전) + short m_nCellGateAlign; // 셀별 Gate라인(얼라인 보정 후) + short m_nCellDataAlign; // 셀별 Data라인(얼라인 보정 후) - int m_nUMShotX; // 占쏙옙 占쏙옙占쏙옙 X占쏙옙표 - int m_nUMShotY; // 占쏙옙 占쏙옙占쏙옙 Y占쏙옙표 - short m_nMaskDefectIdx; // 占쏙옙 Glass占쏙옙占쏙옙 占쌩견듸옙 占쏙옙占쏙옙크占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙. - short m_nShotIdx; // 占쎈광占쏙옙 占쏙옙호 - short m_nMatchShotCount; // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙크 占쏙옙占쏙옙占쏙옙 占쏙옙. - short m_nMatchMaxSize; // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙크 占쏙옙 占쏙옙占쏙옙 큰 占쏙옙占쏙옙占쏙옙 크占쏙옙. + int m_nUMShotX; // 샷 기준 X좌표 + int m_nUMShotY; // 샷 기준 Y좌표 + short m_nMaskDefectIdx; // 한 Glass에서 발견된 마스크결함 묶음의 인덱스. + short m_nShotIdx; // 노광샷 번호 + short m_nMatchShotCount; // 동일한 마스크 결함의 수. + short m_nMatchMaxSize; // 동일한 마스크 중 가장 큰 결함의 크기. - short m_nRepeatCount; // 占쏙옙占쌈곤옙占쌉발곤옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙표 占쌥븝옙占쏙옙 + short m_nRepeatCount; // 연속결함발견위한 동일좌표 반복수 short m_nMaskRepeatCount; int m_StackInfo; // Stack Flag - BOOL m_bRealStack; // Stack 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 TD(TRUE) 占쏙옙占쏙옙, 占쏙옙占싶몌옙占쏙옙 占쏙옙占쏙옙 TD(FALSE)占쏙옙占쏙옙占쏙옙 占쏙옙 占쌍댐옙. - short m_nStackStepCount; // Stack 占쏙옙 - short m_nStackColorIdx; // Color占쏙옙 占쏙옙占쏙옙占싹댐옙 占싸듸옙占쏙옙. + BOOL m_bRealStack; // Stack 머지에 의한 TD(TRUE) 인지, 필터링에 의한 TD(FALSE)구분할 수 있다. + short m_nStackStepCount; // Stack 수 + short m_nStackColorIdx; // Color를 선택하는 인덱스. //CString m_strStackStep[CFDEFECT_STACKCOUNT]; // Stack Step. - char m_strStackFirst[60]; // Stack Step. //201221 CJH - 占쌍댐옙 占쏙옙占쏙옙占쏙옙 60bytes - char m_strUnitID[16]; // 占쏙옙占쌍억옙占싱듸옙 + char m_strStackFirst[60]; // Stack Step. //201221 CJH - 최대 사이즈 60bytes + 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占쏙옙 占쌩곤옙 占싻뤄옙 占싯곤옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙占�. - int m_nAtomWidth; // TFE 占쏙옙 占십븝옙 - int m_nAtomHeight; // TFE 占쏙옙 占쏙옙占쏙옙 - short/*ReKind*/ m_DefectKind; // 占쏙옙占쏙옙 占쏙옙占쏙옙 + 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등 추가 분류 알고리즘 적용 결과. + int m_nAtomWidth; // TFE 핵 너비 + int m_nAtomHeight; // TFE 핵 높이 + short/*ReKind*/ m_DefectKind; // 결함 종류 char m_strDefectCode[32]; // Defect Code BOOL m_bMergeState; // Merge Status char m_strAoiImageName[256]; // Defect Image Name(CCD Image) - int m_nDefectMerge; // 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 + int m_nDefectMerge; // 현재 디펙의 머지 여부 int m_nPixelSizeOrigin; int m_nScratchRatio; - int m_nDensity; // 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占싻듸옙 [2017.8.2 bhs] + int m_nDensity; // 원형 결함 구분을 위한 밀도 [2017.8.2 bhs] char m_strDefectName[16]; char m_strDefectType[16]; @@ -491,16 +515,16 @@ double m_dScanResolution; double m_dConvResolution; - int m_nAngle; // 占쏙옙占쏙옙 - int m_nMajor; // 占쏙옙占쏙옙 占쏙옙占쏙옙(Long) - int m_nMinor; // 占쏙옙占쏙옙 占쏙옙占쏙옙(Short) - int m_nCompact; // Blob 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 占싹댐옙 占쏙옙占쏙옙 占쏙옙占싱울옙 Blob 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 - int m_nThickness; // Blob 占쏙옙占싱울옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 (Area / Major) + int m_nAngle; // 각도 + int m_nMajor; // 장축 길이(Long) + int m_nMinor; // 단축 길이(Short) + int m_nCompact; // Blob 장축을 지름으로 하는 원의 넓이와 Blob 넓이의 비율 + int m_nThickness; // Blob 넓이와 장축의 비율 (Area / Major) - short m_nHliLevelIdx; // 占쏙옙 占쏙옙째 占쏙옙占쏙옙(채占쏙옙)占싸곤옙? - int m_nHliLayers; // 占쌔댐옙占쏙옙篤占� 占쏙옙占쌉듸옙 占쏙옙占싱억옙 bit처占쏙옙 + short m_nHliLevelIdx; // 몇 번째 레벨(채널)인가? + int m_nHliLayers; // 해당결함에 포함된 레이어 bit처리 - BOOL m_bShrinked; //210323 CJH - Frame Shrink 占쏙옙占쏙옙 占쌩곤옙 + BOOL m_bShrinked; //210323 CJH - Frame Shrink 정보 추가 char m_strAoiImagePath[255]; char m_strReviewImagePath[255]; @@ -509,9 +533,11 @@ 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 >*/ - - //占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 [占쏙옙占쏙옙占쏙옙 2019/1/19] _grmDefectReviewData m_ReviewDefect; }; @@ -556,32 +582,41 @@ struct _grmDitMemInfo { - //占쏙옙占쏙옙 占쌨몌옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 [占쏙옙占쏙옙占쏙옙 2018/11/12] + //공유 메모리 생성할 공간 결정 [김태현 2018/11/12] size_t m_nGlassRawDataSize; int m_nGlassMaxDataNum; int m_nBlockMaxDataNum; 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] + //Char 기준 자료가 있는 시작 위치 [김태현 2018/11/12] int m_nGlassDataPoint; int m_nBlockDataPoint; 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 { size_t m_nGlassLoadingCount; - emAOIProcStep m_ClientProcStep; //AOI, Review占쏙옙 占쏙옙占쏙옙 占쏙옙占� - emAOIProcStep m_ServerProcStep; //GlassRaw Messenger(Server)占쏙옙 처占쏙옙 占싹뤄옙 占쏙옙 占쏙옙占� + emAOIProcStep m_ClientProcStep; //AOI, Review가 보낸 명령 + emAOIProcStep m_ServerProcStep; //GlassRaw Messenger(Server)가 처리 완료 한 명령 }; class CgrmGlassRawData @@ -668,7 +703,7 @@ { if(pInfo == NULL || pData == NULL) return FALSE; - if(1) //new type //占쌨몌옙 占쏙옙 占쏙옙占쏙옙 크占썩에 占쏙옙占쏙옙占쏙옙占� + if(1) //new type //메모리 총 공간 크기에 상관없이 { //if(pInfo->m_nGlassRawDataSize != m_MemInfo.m_nGlassRawDataSize) return FALSE; -- Gitblit v1.9.3