⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netctlpalarmdlg.cpp

📁 TM8000硬盘录像机客户端编程文档和Demo源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// NetCtlPAlarmDlg.cpp : implementation file
//


#include "stdafx.h"
#include "Sample.h"

#include "NetRemoteCtrlDlg.h"
#include <shlwapi.h>


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern CNetRemoteCtrlDlg	  *pNetRemoteCtlDlg;
extern USER_DVR_PARAMETER     *Con_pDVRPara; 
extern BOOL ENGLISH;
extern LoginParam             m_LoginParam; 
ProbeAlarmParam				  m_ProbeAlarmParam;
extern    TM8100_NET_NODE  *pNetNodeHead ;

//----------------------------------
/////////////////////////////////////////////////////////////////////////////
// CNetCtlPAlarmDlg dialog


CNetCtlPAlarmDlg::CNetCtlPAlarmDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CNetCtlPAlarmDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CNetCtlPAlarmDlg)
	m_AllProbeInput = FALSE;
	m_ProbeInput = 0;
	m_ProbeRec = FALSE;
	m_ProbeInput1 = FALSE;
	m_ProbeInput2 = FALSE;
	m_ProbeInput3 = FALSE;
	m_ProbeInput4 = FALSE;
//	m_ProbeInput5 = FALSE;
//	m_ProbeInput6 = FALSE;
//	m_ProbeInput7 = FALSE;
//	m_ProbeInput8 = FALSE;
	m_ProbeTime =0;
	m_ContactRec = FALSE;
	m_BgnTime1 = 0;
	m_EndTime1 = 0;
	m_BgnTime2 = 0;
	m_EndTime2 = 0;
	m_Preset = _T("");
//	m_AllDay = FALSE;
	//}}AFX_DATA_INIT
}


void CNetCtlPAlarmDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CNetCtlPAlarmDlg)
	DDX_Control(pDX, IDC_EDIT_PRESET, m_cPreset);
	DDX_Control(pDX, IDC_LIST_RECPORT, m_LstRecPort);
	DDX_Control(pDX, IDC_RREC_PROBEALARM2_ENDTIME, m_cEndTime2);
	DDX_Control(pDX, IDC_RREC_PROBEALARM2_BGNTIME, m_cBgnTime2);
	DDX_Control(pDX, IDC_RREC_PROBEALARM1_ENDTIME, m_cEndTime1);
	DDX_Control(pDX, IDC_RREC_PROBEALARM1_BGNTIME, m_cBgnTime1);
	DDX_Control(pDX, IDC_RPROBEALARM_TIME, m_cProbeTime);
	DDX_Control(pDX, IDC_RPROBEALARM_INPUT, m_alarminput);
	DDX_Control(pDX, IDC_WEEK_TAB, m_weekTab);
	DDX_Check(pDX, IDC_RPROBEALARM_ALLINPUT, m_AllProbeInput);
	DDX_CBIndex(pDX, IDC_RPROBEALARM_INPUT, m_ProbeInput);
	DDX_Check(pDX, IDC_CHK_PROBEREC, m_ProbeRec);
	DDX_Check(pDX, IDC_RPROBEALARM_OUTPUT1, m_ProbeInput1);
	DDX_Check(pDX, IDC_RPROBEALARM_OUTPUT2, m_ProbeInput2);
	DDX_Check(pDX, IDC_RPROBEALARM_OUTPUT3, m_ProbeInput3);
	DDX_Check(pDX, IDC_RPROBEALARM_OUTPUT4, m_ProbeInput4);
//	DDX_Check(pDX, IDC_RPROBEALARM_OUTPUT5, m_ProbeInput5);
//	DDX_Check(pDX, IDC_RPROBEALARM_OUTPUT6, m_ProbeInput6);
//	DDX_Check(pDX, IDC_RPROBEALARM_OUTPUT7, m_ProbeInput7);
// 	DDX_Check(pDX, IDC_RPROBEALARM_OUTPUT8, m_ProbeInput8);
	DDX_Text(pDX, IDC_RPROBEALARM_TIME, m_ProbeTime);
	DDX_Check(pDX, IDC_CONTACT_REC, m_ContactRec);
	DDX_DateTimeCtrl(pDX, IDC_RREC_PROBEALARM1_BGNTIME, m_BgnTime1);
	DDX_DateTimeCtrl(pDX, IDC_RREC_PROBEALARM1_ENDTIME, m_EndTime1);
	DDX_DateTimeCtrl(pDX, IDC_RREC_PROBEALARM2_BGNTIME, m_BgnTime2);
	DDX_DateTimeCtrl(pDX, IDC_RREC_PROBEALARM2_ENDTIME, m_EndTime2);
	DDX_Text(pDX, IDC_EDIT_PRESET, m_Preset);
	//DDX_Check(pDX, IDC_CHK_ALLDAY, m_AllDay);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CNetCtlPAlarmDlg, CDialog)
	//{{AFX_MSG_MAP(CNetCtlPAlarmDlg)
	ON_BN_CLICKED(IDC_SET_BUTTON, OnSetButton)
	ON_NOTIFY(UDN_DELTAPOS, IDC_RPROBEALARM_TIME_SPIN, OnDeltaposRprobealarmTimeSpin)
	ON_NOTIFY(TCN_SELCHANGE, IDC_WEEK_TAB, OnSelchangeWeekTab)
	ON_CBN_SELCHANGE(IDC_RPROBEALARM_INPUT, OnSelchangeRprobealarmInput)
	ON_BN_CLICKED(IDC_BTN_MODIFY, OnBtnModify)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_RECPORT, OnItemchangedListRecport)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNetCtlPAlarmDlg message handlers


BOOL CNetCtlPAlarmDlg::OnInitDialog() 
{
	char * l_Mon;//=_T("Mon.");
	char * l_Tue;//=_T("Tue.");
	char * l_Wed;//=_T("Wed.");
	char * l_Thu;//=_T("Thu.");
	char * l_Fri;//=_T("Fri.");
	char * l_Sat;//=_T("Sat.");
	char * l_Sun;//=_T("Sun.");
	char * l_Input;//=_T("Input");
	char * l_AllInput;//=_T("All input");
	char * l_Set;//=_T("Setup");
	char * l_Everyday;//=_T("Everyday");
	char * l_Port;//=_T("Camera");
	char * l_Output;//=_T("Output");
	char * l_probetime2;//=_T("Time zone 2:");
	char * l_probetime1;//=_T("Time zone 1:");
	char * l_calarm;//=_T("Triggering output:");
	char * l_correspond;//=_T("Recording camera:");
	char * l_ContactRecord;//=_T("Contact record");
	char * l_PresetPort;//=_T("Preset");
	char * l_UseProbe;
	char * l_probealarmRecTime;
	char * l_Modify;
	if(ENGLISH)
	{
		l_Mon=_T("Mon.");
		l_Tue=_T("Tue.");
		l_Wed=_T("Wed.");
		l_Thu=_T("Thu.");
		l_Fri=_T("Fri.");
		l_Sat=_T("Sat.");
		l_Sun=_T("Sun.");
		l_Input=_T("Input");
		l_AllInput=_T("All input");
		l_Set=_T("Setup");
		l_Everyday=_T("Everyday");
		l_Port=_T("Channel");
		l_Output=_T("Output");
		l_probetime2=_T("Time zone 2:");
		l_probetime1=_T("Time zone 1:");
		l_calarm=_T("Triggering output:");
		l_correspond=_T("Recording channel:");
		l_ContactRecord=_T("Contact record");
		l_PresetPort=_T("Preset");
		l_UseProbe=_T("Enable Probe Alarm");
		l_probealarmRecTime=_T("Contact alarm time(minute):");
		l_Modify=_T("Modify");
	}
	else
	{
		l_Mon=_T("星期一");
		l_Tue=_T("星期二");
		l_Wed=_T("星期三");
		l_Thu=_T("星期四");
		l_Fri=_T("星期五");
		l_Sat=_T("星期六");
		l_Sun=_T("星期天");
		l_Input=_T("输入");
		l_AllInput=_T("所有输入");
		l_Set=_T("设置");
		l_Everyday=_T("每天");
		l_Port=_T("通道");
		l_Output=_T("输出");
		l_probetime2=_T("探头报警布防时间段二:");
		l_probetime1=_T("探头报警布防时间段一:");
		l_calarm=_T("联动报警输出:");
		l_correspond=_T("联动录像通道:");
		l_ContactRecord=_T("探头报警录像");
		l_PresetPort=_T("预置位置");
		l_UseProbe=_T("启用探头布防");
		l_probealarmRecTime=_T("探头报警录像时间(分钟):");
		l_Modify=_T("修改");
	}
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	
	int			i;
	LVCOLUMN	lvcol;
	CString		str;

	m_weekTab.InsertItem(0, l_Mon, 0) ;
	m_weekTab.InsertItem(1, l_Tue, 1) ;
	m_weekTab.InsertItem(2, l_Wed, 2) ;
	m_weekTab.InsertItem(3, l_Thu, 3) ;
	m_weekTab.InsertItem(4, l_Fri, 4) ;
	m_weekTab.InsertItem(5, l_Sat, 5) ;
	m_weekTab.InsertItem(6, l_Sun, 6) ;
	m_weekTab.InsertItem(7, l_Everyday,7);
    m_weekTab.SetCurSel(0);

	m_alarminput.ResetContent() ;
	for (i=0;i<8;i++)
	{
		str.Format("%s%02d",l_Input,i+1) ;
		m_alarminput.AddString(str) ;
	}
    m_alarminput.SetCurSel(0);

	lvcol.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;
	lvcol.fmt=LVCFMT_CENTER;//居中
	i=0;
	lvcol.pszText=l_correspond;//.GetBuffer (l_Add_Dvr_Name.GetLength ());
	lvcol.iSubItem=i;
	lvcol.cx=150;
	m_LstRecPort.InsertColumn(i++,&lvcol);
	
	lvcol.pszText=l_PresetPort;//.GetBuffer (l_Add_Dvr_Ip.GetLength ());
	lvcol.iSubItem=i;
	lvcol.cx=100;
	m_LstRecPort.InsertColumn(i++,&lvcol);

	m_LstRecPort.SetExtendedStyle(m_LstRecPort.GetExtendedStyle()|LVS_EX_CHECKBOXES|LVS_EX_FULLROWSELECT);

	CTime time(2002,10,16,8,30,0,0);
	m_BgnTime1=time;
	
	CTime time1(2002,10,16,12,0,0,0);
	m_EndTime1=time1;
	
	CTime time2(2002,10,16,13,30,0,0);
	m_BgnTime2=time2;
	
	CTime time3(2002,10,16,18,0,0,0);
	m_EndTime2=time3;
	UpdateData(FALSE);
	m_cBgnTime1.SetFormat("HH:mm");
	m_cEndTime1.SetFormat("HH:mm");
	m_cBgnTime2.SetFormat("HH:mm");
	m_cEndTime2.SetFormat("HH:mm");
	

	//if(ENGLISH)
		m_cPreset.SetLimitText(4);
	//else
	//	m_cPreset.SetLimitText(2);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

int CNetCtlPAlarmDlg::CheckPreset(CString sVal)
{
	int nVal;
	char * l_None;
	//if(ENGLISH)
	//{
	//	l_None=_T("None");
	//}
	//else
	//{
		l_None=_T("无");
	//}
	if(sVal.Compare(l_None)==0||sVal=="")
		return 0xFF;
	else
	{
		nVal=atoi(sVal);
		if(nVal>99||nVal<0)
			return -1;
		else
			return nVal;
	}
}

void CNetCtlPAlarmDlg::OnSetButton() 
{
	char * l_Input_059;//=_T("Please Input a integer between 0 and 59");
	char * l_Input_0255;
	char * l_Input_099;//=_T("Please Input a integer between 0 and 99");
	char * l_SelectContactRecordTime;//=_T("Please select contact alarm record time!");
	char * l_SelectContactInput;//=_T("Please select contact alarm input!");
	char * l_BgnGTEnd;
	
	l_Input_059=_T("请输入一个0到59之间的整数");
	l_Input_0255=_T("请输入一个0到255之间的整数");
	l_Input_099=_T("请输入一个0到99之间的整数");
	l_SelectContactRecordTime=_T("请选择探头报警录像设置时间!");
	l_SelectContactInput=_T("请选择探头报警输入!");
	l_BgnGTEnd=_T("开始时间大于结束时间!");
	
	unsigned char  nInput, nWeek, nProbeOutput;
	unsigned char  nProbePreset[16];
	unsigned short nRecPort;
	CString sVal;

	UpdateData(TRUE) ;	
	
	if(m_ProbeTime<0||m_ProbeTime>255)
	{
		AfxMessageBox(l_Input_0255);
		GetDlgItem(IDC_RPROBEALARM_TIME)->SetFocus();
		return;
	}
	for(int i=0;i<m_LstRecPort.GetItemCount();i++)
	{
		sVal=m_LstRecPort.GetItemText(i,1);
		nProbePreset[i]=CheckPreset(sVal);
		if(nProbePreset[i]==-1)
		{
			AfxMessageBox(l_Input_099);
			m_LstRecPort.SetFocus();
			return;
		}
	}	

	int   nCurTab ;
	nCurTab = m_weekTab.GetCurSel() ;
	if (nCurTab < 0)
	{
		AfxMessageBox(l_SelectContactRecordTime, IDOK, NULL) ;//_T("请选择探头报警录像设置时间!")
		return ;
	}
	if(m_BgnTime1>m_EndTime1)
	{
		AfxMessageBox(l_BgnGTEnd);
		GetDlgItem(IDC_RREC_PROBEALARM1_BGNTIME)->SetFocus();
		return;
	}
	if(m_BgnTime2>m_EndTime2)
	{
		AfxMessageBox(l_BgnGTEnd);
		GetDlgItem(IDC_RREC_PROBEALARM2_BGNTIME)->SetFocus();
		return;
	}
	nWeek = nCurTab ;
	if (m_AllProbeInput)  /*设置所有端口,端口号为0*/
	{
		nInput = 0 ;
	}
	else
	{
		if (m_ProbeInput < 0)
		{
			AfxMessageBox(l_SelectContactInput, IDOK, NULL) ;//_T("请选择探头报警输入!")
			return ;
		}
		nInput = m_ProbeInput+1 ;
	}
	
	nRecPort = 0 ;
	for(i=0;i<m_LstRecPort.GetItemCount();i++)
	{
		if(ListView_GetCheckState(m_LstRecPort.m_hWnd,i))
			nRecPort |= (1<<i);
	}
	
	nProbeOutput = 0 ;
	if (m_ProbeInput1)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -