SDC C-Project CF Review 프로그램
Merge branch 'feature/#3428_CF_AOI_Review_Recipe_Editor_리뷰_우선순위_조건_타입_변경기능_적용_및_검증' into feature/#3440_CF_AOI_Review_QD,_CS_Align_Cam_Reverse_X_제어_기능_추가
7개 파일 변경됨
267 ■■■■■ 파일 변경됨
ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp 9 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/CHReviewRecipe/RcpPriorityInfo.cpp 3 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp 12 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewRecipeEditor/DlgReview.cpp 184 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp 47 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp 6 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h 6 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp
@@ -627,9 +627,14 @@
    //    //if (pDefectResult->nDefectCode != pPriorityInfo->GetPriorityOpticData()) return FALSE;
    //}
    //210608 Defect Code �� ä�¼� ���� ��û 
    if (pPriorityInfo->GetPriorityDefectCode() != RCP_PRIORITY_DEFECT_CODE_ALL)
    //if (pPriorityInfo->GetPriorityDefectCode() != RCP_PRIORITY_DEFECT_CODE_ALL)
    //{
    //    if (pDefectResult->nDefectJudgeCode != pPriorityInfo->GetPriorityDefectCode()) return FALSE;
    //}
    if (pPriorityInfo->GetPriorityDefectCode() != "" && pPriorityInfo->GetPriorityDefectCode() != "ALL" && pPriorityInfo->GetPriorityDefectCode() != "all")
    {
        if (pDefectResult->nDefectJudgeCode != pPriorityInfo->GetPriorityDefectCode()) return FALSE;
        if (pDefectResult->strDefectJudgeCode != pPriorityInfo->GetPriorityDefectCode()) return FALSE;
    }
    if (pPriorityInfo->GetPriorityGradeData() != RCP_PRIORITY_Judge_ALL)
ReviewSystem/CHReviewRecipe/RcpPriorityInfo.cpp
@@ -24,7 +24,8 @@
    m_bUseSizeOption                = FALSE;
    m_nDefectumMinSize                = 0;
    m_nDefectumMaxSize                = 99999;
    m_nPriorityDefectCode            = RCP_PRIORITY_DEFECT_CODE_ALL; //20210608
    //m_nPriorityDefectCode            = RCP_PRIORITY_DEFECT_CODE_ALL; //20210608
    m_strPriorityDefectCode            = "";
}
void CRcpPriorityInfo::SetInfo(const CRcpPriorityInfo& rhs)
ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp
@@ -769,14 +769,14 @@
    {
        CRcpPriorityInfo* pRcpPriorityInfo = m_rsRcpReviewInfo.GetRcpPriorityInfo(nPriorityIdx);
        if(pRcpPriorityInfo == NULL) continue;
        CString strData = _T("");
        int nData = 0;
        /*strItem.Format(_T("RCP_REVIEW_PRIORITY_OPTIC_DATA_%02d"), nPriorityIdx); //210608
        macroFile.GetItem(strItem, nData);
        pRcpPriorityInfo->SetPriorityOpticData(nData);*/
        strItem.Format(_T("RCP_REVIEW_PRIORITY_DEFECTCODE_DATA_%02d"), nPriorityIdx); //210608
        macroFile.GetItem(strItem, nData);
        pRcpPriorityInfo->SetPriorityDefectCode(nData);
        macroFile.GetItem(strItem, strData);
        pRcpPriorityInfo->SetPriorityDefectCode(strData);
        strItem.Format(_T("RCP_REVIEW_PRIORITY_USE_SIZEOPTION_%02d"), nPriorityIdx);
        macroFile.GetItem(strItem, nData);
@@ -867,14 +867,14 @@
    {
        CRcpPriorityInfo* pRcpPriorityInfo = m_rsRcpReviewInfo.GetRcpWsiPriorityInfo(nPriorityIdx);
        if(pRcpPriorityInfo == NULL) continue;
        CString strData = _T("");
        int nData = 0;
        /*strItem.Format(_T("RCP_WSI_PRIORITY_DEFECT_TYPE_%02d"), nPriorityIdx);
        macroFile.GetItem(strItem, nData);
        pRcpPriorityInfo->SetPriorityOpticData(nData);*/
        strItem.Format(_T("RCP_WSI_PRIORITY_DEFECTCODE_DATA_%02d"), nPriorityIdx);    //210608
        macroFile.GetItem(strItem, nData);
        pRcpPriorityInfo->SetPriorityDefectCode(nData);
        macroFile.GetItem(strItem, strData);
        pRcpPriorityInfo->SetPriorityDefectCode(strData);
        strItem.Format(_T("RCP_WSI_PRIORITY_USE_SIZEOPTION_%02d"), nPriorityIdx);
        macroFile.GetItem(strItem, nData);
ReviewSystem/ReviewRecipeEditor/DlgReview.cpp
@@ -236,19 +236,24 @@
            const CRcpPriorityInfo* pRcpPriorityInfo = pRsRcpReviewInfo->GetRcpWsiPriorityInfo(i);
            if (pRcpPriorityInfo == NULL) continue;
            pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx);
            /*pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx);
            if(pCellCombo)
            {
                strArrayOption.RemoveAll();
                pCellCombo->GetOptions(strArrayOption);
                if(strArrayOption.GetSize() > 0)
                {
                {*/
                    //strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData());
                    strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityDefectCode()); //WSI ������ //20210608
                    //strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityDefectCode()); //WSI ������ //20210608
                    //m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText);
                    //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD START
                    strItemText.Format(_T("%s"), pRcpPriorityInfo->GetPriorityDefectCode());
                    m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText);
                }
            }
                    //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD END
            //    }
            //}
            pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx);
