SDC C-Project CF Review 프로그램
Ongoing90 #3835 CF AOI Review Offset Grid 클릭시 해당 되는 결함 DefectMap표시

1. Offset다이얼로그에서 Grid 더블 클릭에대한 Onnotify 함수 구현
2. 클릭된 Row값을 받아와 Cam,Scan 인덱스 계산
3. 계산된 Cam,Scan인덱스를 부모클래스에 전달해 부모클래스에서 DefectMap 객체에 전달
4. 전달받은 값을 토대로 구분되도록 DefectMap에서 색깔 변경
21개 파일 삭제됨
14개 파일 변경됨
219 ■■■■ 파일 변경됨
ReviewSystem/CHDefectPicker/Debug/defectpicker.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/CHDefectPicker/Debug/defectpicker_range.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/CHReviewPrioritySorter/Debug/prioritysorter_cpjt.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp 18 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp 37 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewRecipeEditor/DlgReview.cpp 3 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/cameracontrolalign.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/cameracontroller.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/defectmap.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/dlgcontrol.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/dlgdefectfilter.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/dlgdefecthistorymap.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/dlgdefectinfo.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/dlgdefectlist.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/dlgdeffecthistroy.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/dlglogo.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/dlglongrun.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/dlgreviewhistorytool.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/mainfrm.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/reviewinterface.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/reviewsystem.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/reviewsystemview.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/sequenceprocessor.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/Debug/sequenceprocessor_cpjt.obj.enc 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/DefectMap.cpp 88 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/DefectMap.h 9 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/DlgDefectFilter.cpp 14 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/DlgReviewOffSetTool.cpp 29 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/DlgReviewOffSetTool.h 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/ModuleStatus.h 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/ReviewInterface.cpp 8 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/ReviewInterface.h 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h 2 ●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/include/CHReviewResult/DefectResult.h 2 ●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/include/CHReviewResultParser/ParsingGlassResult_CPJT.h 2 ●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/CHDefectPicker/Debug/defectpicker.obj.enc
Binary files differ
ReviewSystem/CHDefectPicker/Debug/defectpicker_range.obj.enc
Binary files differ
ReviewSystem/CHReviewPrioritySorter/Debug/prioritysorter_cpjt.obj.enc
Binary files differ
ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp
@@ -662,34 +662,38 @@
        {
            if (pDefectResult->nJudgeType != 4) { return FALSE; }
        }
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_PT)
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_ND)
        {
            if (pDefectResult->nJudgeType != 5) { return FALSE; }
        }
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_Review)
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_PT)
        {
            if (pDefectResult->nJudgeType != 6) { return FALSE; }
        }
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_RC)
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_Review)
        {
            if (pDefectResult->nJudgeType != 7) { return FALSE; }
        }
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_Size)
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_RC)
        {
            if (pDefectResult->nJudgeType != 8) { return FALSE; }
        }
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_VI)
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_Size)
        {
            if (pDefectResult->nJudgeType != 9) { return FALSE; }
        }
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_Rework)
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_VI)
        {
            if (pDefectResult->nJudgeType != 10) { return FALSE; }
        }
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_Unknown)
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_Rework)
        {
            if (pDefectResult->nJudgeType != 11) { return FALSE; }
        }
        else if (pPriorityInfo->GetPriorityGradeData() == RCP_PRIORITY_Judge_Unknown)
        {
            if (pDefectResult->nJudgeType != 12) { return FALSE; }
        }
        
    }
    //RCP_PRIORITY_ORDER_ALL,RCP_PRIORITY_ORDER_NONE_STACK,RCP_PRIORITY_ORDER_STACK
ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp
@@ -1145,6 +1145,8 @@
            break;
        case Judge_PR:            sStr.Format("PR");
            break;
        case Judge_ND:            sStr.Format("ND");
            break;
        case Judge_PT:            sStr.Format("PT");
            break;
        case Judge_Review:        sStr.Format("RV");
@@ -1414,7 +1416,10 @@
        //g_pLog->DisplayMessage(_T("AOIImageName : \n"), pSharedDefect->m_strAoiImageName);
        
        pDefectResult->strInspectImgFileName = pSharedDefect->m_strAoiImageName;
        pDefectResult->nDefectWBType        =    int(pSharedDefect->m_DefectBDType);
        /*< LYW 20211220 - #0000 ADD Start >*/
        //버그 수정
        pDefectResult->nDefectWBType        =    int(pSharedDefect->m_DefectType);
        /*< LYW 20211220 - #0000 ADD End >*/
        
        if(pDefectResult->nDefectWBType == 1 || pDefectResult->nDefectWBType == 3 || pDefectResult->nDefectWBType ==5)    pDefectResult->nDefectWBType =2;
        else    pDefectResult->nDefectWBType = 1;
