📄 alarmctrldlg.cpp
字号:
// AlarmCtrlDlg.cpp : implementation file
//
#include "stdafx.h"
#include "netsdkdemo.h"
#include "AlarmCtrlDlg.h"
#include "NetSDKDemoDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAlarmCtrlDlg dialog
CAlarmCtrlDlg::CAlarmCtrlDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAlarmCtrlDlg::IDD, pParent)
{
m_DeviceId = 0;
m_inNum = 0;
m_outNum = 0;
//{{AFX_DATA_INIT(CAlarmCtrlDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CAlarmCtrlDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAlarmCtrlDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAlarmCtrlDlg, CDialog)
//{{AFX_MSG_MAP(CAlarmCtrlDlg)
ON_BN_CLICKED(IDC_SAVE_IO, OnSaveIo)
ON_BN_CLICKED(IDC_CANCEL, OnCancel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAlarmCtrlDlg message handlers
void CAlarmCtrlDlg::SetDeviceId(LONG nDeviceId)
{
m_DeviceId = nDeviceId;
}
void CAlarmCtrlDlg::OnSaveIo()
{
int i;
BOOL nRet = FALSE;
if(m_DeviceId)
{
for(i = 0; i < m_inNum; i++)
{
if(((CButton *)GetDlgItem(IDC_CTRLIN1 + i))->GetCheck())
{
m_inState[i].state = 1;
}
else
{
m_inState[i].state = 0;
}
}
if(m_inNum)
{
nRet = CLIENT_IOControl(m_DeviceId, ALARMINPUT, m_inState, sizeof(ALARM_CONTROL) *m_inNum );
if (!nRet)
{
((CNetSDKDemoDlg *)GetParent())->LastError();//Zhengdh 06.11.24
}
}
if(!nRet)
{
MessageBox(MSG_ERROR_IOCTRL_IN);
return;
}
for(int i = 0; i < m_outNum; i++)
{
if(((CButton *)GetDlgItem(IDC_CTRLOUT1 + i))->GetCheck())
{
m_outState[i].state = 1;
}
else
{
m_outState[i].state = 0;
}
}
if(m_outNum)
{
nRet = CLIENT_IOControl(m_DeviceId, ALARMOUTPUT, m_outState, sizeof(ALARM_CONTROL) *m_outNum );
if (!nRet)
{
((CNetSDKDemoDlg *)GetParent())->LastError();//Zhengdh 06.11.24
}
}
if(!nRet)
{
MessageBox(MSG_ERROR_IOCTRL_OUT);
return;
}
}
CDialog::OnOK();
// TODO: Add your control notification handler code here
}
void CAlarmCtrlDlg::OnCancel()
{
// TODO: Add your control notification handler code here
CDialog::OnCancel();
}
BOOL CAlarmCtrlDlg::OnInitDialog()
{
g_SetWndStaticText(this);
BOOL nRet;
int i, j;
WORD nState;
CDialog::OnInitDialog();
if(m_DeviceId)
{
nRet = CLIENT_QueryIOControlState(m_DeviceId,ALARMINPUT,NULL,0,&m_inNum);
if(nRet)
{
if(m_inNum > MAX_IO_NUM)
{
MessageBox(MSG_ERROR_ALARMCHL_OVERMAX);
goto e_close;
}
nRet = CLIENT_QueryIOControlState(m_DeviceId,ALARMINPUT,m_inState,sizeof(ALARM_CONTROL)*m_inNum,&m_inNum);
if (!nRet)
{
((CNetSDKDemoDlg *)GetParent())->LastError();//Zhengdh 06.11.24
}
}
if(!nRet || !m_inNum)
{
MessageBox(MSG_ERROR_ALARM_STATUS);
goto e_close;
}
if(m_inNum > MAX_IO_NUM)
{
m_inNum = MAX_IO_NUM;
}
for(i = 0; i < m_inNum; i++)
{
nState = m_inState[i].state;
if(nState)
{
((CButton *)GetDlgItem(IDC_CTRLIN1 + i))->SetCheck(1);
}
else
{
((CButton *)GetDlgItem(IDC_CTRLIN1 + i))->SetCheck(0);
}
}
for(j = m_inNum; j < MAX_IO_NUM; j++)
{
((CButton *)GetDlgItem(IDC_CTRLIN1 + j))->EnableWindow(false);
}
//输出
nRet = CLIENT_QueryIOControlState(m_DeviceId,ALARMOUTPUT,NULL,0,&m_outNum);
if(nRet)
{
if(m_outNum > MAX_IO_NUM)
{
MessageBox(MSG_ERROR_ALARMCHL_OVERMAX);
goto e_close;
}
nRet = CLIENT_QueryIOControlState(m_DeviceId,ALARMOUTPUT,m_outState,sizeof(ALARM_CONTROL)*m_outNum,&m_outNum);
if (!nRet)
{
((CNetSDKDemoDlg *)GetParent())->LastError();//Zhengdh 06.11.24
}
}
if(!nRet || !m_outNum)
{
MessageBox(MSG_ERROR_ALARM_STATUS);
goto e_close;
}
if(m_outNum > MAX_IO_NUM)
{
m_outNum = MAX_IO_NUM;
}
for(i = 0; i < m_outNum; i++)
{
nState = m_outState[i].state;
if(nState)
{
((CButton *)GetDlgItem(IDC_CTRLOUT1 + i))->SetCheck(1);
}
else
{
((CButton *)GetDlgItem(IDC_CTRLOUT1 + i))->SetCheck(0);
}
}
for(j = m_outNum; j < MAX_IO_NUM; j++)
{
((CButton *)GetDlgItem(IDC_CTRLOUT1 + j))->EnableWindow(false);
}
}
return TRUE;
e_close:
((CButton *)GetDlgItem(IDC_SAVE_IO))->EnableWindow(FALSE);
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -