// DlgSelfDiagnosis_Wsi.cpp: 구현 파일 // #include "stdafx.h" #include "ReviewSystem.h" #include "DlgSelfDiagnosis_Wsi.h" #include "DlgSelfDiagnosis.h" #include "afxdialogex.h" // CDlgSelfDiagnosis_Wsi 대화 상자 IMPLEMENT_DYNAMIC(CDlgSelfDiagnosis_Wsi, CDialogEx) CDlgSelfDiagnosis_Wsi::CDlgSelfDiagnosis_Wsi(CDiagnosisManager* pDiagnosisManager, CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_DLG_SELF_DIAGNOSIS_WSI, pParent) { m_pDiagnosisManager = pDiagnosisManager; } CDlgSelfDiagnosis_Wsi::~CDlgSelfDiagnosis_Wsi() { } void CDlgSelfDiagnosis_Wsi::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_EDIT_WSI_ACC_00, m_ctrlWsiAcc00); DDX_Control(pDX, IDC_EDIT_WSI_ACC_01, m_ctrlWsiAcc01); DDX_Control(pDX, IDC_EDIT_WSI_RTB_00, m_ctrlWsiRtb00); DDX_Control(pDX, IDC_EDIT_WSI_RTB_01, m_ctrlWsiRtb01); DDX_Control(pDX, IDC_BUTTON_SIMULATION, m_btSimulation); } BEGIN_MESSAGE_MAP(CDlgSelfDiagnosis_Wsi, CDialogEx) ON_BN_CLICKED(IDC_BUTTON_SIMULATION, &CDlgSelfDiagnosis_Wsi::OnBnClickedButtonSimulation) ON_EN_CHANGE(IDC_EDIT_WSI_ACC_01, &CDlgSelfDiagnosis_Wsi::OnEnChangeEditWsiAcc01) ON_EN_CHANGE(IDC_EDIT_WSI_RTB_00, &CDlgSelfDiagnosis_Wsi::OnEnChangeEditWsiRtb00) END_MESSAGE_MAP() // CDlgSelfDiagnosis_Wsi 메시지 처리기 void CDlgSelfDiagnosis_Wsi::OnBnClickedButtonSimulation() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. if (m_pDiagnosisManager == NULL) return; //GetDialogControls(); //m_ctrlWsiAcc00.SetWindowText(_T("")); m_pDiagnosisManager->RecvSignalToSignalControl(DiagnosisSignal_Manual, DiagnosisMode_Wsi, TRUE); } void CDlgSelfDiagnosis_Wsi::OnEnChangeEditWsiAcc01() { // TODO: RICHEDIT 컨트롤인 경우, 이 컨트롤은 // CDialogEx::OnInitDialog() 함수를 재지정 //하고 마스크에 OR 연산하여 설정된 ENM_CHANGE 플래그를 지정하여 CRichEditCtrl().SetEventMask()를 호출하지 않으면 // 이 알림 메시지를 보내지 않습니다. // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. } void CDlgSelfDiagnosis_Wsi::UpdateWSIResult() { const CDiagnosisInfo* pSettingInfo = m_pDiagnosisManager->GetDiagnosisInfo(); if (pSettingInfo == NULL) return; double nACC00 = m_pDiagnosisManager->GetDiagnosisResult_Wsi(0)->getWSI_ACC(); double nACC01 = m_pDiagnosisManager->GetDiagnosisResult_Wsi(1)->getWSI_ACC(); double nRTB00 = m_pDiagnosisManager->GetDiagnosisResult_Wsi(0)->getWSI_RTB(); double nRTB01 = m_pDiagnosisManager->GetDiagnosisResult_Wsi(1)->getWSI_RTB(); CString strACC00, strACC01; CString strRTB00, strRTB01; strACC00.Format(_T("%d"), nACC00); m_ctrlWsiAcc00.SetWindowTextA(strACC00); m_ctrlWsiAcc01.SetWindowTextA(strACC01); m_ctrlWsiRtb00.SetWindowTextA(strRTB00); m_ctrlWsiRtb01.SetWindowTextA(strRTB01); } void CDlgSelfDiagnosis_Wsi::DisableBtSIMULATION(BOOL bUse) { if (bUse) { m_btSimulation.EnableWindow(FALSE); } else { m_btSimulation.EnableWindow(TRUE); } } void CDlgSelfDiagnosis_Wsi::UpdateWSIResult(int nModuleIndex,double dAcc00, double dAcc01, double dRbt00, double dRbt01) { const CDiagnosisInfo* pSettingInfo = m_pDiagnosisManager->GetDiagnosisInfo(); if (pSettingInfo == NULL) return; double nACC00 = dAcc00; double nACC01 = dAcc01; double nRTB00 = dRbt00; double nRTB01 = dRbt01; CString strACC00, strACC01; CString strRTB00, strRTB01; strACC00.Format(_T("%f"),nACC00); strRTB00.Format(_T("%f"), nRTB00); strACC01.Format(_T("%f"), nACC01); strRTB01.Format(_T("%f"), nRTB01); if (nModuleIndex==0) { m_ctrlWsiAcc00.SetWindowTextA(strACC00); m_ctrlWsiRtb00.SetWindowTextA(strRTB00); } else { m_ctrlWsiAcc01.SetWindowTextA(strACC01); m_ctrlWsiRtb01.SetWindowTextA(strRTB01); } } void CDlgSelfDiagnosis_Wsi::ChangeResultData() { // CDiagnosisResult * pProcessResult = m_pDiagnosisManager->GetDiagnosisResultCount_Squareness(); // if (pProcessResult == NULL) return FALSE; // // SPositionData* pPositionData = pProcessResult->GetPositionData_Squareness(0); // if (pPositionData == NULL) return FALSE; // // SetGridResultData(pPositionData); // // CDlgSelfDiagnosis_Squareness* pDlg = (CDlgSelfDiagnosis_Squareness*)AfxGetApp()->m_pMainWnd; // pDlg->PostMessage(CUSTOM_UPDATEDATA, 0, 0); // return TRUE; //taek 210105 } void CDlgSelfDiagnosis_Wsi::OnEnChangeEditWsiRtb00() { // TODO: RICHEDIT 컨트롤인 경우, 이 컨트롤은 // CDialogEx::OnInitDialog() 함수를 재지정 //하고 마스크에 OR 연산하여 설정된 ENM_CHANGE 플래그를 지정하여 CRichEditCtrl().SetEventMask()를 호출하지 않으면 // 이 알림 메시지를 보내지 않습니다. // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. }