@@ -1453,14 +1458,15 @@
        //��Ƽ �𵨺� Review/WSI ���͸��� ���� ����
        pDefectResult->nMultiModel          = pSharedDefect->m_nModelIdx;
        if (pSharedDefect->m_DefectBDType == 1)
        /*< LYW 20211220 - #$0000 MOD Start >*/
        if (pDefectResult->nDefectWBType == 1)
        {
            //Dark
            pDefectResult->nOpticType = 2;
            pDefectResult->nGrayType = 1;
            pDefectResult->strOpticType = _T("DARK");
        }
        else if (pSharedDefect->m_DefectBDType == 0)
        else if (pDefectResult->nDefectWBType == 2)
        {
            //White
            pDefectResult->nOpticType = 1;
@@ -1474,6 +1480,29 @@
            pDefectResult->nGrayType = 1;
            pDefectResult->strOpticType = _T("BOTH");
        }
        /*< LYW 20211220 - #0000 MOD End >*/
        /*< Origin Code >*/
//         if (pSharedDefect->m_DefectBDType == 1)
//         {
//             //Dark
//             pDefectResult->nOpticType = 2;
//             pDefectResult->nGrayType = 1;
//             pDefectResult->strOpticType = _T("DARK");
//         }
//         else if (pSharedDefect->m_DefectBDType == 0)
//         {
//             //White
//             pDefectResult->nOpticType = 1;
//             pDefectResult->nGrayType = 2;
//             pDefectResult->strOpticType = _T("WHITE");
//         }
//         else
//         {
//             //both
//             pDefectResult->nOpticType = 3;
//             pDefectResult->nGrayType = 1;
//             pDefectResult->strOpticType = _T("BOTH");
//         }
    
@@ -1548,7 +1577,7 @@
        CString strCellID(pDitRawClient->GetCellData(pSharedDefect->m_nCellIdx)->m_strCellName);
        pDefectResult->strCellID = strCellID;
        pDefectResult->nGrayType    = 1;    // Imsi
        //pDefectResult->nGrayType    = 1;    // Imsi
        pDefectResult->nOpticType    = 1;            
        pDefectResult->nTotalDefectCount    = nTotalDefectIdx;
        pDefectResult->ProcessID    = pDitRawClient->GetGlassData()->m_strOperID;
ReviewSystem/ReviewRecipeEditor/DlgReview.cpp
@@ -1488,6 +1488,9 @@
                case RCP_PRIORITY_Judge_PR:
                    strTemp.Format(_T("PR"));
                    break;
                case RCP_PRIORITY_Judge_ND:
                    strTemp.Format(_T("ND"));
                    break;
                case RCP_PRIORITY_Judge_PT:
                    strTemp.Format(_T("PT"));
                    break;
ReviewSystem/ReviewSystem/Debug/cameracontrolalign.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/cameracontroller.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/defectmap.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/dlgcontrol.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/dlgdefectfilter.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/dlgdefecthistorymap.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/dlgdefectinfo.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/dlgdefectlist.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/dlgdeffecthistroy.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/dlglogo.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/dlglongrun.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/dlgreviewhistorytool.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/mainfrm.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/reviewinterface.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/reviewsystem.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/reviewsystemview.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/sequenceprocessor.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/Debug/sequenceprocessor_cpjt.obj.enc
Binary files differ
ReviewSystem/ReviewSystem/DefectMap.cpp
@@ -77,11 +77,14 @@
    m_RowColor[2]        = RGB(220,20,220);
    m_RowColor[3]        = RGB(20,220,220);
    m_RowColor[4]       = RGB(220, 20, 80);
    for (int i=0; i<5; i++)
    m_RowColor[5]        = RGB(255, 128, 0);
    for (int i=0; i<6; i++)
    {
        m_pDefectPen[i].CreatePen(PS_SOLID, 1, m_RowColor[i]); 
        m_pDefectBrush[i].CreateSolidBrush(m_RowColor[i]); 
    }
//     m_pOffsetPen.CreatePen(PS_SOLID, 1, RGB(100, 200, 80));
//     m_pOffsetBrush.CreateSolidBrush(RGB(100, 200, 80));
    m_nPlanIndex        = 0;
    m_bHistoryEnable = TRUE;
