// Dlg_LampControl.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "ViewLampControl.h" #include "Global_Define.h" // CViewLampControl ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CViewLampControl, CDialog) #define LAMP_MAX_VALUE 1023 UINT nIDLampVal[] = {IDC_EDIT_LAMP_VALUE_1,IDC_EDIT_LAMP_VALUE_2,IDC_EDIT_LAMP_VALUE_3,IDC_EDIT_LAMP_VALUE_4,IDC_EDIT_LAMP_VALUE_5,IDC_EDIT_LAMP_VALUE_6,IDC_EDIT_LAMP_VALUE_7,IDC_EDIT_LAMP_VALUE_8}; CViewLampControl::CViewLampControl(CWnd* pParent /*=NULL*/) : CDialog(CViewLampControl::IDD, pParent) { m_pRecipe = NULL; m_pIV2P = NULL; m_Check_OnOff = TRUE; ZeroMemory(m_nLampValue,sizeof(int)*8); m_pHardware = NULL; m_pRecipe = NULL; } CViewLampControl::~CViewLampControl() { } void CViewLampControl::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_SLIDER_1, m_ctrSlider[0]); DDX_Control(pDX, IDC_SLIDER_2, m_ctrSlider[1]); DDX_Control(pDX, IDC_SLIDER_3, m_ctrSlider[2]); DDX_Control(pDX, IDC_SLIDER_4, m_ctrSlider[3]); DDX_Control(pDX, IDC_SLIDER_5, m_ctrSlider[4]); DDX_Control(pDX, IDC_SLIDER_6, m_ctrSlider[5]); DDX_Control(pDX, IDC_SLIDER_7, m_ctrSlider[6]); DDX_Control(pDX, IDC_SLIDER_8, m_ctrSlider[7]); int i; UINT nIDCmdOnOff[] = { IDC_CHECK_LAMP_ONOFF}; for (i = 0; i < eRcp_OnOff_End; i++) { DDX_Control(pDX, nIDCmdOnOff[i], m_ctrlCmdOnOff[i]); } for(i=0;i<8;i++) { DDX_Text(pDX,nIDLampVal[i],m_nLampValue[i]); } } BEGIN_MESSAGE_MAP(CViewLampControl, CDialog) ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_1, &CViewLampControl::OnNMCustomdrawSlider1) ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_2, &CViewLampControl::OnNMCustomdrawSlider2) ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_3, &CViewLampControl::OnNMCustomdrawSlider3) ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_4, &CViewLampControl::OnNMCustomdrawSlider4) ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_5, &CViewLampControl::OnNMCustomdrawSlider5) ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_6, &CViewLampControl::OnNMCustomdrawSlider6) ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_7, &CViewLampControl::OnNMCustomdrawSlider7) ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_8, &CViewLampControl::OnNMCustomdrawSlider8) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_1, &CViewLampControl::OnNMReleasedcaptureSlider1) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_2, &CViewLampControl::OnNMReleasedcaptureSlider2) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_3, &CViewLampControl::OnNMReleasedcaptureSlider3) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_4, &CViewLampControl::OnNMReleasedcaptureSlider4) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_5, &CViewLampControl::OnNMReleasedcaptureSlider5) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_6, &CViewLampControl::OnNMReleasedcaptureSlider6) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_7, &CViewLampControl::OnNMReleasedcaptureSlider7) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_8, &CViewLampControl::OnNMReleasedcaptureSlider8) ON_WM_DESTROY() ON_EN_CHANGE(IDC_EDIT_LAMP_VALUE_1, &CViewLampControl::OnChangeEditLampValue1) ON_EN_CHANGE(IDC_EDIT_LAMP_VALUE_2, &CViewLampControl::OnChangeEditLampValue2) ON_EN_CHANGE(IDC_EDIT_LAMP_VALUE_3, &CViewLampControl::OnChangeEditLampValue3) ON_EN_CHANGE(IDC_EDIT_LAMP_VALUE_4, &CViewLampControl::OnChangeEditLampValue4) ON_EN_CHANGE(IDC_EDIT_LAMP_VALUE_5, &CViewLampControl::OnChangeEditLampValue5) ON_EN_CHANGE(IDC_EDIT_LAMP_VALUE_6, &CViewLampControl::OnChangeEditLampValue6) ON_EN_CHANGE(IDC_EDIT_LAMP_VALUE_7, &CViewLampControl::OnChangeEditLampValue7) ON_EN_CHANGE(IDC_EDIT_LAMP_VALUE_8, &CViewLampControl::OnChangeEditLampValue8) ON_WM_SHOWWINDOW() ON_WM_TIMER() END_MESSAGE_MAP() BEGIN_EVENTSINK_MAP(CViewLampControl, CDialogEx) ON_EVENT(CViewLampControl, IDC_CHECK_LAMP_ONOFF, DISPID_CLICK, CViewLampControl::ClickChkLampOnOffButton, VTS_NONE) ON_EVENT(CViewLampControl, IDC_BTN_LAMP_CLOSE, DISPID_CLICK, CViewLampControl::ClickChkCloseButton, VTS_NONE) END_EVENTSINK_MAP() BOOL CViewLampControl::OnInitDialog() { CDialog::OnInitDialog(); int i; for(i=0;i<8;i++) { m_ctrSlider[i].SetRange(0,255); } return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } void CViewLampControl::ClickChkLampOnOffButton() { SetButtonOnOffEnable(FALSE); m_Check_OnOff = m_ctrlCmdOnOff[eRcp_OnOff_Use].GetValue(); SetButtonOnOffEnable(TRUE); if(m_Check_OnOff == FALSE) { LampAllOFF(); m_ctrlCmdOnOff[eRcp_OnOff_Use].SetCaption(_T("Lamp Off")); } else { LampAllON(); m_ctrlCmdOnOff[eRcp_OnOff_Use].SetCaption(_T("Lamp On")); } } void CViewLampControl::ClickChkCloseButton() { UpdateData(TRUE); int index; CLIGHT_PARM *pLightPrm = &m_pRecipe->m_LightParm; int iCon,iCh; for(index=0;index<8;index++) { GetControl2ID(nIDLampVal[index],iCon,iCh); if(iCon < 0 || iCh < 0) continue; pLightPrm->m_nContValue[iCon][iCh] = m_nLampValue[index]; } LampAllON(); OnOK(); } void CViewLampControl::SetButtonOnOffEnable(const BOOL& bEnable) { int i; for (i = 0; i < eRcp_OnOff_End; i++) { if (m_ctrlCmdOnOff[i].GetEnabled() != bEnable) { m_ctrlCmdOnOff[i].SetEnabled(bEnable); } } } void CViewLampControl::GetControl2ID(UINT nID,int &iCon,int &iCh) { iCon = iCh = -1; if(m_pHardware == NULL) return; DimensionDir emDim = DIMENSION_NONE; BOOL bCox = TRUE; switch(nID) { case IDC_EDIT_LAMP_VALUE_1: // A/B Top Cox emDim = DIMENSION_A; bCox = TRUE; break; case IDC_EDIT_LAMP_VALUE_2: // A/B Top Back emDim = DIMENSION_A; bCox = FALSE; break; case IDC_EDIT_LAMP_VALUE_3: emDim = DIMENSION_A_DN; bCox = TRUE; break; case IDC_EDIT_LAMP_VALUE_4: emDim = DIMENSION_A_DN; bCox = FALSE; break; case IDC_EDIT_LAMP_VALUE_5: emDim = DIMENSION_C; bCox = TRUE; break; case IDC_EDIT_LAMP_VALUE_6: emDim = DIMENSION_C; bCox = FALSE; break; case IDC_EDIT_LAMP_VALUE_7: emDim = DIMENSION_C_DN; bCox = TRUE; break; case IDC_EDIT_LAMP_VALUE_8: emDim = DIMENSION_C_DN; bCox = FALSE; break; } if(emDim == DIMENSION_NONE) return; int nCameraCount = m_pHardware->GetCameraCount(); int nScanCount = m_pHardware->GetScanCount(); CCameraSettings* pCamSetting = NULL; for(int nCamIdx=0; nCamIdxGetCameraSettings(nCamIdx, nScanIdx); if(pCamSetting == NULL) continue; if(pCamSetting->m_eDimension == emDim) { if(bCox == TRUE) { iCon = pCamSetting->m_nLightIdx_R; iCh = pCamSetting->m_nLightIdx_R_Ch; } else { iCon = pCamSetting->m_nLightIdx_T; iCh = pCamSetting->m_nLightIdx_T_Ch; } } } } return; } void CViewLampControl::SetData(CGlassRecipe *pRecipe,CHardwareSettings *pHard) { m_pRecipe = pRecipe; m_pHardware = pHard; if(m_pHardware != NULL) { int nLineID = _ttoi(m_pHardware->GetLineID()); if(nLineID >= 5) { ((CWnd*)GetDlgItem(IDC_STATIC_LAMP_MAX_VALUE))->SetWindowText(L"255"); } else { ((CWnd*)GetDlgItem(IDC_STATIC_LAMP_MAX_VALUE))->SetWindowText(L"1024"); } } CLIGHT_PARM *pLightPrm = &m_pRecipe->m_LightParm; CString strTemp; int iCon,iCh,index; for(index=0;index<8;index++) { GetControl2ID(nIDLampVal[index],iCon,iCh); if(iCon < 0 || iCh < 0) continue; m_nLampValue[index] = pLightPrm->m_nContValue[iCon][iCh]; m_ctrSlider[index].SetPos(m_nLampValue[index]); } m_ctrlCmdOnOff[eRcp_OnOff_Use].SetValue(m_Check_OnOff); if(m_Check_OnOff == TRUE) m_ctrlCmdOnOff[eRcp_OnOff_Use].SetCaption(_T("Lamp Off")); UpdateData(FALSE); } void CViewLampControl::LampValueUpdate(int nIndex,int ID) { if(m_pHardware == NULL) return; int nPos = m_ctrSlider[nIndex].GetPos(); m_nLampValue[nIndex] = nPos; int iCon; int iCh; GetControl2ID(ID,iCon,iCh); if(m_pIV2P != NULL) { m_pIV2P->MLight_SetLightControlValue(iCon,iCh,nPos,TRUE); if(m_pRecipe != NULL) { if(0 <= iCon && iCon < LIGHT_CONTROL_COUNT && 0 <= iCh && iCh < LIGHT_CONTROL_CH_COUNT) { CLIGHT_PARM* pLightParam = &m_pRecipe->m_LightParm; pLightParam->m_nContValue[iCon][iCh] = nPos; //m_nLampValue[index]; } } } Sleep(10); UpdateData(FALSE); } void CViewLampControl::OnNMCustomdrawSlider1(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW pNMCD = reinterpret_cast(pNMHDR); LampValueUpdate(0,IDC_EDIT_LAMP_VALUE_1); *pResult = 0; } void CViewLampControl::OnNMCustomdrawSlider2(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW pNMCD = reinterpret_cast(pNMHDR); // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. LampValueUpdate(1,IDC_EDIT_LAMP_VALUE_2); *pResult = 0; } void CViewLampControl::OnNMCustomdrawSlider3(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW pNMCD = reinterpret_cast(pNMHDR); // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. LampValueUpdate(2,IDC_EDIT_LAMP_VALUE_3); *pResult = 0; } void CViewLampControl::OnNMCustomdrawSlider4(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW pNMCD = reinterpret_cast(pNMHDR); LampValueUpdate(3,IDC_EDIT_LAMP_VALUE_4); *pResult = 0; } void CViewLampControl::OnNMCustomdrawSlider5(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW pNMCD = reinterpret_cast(pNMHDR); LampValueUpdate(4,IDC_EDIT_LAMP_VALUE_5); *pResult = 0; } void CViewLampControl::OnNMCustomdrawSlider6(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW pNMCD = reinterpret_cast(pNMHDR); LampValueUpdate(5,IDC_EDIT_LAMP_VALUE_6); *pResult = 0; } void CViewLampControl::OnNMCustomdrawSlider7(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW pNMCD = reinterpret_cast(pNMHDR); LampValueUpdate(6,IDC_EDIT_LAMP_VALUE_7); *pResult = 0; } void CViewLampControl::OnNMCustomdrawSlider8(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW pNMCD = reinterpret_cast(pNMHDR); LampValueUpdate(7,IDC_EDIT_LAMP_VALUE_8); *pResult = 0; } void CViewLampControl::OnNMReleasedcaptureSlider1(NMHDR *pNMHDR, LRESULT *pResult) { //SetLampMode(LAMP_MODE_REQ_CMD, 0); *pResult = 0; } void CViewLampControl::OnNMReleasedcaptureSlider2(NMHDR *pNMHDR, LRESULT *pResult) { //SetLampMode(LAMP_MODE_REQ_CMD, 1); *pResult = 0; } void CViewLampControl::OnNMReleasedcaptureSlider3(NMHDR *pNMHDR, LRESULT *pResult) { //SetLampMode(LAMP_MODE_REQ_CMD, 2); *pResult = 0; } void CViewLampControl::OnNMReleasedcaptureSlider4(NMHDR *pNMHDR, LRESULT *pResult) { //SetLampMode(LAMP_MODE_REQ_CMD, 3); *pResult = 0; } void CViewLampControl::OnNMReleasedcaptureSlider5(NMHDR *pNMHDR, LRESULT *pResult) { //SetLampMode(LAMP_MODE_REQ_CMD, 4); *pResult = 0; } void CViewLampControl::OnNMReleasedcaptureSlider6(NMHDR *pNMHDR, LRESULT *pResult) { //SetLampMode(LAMP_MODE_REQ_CMD, 5); *pResult = 0; } void CViewLampControl::OnNMReleasedcaptureSlider7(NMHDR *pNMHDR, LRESULT *pResult) { //SetLampMode(LAMP_MODE_REQ_CMD, 6); *pResult = 0; } void CViewLampControl::OnNMReleasedcaptureSlider8(NMHDR *pNMHDR, LRESULT *pResult) { //SetLampMode(LAMP_MODE_REQ_CMD, 7); *pResult = 0; } void CViewLampControl::SendLampControl(int nIndex) { CString str; int nValue; nValue = int(m_nLampValue[nIndex]/100.0 * LAMP_MAX_VALUE); } void CViewLampControl::OnDestroy() { CDialog::OnDestroy(); } void CViewLampControl::OnChangeEditLampValue1(){}// SendLampControl(0);} void CViewLampControl::OnChangeEditLampValue2(){}// SendLampControl(1);} void CViewLampControl::OnChangeEditLampValue3(){}// SendLampControl(2);} void CViewLampControl::OnChangeEditLampValue4(){}// SendLampControl(3);} void CViewLampControl::OnChangeEditLampValue5(){}// SendLampControl(4);} void CViewLampControl::OnChangeEditLampValue6(){}// SendLampControl(5);} void CViewLampControl::OnChangeEditLampValue7(){}// SendLampControl(6);} void CViewLampControl::OnChangeEditLampValue8(){}// SendLampControl(7);} void CViewLampControl::OnShowWindow(BOOL bShow, UINT nStatus) { CDialog::OnShowWindow(bShow, nStatus); if(bShow == TRUE) { ClickChkLampOnOffButton(); for(int i=0;i<8;i++) { LampValueUpdate(i,nIDLampVal[i]); } } } void CViewLampControl::LampAllON() { for(int i=0; i<8; i++) { int iCon = i/LIGHT_CONTROL_CH_COUNT; int iCh = i%LIGHT_CONTROL_CH_COUNT; if(m_pIV2P != NULL) { m_pIV2P->MLight_OnOff(iCon,iCh,TRUE); } Sleep(10); } } void CViewLampControl::LampAllOFF() { for(int i=0; i<8; i++) { int iCon = i/LIGHT_CONTROL_CH_COUNT; int iCh = i%LIGHT_CONTROL_CH_COUNT; if(m_pIV2P != NULL) { m_pIV2P->MLight_OnOff(iCon,iCh,FALSE); } Sleep(10); } } void CViewLampControl::EnableLampSlider(const bool bEnable) { if(bEnable == false) { for(BYTE idx = 0; idx < 8; idx++) { m_ctrSlider[idx].EnableWindow(FALSE); } } else { for(BYTE idx = 0; idx < 8; idx++) { m_ctrSlider[idx].EnableWindow(TRUE); } } } void CViewLampControl::OnTimer(UINT_PTR nIDEvent) { CDialog::OnTimer(nIDEvent); }