SDC C-Project CF Review 프로그램
LYW
2022-06-10 662be16e087b11027318938dc840445b5dbacc27
Ongoing90 #4185 CF AOI Review OneGantryMode 개선

1. OneGantry모드를 리뷰 레시피셋팅이 아닌 제어에서 설정 할 수 있도록 수정
2. 레시피에디터 겐트리 모드 셋팅 삭제
8개 파일 변경됨
96 ■■■■ 파일 변경됨
ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp 8 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/CHSignalControls/SignalControl.cpp 5 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/CHSignalControls/SignalControl_DitSharedMemorySync.cpp 18 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewRecipeEditor/ReviewRecipeEditor.rc 8 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp 50 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.h 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/include/CHSignalControls/SignalControl.h 3 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/include/CHSignalControls/SignalControl_DitSharedMemorySync.h 3 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp
@@ -1120,9 +1120,11 @@
        macroFile.GetItem(strItem, nData);
        pScheduleInfo->SetMaxPointCount(nData);
        strItem.Format(_T("RCP_REVIEW_SINGLE_GANRTY_PATH"));
        macroFile.GetItem(strItem, nData);
        pScheduleInfo->SetSingleGantryPath(nData);
        /*< LYW 20220610 - #4185 Delete Start >*/
//         strItem.Format(_T("RCP_REVIEW_SINGLE_GANRTY_PATH"));
//         macroFile.GetItem(strItem, nData);
//         pScheduleInfo->SetSingleGantryPath(nData);
        /*< LYW 20220610 - #4185 Delete End >*/
        strItem.Format(_T("RCP_REVIEW_MAX_WSI_POINT_COUNT"));
ReviewSystem/CHSignalControls/SignalControl.cpp
@@ -148,6 +148,11 @@
}
BOOL CSignalControl::ReadData(const CString strAddr, int BitPosition, int nSize, int& nData)
{
    return TRUE;
}
void CSignalControl::IST2P_RunThreadProcess(const CSignalData& signalData)
{
    switch(signalData.nSignalType)
ReviewSystem/CHSignalControls/SignalControl_DitSharedMemorySync.cpp
@@ -265,6 +265,24 @@
    return TRUE;
}
/*< LYW 20220610 - #4185 ADD Start >*/
BOOL CSignalControl_DitSharedMemorySync::ReadData(const CString strAddr, int BitPosition, int nSize, int& nData)
{
    if (m_pMemStartAddr == NULL)    return FALSE;
    int nAddress = _ttoi(strAddr);
    // read value
    int TempData = 0;
    memcpy(&TempData, m_pMemStartAddr + nAddress, sizeof(int)*nSize);
    TempData = TempData >> BitPosition;
    nData = TempData & 1;
    return TRUE;
}
/*< LYW 20220610 - #4185 ADD End >*/
BOOL CSignalControl_DitSharedMemorySync::WriteData(const CString strAddr, int nSize, CString strData)
{
    if(m_pMemStartAddr == NULL)    return FALSE;
ReviewSystem/ReviewRecipeEditor/ReviewRecipeEditor.rc
@@ -160,10 +160,10 @@
    PUSHBUTTON      "ChangeRCP",IDC_BUTTON4,322,41,50,14
    EDITTEXT        IDC_EDIT_RCP_REFLOW_PIXEL_SCALE,221,145,32,12,ES_CENTER | ES_AUTOHSCROLL
    LTEXT           "Pixel Scale",IDC_STATIC,184,147,34,8
    GROUPBOX        "GantryMode",IDC_STATIC,264,291,54,46
    CONTROL         "All Gantry",IDC_RADIO_GANTRY_MODE_1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,266,301,52,9
    CONTROL         "Left Gantry",IDC_RADIO_GANTRY_MODE_2,"Button",BS_AUTORADIOBUTTON,266,312,52,9
    CONTROL         "Right Gantry",IDC_RADIO_GANTRY_MODE_3,"Button",BS_AUTORADIOBUTTON,266,323,52,9
    GROUPBOX        "GantryMode",IDC_STATIC,264,291,54,46,NOT WS_VISIBLE
    CONTROL         "All Gantry",IDC_RADIO_GANTRY_MODE_1,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE | WS_GROUP | WS_TABSTOP,266,301,52,9
    CONTROL         "Left Gantry",IDC_RADIO_GANTRY_MODE_2,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,266,312,52,9
    CONTROL         "Right Gantry",IDC_RADIO_GANTRY_MODE_3,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,266,323,52,9
END
IDD_DIALOG_REVIEW_RCP_EDITOR_MEASURE DIALOGEX 0, 0, 379, 526
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
@@ -1120,6 +1120,10 @@
             }
             
            m_pSP2P->ISP2P_DisplayMessage(_T("[Glass Loading] Current Apply Recipe Name : %s"), strRecipefile);
            /*< LYW 20220610 - #4185 ADD Start >*/
            CheckGantryMode();
            /*< LYW 20220610 - #4185 ADD End >*/
 
            // recipe data apply
            if(ApplyRecipeDataToGlassResult(pGlassResult)==FALSE)
