SDC C-Project CF Review 프로그램
1개 파일 추가됨
23개 파일 변경됨
491 ■■■■ 파일 변경됨
ReviewHistory/ReveiwHistory/ReveiwHistory.rc 패치 | 보기 | raw | blame | 히스토리
ReviewHistory/ReveiwHistory/ReveiwHistory.vcxproj 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.cpp 91 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.h 14 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewHistory/ReveiwHistory/akFormationMap.h 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewHistory/ReveiwHistory/resource.h 7 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewHistory/bin/ReviewHistroy.exe 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/DlgLogo.cpp 18 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/DlgReviewOffSetTool.cpp 76 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/DlgReviewOffSetTool.h 5 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/DlgUpdateNote.cpp 9 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/MainFrm.cpp 17 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/ReviewInterface.cpp 44 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/ReviewInterface.h 18 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/ReviewProcessor.h 7 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp 27 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/ReviewSystem.rc 17 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/ReviewSystemView.cpp 10 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/SequenceProcessor.h 8 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp 106 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.h 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/aaa.txt 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/resource.h 9 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/stdafx.h 4 ●●● 패치 | 보기 | raw | blame | 히스토리
ReviewHistory/ReveiwHistory/ReveiwHistory.rc
Binary files differ
ReviewHistory/ReveiwHistory/ReveiwHistory.vcxproj
@@ -124,6 +124,7 @@
      <SubSystem>Windows</SubSystem>
      <AdditionalLibraryDirectories>../lib</AdditionalLibraryDirectories>
      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
    </Link>
    <Midl>
      <MkTypLibCompatible>false</MkTypLibCompatible>
@@ -181,6 +182,7 @@
      <OptimizeReferences>true</OptimizeReferences>
      <AdditionalLibraryDirectories>../lib</AdditionalLibraryDirectories>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
    </Link>
    <Midl>
      <MkTypLibCompatible>false</MkTypLibCompatible>
ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.cpp
@@ -89,6 +89,7 @@
    HANDLE hThread = CreateThread(NULL, 0, RunThreadReviewHistory, this, 0, &dwThreadId);
    m_ThreadId = dwThreadId;
    /*< LYW 20211029 - #3684 ADD End >*/
    m_CheckInsViewCenterLine.SetCheck(FALSE);
    for (int i = 0; i < 105; i++)
    {
@@ -126,6 +127,7 @@
    DDX_Text(pDX, IDC_EDIT_OFFSET_Y, m_dEditOffsetY);
    DDX_Text(pDX, IDC_EDIT_DFFSET_GANTRY_IDX, m_strGantryIdx);
    DDX_Text(pDX, IDC_STATIC_LAST_SAVE_OFFSET_TIME, m_TextLastSaveOffsetTime);
    DDX_Control(pDX, IDC_CHECK_INS_VIEW_CENTER_LINE, m_CheckInsViewCenterLine);
}
BEGIN_MESSAGE_MAP(CReveiwHistoryDlg, CDialogEx)
@@ -155,6 +157,7 @@
    ON_WM_KEYDOWN()
    ON_BN_CLICKED(IDC_BUTTON_OFFSET_APPLY, &CReveiwHistoryDlg::OnBnClickedButtonOffsetApply)
    ON_BN_CLICKED(IDC_BUTTON_OFFSET_SAVE, &CReveiwHistoryDlg::OnBnClickedButtonOffsetSave)
    ON_BN_CLICKED(IDC_CHECK_INS_VIEW_CENTER_LINE, &CReveiwHistoryDlg::OnBnClickedCheckInsViewCenterLine)
END_MESSAGE_MAP()
// CReveiwHistoryDlg 메시지 처리기
@@ -228,13 +231,6 @@
    InitGridDefectLIst(&m_gridDefectInfo, IDC_STATIC_GRID_DEFECT);
    InitGridGlassLIst(&m_gridGlassInfo, IDC_STATIC_GRID_GLASS_INFO);
    /*< LYW 20211025 - #3684 ADD Start >*/
    CString strPath = _T("");
    InitDataInfo();
    strPath.Format(_T("%s%s"), REVIEW_OFFSET_CONFIGFILE_PATH, REVIEW_OFFSET_CONFIGFILE_NAME);
    LoadOffset(strPath);
    /*< LYW 20211025 - #3684 ADD End >*/
    OnViewReviewdefect();
    m_chkReviewDefect.SetCheck(TRUE);
@@ -260,6 +256,11 @@
    m_ctlProgress.SetRange(0, 100);
    m_ctlProgress.ShowWindow(FALSE);
    /*< LYW 20211025 - #3684 ADD Start >*/
    InitDataInfo();
    PostThreadMessage(m_ThreadId, UM_THREAD_LOADING_OFFSET, 0, 0);
    /*< LYW 20211025 - #3684 ADD End >*/
    return TRUE;  // 포커스를 컨트롤에 설정하지 않으면 TRUE를 반환합니다.
}
@@ -344,6 +345,10 @@
        {
            dc.SetStretchBltMode(COLORONCOLOR);
            m_AlignSecend.Draw(dc, m_Align_rect2);
        }
        if (m_CheckInsViewCenterLine.GetCheck() == TRUE)
        {
            DrawInsViewCenterLine(&dc);
        }
        CDialogEx::OnPaint();
    }
