SDC C-Project CF Review 프로그램
LYW
2021-08-09 b354c153b0074e5d54371bc05b12edbe8e613a19
Ongoing50 #3561 CF AOI Review Align 카메라 끊김 현상 조치

1. Align Cam Int시 카메라 라이브 하지 않음
2. ALign Start시 ALign Cam Live, Align Start완료 시 Align Cam Stop 추가
2개 파일 변경됨
49 ■■■■ 파일 변경됨
ReviewSystem/ReviewSystem/ReviewInterface.cpp 2 ●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp 47 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/ReviewInterface.cpp
@@ -1272,7 +1272,7 @@
        // process status observer
        AddObserverUpdateProcessStatus(static_cast<IUpdateProcessStatus*>(m_pAlignCameraControl));
        m_pAlignCameraControl->Camera_Control(CameraControlLive);
        /*m_pAlignCameraControl->Camera_Control(CameraControlLive);*/      // 210805 Align Camera Sequence 변경
    }
    else
    {
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
@@ -428,6 +428,8 @@
         g_pLog->DisplayMessage(_T("[AlignResult] Glass Result is NULL!"));
         SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
         m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Fail Signal!"));
        AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence ����
         return;
    }
@@ -759,7 +761,7 @@
            if (( nTotalCount += pGlassResult->GetTotalSReviewResultCount()) > 0)
            {
                m_pSP2P->ISP2P_DisplayMessage(_T("[Sequence Processor] Review Plan Start!"));
                //LYW DCOLL 임시조치
                //LYW DCOLL �ӽ���ġ
                CDitGlassRawClient *pDitRawClient = CDitGlassRawClient::GetInstance();
                if (pDitRawClient->isConnect() == TRUE)
                {
@@ -772,7 +774,7 @@
                    strcpy(pSharedDefectReview->m_strRevImageName, "");
                }
                //LYW DCOLL 임시조치
                //LYW DCOLL �ӽ���ġ
                ::Sleep(nWaitTime);
                m_pSP2P->ISP2P_GetReviewProcessor()->ResetGantryDone();
                bExcute = ReviewStartProcessing(pGlassResult, nPlanIdx);
@@ -1036,7 +1038,7 @@
            strFileName.Format(_T("%s_%s"), strGlassIDTemp, strGlassStepIdTemp);
            //업데이트시
            //������Ʈ��
            //bFileFind = FindRawBinFile(strFileName);
            bFileFind = TRUE;
@@ -1145,7 +1147,7 @@
     // review camera stop
    ReviewCamera_CameraControl(CameraControlStop);    
    //AlignCamera_CameraControl(CameraControlLive);
    AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence ����
     // send signal to plc
     if (nResultCode==0)
@@ -1202,16 +1204,29 @@
{
     m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] AlignStart!"));
    AlignCamera_CameraControl(CameraControlLive);  // 210805 Align Camera Sequence ����
    Sleep(300);
    if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_AlignStartAck_CPJT))
        m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Start Ack!"));
     // 1. get current glass result
     CGlassResult* pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult();
     if (pGlassResult==NULL) {    return;    }
     if (pGlassResult==NULL)
    {
        Sleep(350);
        AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence ����
        return;
    }
 
    const CRsRcpAlignInfo* pRsRcpAlignInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpAlignInfo();
    if(pRsRcpAlignInfo == NULL)    return;
    if (pRsRcpAlignInfo == NULL)
    {
        Sleep(350);
        AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence ����
        return;
    }
     // 2. get align camera control    
     CCameraControlAlign* pAlignCameraControl = m_pSP2P->ISP2P_GetAlignCameraControl();
 
@@ -1224,6 +1239,9 @@
        m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!"));
        SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT);
        m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!"));
        Sleep(350);
        AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence ����
    }
    else
    {
@@ -1236,6 +1254,11 @@
                m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Algin Camera Disconnect!!!!"));
            }
        }        
        else
        {
            Sleep(350);
            AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence ����
        }
        if (pGlassResult && pAlignCameraControl && pAlignCameraControl->AlignProcess())
        {
@@ -1251,6 +1274,10 @@
            m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!"));
        }
            Sleep(350);
            AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence ����
            //�ּ� Ǯ��
            // 4. send align fail signal to plc
            //SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
            //m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Fail Data!"));
@@ -8605,12 +8632,12 @@
    break;
    case PCControlRecv_Autodiagnosis:
    {
        //#3514_LYW_CF AOI Review 자가진단 기능 개선_START
        //#3514_LYW_CF AOI Review �ڰ����� ��� ����_START
        CSignalControl* pSignalControl = m_pSP2P->ISP2P_GetSignalControl();
        CString strDiagnosisMode;
        pSignalControl->ReadData(_T("11160"), 2, strDiagnosisMode);
        int nDiagnosisMode = atoi(strDiagnosisMode);
        //#3514_LYW_CF AOI Review 자가진단 기능 개선_END
        //#3514_LYW_CF AOI Review �ڰ����� ��� ����_END
        m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] Diagno start => %d, DiagnosisMode => %d"), bSignalOn, nDiagnosisMode);
        if (bSignalOn) {
@@ -8620,7 +8647,7 @@
            
            m_pSP2P->ISP2P_GetDiagnosisManager()->RecvSignalToSignalControl(0, nDiagnosisMode);
        }
        //#3514_LYW_CF AOI Review 자가진단 기능 개선_END
        //#3514_LYW_CF AOI Review �ڰ����� ��� ����_END
        else
            bResult = SendSignalOffToSignalControl(PCControlSendSignalIndex_DiagnoAck, 0);