@@ -4289,7 +4293,9 @@
        {
            int XAddr = pMotorControl->GetGantryCollisionXAddr(pModuleStatus->GetGantryIndex());
            g_pLog->DisplayMessage(_T("[Collision Position Set Fail] %d Module, Addr: %d, PosX: %.3lfmm"), nModuleIdx, XAddr, dCollisionPosX);
            return 0;
            /*< LYW 20220610 - #4185 Delete Start >*/
            //return 0;
            /*< LYW 20220610 - #4185 Delete End >*/
        }
        }
@@ -4587,7 +4593,9 @@
            {
                int XAddr = pMotorControl->GetGantryCollisionXAddr(pModuleStatus->GetGantryIndex());
                g_pLog->DisplayMessage(_T("[Collision Position Set Fail] %d Module, Addr: %d, PosX: %.3lfmm"), nModuleIdx, XAddr, dCollisionPosX);
                return 0;
                /*< LYW 20220610 - #4185 Delete Start >*/
                //return 0;
                /*< LYW 20220610 - #4185 Delete End >*/
            }
        }
@@ -4840,7 +4848,9 @@
            {
                int XAddr = pMotorControl->GetGantryCollisionXAddr(pModuleStatus->GetGantryIndex());
                g_pLog->DisplayMessage(_T("[Collision Position Set Fail] %d Module, Addr: %d, PosX: %.3lfmm"), nModuleIdx, XAddr, dCollisionPosX);
                return 0;
                /*< LYW 20220610 - #4185 Delete Start >*/
                //return 0;
                /*< LYW 20220610 - #4185 Delete End >*/
            }
        }
@@ -9566,7 +9576,9 @@
            {
                int XAddr = pMotorControl->GetGantryCollisionXAddr(pModuleStatus->GetGantryIndex());
                g_pLog->DisplayMessage(_T("[Collision Position Set Fail] %d Module, Addr: %d, PosX: %.3lfmm"), nModuleIdx, XAddr, dCollisionPosX);
                return 0;
                /*< LYW 20220610 - #4185 Delete Start >*/
                //return 0;
                /*< LYW 20220610 - #4185 Delete End >*/
            }
        }
@@ -9977,13 +9989,15 @@
                int XAddr = pMotorControl->GetGantryCollisionXAddr(pModuleStatus->GetGantryIndex());
                g_pLog->DisplayMessage(_T("[Review_CollisionPos] %d Module, Addr: %d, PosX: %.3lf mm"), nModuleIdx, XAddr, dCollisionPosX);
                ///pGlassResult->SetCollisionXPos(nModuleIdx, dCollisionPosX);
                //pGlassResult->SetCollisionXPos(nModuleIdx, dCollisionPosX);
            }
            else
            {
                int XAddr = pMotorControl->GetGantryCollisionXAddr(pModuleStatus->GetGantryIndex());
                g_pLog->DisplayMessage(_T("[Collision Position Set Fail] %d Module, Addr: %d, PosX: %.3lfmm"), nModuleIdx, XAddr, dCollisionPosX);
                return 0;
                /*< LYW 20220610 - #4185 Delete Start >*/
                //return 0;
                /*< LYW 20220610 - #4185 Delete End >*/
            }
            // get result index
            int nStartIdx = pWsiMultiShotResult->GetStartSReviewResultIndex();
