SDC C-Project CF Review 프로그램
LYW
2021-10-15 e5fa774d622d6852fe8e1f033045aed221649108
ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Squareness.cpp
@@ -15,7 +15,7 @@
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)
@@ -28,6 +28,21 @@
   , 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;
}
@@ -41,7 +56,7 @@
   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);
@@ -55,6 +70,22 @@
   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);
@@ -157,88 +188,135 @@
      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)
@@ -247,13 +325,13 @@
               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;
@@ -261,8 +339,41 @@
            }
         }
         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++)
@@ -284,6 +395,30 @@
         {
            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;
         }
      }
   
@@ -414,8 +549,22 @@
void CDlgSelfDiagnosis_Squareness::OnBnClickedButtonSimulation2()
{
   // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
   if (m_pDiagnosisManager == NULL) return;
   /*< LYW 20210719 : #3517 ADD 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;
      }
   }
   /*< LYW 20210719 : #3517 ADD End >*/
   GetDialogControls();
   m_pDiagnosisManager->RecvSignalToSignalControl(DiagnosisSignal_Manual, DiagnosisMode_Squareness, TRUE);