| | |
| | | CDlgSelfDiagnosis_Squareness::CDlgSelfDiagnosis_Squareness(CDiagnosisManager* pDiagnosisManager, CWnd* pParent /*=nullptr*/) |
| | | : CDialogEx(IDD_DLG_SELF_DIAGNOSIS_SQUARENESS, pParent) |
| | | , m_nSelModuleIndex(0) |
| | | , m_dEditTheta(0) |
| | | , m_dEditLeftTheta(0) |
| | | , m_dEditMotorX_1(0) |
| | | , m_dEditMotorY_1(0) |
| | | , m_dEditPixelX_1(0) |
| | |
| | | , m_dEditMotorY_3(0) |
| | | , m_dEditPixelX_3(0) |
| | | , m_dEditPixelY_3(0) |
| | | , m_dEditRightTheta(0) |
| | | , m_dEditMotorX_4(0) |
| | | , m_dEditMotorY_4(0) |
| | | , m_dEditPixelX_4(0) |
| | | , m_dEditPixelY_4(0) |
| | | , m_dEditMotorX_5(0) |
| | | , m_dEditMotorY_5(0) |
| | | , m_dEditPixelX_5(0) |
| | | , m_dEditPixelY_5(0) |
| | | , m_dEditMotorX_6(0) |
| | | , m_dEditMotorY_6(0) |
| | | , m_dEditPixelX_6(0) |
| | | , m_dEditPixelY_6(0) |
| | | , m_editFirstSettingStandard(0) |
| | | , m_editFirstSettingStandard2(0) |
| | | { |
| | | m_pDiagnosisManager = pDiagnosisManager; |
| | | } |
| | |
| | | CDialogEx::DoDataExchange(pDX); |
| | | DDX_Control(pDX, IDC_GRID_GANTRY_DATA_HISTORY, m_ctrlGridGantryDataHistory); |
| | | DDX_Control(pDX, IDC_LIST, m_ctrlListFileHistory); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_THETA, m_dEditTheta); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_THETA, m_dEditLeftTheta); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_X, m_dEditMotorX_1); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_Y, m_dEditMotorY_1); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_X, m_dEditPixelX_1); |
| | |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_Y3, m_dEditMotorY_3); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_X3, m_dEditPixelX_3); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_Y3, m_dEditPixelY_3); |
| | | |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_THETA2, m_dEditRightTheta); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_X4, m_dEditMotorX_4); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_Y4, m_dEditMotorY_4); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_X4, m_dEditPixelX_4); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_Y4, m_dEditPixelY_4); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_X5, m_dEditMotorX_5); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_Y5, m_dEditMotorY_5); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_X5, m_dEditPixelX_5); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_Y5, m_dEditPixelY_5); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_X6, m_dEditMotorX_6); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_Y6, m_dEditMotorY_6); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_X6, m_dEditPixelX_6); |
| | | DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_Y6, m_dEditPixelY_6); |
| | | DDX_Text(pDX, IDC_EDIT_SQUARENESS_FIRSTSETTING, m_editFirstSettingStandard); |
| | | DDX_Text(pDX, IDC_EDIT_SQUARENESS_FIRSTSETTING2, m_editFirstSettingStandard2); |
| | | //DDX_Control(pDX, IDC_BUTTON_SIMULATION, m_BtSumulation); |
| | | //DDX_Control(pDX, IDC_BUTTON_SIMULATION, m_BtSumulation); |
| | | DDX_Control(pDX, IDC_BUTTON_SIMULATION2, m_BtSumulation); |
| | |
| | | const CDiagnosisInfo* pSettingInfo = m_pDiagnosisManager->GetDiagnosisInfo(); |
| | | if (pSettingInfo == NULL) return; |
| | | |
| | | const CDiagnosisResult* pStandardResult = pSettingInfo->GetSettingResult_Squareness(m_nSelModuleIndex); |
| | | if (pStandardResult == NULL) return; |
| | | m_editFirstSettingStandard = pSettingInfo->GetSquarenessStandard(); |
| | | m_editFirstSettingStandard2 = pSettingInfo->GetSquarenessStandard2(); |
| | | |
| | | if (bLoadResult) // update load file data |
| | | { |
| | | const CDiagnosisResult* pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(m_nSelModuleIndex); |
| | | const CDiagnosisResult* pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(0); |
| | | if (pResult == NULL) return; |
| | | |
| | | // result : theta, pixel position |
| | | m_dEditTheta = pResult->GetGantryDegree(); |
| | | m_dEditLeftTheta = pResult->GetGantryDegree(); |
| | | for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++) |
| | | { |
| | | const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPIdx); |
| | | if (pPosData == NULL) continue; |
| | | |
| | | if (pPosData->nIndex == PanelPosition_Base) |
| | | if (pPosData->nPosMode == PanelPosition_Base) |
| | | { |
| | | m_dEditPixelX_1 = pPosData->dPixelX; |
| | | m_dEditPixelY_1 = pPosData->dPixelY; |
| | | } |
| | | else if (pPosData->nIndex == PanelPosition_Sub) |
| | | else if (pPosData->nPosMode == PanelPosition_Sub) |
| | | { |
| | | m_dEditPixelX_2 = pPosData->dPixelX; |
| | | m_dEditPixelY_2 = pPosData->dPixelY; |
| | | } |
| | | else if (pPosData->nIndex == PanelPosition_Addition) |
| | | else if (pPosData->nPosMode == PanelPosition_Addition) |
| | | { |
| | | m_dEditPixelX_3 = pPosData->dPixelX; |
| | | m_dEditPixelY_3 = pPosData->dPixelY; |
| | | } |
| | | } |
| | | |
| | | pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(1); |
| | | if (pResult == NULL) return; |
| | | |
| | | // result : theta, pixel position |
| | | m_dEditRightTheta = pResult->GetGantryDegree(); |
| | | for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++) |
| | | { |
| | | const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPIdx+3); |
| | | if (pPosData == NULL) continue; |
| | | |
| | | if (pPosData->nPosMode == PanelPosition_Base) |
| | | { |
| | | m_dEditPixelX_4 = pPosData->dPixelX; |
| | | m_dEditPixelY_4 = pPosData->dPixelY; |
| | | } |
| | | else if (pPosData->nPosMode == PanelPosition_Sub) |
| | | { |
| | | m_dEditPixelX_5 = pPosData->dPixelX; |
| | | m_dEditPixelY_5 = pPosData->dPixelY; |
| | | } |
| | | else if (pPosData->nPosMode == PanelPosition_Addition) |
| | | { |
| | | m_dEditPixelX_6 = pPosData->dPixelX; |
| | | m_dEditPixelY_6 = pPosData->dPixelY; |
| | | } |
| | | } |
| | | |
| | | } |
| | | else if (bLoadResult == FALSE && m_pDiagnosisManager->ExistStandardData() == FALSE)// update setting data |
| | | { |
| | | const CDiagnosisResult* pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(m_nSelModuleIndex); |
| | | const CDiagnosisResult* pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(0); |
| | | if (pResult == NULL) return; |
| | | |
| | | // result : theta, pixel position |
| | | m_dEditTheta = pResult->GetGantryDegree(); |
| | | m_dEditLeftTheta = pResult->GetGantryDegree(); |
| | | |
| | | for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++) |
| | | { |
| | | const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPIdx); |
| | | if (pPosData == NULL) continue; |
| | | |
| | | if (pPosData->nIndex == PanelPosition_Base) |
| | | if (pPosData->nPosMode == PanelPosition_Base) |
| | | { |
| | | m_dEditPixelX_1 = pPosData->dPixelX; |
| | | m_dEditPixelY_1 = pPosData->dPixelY; |
| | | } |
| | | else if (pPosData->nIndex == PanelPosition_Sub) |
| | | else if (pPosData->nPosMode == PanelPosition_Sub) |
| | | { |
| | | m_dEditPixelX_2 = pPosData->dPixelX; |
| | | m_dEditPixelY_2 = pPosData->dPixelY; |
| | | } |
| | | else if (pPosData->nIndex == PanelPosition_Addition) |
| | | else if (pPosData->nPosMode == PanelPosition_Addition) |
| | | { |
| | | m_dEditPixelX_3 = pPosData->dPixelX; |
| | | m_dEditPixelY_3 = pPosData->dPixelY; |
| | | } |
| | | } |
| | | |
| | | pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(1); |
| | | if (pResult == NULL) return; |
| | | |
| | | // result : theta, pixel position |
| | | m_dEditLeftTheta = pResult->GetGantryDegree(); |
| | | |
| | | for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++) |
| | | { |
| | | const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPIdx+3); |
| | | if (pPosData == NULL) continue; |
| | | |
| | | if (pPosData->nPosMode == PanelPosition_Base) |
| | | { |
| | | m_dEditPixelX_4 = pPosData->dPixelX; |
| | | m_dEditPixelY_4 = pPosData->dPixelY; |
| | | } |
| | | else if (pPosData->nPosMode == PanelPosition_Sub) |
| | | { |
| | | m_dEditPixelX_5 = pPosData->dPixelX; |
| | | m_dEditPixelY_5 = pPosData->dPixelY; |
| | | } |
| | | else if (pPosData->nPosMode == PanelPosition_Addition) |
| | | { |
| | | m_dEditPixelX_6 = pPosData->dPixelX; |
| | | m_dEditPixelY_6 = pPosData->dPixelY; |
| | | } |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | int nPlanindex = 0; |
| | | |
| | | // result : theta, pixel position |
| | | const CDiagnosisResult* pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(m_nSelModuleIndex); |
| | | const CDiagnosisResult* pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(0); |
| | | if (pResult == NULL) return; |
| | | |
| | | BOOL bProcess = FALSE; |
| | | for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++) |
| | | { |
| | | if (m_nSelModuleIndex == 1) |
| | | { |
| | | nPlanindex = nPIdx + 3; |
| | | } |
| | | else |
| | | { |
| | | nPlanindex = nPIdx; |
| | | } |
| | | const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPlanindex); |
| | | const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPIdx); |
| | | if (pPosData == NULL) continue; |
| | | |
| | | if (pPosData->nPosMode == PanelPosition_Base) |
| | |
| | | m_dEditPixelY_1 = pPosData->dPixelY; |
| | | bProcess = pPosData->bProcsss; |
| | | } |
| | | else if (pPosData->nIndex == PanelPosition_Sub) |
| | | else if (pPosData->nPosMode == PanelPosition_Sub) |
| | | { |
| | | m_dEditPixelX_2 = pPosData->dPixelX; |
| | | m_dEditPixelY_2 = pPosData->dPixelY; |
| | | bProcess &= pPosData->bProcsss; |
| | | } |
| | | else if (pPosData->nIndex == PanelPosition_Addition) |
| | | else if (pPosData->nPosMode == PanelPosition_Addition) |
| | | { |
| | | m_dEditPixelX_3 = pPosData->dPixelX; |
| | | m_dEditPixelY_3 = pPosData->dPixelY; |
| | |
| | | } |
| | | } |
| | | |
| | | m_dEditTheta = bProcess ? pResult->GetGantryDegree() : 0.; |
| | | m_dEditLeftTheta = bProcess ? pResult->GetGantryDegree() : 0.; |
| | | |
| | | pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(1); |
| | | if (pResult == NULL) return; |
| | | |
| | | bProcess = FALSE; |
| | | for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++) |
| | | { |
| | | const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPIdx+3); |
| | | if (pPosData == NULL) continue; |
| | | |
| | | if (pPosData->nPosMode == PanelPosition_Base) |
| | | { |
| | | m_dEditPixelX_4 = pPosData->dPixelX; |
| | | m_dEditPixelY_4 = pPosData->dPixelY; |
| | | bProcess = pPosData->bProcsss; |
| | | } |
| | | else if (pPosData->nPosMode == PanelPosition_Sub) |
| | | { |
| | | m_dEditPixelX_5 = pPosData->dPixelX; |
| | | m_dEditPixelY_5 = pPosData->dPixelY; |
| | | bProcess &= pPosData->bProcsss; |
| | | } |
| | | else if (pPosData->nPosMode == PanelPosition_Addition) |
| | | { |
| | | m_dEditPixelX_6 = pPosData->dPixelX; |
| | | m_dEditPixelY_6 = pPosData->dPixelY; |
| | | bProcess &= pPosData->bProcsss; |
| | | } |
| | | } |
| | | |
| | | m_dEditRightTheta = bProcess ? pResult->GetGantryDegree() : 0.; |
| | | } |
| | | |
| | | const CDiagnosisResult* pStandardResult = pSettingInfo->GetSettingResult_Squareness(0); |
| | | |
| | | // info : motor position |
| | | for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++) |
| | |
| | | { |
| | | m_dEditMotorX_3 = pPosData->dPosX; |
| | | m_dEditMotorY_3 = pPosData->dPosY; |
| | | } |
| | | } |
| | | |
| | | pStandardResult = pSettingInfo->GetSettingResult_Squareness(1); |
| | | |
| | | for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++) |
| | | { |
| | | const SPositionData* pPosData = pStandardResult->GetPositionData_Squareness(nPIdx); |
| | | if (pPosData == NULL) continue; |
| | | |
| | | if (pPosData->nIndex == PanelPosition_Base) |
| | | { |
| | | m_dEditMotorX_4 = pPosData->dPosX; |
| | | m_dEditMotorY_4 = pPosData->dPosY; |
| | | } |
| | | else if (pPosData->nIndex == PanelPosition_Sub) |
| | | { |
| | | m_dEditMotorX_5 = pPosData->dPosX; |
| | | m_dEditMotorY_5 = pPosData->dPosY; |
| | | } |
| | | else if (pPosData->nIndex == PanelPosition_Addition) |
| | | { |
| | | m_dEditMotorX_6 = pPosData->dPosX; |
| | | m_dEditMotorY_6 = pPosData->dPosY; |
| | | } |
| | | } |
| | | |
| | |
| | | void CDlgSelfDiagnosis_Squareness::OnBnClickedButtonSimulation2() |
| | | { |
| | | // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. |
| | | |
| | | if (m_pDiagnosisManager == NULL) return; |
| | | |
| | | //#3514_LYW_CF AOI Review 자가진단 기능 개선_START |
| | | if (m_pDiagnosisManager->CheckManualMode() == FALSE) |
| | | { |
| | | CString strMessage; |
| | | strMessage.Format(_T("Change Manual Mode!!")); |
| | | if (IDOK == AfxMessageBox(strMessage, MB_OK | MB_ICONERROR)) |
| | | { |
| | | g_pLog->DisplayMessage(_T("Manual Diagnosis Fail! Not Manual Mode")); |
| | | return; |
| | | } |
| | | } |
| | | //#3514_LYW_CF AOI Review 자가진단 기능 개선_END |
| | | |
| | | GetDialogControls(); |
| | | |
| | | m_pDiagnosisManager->RecvSignalToSignalControl(DiagnosisSignal_Manual, DiagnosisMode_Squareness, TRUE); |