@@ -10482,6 +10496,30 @@
    }    
}
/*< LYW 20220610 - #4185 ADD Start >*/
void CSequenceProcessor_CPJT::CheckGantryMode()
{
    CSignalControl* pSignalControl = m_pSP2P->ISP2P_GetSignalControl();
    if (pSignalControl == NULL) m_pSP2P->ISP2P_DisplayMessage(_T("[CheckGantryMode] SignalControl is NULL"));
    if (pSignalControl->IsConnected() == FALSE) m_pSP2P->ISP2P_DisplayMessage(_T("[CheckGantryMode] SignalControl is Not Connect"));
    int LeftGantryUse = 0;
    int RightGantryUse = 0;
    pSignalControl->ReadData(_T("10003"), 1, 1, LeftGantryUse);
    pSignalControl->ReadData(_T("10003"), 2, 1, RightGantryUse);
    if (LeftGantryUse == 1 && RightGantryUse == 0)
        m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo()->GetRcpSchedulingInfo()->SetSingleGantryPath(1);
    else if (LeftGantryUse == 0 && RightGantryUse == 1)
        m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo()->GetRcpSchedulingInfo()->SetSingleGantryPath(2);
    else
        m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo()->GetRcpSchedulingInfo()->SetSingleGantryPath(0);
    m_pSP2P->ISP2P_DisplayMessage(_T("[CheckGantryMode] GantryMode LeftBit = %d, RightBit = %d"), LeftGantryUse, RightGantryUse);
}
/*< LYW 20220610 - #4185 ADD End >*/
BOOL CSequenceProcessor_CPJT::UpdateMemoryUserReflowPlanInfo(CDitGlassRawClient* pDitSharedGlassRaw)
{
    CRsRcpReviewInfo* pRecipeinfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo();
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.h
@@ -327,6 +327,7 @@
    // 190130 SJB, Motor AutoGo Count Remove
    void    RemoveMotorCount();
    void    CheckGantryMode();
    // 190130 SJB, User,Reflow Plan Memory Update
    BOOL    UpdateMemoryUserReflowPlanInfo(CDitGlassRawClient* pDitSharedGlassRaw);
ReviewSystem/include/CHSignalControls/SignalControl.h
@@ -19,6 +19,9 @@
    virtual BOOL    Read_SendSignal(int nAddrIndex, WORD& dwValue) = 0;
    virtual BOOL    ReadData(const CString strAddr, int nSize, CString& strData) = 0;
    virtual BOOL    ReadData(const CString strAddr, int nSize, char* pData) = 0;
    /*< LYW 20220610 - #4185 ADD Start >*/
    virtual BOOL    ReadData(const CString strAddr, int BitPosition, int nSize, int& nData);
    /*< LYW 20220610 - #4185 ADD End >*/
    virtual BOOL    WriteWordData(const CString strAddr, int nSize, int nData) = 0;
    virtual BOOL    WriteData(const CString strAddr, int nSize, CString strData) = 0;
ReviewSystem/include/CHSignalControls/SignalControl_DitSharedMemorySync.h
@@ -17,6 +17,9 @@
    virtual BOOL    Read_SendSignal(int nAddrIndex, WORD& dwValue);
    virtual BOOL    ReadData(const CString strAddr, int nSize, CString& strData);
    virtual BOOL    ReadData(const CString strAddr, int nSize, char* pData);
    /*< LYW 20220610 - #4185 ADD Start >*/
    virtual BOOL    ReadData(const CString strAddr, int BitPosition, int nSize, int& nData);
    /*< LYW 20220610 - #4185 ADD End >*/
    virtual BOOL    WriteWordData(const CString strAddr, int nSize, int nData);
    virtual BOOL    WriteData(const CString strAddr, int nSize, CString strData);