| | |
| | | , m_dEditOffsetX(0) |
| | | , m_dEditOffsetY(0) |
| | | , m_strGantryIdx(_T("")) |
| | | , m_TextLastSaveOffsetTime(_T("")) |
| | | { |
| | | m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); |
| | | |
| | |
| | | m_dCurDefectIdx = 0; |
| | | m_dCurDefectID = 0; |
| | | /*< LYW 20211018 - #3684 ADD End >*/ |
| | | /*< LYW 20211029 - #3684 ADD Start >*/ |
| | | DWORD dwThreadId = 0; |
| | | HANDLE hThread = CreateThread(NULL, 0, RunThreadReviewHistory, this, 0, &dwThreadId); |
| | | m_ThreadId = dwThreadId; |
| | | /*< LYW 20211029 - #3684 ADD End >*/ |
| | | |
| | | for (int i = 0; i < 105; i++) |
| | | { |
| | |
| | | m_nImageSize[i] = 0; |
| | | } |
| | | } |
| | | |
| | | /*< LYW 20211029 - #3684 ADD Start >*/ |
| | | CReveiwHistoryDlg::~CReveiwHistoryDlg(void) |
| | | { |
| | | PostThreadMessage(m_ThreadId, WM_QUIT, 0, 0); |
| | | } |
| | | /*< LYW 20211029 - #3684 ADD End >*/ |
| | | |
| | | void CReveiwHistoryDlg::DoDataExchange(CDataExchange* pDX) |
| | | { |
| | |
| | | DDX_Text(pDX, IDC_EDIT_OFFSET_X, m_dEditOffsetX); |
| | | 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); |
| | | } |
| | | |
| | | BEGIN_MESSAGE_MAP(CReveiwHistoryDlg, CDialogEx) |
| | |
| | | ON_BN_CLICKED(IDC_BUTTON_MAPVIEW_FIT, &CReveiwHistoryDlg::OnBnClickedButtonMapviewFit) |
| | | ON_MESSAGE(UM_FORMMAP_DEFECTSELECT, OnMapDefectSelected) |
| | | ON_MESSAGE(UM_FORMMAP_DEFECTMOUSEOVER, OnMapDefectMouseOver) |
| | | ON_MESSAGE(UM_WARNING_OFFSET, OnDisplayWarning) |
| | | ON_MESSAGE(UM_FORMMAP_IMAGEMOUSECLICK, OnImageClick) |
| | | ON_COMMAND(ID_OPTION_PATHSETTING, &CReveiwHistoryDlg::OnOptionPathsetting) |
| | | ON_COMMAND(ID_VIEW_ALLDEFECT, &CReveiwHistoryDlg::OnViewAlldefect) |
| | |
| | | return 0; |
| | | } |
| | | |
| | | LRESULT CReveiwHistoryDlg::OnDisplayWarning(WPARAM wParam, LPARAM lParam) |
| | | { |
| | | AfxMessageBox(_T("선택하신 리뷰 데이터는 지금 적용된 OFFSET 데이터 이전의 데이터 입니다. 확실한 경우가 아니라면 OFFSET 셋팅을 금해주십시오."), MB_OK | MB_ICONWARNING); |
| | | return 0; |
| | | } |
| | | |
| | | LRESULT CReveiwHistoryDlg::OnListDefectSelected(WPARAM wParam, LPARAM lParam) |
| | | { |
| | | int nSelectDefect = static_cast<int>(wParam); |
| | |
| | | nSecond = write_local_time.wSecond; |
| | | CString strTime; |
| | | strTime.Format("%04d-%02d-%02d-%02d-%02d-%02d", nYear, nMonth, nDay, nHour, nMinute, nSecond); |
| | | |
| | | CloseHandle(h_File); |
| | | |
| | | m_vecStrGridTimeList.push_back(strTime); |
| | | } |
| | |
| | | Imagenoload(); |
| | | return; |
| | | } |
| | | |
| | | /*< LYW 20211028 - #3684 ADD Start >*/ |
| | | CString strBinFileName; |
| | | strBinFileName.Format("%s\\%s", strBinPath, strFileName); |
| | | m_CurrentResultFileTime = GetCurrentResultFileTime(strBinFileName); |
| | | /*< LYW 20211028 - #3684 ADD End >*/ |
| | | |
| | | if (bNewFile && m_chkSingle.GetCheck()) |
| | | { |
| | |
| | | { |
| | | SetScrollSetting(); |
| | | } |
| | | /*< LYW 20211028 - #3684 ADD Start >*/ |
| | | HWND hWnd = GetSafeHwnd(); |
| | | PostThreadMessage(m_ThreadId, UM_THREAD_WARNING_OFFSET, 0, 0); |
| | | /*< LYW 20211028 - #3684 ADD End >*/ |
| | | } |
| | | |
| | | void CReveiwHistoryDlg::OnCbnSelchangeComboRawtype() |
| | |
| | | m_ctlFileCount.GetWindowText(strCount); |
| | | m_nFileCount = _ttoi(strCount); |
| | | } |
| | | |
| | | /*< LYW 20211028 - #3684 ADD Start >*/ |
| | | void CReveiwHistoryDlg::UpdateLastSaveOffsetTime(CString FileName) |
| | | { |
| | | |
| | | HANDLE h_file = CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); |
| | | |
| | | FILETIME create_time, access_time, write_time; |
| | | GetFileTime(h_file, &create_time, &access_time, &write_time); |
| | | |
| | | SYSTEMTIME access_system_time; |
| | | FileTimeToSystemTime(&access_time, &access_system_time); |
| | | |
| | | SYSTEMTIME access_system_Local_time; |
| | | SystemTimeToTzSpecificLocalTime(NULL, &access_system_time, &access_system_Local_time); |
| | | |
| | | CTime FIleTime(access_system_Local_time); |
| | | m_LastSaveOffsetTime = FIleTime; |
| | | |
| | | CloseHandle(h_file); |
| | | |
| | | m_TextLastSaveOffsetTime.Format(_T("%04d/%02d/%02d/%02d:%02d:%02d"), m_LastSaveOffsetTime.GetYear(), m_LastSaveOffsetTime.GetMonth(), |
| | | m_LastSaveOffsetTime.GetDay(), m_LastSaveOffsetTime.GetHour(), m_LastSaveOffsetTime.GetMinute(), m_LastSaveOffsetTime.GetSecond()); |
| | | |
| | | UpdateData(FALSE); |
| | | } |
| | | CTime CReveiwHistoryDlg::GetCurrentResultFileTime(CString FileName) |
| | | { |
| | | HANDLE h_file = CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); |
| | | |
| | | if (h_file != INVALID_HANDLE_VALUE) |
| | | { |
| | | FILETIME create_time, access_time, write_time; |
| | | GetFileTime(h_file, &create_time, &access_time, &write_time); |
| | | |
| | | SYSTEMTIME access_system_time; |
| | | FileTimeToSystemTime(&access_time, &access_system_time); |
| | | |
| | | SYSTEMTIME access_system_Local_time; |
| | | SystemTimeToTzSpecificLocalTime(NULL, &access_system_time, &access_system_Local_time); |
| | | |
| | | CloseHandle(h_file); |
| | | |
| | | CTime FIleTime(access_system_Local_time); |
| | | m_CurrentResultFileTime = FIleTime; |
| | | |
| | | return m_CurrentResultFileTime; |
| | | } |
| | | |
| | | else |
| | | { |
| | | return CTime::GetCurrentTime(); |
| | | } |
| | | |
| | | |
| | | } |
| | | /*< LYW 20211028 - #3684 ADD End >*/ |
| | | |
| | | BOOL CReveiwHistoryDlg::GetCheckFileLoad(int nCount) |
| | | { |
| | |
| | | if (!macroFile.Read(strFilePath)) |
| | | return FALSE; |
| | | |
| | | UpdateLastSaveOffsetTime(strFilePath); |
| | | |
| | | macroFile.GetItem(_T("CAMERA_COUNT"), m_nCameraCount, 0); |
| | | macroFile.GetItem(_T("SCAN_COUNT"), m_nScanCount, 0); |
| | | macroFile.GetItem(_T("XPOS_COUNT"), m_XposCount, 0); |
| | |
| | | CString strForderPath; |
| | | CString strFileName; |
| | | CTime time = CTime::GetCurrentTime(); |
| | | /*< LYW 20211028 - #3684 ADD Start >*/ |
| | | m_LastSaveOffsetTime = time; |
| | | /*< LYW 20211028 - #3684 ADD End >*/ |
| | | strFileName.Format(_T("ReviewOffSet_%04d%02d%02d%02d%02d%02d.cfg"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond()); |
| | | strForderPath.Format(_T("%s%s"), REVIEW_OFFSET_BACKUP_FORDER_PATH, strFileName); |
| | | |
| | |
| | | |
| | | bReturn = macroFile.Write(strFilePath); |
| | | |
| | | if (bReturn) AfxMessageBox(_T("OFFSET SAVE SUCCESS"), MB_OK | MB_ICONASTERISK); |
| | | else AfxMessageBox(_T("OFFSET SAVE FAIL"), MB_OK | MB_ICONASTERISK); |
| | | if (bReturn) |
| | | { |
| | | /*< LYW 20211028 - #3684 ADD Start >*/ |
| | | UpdateLastSaveOffsetTime(strFilePath); |
| | | AfxMessageBox(_T("OFFSET SAVE SUCCESS"), MB_OK | MB_ICONASTERISK); |
| | | /*< LYW 20211028 - #3684 ADD End >*/ |
| | | } |
| | | else AfxMessageBox(_T("OFFSET SAVE FAIL"), MB_OK | MB_ICONHAND); |
| | | |
| | | return bReturn; |
| | | } |
| | |
| | | } |
| | | } |
| | | /*< LYW 20211025 - #3684 ADD End >*/ |
| | | |
| | | /*< LYW 20211029 - #3684 ADD Start >*/ |
| | | DWORD RunThreadReviewHistory(LPVOID param) |
| | | { |
| | | MSG msg; |
| | | CReveiwHistoryDlg* pDlg = (CReveiwHistoryDlg*)param; |
| | | while (GetMessage(&msg, NULL, 0, 0)) |
| | | { |
| | | //CString* pstrLog = reinterpret_cast<CString*>(msg.wParam); |
| | | switch (msg.message) |
| | | { |
| | | case UM_THREAD_WARNING_OFFSET: |
| | | |
| | | Sleep(100); |
| | | pDlg->PostMessage(UM_WARNING_OFFSET); |
| | | break; |
| | | |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | return 0; |
| | | } |
| | | /*< LYW 20211029 - #3684 ADD End >*/ |