@@ -1834,6 +1839,25 @@
}
void CReveiwHistoryDlg::DrawInsViewCenterLine(CPaintDC * pDC)
{
    if (m_picture_rect2.Width() == 0 || m_picture_rect2.Height() == 0) return;
    CRect rtDraw = m_picture_rect2;
    CPen pen, *pPen = NULL;
    pen.CreatePen(PS_DOT, 1, RGB(255, 0, 0));
    pDC->SelectObject(&pen);
    //pDC->SelectStockObject(WHITE_PEN);
    // center line
    pDC->MoveTo((rtDraw.Width() / 2) + rtDraw.left, 0 + rtDraw.top);
    pDC->LineTo((rtDraw.Width() / 2) + rtDraw.left, rtDraw.Height() + rtDraw.top);
    pDC->MoveTo(0 + rtDraw.left, (rtDraw.Height() / 2) + rtDraw.top);
    pDC->LineTo(rtDraw.Width() + rtDraw.left, (rtDraw.Height() / 2) + rtDraw.top);
}
void CReveiwHistoryDlg::OnBnClickedBtnFindBin()
{
    // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
@@ -2685,8 +2709,10 @@
    int center_y = (SrcImage.GetHeight() / 2); // 회전 중심점
    double seta = 3.14 / (180.0 / degree); // 라디안
    double CosSeta = cos(seta);
    double SinSeta = sin(seta);
    double CosSeta = -1;
    double SinSeta = 0;
//     double CosSeta = cos(seta);
//     double SinSeta = sin(seta);
    for (int y = 0; y < Height; y++)
    {
@@ -4031,6 +4057,7 @@
{
    // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
    SaveOffset();
    SendMsg2ReviewSystem();
}
BOOL CReveiwHistoryDlg::LoadOffset(CString strFilePath)
@@ -4046,6 +4073,10 @@
    macroFile.GetItem(_T("CAMERA_COUNT"), m_nCameraCount, 0);
    macroFile.GetItem(_T("SCAN_COUNT"), m_nScanCount, 0);
    macroFile.GetItem(_T("XPOS_COUNT"), m_XposCount, 0);
    /*< LYW 20211111 - #3766 ADD Start >*/
    macroFile.GetItem(_T("WARN_STANDARD"), m_dWarnStandard, 0);
    macroFile.GetItem(_T("HARD_STANDARD"), m_dHardStandard, 0);
    /*< LYW 20211111 - #3766 ADD End >*/
    CString strItem = _T("");
    double dXoffset = 0;
    double dYoffset = 0;
@@ -4126,6 +4157,14 @@
    strItem.Format(_T("XPOS_COUNT"));
    macroFile.SetItem(strItem, m_XposCount);
    /*< LYW 20211111 - #3766 ADD Start >*/
    strItem.Format(_T("WARN_STANDARD"));
    macroFile.SetItem(strItem, m_dWarnStandard);
    strItem.Format(_T("HARD_STANDARD"));
    macroFile.SetItem(strItem, m_dHardStandard);
    /*< LYW 20211111 - #3766 ADD End >*/
    CString strData;
    double dData = 0;
@@ -4177,6 +4216,25 @@
    else AfxMessageBox(_T("OFFSET SAVE FAIL"), MB_OK | MB_ICONHAND);
    return bReturn;
}
BOOL CReveiwHistoryDlg::SendMsg2ReviewSystem()
{
    HWND hWnd = ::FindWindow(NULL, _T("ReviewSystem"));
    if (hWnd)
    {
        COPYDATASTRUCT cds;
        cds.dwData = COPYDATA_REVIEWHISTORYOR2REVIEWSYSTEM;
        cds.cbData = 0;
        cds.lpData = 0;
        ::SendMessage(hWnd, WM_COPYDATA, 0, (LPARAM)(LPVOID)&cds);
        return TRUE;
    }
    return FALSE;
}
BOOL CReveiwHistoryDlg::ApplyOffset(int nModuleidx, int nCamIndex, int ScanIndex, double dXOffsetValue, double dYOffsetValue)
@@ -4367,6 +4425,7 @@
DWORD RunThreadReviewHistory(LPVOID param)
{
    MSG msg;
    CString strPath = _T("");
    CReveiwHistoryDlg* pDlg = (CReveiwHistoryDlg*)param;
    while (GetMessage(&msg, NULL, 0, 0))
    {
@@ -4379,10 +4438,22 @@
            pDlg->PostMessage(UM_WARNING_OFFSET);
            break;
        case UM_THREAD_LOADING_OFFSET:
            strPath.Format(_T("%s%s"), REVIEW_OFFSET_CONFIGFILE_PATH, REVIEW_OFFSET_CONFIGFILE_NAME);
            pDlg->LoadOffset(strPath);
            break;
        default:
            break;
        }
    }
    return 0;
}
/*< LYW 20211029 - #3684 ADD End >*/
/*< LYW 20211029 - #3684 ADD End >*/
void CReveiwHistoryDlg::OnBnClickedCheckInsViewCenterLine()
{
    // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
    Invalidate(TRUE);
}
ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.h
@@ -29,6 +29,10 @@
#define REVIEW_OFFSET_CONFIGFILE_FULL_PATHNAME _T("D:\\DIT_Review\\ReviewServerConfig\\ReviewOffSet.cfg")
#define    REVIEW_OFFSET_BACKUP_FORDER_NAME _T("OffsetBackup")
#define    REVIEW_OFFSET_BACKUP_FORDER_PATH _T("D:\\DIT_Review\\ReviewServerConfig\\OffsetBackup\\")
/*< LYW 20211111 - #3766 ADD Start >*/
#define COPYDATA_REVIEWHISTORYOR2REVIEWSYSTEM 1800
/*< LYW 20211111 - #3766 ADD End >*/
/*< LYW 20211025 - #3684 ADD End >*/
struct _DefectList
@@ -288,12 +292,18 @@
    void OpenFileHeader(CString strPath, CString strFullPath);
    void BinFileOpen(int nCount);
    void OnCbnSelchangeComboRawtype();
    /*< LYW 20211111 - #3766 ADD Start >*/
    void DrawInsViewCenterLine(CPaintDC *pDC);
    /*< LYW 20211111 - #3766 ADD End >*/
    /*< LYW 20211025 - #3684 ADD Start >*/
    afx_msg void OnBnClickedButtonOffsetApply();
    afx_msg void OnBnClickedButtonOffsetSave();
    BOOL LoadOffset(CString strFilePath);
    BOOL SaveOffset();
    /*< LYW 20211111 - #3766 ADD Start >*/
    BOOL SendMsg2ReviewSystem();
    /*< LYW 20211111 - #3766 ADD End >*/
    BOOL ApplyOffset(int nModuleidx, int nCamIndex, int ScanIndex, double dXOffsetValue, double dYOffsetValue);
    BOOL SetInputOffSet(int nModuleidx, int nCamIndex, int ScanIndex, int nXposIndex, double dXOffsetValue, double dYOffsetValue, double dXposMin, double dXposMax, BOOL bCheckSave = 0);
    void InitDataInfo();
@@ -302,6 +312,8 @@
    int m_nCameraCount;
    int m_nScanCount;
    int m_XposCount;
    double m_dWarnStandard;
    double m_dHardStandard;
    int m_nCurModelIdx;
    /*< LYW 20211025 - #3684 ADD End >*/
@@ -374,4 +386,6 @@
    /*< LYW 20211028 - #index ADD Start >*/
    CString m_TextLastSaveOffsetTime;
    /*< LYW 20211028 - #index ADD End >*/
    CButton m_CheckInsViewCenterLine;
    afx_msg void OnBnClickedCheckInsViewCenterLine();
};
ReviewHistory/ReveiwHistory/akFormationMap.h
@@ -9,6 +9,7 @@
#define UM_WARNING_OFFSET WM_USER+0x2004
//Thread msg Map
#define UM_THREAD_WARNING_OFFSET WM_USER + 0x1001
#define    UM_THREAD_LOADING_OFFSET WM_USER + 0x1002
/*< LYW 20211028 - #3684 ADD End >*/
class CakFormationMap : public CakGraphBasic3
ReviewHistory/ReveiwHistory/resource.h
@@ -1,6 +1,6 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++에서 생성한 포함 파일입니다.
// ReveiwHistory.rc에서 사용되고 있습니다.
// Microsoft Visual C++에서 생성한 포함 파일입니다.
// ReveiwHistory.rc에서 사용되고 있습니다.
//
#define IDM_ABOUTBOX                    0x0010
#define IDD_ABOUTBOX                    100
@@ -95,6 +95,7 @@
#define IDC_BUTTON_OFFSET_APPLY         1060
#define IDC_STATIC_GROUP_LAST_OFFSET_SAVE_TIME 1061
#define IDC_STATIC_LAST_SAVE_OFFSET_TIME 1062
#define IDC_CHECK_INS_VIEW_CENTER_LINE  1063
#define ID_OPTION_PATHSETTING           32771
#define ID_VIEW_ALLDEFECT               32772
#define ID_VIEW_REVIEWDEFECT            32773
@@ -107,7 +108,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        150
#define _APS_NEXT_COMMAND_VALUE         32776
#define _APS_NEXT_CONTROL_VALUE         1063
#define _APS_NEXT_CONTROL_VALUE         1064
#define _APS_NEXT_SYMED_VALUE           104
#endif
#endif
ReviewHistory/bin/ReviewHistroy.exe
Binary files differ
ReviewSystem/ReviewSystem/DlgLogo.cpp
@@ -281,6 +281,20 @@
void CDlgLogo::OnClickedButton6()
{
    // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
    m_pDL2P->IDL2P_OpenHistoryTool();
    g_pLog->DisplayMessage(_T("[ReviewProcessor] History Open"));
    /*< LYW 20211109 - #3662 ADD Start >*/
    HWND hWnd = ::FindWindow(NULL, _T("ReviewHistory"));
    if (hWnd == NULL)
    {
        ShellExecute(hWnd, NULL, _T("D:\\DIT_3rdParty\\ReviewHistory\\ReviewHistroy.exe"), NULL, NULL, SW_NORMAL);
    }
    else
    {
        AfxMessageBox("Review History가 이미 실행 중 입니다.", MB_OK | MB_ICONHAND);
        return;
    }
    /*< LYW 20211109 - #3662 ADD End >*/
    /*< LYW 20211109 - #3662 Delete Start >*/
    //     m_pDL2P->IDL2P_OpenHistoryTool();
    //     g_pLog->DisplayMessage(_T("[ReviewProcessor] History Open"));
    /*< LYW 20211109 - #3662 Delete End >*/
}
ReviewSystem/ReviewSystem/DlgReviewOffSetTool.cpp
@@ -25,6 +25,8 @@
    , m_editGlassOffSetmodeScanIndex(0)
    , m_editGlassOffSetmodeXpos(0)
    , m_editGlassOffSetmodeYpos(0)
    , m_dWarnStandard(0)
    , m_dHardStandard(0)
{
    m_EditChangeTargetXpos = 0;
    m_EditChangeTargetYpos = 0;
@@ -72,6 +74,8 @@
    DDX_Text(pDX, IDC_EDIT_SCAN_INDEX, m_editGlassOffSetmodeScanIndex);
    DDX_Text(pDX, IDC_EDIT_MOTOR_XPOS, m_editGlassOffSetmodeXpos);
    DDX_Text(pDX, IDC_EDIT_MOTOR_YPOS, m_editGlassOffSetmodeYpos);
    DDX_Text(pDX, IDC_EDIT_WARN_STANDARD, m_dWarnStandard);
    DDX_Text(pDX, IDC_EDIT_HARD_STANDARD, m_dHardStandard);
}
@@ -441,8 +445,37 @@
                strData.Format(_T("%.03lf"), pOffSet.dXoffSetValue);
                m_ctrlGridReviewOffSetInfo.SetItemText(nCol, nRow,strData);
                /*< LYW 20211111 - #3766 ADD Start >*/
                if (abs(pOffSet.dXoffSetValue) * 1000 >= m_dHardStandard)
                {
                    m_ctrlGridReviewOffSetInfo.SetItemBkColour(nCol, nRow, RGB(255, 0, 0));
                }
                else if (abs(pOffSet.dXoffSetValue) * 1000 >= m_dWarnStandard)
                {
                    m_ctrlGridReviewOffSetInfo.SetItemBkColour(nCol, nRow, RGB(255, 255, 0));
                }
                else
                {
                    m_ctrlGridReviewOffSetInfo.SetItemBkColour(nCol, nRow, RGB(255, 255, 210));
                }
                /*< LYW 20211111 - #3766 ADD End >*/
                strData.Format(_T("%.03lf"), pOffSet.dYoffSetValue);
                m_ctrlGridReviewOffSetInfo.SetItemText( nCol, nRow + 1, strData);
                /*< LYW 20211111 - #3766 ADD Start >*/
                if (abs(pOffSet.dYoffSetValue) * 1000 >= m_dHardStandard)
                {
                    m_ctrlGridReviewOffSetInfo.SetItemBkColour(nCol, nRow + 1, RGB(255, 0, 0));
                }
                else if (abs(pOffSet.dYoffSetValue) * 1000 >= m_dWarnStandard)
                {
                    m_ctrlGridReviewOffSetInfo.SetItemBkColour(nCol, nRow + 1, RGB(255, 255, 0));
                }
                else
                {
                    m_ctrlGridReviewOffSetInfo.SetItemBkColour(nCol, nRow + 1, RGB(255, 255, 210));
                }
                /*< LYW 20211111 - #3766 ADD End >*/
                nRow += 2;
            }
            nRow = 1;
