| | |
| | | #include "akGridCtrl/GridCellCheck.h" |
| | | #include "akImageView.h" |
| | | #include <algorithm> |
| | | #include "MacroFile.h" |
| | | |
| | | #ifdef _DEBUG |
| | | #define new DEBUG_NEW |
| | |
| | | , 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 >*/ |
| | | m_CheckInsViewCenterLine.SetCheck(FALSE); |
| | | |
| | | 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); |
| | | DDX_Control(pDX, IDC_CHECK_INS_VIEW_CENTER_LINE, m_CheckInsViewCenterLine); |
| | | } |
| | | |
| | | 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) |
| | |
| | | ON_BN_CLICKED(IDC_CHK_SINGLE, &CReveiwHistoryDlg::OnClickedChkSingle) |
| | | ON_EN_CHANGE(IDC_EDIT_FILE_COUNT, &CReveiwHistoryDlg::OnChangeEditFileCount) |
| | | 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 메시지 처리기 |
| | |
| | | InitGridReviewLIst(&m_gridReviewList, IDC_STATIC_GRID_GLASS); |
| | | 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(); |
| | | |
| | |
| | | { |
| | | dc.SetStretchBltMode(COLORONCOLOR); |
| | | m_AlignSecend.Draw(dc, m_Align_rect2); |
| | | } |
| | | if (m_CheckInsViewCenterLine.GetCheck() == TRUE) |
| | | { |
| | | DrawInsViewCenterLine(&dc); |
| | | } |
| | | CDialogEx::OnPaint(); |
| | | } |
| | |
| | | _akDefect* pDefectInfo = &m_Formation.m_vecDefects[pDispInfo->item.row - 1]; |
| | | |
| | | m_FormationMap.setSelectDefect(pDefectInfo->m_nDefectID); |
| | | |
| | | //ImageShow(pDefectInfo->m_nDefectID); |
| | | if (!m_bDefectAll) |
| | | { |
| | |
| | | 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); |
| | |
| | | { |
| | | m_nEditCamIdx = pDefect->m_nCameraID; |
| | | m_nEditScanIdx = pDefect->m_nScanIdx; |
| | | if (pDefect->m_nModelIdx == 0) |
| | | m_nCurModelIdx = pDefect->m_nModelIdx; |
| | | if (m_nCurModelIdx == 0) |
| | | { |
| | | m_strGantryIdx = _T("Left"); |
| | | m_dEditOffsetX = (double)(dOffsetDrectionX * (Point.x / 5)) / 1000; |
| | | m_dEditOffsetY = (double)-(dOffsetDrectionY * (Point.y / 5)) / 1000; |
| | | } |
| | | else if (pDefect->m_nModelIdx == 1) |
| | | else if (m_nCurModelIdx == 1) |
| | | { |
| | | m_strGantryIdx = _T("Right"); |
| | | m_dEditOffsetX = (double)-(dOffsetDrectionX * (Point.x / 5)) / 1000; |
| | |
| | | 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 >*/ |
| | | if (m_LastSaveOffsetTime >= m_CurrentResultFileTime) |
| | | { |
| | | PostThreadMessage(m_ThreadId, UM_THREAD_WARNING_OFFSET, 0, 0); |
| | | } |
| | | /*< LYW 20211028 - #3684 ADD End >*/ |
| | | } |
| | | |
| | | void CReveiwHistoryDlg::OnCbnSelchangeComboRawtype() |
| | |
| | | |
| | | m_ConfigOption.m_nSelectRawType = 3; |
| | | |
| | | } |
| | | |
| | | 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() |
| | |
| | | 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) |
| | | { |
| | |
| | | |
| | | CDialogEx::OnKeyDown(nChar, nRepCnt, nFlags); |
| | | } |
| | | |
| | | /*< LYW 20211025 - #3684 ADD Start >*/ |
| | | void CReveiwHistoryDlg::OnBnClickedButtonOffsetApply() |
| | | { |
| | | // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. |
| | | ApplyOffset(m_nCurModelIdx, m_nEditCamIdx, m_nEditScanIdx, m_dEditOffsetX, m_dEditOffsetY); |
| | | } |
| | | |
| | | |
| | | void CReveiwHistoryDlg::OnBnClickedButtonOffsetSave() |
| | | { |
| | | // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. |
| | | SaveOffset(); |
| | | SendMsg2ReviewSystem(); |
| | | } |
| | | |
| | | BOOL CReveiwHistoryDlg::LoadOffset(CString strFilePath) |
| | | { |
| | | //dBarValue = 0; |
| | | CMacroFile macroFile; |
| | | |
| | | 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); |
| | | /*< 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; |
| | | double dXMin = 0; |
| | | double dXMAX = 0; |
| | | |
| | | double dValue = 0; |
| | | dValue = 2 * CAM_MAX_COUNT*SCAN_MAX_COUNT; |
| | | dValue = 1600 / dValue; |
| | | |
| | | for (int nModuleidx = 0; nModuleidx < 2; nModuleidx++) |
| | | { |
| | | for (int nCamidx = 0; nCamidx < CAM_MAX_COUNT; nCamidx++) |
| | | { |
| | | for (int nScanidx = 0; nScanidx < SCAN_MAX_COUNT; nScanidx++) |
| | | { |
| | | |
| | | for (int nXposIndex = 0; nXposIndex < XPOS_MAX_COUNT; nXposIndex++) |
| | | { |
| | | |
| | | strItem.Format(_T("MODULE[%d]_CAM[%d]_SCAN[%d]_IDX[%d]_OFFSET_X"), nModuleidx, nCamidx, nScanidx, nXposIndex); |
| | | macroFile.GetItem(strItem, dXoffset); |
| | | |
| | | |
| | | strItem.Format(_T("MODULE[%d]_CAM[%d]_SCAN[%d]_IDX[%d]_OFFSET_Y"), nModuleidx, nCamidx, nScanidx, nXposIndex); |
| | | macroFile.GetItem(strItem, dYoffset); |
| | | |
| | | strItem.Format(_T("MODULE[%d]_CAM[%d]_SCAN[%d]_IDX[%d]_XPOS_X_MIN"), nModuleidx, nCamidx, nScanidx, nXposIndex); |
| | | macroFile.GetItem(strItem, dXMin); |
| | | |
| | | strItem.Format(_T("MODULE[%d]_CAM[%d]_SCAN[%d]_IDX[%d]_XPOS_X_MAN"), nModuleidx, nCamidx, nScanidx, nXposIndex); |
| | | macroFile.GetItem(strItem, dXMAX); |
| | | |
| | | SetInputOffSet(nModuleidx, nCamidx, nScanidx, nXposIndex, dXoffset, dYoffset, dXMin, dXMAX); |
| | | |
| | | } |
| | | //IncressProcessBar(dValue); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return TRUE; |
| | | |
| | | } |
| | | |
| | | BOOL CReveiwHistoryDlg::SaveOffset() |
| | | { |
| | | //dBarValue = 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); |
| | | |
| | | CopyFile(REVIEW_OFFSET_CONFIGFILE_FULL_PATHNAME, strForderPath, FALSE); |
| | | |
| | | BOOL bReturn = FALSE; |
| | | CString strTemp; |
| | | int nTemp; |
| | | double dTemp; |
| | | |
| | | CMacroFile macroFile; |
| | | macroFile.Clear(); |
| | | |
| | | CString strItem = _T(""); |
| | | |
| | | |
| | | strItem.Format(_T("CAMERA_COUNT")); |
| | | macroFile.SetItem(strItem, m_nCameraCount); |
| | | |
| | | strItem.Format(_T("SCAN_COUNT")); |
| | | macroFile.SetItem(strItem, m_nScanCount); |
| | | |
| | | 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; |
| | | for (int nModuleidx = 0; nModuleidx < 2; nModuleidx++) |
| | | { |
| | | for (int nCamidx = 0; nCamidx < CAM_MAX_COUNT; nCamidx++) |
| | | { |
| | | for (int nScanidx = 0; nScanidx < SCAN_MAX_COUNT; nScanidx++) |
| | | { |
| | | |
| | | for (int nXposIndex = 0; nXposIndex < XPOS_MAX_COUNT; nXposIndex++) |
| | | { |
| | | |
| | | OffSetInfo pOffSet = GetOffSetInfo(nModuleidx, nCamidx, nScanidx, nXposIndex); |
| | | |
| | | strItem.Format(_T("MODULE[%d]_CAM[%d]_SCAN[%d]_IDX[%d]_OFFSET_X"), nModuleidx, nCamidx, nScanidx); |
| | | dData = pOffSet.dXoffSetValue; |
| | | macroFile.SetItem(strItem, dData); |
| | | |
| | | strItem.Format(_T("MODULE[%d]_CAM[%d]_SCAN[%d]_IDX[%d]_OFFSET_Y"), nModuleidx, nCamidx, nScanidx); |
| | | dData = pOffSet.dYoffSetValue; |
| | | macroFile.SetItem(strItem, dData); |
| | | |
| | | strItem.Format(_T("MODULE[%d]_CAM[%d]_SCAN[%d]_IDX[%d]_XPOS_X_MIN"), nModuleidx, nCamidx, nScanidx); |
| | | dData = pOffSet.dXposMin; |
| | | macroFile.SetItem(strItem, dData); |
| | | |
| | | strItem.Format(_T("MODULE[%d]_CAM[%d]_SCAN[%d]_IDX[%d]_XPOS_X_MAN"), nModuleidx, nCamidx, nScanidx); |
| | | dData = pOffSet.dXposMax; |
| | | macroFile.SetItem(strItem, dData); |
| | | } |
| | | //IncressProcessBar(5); |
| | | } |
| | | } |
| | | } |
| | | |
| | | CString strFilePath; |
| | | strFilePath.Format(_T("%s%s"), REVIEW_OFFSET_CONFIGFILE_PATH, REVIEW_OFFSET_CONFIGFILE_NAME); |
| | | |
| | | bReturn = macroFile.Write(strFilePath); |
| | | |
| | | 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; |
| | | } |
| | | |
| | | 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) |
| | | { |
| | | if (nCamIndex > CAM_MAX_COUNT || nCamIndex < 0) |
| | | { |
| | | return FALSE; |
| | | } |
| | | |
| | | if (ScanIndex > SCAN_MAX_COUNT || ScanIndex < 0) |
| | | { |
| | | return FALSE; |
| | | } |
| | | |
| | | |
| | | if (nModuleidx == 0) |
| | | { |
| | | VecOffSetScanData* pScandata = &m_vecOffSetCameraInfo[nCamIndex]; |
| | | VecOffSetData* pData = &pScandata->at(ScanIndex); |
| | | OffSetInfo* pOffSetData = &pData->at(0); |
| | | if (pOffSetData->bCheckSave == TRUE) |
| | | { |
| | | AfxMessageBox(_T("이미 저장한 OFFSET 입니다. 다시 셋팅을 원하시면 프로그램을 재시작 해주세요"), MB_OK | MB_ICONWARNING); |
| | | return FALSE; |
| | | } |
| | | else |
| | | { |
| | | pOffSetData->dXoffSetValue += dXOffsetValue; |
| | | pOffSetData->dYoffSetValue += dYOffsetValue; |
| | | pOffSetData->bCheckSave = TRUE; |
| | | } |
| | | } |
| | | else if (nModuleidx == 1) |
| | | { |
| | | VecOffSetScanData* pScandata = &m_vecOffSetCameraInfo2[nCamIndex]; |
| | | VecOffSetData* pData = &pScandata->at(ScanIndex); |
| | | OffSetInfo* pOffSetData = &pData->at(0); |
| | | if (pOffSetData->bCheckSave == TRUE) |
| | | { |
| | | AfxMessageBox(_T("이미 저장한 OFFSET 입니다. 다시 셋팅을 원하시면 프로그램을 재시작 해주세요"), MB_OK | MB_ICONWARNING); |
| | | return FALSE; |
| | | } |
| | | else |
| | | { |
| | | pOffSetData->dXoffSetValue += dXOffsetValue; |
| | | pOffSetData->dYoffSetValue += dYOffsetValue; |
| | | pOffSetData->bCheckSave = TRUE; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return FALSE; |
| | | } |
| | | } |
| | | |
| | | BOOL CReveiwHistoryDlg::SetInputOffSet(int nModuleidx, int nCamIndex, int ScanIndex, int nXposIndex, double dXOffsetValue, double dYOffsetValue, double dXposMin, double dXposMax, BOOL bCheckSave/* = 0*/) |
| | | { |
| | | if (nCamIndex > CAM_MAX_COUNT || nCamIndex < 0) |
| | | { |
| | | return FALSE; |
| | | } |
| | | |
| | | if (ScanIndex > SCAN_MAX_COUNT || ScanIndex < 0) |
| | | { |
| | | return FALSE; |
| | | } |
| | | |
| | | |
| | | if (nModuleidx == 0) |
| | | { |
| | | VecOffSetScanData* pScandata = &m_vecOffSetCameraInfo[nCamIndex]; |
| | | VecOffSetData* pData = &pScandata->at(ScanIndex); |
| | | OffSetInfo* pOffSetData = &pData->at(nXposIndex); |
| | | pOffSetData->dXoffSetValue = dXOffsetValue; |
| | | pOffSetData->dYoffSetValue = dYOffsetValue; |
| | | pOffSetData->dXposMin = dXposMin; |
| | | pOffSetData->dXposMax = dXposMax; |
| | | pOffSetData->bCheckSave = bCheckSave; |
| | | |
| | | } |
| | | else if (nModuleidx == 1) |
| | | { |
| | | VecOffSetScanData* pScandata = &m_vecOffSetCameraInfo2[nCamIndex]; |
| | | VecOffSetData* pData = &pScandata->at(ScanIndex); |
| | | OffSetInfo* pOffSetData = &pData->at(nXposIndex); |
| | | pOffSetData->dXoffSetValue = dXOffsetValue; |
| | | pOffSetData->dYoffSetValue = dYOffsetValue; |
| | | pOffSetData->dXposMin = dXposMin; |
| | | pOffSetData->dXposMax = dXposMax; |
| | | pOffSetData->bCheckSave = bCheckSave; |
| | | } |
| | | else |
| | | { |
| | | return FALSE; |
| | | } |
| | | } |
| | | |
| | | void CReveiwHistoryDlg::InitDataInfo() |
| | | { |
| | | //미리 공간 할당 |
| | | for (int nCamidx = 0; nCamidx < CAM_MAX_COUNT; nCamidx++) |
| | | { |
| | | |
| | | VecOffSetScanData pVecScanData; |
| | | for (int nScanidx = 0; nScanidx < SCAN_MAX_COUNT; nScanidx++) |
| | | { |
| | | VecOffSetData pVecData; |
| | | for (int nXposIndex = 0; nXposIndex < XPOS_MAX_COUNT; nXposIndex++) |
| | | { |
| | | |
| | | OffSetInfo pInfo; |
| | | pInfo.nXposIndex = nXposIndex; |
| | | pInfo.nScanIndex = nScanidx; |
| | | pInfo.nCamIndex = nCamidx; |
| | | pVecData.push_back(pInfo); |
| | | |
| | | } |
| | | pVecScanData.push_back(pVecData); |
| | | |
| | | } |
| | | |
| | | m_vecOffSetCameraInfo.push_back(pVecScanData); |
| | | } |
| | | |
| | | for (int nCamidx = 0; nCamidx < CAM_MAX_COUNT; nCamidx++) |
| | | { |
| | | |
| | | VecOffSetScanData pVecScanData; |
| | | for (int nScanidx = 0; nScanidx < SCAN_MAX_COUNT; nScanidx++) |
| | | { |
| | | VecOffSetData pVecData; |
| | | for (int nXposIndex = 0; nXposIndex < XPOS_MAX_COUNT; nXposIndex++) |
| | | { |
| | | |
| | | OffSetInfo pInfo; |
| | | pInfo.nXposIndex = nXposIndex; |
| | | pInfo.nScanIndex = nScanidx; |
| | | pInfo.nCamIndex = nCamidx; |
| | | pVecData.push_back(pInfo); |
| | | |
| | | } |
| | | pVecScanData.push_back(pVecData); |
| | | |
| | | } |
| | | |
| | | m_vecOffSetCameraInfo2.push_back(pVecScanData); |
| | | } |
| | | |
| | | } |
| | | |
| | | OffSetInfo CReveiwHistoryDlg::GetOffSetInfo(int nModuleidx, int nCamIndex, int ScanIndex, int nXposIndex) |
| | | { |
| | | OffSetInfo pOFF; |
| | | if (nCamIndex > CAM_MAX_COUNT || nCamIndex < 0) |
| | | { |
| | | return pOFF; |
| | | } |
| | | |
| | | if (ScanIndex > SCAN_MAX_COUNT || ScanIndex < 0) |
| | | { |
| | | return pOFF; |
| | | } |
| | | |
| | | |
| | | if (nModuleidx == 0) |
| | | { |
| | | VecOffSetScanData* pScandata = &m_vecOffSetCameraInfo[nCamIndex]; |
| | | VecOffSetData* pData = &pScandata->at(ScanIndex); |
| | | OffSetInfo* pOffSetData = &pData->at(nXposIndex); |
| | | |
| | | return *pOffSetData; |
| | | } |
| | | else if (nModuleidx == 1) |
| | | { |
| | | VecOffSetScanData* pScandata = &m_vecOffSetCameraInfo2[nCamIndex]; |
| | | VecOffSetData* pData = &pScandata->at(ScanIndex); |
| | | OffSetInfo* pOffSetData = &pData->at(nXposIndex); |
| | | return *pOffSetData; |
| | | } |
| | | else |
| | | { |
| | | return pOFF; |
| | | } |
| | | } |
| | | /*< 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 >*/ |
| | | |
| | | void CReveiwHistoryDlg::OnBnClickedCheckInsViewCenterLine() |
| | | { |
| | | // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. |
| | | Invalidate(TRUE); |
| | | |
| | | } |