@@ -491,6 +494,28 @@
     nCamSacnIndex = nScanidx;
     nGlassMax = nXpos;
     nGlassMin = nYpos;
}
void CDefectMap::SetOffsetparm(int nCamidx, int nScanidx, BOOL bUse)
{
    CDC *MemDC = GetDC();
    nOffSetMode = bUse;
    nCamIndex = nCamidx;
    nCamSacnIndex = nScanidx;
    if (bUse == TRUE)
    {
        DrawDefect(MemDC);
        DrawReviewDefect(MemDC);
        //DrawWsiDefect(&MemDC);
    }
    nOffSetMode = FALSE;
    nCamIndex = -1;
    nCamSacnIndex = -1;
    //Invalidate(TRUE);
}
void CDefectMap::OnPaint()
@@ -1585,7 +1610,7 @@
            return 3;
        }
        break;
        //변경 필요
    case DefectType_Judge:
        if (defectFilter.bJudgeOK && (pDefectResult->nJudgeType == DEFECT_JUDGE_CPJT_OK))
        {
@@ -1600,6 +1625,11 @@
        if (defectFilter.bJudgePR && (pDefectResult->nJudgeType == DEFECT_JUDGE_CPJT_PR))
        {
            return 2;
        }
        if (defectFilter.bJudgeND && (pDefectResult->nJudgeType == DEFECT_JUDGE_CPJT_ND))
        {
            return 3;
        }
        break;
@@ -1737,6 +1767,11 @@
        {
            return 2;
        }
        if (defectFilter.bJudgeND)
        {
            return 3;
        }
        break;
    case DefectType_Process:
@@ -1818,13 +1853,36 @@
            continue;
        }
        pOldPen = pDC->SelectObject(&m_pDefectPen[nColorIdx]);
        pDC->SelectStockObject(BLACK_PEN);
        pOldBrush = pDC->SelectObject(&m_pDefectBrush[nColorIdx]);
        if (nOffSetMode == TRUE)
        {
            if (pDefectResult->nAOICameraIdx == nCamIndex && pDefectResult->nAOIScanIdx == nCamSacnIndex)
            {
                pOldPen = pDC->SelectObject(&m_pDefectPen[5]);
                //pDC->SelectStockObject(BLACK_PEN);
                pOldBrush = pDC->SelectObject(&m_pDefectBrush[5]);
            }
            else
            {
                pOldPen = pDC->SelectObject(&m_pDefectPen[5]);
                pDC->SelectStockObject(BLACK_PEN);
                pOldBrush = pDC->SelectObject(&m_pDefectBrush[5]);
                pDC->SelectStockObject(BLACK_BRUSH);
            }
        }
        else
        {
            pOldPen = pDC->SelectObject(&m_pDefectPen[nColorIdx]);
            pDC->SelectStockObject(BLACK_PEN);
            pOldBrush = pDC->SelectObject(&m_pDefectBrush[nColorIdx]);
        }
        nPosX = pDefectResult->nUMOriginX;
        nPosY = pDefectResult->nUMOriginY;
        TransformGlass2Map(nPosX, nPosY);
        pDC->Rectangle(nPosX - m_nDefectSize, nPosY - m_nDefectSize, nPosX + m_nDefectSize, nPosY + m_nDefectSize);
    }