@@ -870,12 +903,17 @@
        pDlgOffsetTool->InitProcess();
        pDlgOffsetTool->EnableBT();
    }
    else
    else if(pDlgOffsetTool->nThreadType == 1)
    {
        pDlgOffsetTool->DissableBT();
        pDlgOffsetTool->SaveConfigFile();
        pDlgOffsetTool->EnableBT();
    }
    else
    {
        pDlgOffsetTool->DissableBT();
        pDlgOffsetTool->OffsetLoad();
        pDlgOffsetTool->EnableBT();
    }
    return 0;
}
@@ -915,6 +953,10 @@
    macroFile.GetItem(_T("CAMERA_COUNT"),m_nCameraCount , 0);
    macroFile.GetItem(_T("SCAN_COUNT"), m_nScanCount, 0);
    macroFile.GetItem(_T("XPOS_COUNT"), m_XposCount, 0);
    /*< LYW 20211111 - #3766 ADD Start >*/
    macroFile.GetItem(_T("WARN_STANDARD"), m_dWarnStandard, 0);
    macroFile.GetItem(_T("HARD_STANDARD"), m_dHardStandard, 0);
    /*< LYW 20211111 - #3766 ADD End >*/
    CString strItem = _T("");
    double dXoffset=0;
    double dYoffset=0;
@@ -993,6 +1035,14 @@
    strItem.Format(_T("XPOS_COUNT"));
    macroFile.SetItem(strItem, m_XposCount);
    /*< LYW 20211111 - #3766 ADD Start >*/
    strItem.Format(_T("WARN_STANDARD"));
    macroFile.SetItem(strItem, m_dWarnStandard);
    strItem.Format(_T("HARD_STANDARD"));
    macroFile.SetItem(strItem, m_dHardStandard);
    /*< LYW 20211111 - #3766 ADD End >*/
    
    CString strData;
    double dData= 0;
@@ -1044,6 +1094,11 @@
        g_pLog->DisplayMessage(_T("Save Offset Success!!"));
    }
    // #3563 LYW_ CF AOI Review Offset 파라미터 저장시 완료 팝업 추가 ADD END
    /*< LYW 20211111 - #3766 ADD Start >*/
    UpdateGridcontrol();
    UpdateData(TRUE);
    Invalidate(FALSE);
    /*< LYW 20211111 - #3766 ADD End >*/
    return bReturn;
}
@@ -1067,6 +1122,14 @@
LRESULT DlgReviewOffSetTool::OnUserFunc(WPARAM wParam, LPARAM lParam)
{
    int nmsg = (int)wParam;
    if (nmsg == 0)
    {
        nThreadType = 2;
        m_ctrlProcessBar.SetPos(0);
        m_pThread = AfxBeginThread(ThradProcess, this);
        return 0;
    }
    UpdateData(FALSE);
    Invalidate(TRUE);
    return 0;
@@ -1103,11 +1166,16 @@
/*< LYW 20211025 - #3684 ADD Start >*/
void DlgReviewOffSetTool::OnBnClickedOffsetLoad()
{
    // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
    nThreadType = 2;
    m_ctrlProcessBar.SetPos(0);
    m_pThread = AfxBeginThread(ThradProcess, this);
}
void DlgReviewOffSetTool::OffsetLoad()
{
    ReadConfigFile();
    UpdateGridcontrol();
    UpdateData(TRUE);
    Invalidate(FALSE);
}
/*< LYW 20211025 - #3684 ADD End >*/
/*< LYW 20211025 - #3684 ADD End >*/
ReviewSystem/ReviewSystem/DlgReviewOffSetTool.h
@@ -186,5 +186,10 @@
    afx_msg void OnBnClickedCheckOffsetMode();
    /*< LYW 20211025 - #index ADD Start >*/
    afx_msg void OnBnClickedOffsetLoad();
    void OffsetLoad();
    /*< LYW 20211025 - #index ADD End >*/
    /*< LYW 20211111 - #3766 ADD Start >*/
    double m_dWarnStandard;
    double m_dHardStandard;
    /*< LYW 20211111 - #3766 ADD End >*/
};
ReviewSystem/ReviewSystem/DlgUpdateNote.cpp
@@ -42,13 +42,16 @@
    CString    substring;
    substring = _T("20180706 CMJ.");
    substring = _T("211109 LYW.");
    lastupdate += substring;
    lastupdate += crlf;
    substring = _T("B11 New Program Make");
    substring = _T("FDC Defocus보고시 간헐적으로 0으로 보고하는 현상 수정");
    lastupdate += substring;
    lastupdate += crlf;
    substring = _T("Keyboard Jog Move Add");
    substring = _T("리뷰 히스토리 버튼 클릭시 외부 히스토리 연동");
    lastupdate += substring;
    lastupdate += crlf;
    substring = _T("리뷰 End시 간헐적으로 SW 다운 현상 개선");
    lastupdate += substring;
    lastupdate += crlf;
    lastupdate += crlf;
ReviewSystem/ReviewSystem/MainFrm.cpp
@@ -88,11 +88,14 @@
    SetTimer(ID_TIMER_SEND_SIGNAL_ALIVE, 100, NULL);
    system("net use Y: \\\\126.100.100.1\\d\\DIT_ResultData pw:dit/user:Server/persistent:yes");
    //LYW Align Reconnect
    //업데이트시
    system("netsh interface set interface name = \"Align #1\" admin = disable&& netsh interface set interface name = \"Align #1\" admin = enable&& netsh interface set interface name = \"Align #2\" admin = disable&& netsh interface set interface name = \"Align #2\" admin = enable");
    system("netsh interface set interface name = \"Align #1\" admin = disable"
        "&& netsh interface set interface name = \"Align #1\" admin = enable"
        "&& netsh interface set interface name = \"Align #2\" admin = disable"
        "&& netsh interface set interface name = \"Align #2\" admin = enable"
        "&& net use Y : \\\\126.100.100.1\\d\\DIT_ResultData pw : dit / user : Server / persistent : yes");
    Sleep(2000);
