SDC C-Project CF Review 프로그램
ReviewSystem/ReviewSystem/DlgHardwareSettingMode.cpp
@@ -14,7 +14,9 @@
DlgHardwareSettingMode::DlgHardwareSettingMode(CWnd* pParent /*=nullptr*/)
   : CDialogEx(IDD_DLG_HARDWARE_SETTING_MODE, pParent)
{
   b_ReviewCamconnectionstatus = TRUE;
   b_AFCCamconnectionstatus = TRUE;
   b_AlignCamCamconnectionstatus = TRUE;
}
DlgHardwareSettingMode::~DlgHardwareSettingMode()
@@ -98,6 +100,8 @@
void DlgHardwareSettingMode::OnBnClickedButtonReviewCamConnect()
{
   if (m_pDHM2P->IDHM2P_IsManualProcessMode() == FALSE) return;
   // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
   if (m_pDHM2P->IDHM2P_InitReviewCamera())
   {
@@ -105,16 +109,20 @@
      m_ctrlReviewCamDisConnect.SetBackground(RGB(10, 10, 10));
      m_ctrlReviewCamConnect.SetBackground(RGB(10, 255, 10));
      g_pLog->DisplayMessage(_T("[HWSettingMode] ReviewCam Connect Success"));
      b_ReviewCamconnectionstatus = TRUE;
   }
   else
   {
      g_pLog->DisplayMessage(_T("[HWSettingMode] ReviewCam Connect Fail!"));
      b_ReviewCamconnectionstatus = FALSE;
   }
}
void DlgHardwareSettingMode::OnBnClickedButtonReviewCamDisconnect()
{
   if (m_pDHM2P->IDHM2P_IsManualProcessMode() == FALSE) return;
   // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
   m_pDHM2P->IDHM2P_DisconnectReviewCamera();
   m_pDHM2P->IDHM2P_DeinitReviewCamera();
@@ -122,56 +130,103 @@
   m_ctrlReviewCamConnect.SetBackground(RGB(10, 10, 10));
   m_ctrlReviewCamDisConnect.SetBackground(RGB(200, 0, 0));
   g_pLog->DisplayMessage(_T("[HWSettingMode] ReviewCam DisConnect Success"));
   b_ReviewCamconnectionstatus = FALSE;
}
void DlgHardwareSettingMode::OnBnClickedButtonAlignCamConnect()
{
   if (m_pDHM2P->IDHM2P_IsManualProcessMode() == FALSE) return;
   // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
   system("netsh interface set interface name = \"Align #1\" admin = disable"
      "&& netsh interface set interface name = \"Align #1\" admin = enable"
      "&& netsh interface set interface name = \"Align #2\" admin = disable"
      "&& netsh interface set interface name = \"Align #2\" admin = enable");
   Sleep(10000);
   if (m_pDHM2P->IDHM2P_InitAlignCamera())
   {
      m_ctrlAlignCamDisConnect.SetBackground(RGB(10, 10, 10));
      m_ctrlAlignCamConnect.SetBackground(RGB(10, 255, 10));
      g_pLog->DisplayMessage(_T("[HWSettingMode] AlignCamera Connect Success"));
      b_AlignCamCamconnectionstatus = TRUE;
   }
   else
   {
      g_pLog->DisplayMessage(_T("[HWSettingMode] AlignCamera Connect Fail!"));
      b_AlignCamCamconnectionstatus = FALSE;
   }
}
void DlgHardwareSettingMode::OnBnClickedButtonAlignCamDisconnect()
{
   if (m_pDHM2P->IDHM2P_IsManualProcessMode() == FALSE) return;
   // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
   m_pDHM2P->IDHM2P_DeinitAlignCamera();
   m_ctrlAlignCamConnect.SetBackground(RGB(10, 10, 10));
   m_ctrlAlignCamDisConnect.SetBackground(RGB(200, 0, 0));
   g_pLog->DisplayMessage(_T("[HWSettingMode] AlignCamera DisConnect Success"));
   b_AlignCamCamconnectionstatus = FALSE;
}
void DlgHardwareSettingMode::OnBnClickedButtonAfmConnect()
{
   if (m_pDHM2P->IDHM2P_IsManualProcessMode() == FALSE) return;
   // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
   if (m_pDHM2P->IDHM2P_InitAFMControl())
   {
      m_ctrlAFMDisConnect.SetBackground(RGB(10, 10, 10));
      m_ctrlAFMConnect.SetBackground(RGB(10, 255, 10));
      g_pLog->DisplayMessage(_T("[HWSettingMode] Afm Connect Success"));
      b_AFCCamconnectionstatus = TRUE;
   }
   else
   {
      g_pLog->DisplayMessage(_T("[HWSettingMode] Afm Connect Fail!"));
      b_AFCCamconnectionstatus = FALSE;
   }
}
void DlgHardwareSettingMode::OnBnClickedButtonAfmDisconnect()
{
   if (m_pDHM2P->IDHM2P_IsManualProcessMode() == FALSE) return;
   // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
   m_pDHM2P->IDHM2P_DeinitAFMControl();
   m_ctrlAFMConnect.SetBackground(RGB(10, 10, 10));
   m_ctrlAFMDisConnect.SetBackground(RGB(200, 0, 0));
   g_pLog->DisplayMessage(_T("[HWSettingMode] Afm DisConnect Success"));
   b_AFCCamconnectionstatus = FALSE;
}
void DlgHardwareSettingMode::OnCancel()
{
   // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
   if (b_AFCCamconnectionstatus && b_AlignCamCamconnectionstatus && b_ReviewCamconnectionstatus)
   {
      CDialogEx::OnCancel();
   }
   else IDOK == AfxMessageBox(_T("모든 H/W가 연결 상태가 아니면 창을 닫을 수 없습니다.", MB_OK | MB_ICONQUESTION));
   return;
}
void DlgHardwareSettingMode::OnOK()
{
   // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
   if (b_AFCCamconnectionstatus && b_AlignCamCamconnectionstatus && b_ReviewCamconnectionstatus)
   {
      CDialogEx::OnOK();
   }
   else IDOK == AfxMessageBox(_T("모든 H/W가 연결 상태가 아니면 창을 닫을 수 없습니다.", MB_OK | MB_ICONQUESTION));
   return;
}