@@ -2226,7 +2284,25 @@
        for(constVectorSReviewResultIt its=pReviewResult->m_vecSReviewResult.begin(); its!=pReviewResult->m_vecSReviewResult.end();its++)
        {
            if(its->nResultCode > ReviewResult_Process_Fail)
            if (nOffSetMode == TRUE)
            {
                if (its->nAOICameraIdx == nCamIndex && its->nAOIScanIdx == nCamSacnIndex)
                {
                    pOldPen = pDC->SelectObject(&m_pDefectPen[5]);
                    //pDC->SelectStockObject(BLACK_PEN);
                    pOldBrush = pDC->SelectObject(&m_pDefectBrush[5]);
                    //pDC->SelectStockObject(BLACK_BRUSH);
                }
                else
                {
                    pOldPen = pDC->SelectObject(&m_pDefectPen[5]);
                    pDC->SelectStockObject(BLACK_PEN);
                    pOldBrush = pDC->SelectObject(&m_pDefectBrush[5]);
                    pDC->SelectStockObject(BLACK_BRUSH);
                }
            }
            else if(its->nResultCode > ReviewResult_Process_Fail)
            {
                pOldPen = pDC->SelectObject(&reviewedPen);
                pOldBrush = pDC->SelectObject(&reviewedBrush);
ReviewSystem/ReviewSystem/DefectMap.h
@@ -214,9 +214,11 @@
    const CGlassResult*            m_pGlassResult;
    const VectorReviewResult*    m_pVecReviewResult;
    
    COLORREF                    m_RowColor[5];
    CBrush                        m_pDefectBrush[5];
    CPen                        m_pDefectPen[5];
    COLORREF                    m_RowColor[6];
    CBrush                        m_pDefectBrush[6];
    CPen                        m_pDefectPen[6];
    //CPen                        m_pOffsetPen;
    //CBrush                        m_pOffsetBrush;
    CPoint                m_pMousePt;
    CPoint                m_pMouseDwPt;
@@ -244,6 +246,7 @@
public:
    void SetOffsetmodeparma(BOOL bMode, int nCamidx, int nScanidx, double nXpos, double nYpos);
    void SetOffsetparm(int nCamidx, int nScanidx, BOOL bUse);
        BOOL nOffSetMode;
        int nGlassMax;
        int nGlassMin;
ReviewSystem/ReviewSystem/DlgDefectFilter.cpp
@@ -450,7 +450,7 @@
        m_CheckValue[0] = m_sDefectFilter.bJudgeOK;
        m_CheckValue[1] = m_sDefectFilter.bJudgeTR;
        m_CheckValue[2] = m_sDefectFilter.bJudgePR;
        m_CheckValue[3] = 0;
        m_CheckValue[3] = m_sDefectFilter.bJudgeND;
        break;
    case DefectType_Process:
@@ -551,17 +551,17 @@
    // col 1
    int nRowIdx = 0;
    m_ctrlGridDefectFilter.SetItemText(nRowIdx,    1, _T("O"));
    m_ctrlGridDefectFilter.SetItemText(nRowIdx,    1, _T("OK"));
    m_ctrlGridDefectFilter.SetItemText(nRowIdx++,    2, _T("OK Defect"));
    m_ctrlGridDefectFilter.SetItemText(nRowIdx,    1, _T("R"));
    m_ctrlGridDefectFilter.SetItemText(nRowIdx,    1, _T("TR"));
    m_ctrlGridDefectFilter.SetItemText(nRowIdx++,    2, _T("TR Defect"));
    m_ctrlGridDefectFilter.SetItemText(nRowIdx,    1, _T("X"));
    m_ctrlGridDefectFilter.SetItemText(nRowIdx,    1, _T("PR"));
    m_ctrlGridDefectFilter.SetItemText(nRowIdx++,    2, _T("PR Defect"));
    m_ctrlGridDefectFilter.SetItemText(nRowIdx,    1, _T(""));
    m_ctrlGridDefectFilter.SetItemText(nRowIdx++,    2, _T(""));
    m_ctrlGridDefectFilter.SetItemText(nRowIdx,    1, _T("ND"));
    m_ctrlGridDefectFilter.SetItemText(nRowIdx++,    2, _T("ND Defect"));
}
void CDlgDefectFilter::FillGridDefectFilterStack()
@@ -647,6 +647,7 @@
    m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T(""));
}
//변경 필요
void CDlgDefectFilter::FillGridDefectFilterGray()
{
    for (int i=0; i<4; i++)
@@ -770,6 +771,7 @@
        m_sDefectFilter.bJudgeOK = m_CheckValue[0];
        m_sDefectFilter.bJudgeTR = m_CheckValue[1];
        m_sDefectFilter.bJudgePR = m_CheckValue[2];
        m_sDefectFilter.bJudgeND = m_CheckValue[3];
        break;
    case DefectType_Process:
ReviewSystem/ReviewSystem/DlgReviewOffSetTool.cpp
@@ -1186,3 +1186,32 @@
    Invalidate(FALSE);
}
/*< LYW 20211025 - #3684 ADD End >*/
BOOL DlgReviewOffSetTool::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
    // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
    if (m_ctrlGridReviewOffSetInfo.GetSafeHwnd() && wParam == (WPARAM)m_ctrlGridReviewOffSetInfo.GetDlgCtrlID())
    {
        //*pResult = 1;
        GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam;
        if (NM_DBLCLK == pDispInfo->hdr.code)
        {
            //int nCol = pDispInfo->item.col;
            if (pDispInfo->item.row)
            {
                int nRow = (pDispInfo->item.row) - 1;
                int CamIdx = nRow / m_nScanCount;
                int scanIdx = nRow % m_nScanCount;
                if (m_pDDL2P)
                {
                    m_pDDL2P->IDRO2P_SetOffsetPram(CamIdx, scanIdx, TRUE);
                }
            }
        }
    }
    return CDialogEx::OnNotify(wParam, lParam, pResult);
}
ReviewSystem/ReviewSystem/DlgReviewOffSetTool.h
@@ -34,6 +34,7 @@
    virtual BOOL IDRO2P_GetMotorPos(int nModule, double &dXpos, double &dYpos)= 0;
    virtual BOOL IDRO2P_SetGlassMode(BOOL bMode, int nCamidx, int nScanidx, double nXpos, double nYpos) = 0;
    virtual BOOL IDRO2P_SetOffsetPram(int nCamIdx, int nScanIdx, BOOL bUse = 0) = 0;
    //virtual const CSystemInfo*  SP2P_System_GetSystemInfo()= 0;
    //virtual const CMotorControlInfo*    ISP2P_System_GetMotorInfo() = 0;
};
@@ -192,4 +193,5 @@
    double m_dWarnStandard;
    double m_dHardStandard;
    /*< LYW 20211111 - #3766 ADD End >*/
    virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
};
ReviewSystem/ReviewSystem/ModuleStatus.h
@@ -54,6 +54,7 @@
        bJudgeOK        = TRUE;
        bJudgeTR        = TRUE;
        bJudgePR        = TRUE;
        bJudgeND        = TRUE;
        bProcessNormal    = TRUE;
        bProcessMask    = TRUE;