//    SetTimer(ID_TIMER_WSI_LONGRUN_TEST_TIME, 10000, NULL);
@@ -885,6 +888,14 @@
            if (pCopyData) OnCopyDataAoiServer(pCopyData);
        }
        break;
    case COPYDATA_REVIEWHISTORYOR2REVIEWSYSTEM:
    {
        DlgReviewOffSetTool* pReviewOffSetTool = m_pView->GetReviewOffSetToolHandle();
        pReviewOffSetTool->PostMessage(WM_OFFSETTOOL_MESSAGE, 0, 200);
    }
    break;
    }
    return __super::OnCopyData(pWnd, pCopyDataStruct);
ReviewSystem/ReviewSystem/ReviewInterface.cpp
@@ -130,6 +130,10 @@
    /*< LYW 20211014 - #3671 ADD Start >*/
    m_daccumulate = 0;
    /*< LYW 20211014 - #3671 ADD End >*/
    /*< LYW 20211109 - #3662 ADD Start >*/
    m_nReview00ImageContrast = 5;
    m_nReview01ImageContrast = 5;
    /*< LYW 20211109 - #3662 ADD End >*/
    // cs init
    InitializeCriticalSection(&m_csReviewResult);
@@ -3420,6 +3424,26 @@
void CReviewInterface::IRP2P_SetFirstReviewRight(BOOL b_Check)
{
    m_bFirstReviewRight = b_Check;
}
BOOL CReviewInterface::IRP2P_GetReview00ImageContrast()
{
    return m_nReview00ImageContrast;
}
BOOL CReviewInterface::IRP2P_GetReview01ImageContrast()
{
    return m_nReview01ImageContrast;
}
void CReviewInterface::IRP2P_SetReview00ImageContrast(int n_Value)
{
    m_nReview00ImageContrast = n_Value;
}
void CReviewInterface::IRP2P_SetReview01ImageContrast(int n_Value)
{
    m_nReview01ImageContrast = n_Value;
}
@@ -8238,6 +8262,26 @@
    return m_pDoc->Etc_GetTransferData();
}
BOOL CReviewInterface::ISP2P_GetReview00ImageContrast()
{
    return m_nReview00ImageContrast;
}
BOOL CReviewInterface::ISP2P_GetReview01ImageContrast()
{
    return m_nReview01ImageContrast;
}
void CReviewInterface::ISP2P_SetReview00ImageContrast(int n_Value)
{
    m_nReview00ImageContrast = n_Value;
}
void CReviewInterface::ISP2P_SetReview01ImageContrast(int n_Value)
{
    m_nReview01ImageContrast = n_Value;
}
SDefectFilter* CReviewInterface::ISP2P_GetDefectFilter()
{
    if (m_pDoc==NULL) return NULL;
ReviewSystem/ReviewSystem/ReviewInterface.h
@@ -265,9 +265,19 @@
    virtual BOOL                        IRP2P_GetFirstReviewRight();
    virtual void                        IRP2P_SetFirstReviewLeft(BOOL b_Check);
    virtual void                        IRP2P_SetFirstReviewRight(BOOL b_Check);
    /*< LYW 20211109 - #3662 ADD Start >*/
    virtual BOOL                        IRP2P_GetReview00ImageContrast();
    virtual BOOL                        IRP2P_GetReview01ImageContrast();
    virtual void                        IRP2P_SetReview00ImageContrast(int n_Value);
    virtual void                        IRP2P_SetReview01ImageContrast(int n_Value);
    /*< LYW 20211109 - #3662 ADD End >*/
    BOOL    m_bFirstReviewLeft;
    BOOL    m_bFirstReviewRight;
    /*< LYW 20211109 - #3662 ADD Start >*/
    int        m_nReview00ImageContrast;
    int        m_nReview01ImageContrast;
    /*< LYW 20211109 - #3662 ADD End >*/
    int        m_daccumulate;
    virtual BOOL                        IRP2P_SaveDefectMap(const CString& strPath);
@@ -367,6 +377,14 @@
    virtual CGlassResult*                ISP2P_GetCurrentGlassResult();                        // get current glass result
    virtual STransferData*                ISP2P_GetCurrentTransferData();                        // get current transfer data
    //Review Contrast
    /*< LYW 20211109 - #3662 ADD Start >*/
    virtual BOOL                        ISP2P_GetReview00ImageContrast();
    virtual BOOL                        ISP2P_GetReview01ImageContrast();
    virtual void                        ISP2P_SetReview00ImageContrast(int n_Value);
    virtual void                        ISP2P_SetReview01ImageContrast(int n_Value);
    /*< LYW 20211109 - #3662 ADD End >*/
    // History result
    virtual CGlassResult*                ISP2P_GetNewHistoryResult(int& nHistoryResultCount);    // new glass result
    virtual CGlassResult*                ISP2P_GetHistoryResult(int nIndex);                    // get glass result
ReviewSystem/ReviewSystem/ReviewProcessor.h
@@ -83,6 +83,13 @@
    virtual void                        IRP2P_SetFirstReviewLeft(BOOL b_Check) = 0;
    virtual void                        IRP2P_SetFirstReviewRight(BOOL b_Check) = 0;
    /*< LYW 20211109 - #3662 ADD Start >*/
    virtual BOOL                        IRP2P_GetReview00ImageContrast() = 0;
    virtual BOOL                        IRP2P_GetReview01ImageContrast() = 0;
    virtual void                        IRP2P_SetReview00ImageContrast(int n_Value) = 0;
    virtual void                        IRP2P_SetReview01ImageContrast(int n_Value) = 0;
    /*< LYW 20211109 - #3662 ADD End >*/
};
typedef std::vector<CPoint>                    VectorPoint;
ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp
@@ -1228,7 +1228,8 @@
              int nDefocusValueMin = pSignalInfo->GetDefocusValueMin();
              int nDefocusValueMax = pSignalInfo->GetDefocusValueMax();
              m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview00ImageContrast = dFocusValue;
              //m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview00ImageContrast = dFocusValue;
              m_pRP2P->IRP2P_SetReview00ImageContrast(round(dFocusValue));
              m_pRP2P->IRP2P_SetFirstReviewLeft(FALSE);
              m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewLeft FDC FocusValue = %.2f "), dFocusValue);
@@ -1243,7 +1244,8 @@
              int nDefocusValueMin = pSignalInfo->GetDefocusValueMin();
              int nDefocusValueMax = pSignalInfo->GetDefocusValueMax();
              m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview01ImageContrast = dFocusValue;
              //m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview01ImageContrast = dFocusValue;
              m_pRP2P->IRP2P_SetReview01ImageContrast(round(dFocusValue));
              m_pRP2P->IRP2P_SetFirstReviewRight(FALSE);
              m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewRight FDC FocusValue = %.2f "), dFocusValue);
@@ -1278,7 +1280,8 @@
            int nDefocusValueMin = pSignalInfo->GetDefocusValueMin();
            int nDefocusValueMax = pSignalInfo->GetDefocusValueMax();
            m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview00ImageContrast = dFocusValue;
            //m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview00ImageContrast = dFocusValue;
            m_pRP2P->IRP2P_SetReview00ImageContrast(round(dFocusValue));
            m_pRP2P->IRP2P_SetFirstReviewLeft(FALSE);
            m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewLeft FDC FocusValue = %.2f "), dFocusValue);
            
@@ -1294,7 +1297,8 @@
            int nDefocusValueMin = pSignalInfo->GetDefocusValueMin();
            int nDefocusValueMax = pSignalInfo->GetDefocusValueMax();
            m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview01ImageContrast = dFocusValue;
            //m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview01ImageContrast = dFocusValue;
            m_pRP2P->IRP2P_SetReview01ImageContrast(round(dFocusValue));
            m_pRP2P->IRP2P_SetFirstReviewRight(FALSE);
            m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewRight FDC FocusValue = %.2f "), dFocusValue);
@@ -1412,7 +1416,8 @@
                    int nDefocusValueMin = pSignalInfo->GetDefocusValueMin();
                    int nDefocusValueMax = pSignalInfo->GetDefocusValueMax();
                    m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview00ImageContrast = dFocusValue;
                    //m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview00ImageContrast = dFocusValue;
                    m_pRP2P->IRP2P_SetReview00ImageContrast(round(dFocusValue));
                    m_pRP2P->IRP2P_SetFirstReviewLeft(FALSE);
                    m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewLeft FDC FocusValue = %.2f "), dFocusValue);
@@ -1427,7 +1432,8 @@
                    int nDefocusValueMin = pSignalInfo->GetDefocusValueMin();
                    int nDefocusValueMax = pSignalInfo->GetDefocusValueMax();
                    m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview01ImageContrast = dFocusValue;
                    //m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview01ImageContrast = dFocusValue;
                    m_pRP2P->IRP2P_SetReview01ImageContrast(round(dFocusValue));
                    m_pRP2P->IRP2P_SetFirstReviewRight(FALSE);
                    m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewRight FDC FocusValue = %.2f "), dFocusValue);
@@ -1483,7 +1489,8 @@
            int nDefocusValueMin = pSignalInfo->GetDefocusValueMin();
            int nDefocusValueMax = pSignalInfo->GetDefocusValueMax();
            m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview00ImageContrast = dFocusValue;
            //m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview00ImageContrast = dFocusValue;
            m_pRP2P->IRP2P_SetReview00ImageContrast(round(dFocusValue));
            m_pRP2P->IRP2P_SetFirstReviewLeft(FALSE);
            m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewLeft FDC FocusValue = %.2f "), dFocusValue);
@@ -1498,7 +1505,8 @@
            int nDefocusValueMin = pSignalInfo->GetDefocusValueMin();
            int nDefocusValueMax = pSignalInfo->GetDefocusValueMax();
            m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview01ImageContrast = dFocusValue;
            //m_pRP2P->IRP2P_GetCurrentGlassResult()->nReview01ImageContrast = dFocusValue;
            m_pRP2P->IRP2P_SetReview01ImageContrast(round(dFocusValue));
            m_pRP2P->IRP2P_SetFirstReviewRight(FALSE);
            m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewRight FDC FocusValue = %.2f "), dFocusValue);
@@ -3838,8 +3846,7 @@
    }
    dFocus = dSum / double(nCalWidth*nCalHeight);
    if (dFocus >= 9.8) dFocus = 10.0;
    else dFocus += 0.2;
    if (dFocus >= 10.0) dFocus = 10.0;
    return dFocus;
    //#3524_210902_LYW_MOD END
ReviewSystem/ReviewSystem/ReviewSystem.rc
@@ -849,11 +849,11 @@
    PUSHBUTTON      "SET",IDC_BUTTION_CAHNGE_TARGET_POS,207,41,50,14
    PUSHBUTTON      "APPLY",IDC_BUTTON_APPLT_OFFSET,262,26,60,23
    GROUPBOX        "결함 정보",IDC_STATIC,7,2,328,59
    GROUPBOX        "적용될 OFF SET",IDC_STATIC,339,11,173,50
    EDITTEXT        IDC_EDIT_OFFSET_X_VALUE,352,37,66,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT_OFFSET_Y_VALUE,423,37,66,14,ES_AUTOHSCROLL
    LTEXT           "Xmotor Pos : ",IDC_STATIC,354,22,44,8
    LTEXT           "Ymotor Pos : ",IDC_STATIC,426,22,44,8
    GROUPBOX        "적용될 OFF SET",IDC_STATIC,339,3,173,25
    EDITTEXT        IDC_EDIT_OFFSET_X_VALUE,379,11,39,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT_OFFSET_Y_VALUE,450,11,39,14,ES_AUTOHSCROLL
    LTEXT           "X Pos : ",IDC_STATIC,354,13,25,8
    LTEXT           "Y Pos : ",IDC_STATIC,426,13,23,8
    COMBOBOX        IDC_COMBO_SELECT_MODULE,47,67,75,104,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP,WS_EX_CLIENTEDGE
    LTEXT           "모듈 선택 ",IDC_STATIC,13,70,34,8
    GROUPBOX        "Param Setting ",IDC_STATIC,518,5,233,79
@@ -877,6 +877,13 @@
    EDITTEXT        IDC_EDIT_CAM_INDEX,600,67,19,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT_MOTOR_YPOS,694,67,54,14,ES_AUTOHSCROLL
    PUSHBUTTON      "Offset Load",IDC_OFFSET_LOAD,139,63,62,22
    GROUPBOX        "기준 값 설정",IDC_STATIC,340,31,172,33
    LTEXT           "경 알람 기준",IDC_STATIC,369,38,42,8
    LTEXT           "중 알람 기준",IDC_STATIC,431,38,42,8
    EDITTEXT        IDC_EDIT_WARN_STANDARD,368,48,38,13,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT_HARD_STANDARD,432,48,38,13,ES_AUTOHSCROLL
    LTEXT           "um",IDC_STATIC,410,50,10,8
    LTEXT           "um",IDC_STATIC,474,49,10,8
END
IDD_DLG_REVIEW_HISTORY_TOOL DIALOGEX 0, 0, 961, 455
ReviewSystem/ReviewSystem/ReviewSystemView.cpp
@@ -479,10 +479,12 @@
        m_DlgOffSetTool->Create(IDD_DLG_REVIEW_OFFSET_TOOL, this);
        m_DlgOffSetTool->SetDDL2P(static_cast<IDialogReviewOffSet2Parent*>(pMainFrame));
        //Review HistoryTool 생성
        m_DlgHistoryTool = new CDlgReviewHistoryTool(this);
        m_DlgHistoryTool->Create(IDD_DLG_REVIEW_HISTORY_TOOL, this);
        m_DlgHistoryTool->SetDDL2P(static_cast<IDialogReviewHistory2Parent*>(pMainFrame));
        /*< LYW 20211109 - #3662 Delete Start >*/
        ////Review HistoryTool 생성
        //m_DlgHistoryTool = new CDlgReviewHistoryTool(this);
        //m_DlgHistoryTool->Create(IDD_DLG_REVIEW_HISTORY_TOOL, this);
        //m_DlgHistoryTool->SetDDL2P(static_cast<IDialogReviewHistory2Parent*>(pMainFrame));
        /*< LYW 20211109 - #3662 Delete End >*/
    //    m_DlgOffSetTool->ShowWindow(SW_SHOW);
ReviewSystem/ReviewSystem/SequenceProcessor.h
@@ -430,6 +430,14 @@
    virtual CGlassResult*                ISP2P_GetCurrentGlassResult() = 0;                        // get current glass result
    virtual STransferData*                ISP2P_GetCurrentTransferData() = 0;                        // get current transfer data
    //Review Contrast
    /*< LYW 20211109 - #3662 ADD Start >*/
    virtual BOOL                        ISP2P_GetReview00ImageContrast() = 0;
    virtual BOOL                        ISP2P_GetReview01ImageContrast() = 0;
    virtual void                        ISP2P_SetReview00ImageContrast(int n_Value) = 0;
    virtual void                        ISP2P_SetReview01ImageContrast(int n_Value) = 0;
    /*< LYW 20211109 - #3662 ADD End >*/
    virtual CGlassResult*                ISP2P_GetNewHistoryResult(int& nHistoryResultCount) = 0;    // new glass result
    virtual CGlassResult*                ISP2P_GetHistoryResult(int nIndex) = 0;                    // get glass result
           
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
@@ -668,6 +668,8 @@
        SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
        SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT);
        m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!"));
        //LONGREUN
        //RecvSignalToSignalControl(PCControlRecvSignalIndex_Seq, 4);
        m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_None, nPlanIndex);
         
        AFM_SetAFMTracking(FALSE);
@@ -877,19 +879,27 @@
    CSequenceProcessData* pProcessData = static_cast<CSequenceProcessData*>(pParameter);
    m_nProcessStatus = pProcessData->nProcessStatus;
    //LONGREUN
    //SetSimulationMode(TRUE);
    switch(pProcessData->nProcessStatus)
    {
    case ProcessLoading_CPJT:
        Process_Loading();
        //LONGREUN
        //RecvSignalToSignalControl(PCControlRecvSignalIndex_Seq, 2);
        break;
    case ProcessAlignStart_CPJT:
        Process_AlignStart();
        //LONGREUN
        //RecvSignalToSignalControl(PCControlRecvSignalIndex_Seq, 3);
        break;
    case ProcessReadRawFile_CPJT:
        Process_ReadRawFile();
        //LONGREUN
        //RecvSignalToSignalControl(PCControlRecvSignalIndex_Seq, 1);
        break;
@@ -899,9 +909,14 @@
    case ProcessReviewEnd_CPJT:
        Process_ReviewEnd();
        //LONGREUN
        //RecvSignalToSignalControl(PCControlRecvSignalIndex_Seq, 5);
        break;
    case ProcessReviewUnloding_CPJT:
        Process_ReviewUnloading();
        //LONGREUN
        //RecvSignalToSignalControl(PCControlRecvSignalIndex_Seq, 0);
        break;
    }
@@ -923,7 +938,9 @@
    bFileFind = FALSE;
    m_pSP2P->ISP2P_GetDiagnosisHistory();
    /*< LYW 20211109 - #3662 Delete Start >*/
    //m_pSP2P->ISP2P_GetDiagnosisHistory();
    /*< LYW 20211109 - #3662 Delete End >*/
    m_pSP2P->ISP2P_SetFirstReviewLeft(TRUE);
    m_pSP2P->ISP2P_SetFirstReviewRight(TRUE);
@@ -1685,8 +1702,8 @@
        m_pSP2P->ISP2P_GetWSIControl(0)->SetWsiTimeOver();
        m_pSP2P->ISP2P_GetWSIControl(1)->SetWsiTimeOver();
        /*< LYW 20211015 - #3662 ADD Start >*/
        m_pSP2P->ISP2P_GetWSIControl(0)->SetWsiEnd();
        m_pSP2P->ISP2P_GetWSIControl(1)->SetWsiEnd();
//         m_pSP2P->ISP2P_GetWSIControl(0)->SetWsiEnd();
//         m_pSP2P->ISP2P_GetWSIControl(1)->SetWsiEnd();
        /*< LYW 20211015 - #3662 ADD End >*/
    }
    if (GetLastPointCheck() == FALSE)