@@ -357,19 +362,24 @@
            const CRcpPriorityInfo* pRcpPriorityInfo = pRsRcpReviewInfo->GetRcpPriorityInfo(i);
            if (pRcpPriorityInfo == NULL) continue;
            pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx);
            /*pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx);
            if(pCellCombo)
            {
                strArrayOption.RemoveAll();
                pCellCombo->GetOptions(strArrayOption);
                if(strArrayOption.GetSize() > 0)
                {
                {*/
                    //strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData());
                    strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityDefectCode());//20210608 TRDF ������
                    //strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityDefectCode());//20210608 TRDF ������
                    //m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText);
                    //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD START
                    strItemText.Format(_T("%s"), pRcpPriorityInfo->GetPriorityDefectCode());
                    m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText);
                }
            }
                    //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD END
            /*    }
            }*/
            pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx);
            if(pCellCombo)
@@ -672,25 +682,30 @@
            if(pRcpPriorityInfo == NULL) continue;
            // optic
            pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++);
            if(pCellCombo)
            {
                strArrayOption.RemoveAll();
                strItemText = pCellCombo->GetText();
                pCellCombo->GetOptions(strArrayOption);
                nArrayCount = (int)strArrayOption.GetCount();
            //pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++);
            //if(pCellCombo)
            //{
            //    strArrayOption.RemoveAll();
            //    strItemText = pCellCombo->GetText();
            //    pCellCombo->GetOptions(strArrayOption);
            //    nArrayCount = (int)strArrayOption.GetCount();
                for(j = 0; j < nArrayCount; j++)
                {
                    strTemp = strArrayOption.GetAt(j);
                    if(strTemp.Compare(strItemText) == 0)
                    {
                        //pRcpPriorityInfo->SetPriorityOpticData(j);//20210608
                        pRcpPriorityInfo->SetPriorityDefectCode(j);
                        break;
                    }
                }
            }
            //    for(j = 0; j < nArrayCount; j++)
            //    {
            //        strTemp = strArrayOption.GetAt(j);
            //        if(strTemp.Compare(strItemText) == 0)
            //        {
            //            //pRcpPriorityInfo->SetPriorityOpticData(j);//20210608
            //            pRcpPriorityInfo->SetPriorityDefectCode(j);
            //            break;
            //        }
            //    }
            //}
            //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD START
            strItemText.Format(_T("%s"), m_ctrlGridFilterinfo.GetItemText(nRowIdx, nColIdx++));
            pRcpPriorityInfo->SetPriorityDefectCode(strItemText);
            //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD END
            pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++);
            if(pCellCombo)
