// 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; nCamIdx<nCameraCount; nCamIdx++)
|
{
|
for(int nScanIdx = 0; nScanIdx<nScanCount; nScanIdx++)
|
{
|
pCamSetting = m_pHardware->GetCameraSettings(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<LPNMCUSTOMDRAW>(pNMHDR);
|
|
LampValueUpdate(0,IDC_EDIT_LAMP_VALUE_1);
|
*pResult = 0;
|
}
|
|
|
|
void CViewLampControl::OnNMCustomdrawSlider2(NMHDR *pNMHDR, LRESULT *pResult)
|
{
|
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
|
// TODO: 咯扁俊 牧飘费 舅覆 贸府扁 内靛甫 眠啊钦聪促.
|
|
LampValueUpdate(1,IDC_EDIT_LAMP_VALUE_2);
|
*pResult = 0;
|
}
|
|
void CViewLampControl::OnNMCustomdrawSlider3(NMHDR *pNMHDR, LRESULT *pResult)
|
{
|
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
|
// TODO: 咯扁俊 牧飘费 舅覆 贸府扁 内靛甫 眠啊钦聪促.
|
|
LampValueUpdate(2,IDC_EDIT_LAMP_VALUE_3);
|
|
|
*pResult = 0;
|
}
|
|
void CViewLampControl::OnNMCustomdrawSlider4(NMHDR *pNMHDR, LRESULT *pResult)
|
{
|
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
|
|
|
LampValueUpdate(3,IDC_EDIT_LAMP_VALUE_4);
|
|
*pResult = 0;
|
}
|
|
void CViewLampControl::OnNMCustomdrawSlider5(NMHDR *pNMHDR, LRESULT *pResult)
|
{
|
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
|
|
|
LampValueUpdate(4,IDC_EDIT_LAMP_VALUE_5);
|
|
*pResult = 0;
|
}
|
|
void CViewLampControl::OnNMCustomdrawSlider6(NMHDR *pNMHDR, LRESULT *pResult)
|
{
|
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
|
|
|
LampValueUpdate(5,IDC_EDIT_LAMP_VALUE_6);
|
|
*pResult = 0;
|
}
|
void CViewLampControl::OnNMCustomdrawSlider7(NMHDR *pNMHDR, LRESULT *pResult)
|
{
|
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
|
|
|
LampValueUpdate(6,IDC_EDIT_LAMP_VALUE_7);
|
|
*pResult = 0;
|
}
|
|
void CViewLampControl::OnNMCustomdrawSlider8(NMHDR *pNMHDR, LRESULT *pResult)
|
{
|
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(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);
|
}
|