SDC C-Project CF Review 프로그램
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,12 @@
   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;
   //��������
   //설비정보
   char m_strLine[32];
   char m_strEquipType[32];         
   char m_strEquipID[32];            
@@ -74,7 +75,7 @@
   CTime   m_tmReviewLoading;
   CTime   m_tmReviewEnd;
   //�⺻ ��������
   //기본 물류정보
   char m_strGlassID[32];            //Glass ID
   char m_strPPID[32];               
   char m_strEPPID[32];            
@@ -91,7 +92,7 @@
   char m_strVCRGlassID[32];
   //���� ���� ���� ����
   //결함 갯수 관리 변수
   int         m_nDefectNumSizeSmall;
   int         m_nDefectNumSizeMid;
   int         m_nDefectNumSizeLarge;
@@ -126,14 +127,14 @@
   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 +148,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 +163,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];
@@ -188,17 +189,19 @@
   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 ��� ���� ��
   int m_nRawMergeNum;
   BOOL m_bRawMergeRead;
   //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;
};
@@ -222,7 +225,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 +238,7 @@
   int                  m_nJudgeGlade;
   //���� ���� ���� ����
   //결함 갯수 관리 변수
   int         m_nDefectNumSizeSmall;
   int         m_nDefectNumSizeMid;
   int         m_nDefectNumSizeLarge;
@@ -259,7 +262,7 @@
   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 +272,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 +282,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 +292,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];
@@ -308,17 +311,17 @@
   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 +334,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 +346,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 +362,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 +385,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 +494,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];
@@ -511,7 +514,6 @@
   int            m_nAlignRectRight;
   //���� ���� ���� [������ 2019/1/19]
   _grmDefectReviewData m_ReviewDefect;
};
@@ -556,32 +558,35 @@
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;
   int m_nRawMergeMaxDataNum;
   //Char ���� �ڷᰡ �ִ� ���� ��ġ [������ 2018/11/12]
   //Char 기준 자료가 있는 시작 위치 [김태현 2018/11/12]
   int m_nGlassDataPoint;
   int m_nBlockDataPoint;
   int m_nCellDataPoint;
   int m_nDefectDataPoint;
   int m_nStackDataPoint;
   int m_nRawMergeDataPoint;
   int m_nSizeOfGlassData;
   int m_nSizeOfBlockData;
   int m_nSizeOfCellData;
   int m_nSizeOfDefectData;
   int m_nSizeOfStackData;
   int m_nSizeOfRawMergeData;
};
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 +673,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;