@@ -786,25 +801,30 @@
            CRcpPriorityInfo* pRcpPriorityInfo = pRsRcpReviewInfo->GetRcpPriorityInfo(i);        
            if(pRcpPriorityInfo == NULL) continue;
            pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++);
            if(pCellCombo)
            {
                strArrayOption.RemoveAll();
                strItemText = pCellCombo->GetText();
                pCellCombo->GetOptions(strArrayOption);
                nArrayCount = (int)strArrayOption.GetCount();
            //pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++);
            //if(pCellCombo)
            //{
            //    strArrayOption.RemoveAll();
            //    strItemText = pCellCombo->GetText();
            //    pCellCombo->GetOptions(strArrayOption);
            //    nArrayCount = (int)strArrayOption.GetCount();
                for(j = 0; j < nArrayCount; j++)
                {
                    strTemp = strArrayOption.GetAt(j);
                    if(strTemp.Compare(strItemText) == 0)
                    {
                        //pRcpPriorityInfo->SetPriorityOpticData(j); //20210608
                        pRcpPriorityInfo->SetPriorityDefectCode(j);
                        break;
                    }
                }
            }
            //    for(j = 0; j < nArrayCount; j++)
            //    {
            //        strTemp = strArrayOption.GetAt(j);
            //        if(strTemp.Compare(strItemText) == 0)
            //        {
            //            //pRcpPriorityInfo->SetPriorityOpticData(j); //20210608
            //            pRcpPriorityInfo->SetPriorityDefectCode(j);
            //            break;
            //        }
            //    }
            //}
            //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD START
            strItemText.Format(_T("%s"), m_ctrlGridFilterinfo.GetItemText(nRowIdx, nColIdx++));
            pRcpPriorityInfo->SetPriorityDefectCode(strItemText);
            //LYW #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 MOD END
            pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++);
            if(pCellCombo)
@@ -1406,41 +1426,43 @@
                }
                strArrayOption.Add(strTemp);
            }*/
            for (j = 0; j < RCP_PRIORITY_DEFECTCODE_COUNT; j++)//20210608
            {
                switch (j)
                {
                case RCP_PRIORITY_DEFECT_CODE_ALL:
                    strTemp.Format(_T("ALL"));
                    break;
                case RCP_PRIORITY_DEFECT_CODE_TRDF:
                    strTemp.Format(_T("TRDF"));
                    break;
                case RCP_PRIORITY_DEFECT_CODE_BATR:
                    strTemp.Format(_T("BATR"));
                    break;
                case RCP_PRIORITY_DEFECT_CODE_DOBB:
                    strTemp.Format(_T("DOBB"));
                    break;
                case RCP_PRIORITY_DEFECT_CODE_DOBS:
                    strTemp.Format(_T("DOBS"));
                    break;
                case RCP_PRIORITY_DEFECT_CODE_DOWW:
                    strTemp.Format(_T("DOWW"));
                    break;
                case RCP_PRIORITY_DEFECT_CODE_DOWB:
                    strTemp.Format(_T("DOWB"));
                    break;
                case RCP_PRIORITY_DEFECT_CODE_DOWS:
                    strTemp.Format(_T("DOWS"));
                    break;
                }
                strArrayOption.Add(strTemp);
            }
            m_ctrlGridFilterinfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo));
            pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++);
            pCellCombo->SetOptions(strArrayOption);
            pCellCombo->SetStyle(CBS_DROPDOWN);
            //for (j = 0; j < RCP_PRIORITY_DEFECTCODE_COUNT; j++)//20210608
            //{
            //    switch (j)
            //    {
            //    case RCP_PRIORITY_DEFECT_CODE_ALL:
            //        strTemp.Format(_T("ALL"));
            //        break;
            //    case RCP_PRIORITY_DEFECT_CODE_TRDF:
            //        strTemp.Format(_T("TRDF"));
            //        break;
            //    case RCP_PRIORITY_DEFECT_CODE_BATR:
            //        strTemp.Format(_T("BATR"));
            //        break;
            //    case RCP_PRIORITY_DEFECT_CODE_DOBB:
            //        strTemp.Format(_T("DOBB"));
            //        break;
            //    case RCP_PRIORITY_DEFECT_CODE_DOBS:
            //        strTemp.Format(_T("DOBS"));
            //        break;
            //    case RCP_PRIORITY_DEFECT_CODE_DOWW:
            //        strTemp.Format(_T("DOWW"));
            //        break;
            //    case RCP_PRIORITY_DEFECT_CODE_DOWB:
            //        strTemp.Format(_T("DOWB"));
            //        break;
            //    case RCP_PRIORITY_DEFECT_CODE_DOWS:
            //        strTemp.Format(_T("DOWS"));
            //        break;
            //    }
            //    strArrayOption.Add(strTemp);
            //}
            //m_ctrlGridFilterinfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo));
            //pCellCombo = (CGridCellCombo*)m_ctrlGridFilterinfo.GetCell(nRowIdx, nColIdx++);
            //pCellCombo->SetOptions(strArrayOption);
            //pCellCombo->SetStyle(CBS_DROPDOWN);
            nColIdx++;
            strArrayOption.RemoveAll();
            for (j = 0; j < RCP_PRIORITY_GRADE_COUNT; j++)
ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp
@@ -18,9 +18,9 @@
int        Defect_Historywidth[DEFECTLISTCNT] = { 50,              80,             80, 50,         50,        40,         40,         45,          45,         50,        50,               80,             80 };
// [2017:6:7]-[WEZASW] : BOE향
#define B7_DEFECTLISTCNT        14
TCHAR*    B7_Defect_HistoryTitlelist[B7_DEFECTLISTCNT] = { _T("No"), _T("RV_X(mm)"), _T("RV_Y(mm)"), _T("DType"), _T("MType"),  _T("SType"), _T("DLength"), _T("Area"), _T("Peak"), _T("Cam"), _T("DType1"), _T("AOI_X(mm)"), _T("AOI_Y(mm)") };
int        B7_Defect_Historywidth[B7_DEFECTLISTCNT] = { 40,              75,                 75,        75,            75,                50,            60,                45,            45,            40,            60,                80,                80 };
#define B7_DEFECTLISTCNT        15
TCHAR*    B7_Defect_HistoryTitlelist[B7_DEFECTLISTCNT] = { _T("No"), _T("RV_X(mm)"), _T("RV_Y(mm)"), _T("DType"), _T("DCode"), _T("MType"),  _T("SType"), _T("DLength"), _T("Area"), _T("Peak"), _T("Cam"), _T("DType1"), _T("AOI_X(mm)"), _T("AOI_Y(mm)") };
int        B7_Defect_Historywidth[B7_DEFECTLISTCNT] = { 40,              65,                 65,        65,            50,    55,                50,            60,                45,            45,            40,            60,                80,                80 };
// CDlgDeffectHistroy 대화 상자
@@ -300,6 +300,7 @@
            case 0: nValue = pDefectResult->nDefectIdx; break;            // _T("No")
            case 1: nValue = pDefectResult->nUMOriginX; break;            // _T("RV_X(mm)")
            case 2: nValue = pDefectResult->nUMOriginY; break;            // _T("RV_Y(mm)")
            case 6: nValue = pDefectResult->nAOISizeLength; break;        // _T("DLength")
            case 7: nValue = pDefectResult->nAOIArea; break;                // _T("Area")
            case 8: nValue = pDefectResult->nAOIPeak; break;                // _T("Peak")