@@ -96,6 +97,9 @@
    BOOL bJudgeOK;
    BOOL bJudgeTR;
    BOOL bJudgePR;
    /*< LYW 20211220 - #0000 ADD Start >*/
    BOOL bJudgeND;
    /*< LYW 20211220 - #0000 ADD End >*/
    BOOL bProcessNormal;
    BOOL bProcessMask;
ReviewSystem/ReviewSystem/ReviewInterface.cpp
@@ -3508,6 +3508,14 @@
    return FALSE;
}
BOOL CReviewInterface::IDRO2P_SetOffsetPram(int nCamIdx, int nScanIdx, BOOL bUse)
{
    CDlgDefectMap* pDefectmap = m_pView->GetDefectMapDlgHandle();
    if (pDefectmap == NULL) { return FALSE; }
    pDefectmap->GetDefectMap()->SetOffsetparm(nCamIdx, nScanIdx, bUse);
    return FALSE;
}
// diagnosis processor
void CReviewInterface::IDP2P_DisplayMessage(int nIndex, const TCHAR* lpstrFormat, ...)
{
ReviewSystem/ReviewSystem/ReviewInterface.h
@@ -295,6 +295,7 @@
    virtual BOOL GetOffSetValue(int nModule, int nCam, int nScan, double dGlassXPos, double &dXpos, double &dYpos);
    virtual BOOL IDRO2P_SetGlassMode(BOOL bMode, int nCamidx, int nScanidx, double nXpos, double nYpos);
    virtual BOOL IDRO2P_SetOffsetPram(int nCamIdx, int nScanIdx, BOOL bUse = 0);
protected: // Sequence Processor
ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h
@@ -21,7 +21,7 @@
enum RECIPE_PRIORITY_CSOT_STACK_TYPE        { RCP_PRIORITY_STACK_ALL = 0, RCP_PRIORITY_STACK_NONE_STACK, RCP_PRIORITY_STACK,RCP_PRIORITY_STACK_REVIEWED,RCP_PRIORITY_STACK_COUNT};
enum RECIPE_PRIORITY_CPJT_JUDGEMENT {
    RCP_PRIORITY_Judge_ALL = 0, RCP_PRIORITY_Judge_OK, RCP_PRIORITY_Judge_RP, RCP_PRIORITY_Judge_NG, RCP_PRIORITY_Judge_TR, RCP_PRIORITY_Judge_PR, RCP_PRIORITY_Judge_PT, RCP_PRIORITY_Judge_Review, RCP_PRIORITY_Judge_RC, RCP_PRIORITY_Judge_Size, RCP_PRIORITY_Judge_VI, RCP_PRIORITY_Judge_Rework, RCP_PRIORITY_Judge_Unknown, RCP_PRIORITY_GRADE_COUNT
    RCP_PRIORITY_Judge_ALL = 0, RCP_PRIORITY_Judge_OK, RCP_PRIORITY_Judge_RP, RCP_PRIORITY_Judge_NG, RCP_PRIORITY_Judge_TR, RCP_PRIORITY_Judge_PR, RCP_PRIORITY_Judge_ND, RCP_PRIORITY_Judge_PT, RCP_PRIORITY_Judge_Review, RCP_PRIORITY_Judge_RC, RCP_PRIORITY_Judge_Size, RCP_PRIORITY_Judge_VI, RCP_PRIORITY_Judge_Rework, RCP_PRIORITY_Judge_Unknown, RCP_PRIORITY_GRADE_COUNT
};
enum RECIPE_PRIORITY_CPJT_DEFECTCODE_TYPE {
ReviewSystem/include/CHReviewResult/DefectResult.h
@@ -17,7 +17,7 @@
    enum DefectSizeType            { DEFECT_SIZE_NONE = 0, DEFECT_SIZE_SMALL, DEFECT_SIZE_MEDIUM, DEFECT_SIZE_LARGE, DEFECT_SIZE_HUGE };
    enum DefectJudgeType        { DEFECT_JUDGE_NONE = 0, DEFECT_JUDGE_OK, DEFECT_JUDGE_TR, DEFECT_JUDGE_PR};
    enum DefectJudgeType_CPJT {
        DEFECT_JUDGE_CPJT_OK = 0, DEFECT_JUDGE_CPJT_RP, DEFECT_JUDGE_CPJT_NG, DEFECT_JUDGE_CPJT_TR, DEFECT_JUDGE_CPJT_PR, DEFECT_JUDGE_CPJT_PT, DEFECT_JUDGE_CPJT_Review, DEFECT_JUDGE_CPJT_RC, DEFECT_JUDGE_CPJT_Size, DEFECT_JUDGE_CPJT_VI, DEFECT_JUDGE_CPJT_Rework, DEFECT_JUDGE_CPJT_Unknown, DEFECT_JUDGE_CPJT_GRADE_COUNT
        DEFECT_JUDGE_CPJT_OK = 0, DEFECT_JUDGE_CPJT_RP, DEFECT_JUDGE_CPJT_NG, DEFECT_JUDGE_CPJT_TR, DEFECT_JUDGE_CPJT_PR, DEFECT_JUDGE_CPJT_ND, DEFECT_JUDGE_CPJT_PT, DEFECT_JUDGE_CPJT_Review, DEFECT_JUDGE_CPJT_RC, DEFECT_JUDGE_CPJT_Size, DEFECT_JUDGE_CPJT_VI, DEFECT_JUDGE_CPJT_Rework, DEFECT_JUDGE_CPJT_Unknown, DEFECT_JUDGE_CPJT_GRADE_COUNT
    };
    enum DefectSubType            { DEFECT_SUBTYPE_NONE = 0, DEFECT_SUBTYPE_NR, DEFECT_SUBTYPE_MD, DEFECT_SUBTYPE_CD, DEFECT_SUBTYPE_MC };
    enum DefectProcessType        { DEFECT_PROCESS_NONE = 0, DEFECT_PROCESS_NORMAL, DEFECT_PROCESS_MASK, DEFECT_PROCESS_COMMON, DEFECT_PROCESS_CRACK };
ReviewSystem/include/CHReviewResultParser/ParsingGlassResult_CPJT.h
@@ -6,7 +6,7 @@
enum GlassOriginDir     { GlassOrigin_LeftTop=0, GlassOrigin_RightTop, GlassOrigin_LeftBottom, GlassOrigin_RightBottom, GlassOrigin_Count };
enum CSOTDfectCode      {CSOT_PARTICLE=1,COST_CRACK,CSOT_MURA,CSOT_PROTRUDE,CSOT_DENT,CSOT_TFE_ABNORMAL,CSOT_BUBBLE,CSOT_SCRATCH};
enum Judgement { Judge_OK = 0, Judge_RP, Judge_NG, Judge_TR, Judge_PR, Judge_PT, Judge_Review, Judge_RC, Judge_Size, Judge_VI, Judge_Rework, Judge_Unknown };
enum Judgement { Judge_OK = 0, Judge_RP, Judge_NG, Judge_TR, Judge_PR, Judge_ND, Judge_PT, Judge_Review, Judge_RC, Judge_Size, Judge_VI, Judge_Rework, Judge_Unknown };
enum JudgeCode { CODE_DEFAULT= 0,TRDF , BATR, DOBB, DOBS, DOWW, DOWB, DOWS };
#define LAYER_GT_50            _T("0114")