@@ -1754,15 +1771,17 @@
    }
    g_pLog->DisplayMessage(_T("History map Start"));
    int nGlassResultCount = 0;
    CGlassResult*  pHistoryResult = m_pSP2P->ISP2P_GetNewHistoryResult(nGlassResultCount); //taek 210201
    g_pLog->DisplayMessage(_T("History map Copy"));
    ReadAOIMemory2(pHistoryResult);
    g_pLog->DisplayMessage(_T("History map TransferData"));
    UpdateHistoryResultFromTransferData(pHistoryResult, pGlassResult);
    g_pLog->DisplayMessage(_T("History Button Enable"));
    m_pSP2P->ISP2P_GetDiagnosisHistory2();
    /*< LYW 20211109 - #3662 Delete Start >*/
    //     g_pLog->DisplayMessage(_T("History map Start"));
    //     int nGlassResultCount = 0;
    //     CGlassResult*  pHistoryResult = m_pSP2P->ISP2P_GetNewHistoryResult(nGlassResultCount); //taek 210201
    //     g_pLog->DisplayMessage(_T("History map Copy"));
    //     ReadAOIMemory2(pHistoryResult);
    //     g_pLog->DisplayMessage(_T("History map TransferData"));
    //     UpdateHistoryResultFromTransferData(pHistoryResult, pGlassResult);
    //     g_pLog->DisplayMessage(_T("History Button Enable"));
    //     m_pSP2P->ISP2P_GetDiagnosisHistory2();
    /*< LYW 20211109 - #3662 Delete End >*/
    /*int nModuleCount = m_pSP2P->ISP2P_GetModuleStatusCount(); 
    for (int nModuleIdx = 0; nModuleIdx < nModuleCount; nModuleIdx++)
@@ -7641,8 +7660,13 @@
    int nReviewAliveCamera01 = 0;
    //foucs 
    nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast * 1000;
    nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview01ImageContrast * 1000;
    /*< LYW 20211109 - #3662 MOD Start >*/
    nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetReview00ImageContrast() * 1000;
    nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetReview01ImageContrast() * 1000;
    /*< LYW 20211109 - #3662 MOD End >*/
    /*< Origin Code >*/
//     nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast * 1000;
//     nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview01ImageContrast * 1000;
    //nRev_PC_HDD_CHECK = GetDiskUsage() * 1000;
    //nWSI1_PC_HDD_CHECK = nRev_PC_HDD_CHECK;//GetDiskUsage() * 1000;
@@ -8008,29 +8032,37 @@
    int nReviewAliveCamera01 = 1000;
    //foucs 
    /*< LYW 20211109 - #3662 MOD Start >*/
    if (m_pSP2P != NULL)
    {
        if (m_pSP2P->ISP2P_GetCurrentGlassResult() != NULL)
        {
            nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast * 1000;
            nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview01ImageContrast * 1000;
            if (m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast <=-2 || m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast >=999)
            {
                nRev_Cam1_Image_Contrast = 0 * 1000;
            }
            if (m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast <=-2|| m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast >=999)
            {
                nRev_Cam2_Image_Contrast = 0 * 1000;
            }
        }
        else
        {
            nRev_Cam1_Image_Contrast = 0;
            nRev_Cam2_Image_Contrast = 0;
        }
        nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetReview00ImageContrast() * 1000;
        nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetReview01ImageContrast() * 1000;
    }
    /*< LYW 20211109 - #3662 MOD End >*/
    /*< Origin Code >*/
//     if (m_pSP2P != NULL)
//     {
//         if (m_pSP2P->ISP2P_GetCurrentGlassResult() != NULL)
//         {
//
//             nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast * 1000;
//             nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview01ImageContrast * 1000;
//
//             if (m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast <=-2 || m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast >=999)
//             {
//                 nRev_Cam1_Image_Contrast = 0 * 1000;
//             }
//             if (m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast <=-2|| m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast >=999)
//             {
//                 nRev_Cam2_Image_Contrast = 0 * 1000;
//             }
//         }
//         else
//         {
//             nRev_Cam1_Image_Contrast = 0;
//             nRev_Cam2_Image_Contrast = 0;
//         }
//     }
@@ -8656,8 +8688,10 @@
    case PCControlRecv_ManualMode_CPJT:    // manual mode on
        {
            m_pSP2P->ISP2P_GetDiagnosisHistory2();
        /*< LYW 20211109 - #3662 Delete Start >*/
        //m_pSP2P->ISP2P_GetDiagnosisHistory2();
        /*< LYW 20211109 - #3662 Delete End >*/
            m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Mode] Manual Mode"));
            bResult = SetProcessMode(ProcessManualMode_CPJT);
            if (bResult==FALSE) m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Mode] Manual Mode Error!"));
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.h
@@ -419,6 +419,5 @@
    BOOL bLastPointEndCheck;
    BOOL bFileFind;
};
ReviewSystem/ReviewSystem/aaa.txt
ReviewSystem/ReviewSystem/resource.h
@@ -1,6 +1,6 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++에서 생성한 포함 파일입니다.
// ReviewSystem.rc에서 사용되고 있습니다.
// Microsoft Visual C++에서 생성한 포함 파일입니다.
// ReviewSystem.rc에서 사용되고 있습니다.
//
#define IDCANCEL                        2
#define IDD_ABOUTBOX                    100
@@ -433,6 +433,9 @@
#define IDC_EDIT_WSI_HEIGHT13           1183
#define IDC_LIST_WSI_DIAGNOSIS_RESULT   1184
#define IDC_OFFSET_LOAD                 1185
#define IDC_EDIT_WARN_STANDARD          1186
#define IDC_EDIT_HARD_STANDARD          1187
#define IDC_BUTTON_STANDARD_SAVE        1188
#define ID_INS_HOOK                     32772
#define ID_UNINS_HOOK                   32773
@@ -442,7 +445,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        381
#define _APS_NEXT_COMMAND_VALUE         32775
#define _APS_NEXT_CONTROL_VALUE         1186
#define _APS_NEXT_CONTROL_VALUE         1189
#define _APS_NEXT_SYMED_VALUE           346
#endif
#endif
ReviewSystem/ReviewSystem/stdafx.h
@@ -201,7 +201,9 @@
#define    COPYDATA_SYSTEMSETTING2REVIEWSYSTEM            1500
#define    COPYDATA_RECIPEEDITOR2REVIEWSYSTEM            1600
/*< LYW 20211111 - #3766 ADD Start >*/
#define COPYDATA_REVIEWHISTORYOR2REVIEWSYSTEM        1800
/*< LYW 20211111 - #3766 ADD End >*/
// [2017:1:13]-[WEZASW] : 다중 모니터에서의 ReviewSystem Display
enum MonitorPosition    {MonitorPos_CENTER=0, MonitorPos_TOP, MonitorPos_BOTTOM, MonitorPos_LEFT, MonitorPos_RIGHT, MonitorPos_Count};