@@ -396,15 +397,16 @@
    case 1: strItem = _T("RV_X(mm)"); break;
    case 2: strItem = _T("RV_Y(mm)"); break;
    case 3: strItem = _T("DType"); break;
    case 4: strItem = _T("Judge"); break;
    case 5: strItem = _T("SType"); break;
    case 6: strItem = _T("DLength"); break;
    case 7: strItem = _T("Area"); break;
    case 8: strItem = _T("Peak"); break;
    case 9: strItem = _T("Cam"); break;
    case 10: strItem = _T("ScanN"); break;
    case 11: strItem = _T("AOI_X(mm)"); break;
    case 12: strItem = _T("AOI_Y(mm)"); break;
    case 4: strItem = _T("DCode"); break;
    case 5: strItem = _T("Judge"); break;
    case 6: strItem = _T("SType"); break;
    case 7: strItem = _T("DLength"); break;
    case 8: strItem = _T("Area"); break;
    case 9: strItem = _T("Peak"); break;
    case 10: strItem = _T("Cam"); break;
    case 11: strItem = _T("ScanN"); break;
    case 12: strItem = _T("AOI_X(mm)"); break;
    case 13: strItem = _T("AOI_Y(mm)"); break;
    default: break;
    }
}
@@ -517,47 +519,52 @@
    break;
    case 4:        //MType
    {
        strItem.Format(_T("%s"), pDefectResult->strDefectJudgeCode);
    }
    break;
    case 5:        //MType
    {
        strItem.Format(_T("%s"), pDefectResult->strJudgeType);
    }
    break;
    case 5:        //S_Type
    case 6:        //S_Type
    {
        strItem.Format(_T("%s"), pDefectResult->strSizeType);
    }
    break;
    case 6:        //DLength
    case 7:        //DLength
    {
        strItem.Format(_T("%d"), (int)pDefectResult->nAOISizeLength);
    }
    break;
    case 7:        //Area
    case 8:        //Area
    {
        strItem.Format(_T("%d"), (int)pDefectResult->nAOIArea);
    }
    break;
    case 8:        //Peak
    case 9:        //Peak
    {
        strItem.Format(_T("%d"), pDefectResult->nAOIPeak);
    }
    break;
    case 9:        //Cam
    case 10:        //Cam
    {
        strItem.Format(_T("%d"), pDefectResult->nAOICameraIdx);
    }
    break;
    case 10:    //D_Type1
    case 11:    //D_Type1
    {
        //    strItem.Format(_T("%s"), pDefectResult->strDefectType1);
        strItem.Format(_T("%d"), pDefectResult->nAOIScanIdx);
    }
    break;
    case 11:    //AOI_X(mm)
    case 12:    //AOI_X(mm)
    {
        strItem.Format(_T("%.03lf"), pDefectResult->dUMCenterOriginX / 1000.);
    }
    break;
    case 12:    //AOI_Y(mm)
    case 13:    //AOI_Y(mm)
    {
        strItem.Format(_T("%.03lf"), pDefectResult->dUMCenterOriginY / 1000.);
    }
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
@@ -1048,8 +1048,8 @@
            strFileName.Format(_T("%s_%s"), strGlassIDTemp, strGlassStepIdTemp);
            //업데이트시
            bFileFind = FindRawBinFile(strFileName);
            //bFileFind = TRUE;
            //bFileFind = FindRawBinFile(strFileName);
            bFileFind = TRUE;
            pDitRawClient->SetReviewStart();
            Sleep(1000);
@@ -4500,7 +4500,7 @@
    SetWsiType(0);
    WSIAllReadySignal(1);
    Sleep(500);
    Sleep(1000);
    if(!WSIAllStartSignal())
    {
        g_pLog->DisplayMessage(_T("[WSI] WSI Start Fail!!"));
ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h
@@ -50,7 +50,7 @@
    int            GetPriorityDefectMaxSize() const        { return m_nDefectumMaxSize; }
    BOOL        GetPriorityDefectSizeOption() const        { return m_bUseSizeOption; }
    int            GetPriorityGradeData() const            { return m_nDefectGradeData; }
    int            GetPriorityDefectCode() const            { return m_nPriorityDefectCode; }//20210608 TRDF ������
    CString            GetPriorityDefectCode() const            { return m_strPriorityDefectCode; }//20210608 TRDF ������
    // setter
    void        SetInfo(const CRcpPriorityInfo& rhs);
@@ -64,7 +64,7 @@
    void        SetPriorityDefectMaxSize(int nSize)        { m_nDefectumMaxSize = nSize; }
    void        SetPriorityDefectSizeOption(bool bUse)    { m_bUseSizeOption = bUse; }
    void        SetPriorityGradeData(int nData) {m_nDefectGradeData = nData; }
    void        SetPriorityDefectCode(int nData) {m_nPriorityDefectCode = nData;} //20210608
    void        SetPriorityDefectCode(CString StrData) { m_strPriorityDefectCode = StrData;} //20210608
protected:
    int        m_nPriorityOpticData;                    // �켱���� optic ������
    int        m_nPriorityGrayData;                    // �켱���� gray ������
@@ -73,7 +73,7 @@
    int        m_nPriorityDefectType;
    int        m_nPriorityDefectTypeNum;
    int        m_nDefectGradeData;
    int        m_nPriorityDefectCode;                   // �켱���� �˻� DefectCode ������//20210608
    CString        m_strPriorityDefectCode;                   // �켱���� �˻� DefectCode ������//20210608
    BOOL    m_bUseSizeOption;
    int        m_nDefectumMinSize;