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

📄 netctlmalarmdlg.cpp

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

#include "stdafx.h"
#include "Sample.h"
#include "NetCtlMAlarmDlg.h"
#include "NetRemoteCtrlDlg.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 LoginParam             m_LoginParam; 
MotionAlarmPamam              m_MotionAlarmPamam;
extern    TM8100_NET_NODE  *pNetNodeHead ;
 
extern BOOL DVRParaChange;
extern int ENGLISH;
//------------------------------------------
/////////////////////////////////////////////////////////////////////////////
// CNetCtlMAlarmDlg dialog


CNetCtlMAlarmDlg::CNetCtlMAlarmDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CNetCtlMAlarmDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CNetCtlMAlarmDlg)
	m_AllPort = FALSE;
	m_MotionRec = FALSE;
	m_BgnTime1 = 0;
	m_EndTime1 = 0;
	m_BgnTime2 = 0;
	m_EndTime2 = 0;
	m_Smart = 0;
	m_RecTime = 0;
	m_RecPort1 = FALSE;
	m_RecPort2 = FALSE;
	m_RecPort3 = FALSE;
	m_RecPort4 = FALSE;
	m_RecPort5 = FALSE;
	m_RecPort6 = FALSE;
	m_RecPort7 = FALSE;
	m_RecPort8 = FALSE;

	m_RecPort9 = FALSE;
	m_RecPort10 = FALSE;
	m_RecPort11 = FALSE;
	m_RecPort12 = FALSE;
	m_RecPort13 = FALSE;
	m_RecPort14 = FALSE;
	m_RecPort15 = FALSE;
	m_RecPort16 = FALSE;

	//}}AFX_DATA_INIT
	pParent = NULL ;
}


void CNetCtlMAlarmDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CNetCtlMAlarmDlg)
	DDX_Control(pDX, IDC_RREC_MOTIONSMART_EDIT, m_cSmart);
	DDX_Control(pDX, IDC_RREC_MOTIONALARM1_BGNTIME, m_cBgnTime1);
	DDX_Control(pDX, IDC_RREC_MOTIONALARM1_ENDTIME, m_cEndTime1);
	DDX_Control(pDX, IDC_RREC_MOTIONALARM2_BGNTIME, m_cBgnTime2);
	DDX_Control(pDX, IDC_RREC_MOTIONALARM2_ENDTIME, m_cEndTime2);
	DDX_Control(pDX, IDC_RREC_MOTIONTIME_EDIT, m_cRecTime);
	DDX_Control(pDX, IDC_PORT_COMBO, m_PortCombo);
	DDX_Control(pDX, IDC_WEEK_TAB, m_weekTab);
	DDX_Check(pDX, IDC_ALLPORT_CHECK, m_AllPort);
	DDX_Check(pDX, IDC_CHK_MOTIONREC, m_MotionRec);
	DDX_Check(pDX, IDC_CHK_OUTPUT1,m_Output1);
	DDX_Check(pDX, IDC_CHK_OUTPUT2,m_Output2);
	DDX_Check(pDX, IDC_CHK_OUTPUT3,m_Output3);
	DDX_Check(pDX, IDC_CHK_OUTPUT4,m_Output4);

	DDX_DateTimeCtrl(pDX, IDC_RREC_MOTIONALARM1_BGNTIME, m_BgnTime1);
	DDX_DateTimeCtrl(pDX, IDC_RREC_MOTIONALARM1_ENDTIME, m_EndTime1);
	DDX_DateTimeCtrl(pDX, IDC_RREC_MOTIONALARM2_BGNTIME, m_BgnTime2);
	DDX_DateTimeCtrl(pDX, IDC_RREC_MOTIONALARM2_ENDTIME, m_EndTime2);
	DDX_Text(pDX, IDC_RREC_MOTIONSMART_EDIT, m_Smart);
	DDX_Text(pDX, IDC_RREC_MOTIONTIME_EDIT, m_RecTime);
	DDX_Check(pDX, IDC_CHK_RECPORT1, m_RecPort1);
	DDX_Check(pDX, IDC_CHK_RECPORT2, m_RecPort2);
	DDX_Check(pDX, IDC_CHK_RECPORT3, m_RecPort3);
	DDX_Check(pDX, IDC_CHK_RECPORT4, m_RecPort4);
	DDX_Check(pDX, IDC_CHK_RECPORT5, m_RecPort5);
	DDX_Check(pDX, IDC_CHK_RECPORT6, m_RecPort6);
	DDX_Check(pDX, IDC_CHK_RECPORT7, m_RecPort7);
	DDX_Check(pDX, IDC_CHK_RECPORT8, m_RecPort8);
	
    DDX_Check(pDX, IDC_CHK_RECPORT9, m_RecPort9);
	DDX_Check(pDX, IDC_CHK_RECPORT10, m_RecPort10);
	DDX_Check(pDX, IDC_CHK_RECPORT11, m_RecPort11);
	DDX_Check(pDX, IDC_CHK_RECPORT12, m_RecPort12);
	DDX_Check(pDX, IDC_CHK_RECPORT13, m_RecPort13);
	DDX_Check(pDX, IDC_CHK_RECPORT14, m_RecPort14);
	DDX_Check(pDX, IDC_CHK_RECPORT15, m_RecPort15);
	DDX_Check(pDX, IDC_CHK_RECPORT16, m_RecPort16);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CNetCtlMAlarmDlg, CDialog)
	//{{AFX_MSG_MAP(CNetCtlMAlarmDlg)
	ON_BN_CLICKED(IDC_SET_BUTTON, OnSetButton)
	ON_NOTIFY(UDN_DELTAPOS, IDC_RREC_MOTIONTIME_SPIN, OnDeltaposRrecMotiontimeSpin)
	ON_NOTIFY(UDN_DELTAPOS, IDC_RREC_MOTIONSMART_SPIN, OnDeltaposRrecMotionsmartSpin)
	ON_NOTIFY(TCN_SELCHANGE, IDC_WEEK_TAB, OnSelchangeWeekTab)
	ON_CBN_SELCHANGE(IDC_PORT_COMBO, OnSelchangePortCombo)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNetCtlMAlarmDlg message handlers


BOOL CNetCtlMAlarmDlg::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_Set;//=_T("Setup");
		char * l_Port;//=_T("Camera");
		char * l_AllPort;//=_T("All camera");
		char * l_Everyday;//=_T("Everyday");
		char * l_Sensitivity;//=_T("Sensitivity(1-99):");
		char * l_Time1;//=_T("Time zone 1:");
		char * l_Time2;//=_T("Time zone 2:");
		char * l_VideoMotion;//=_T("Video motion region setup:");
		char * l_Calarm;
		char * l_Output;
		char * l_Usemotion;
		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_Set=_T("Setup");
			l_Port=_T("Channel");
			l_AllPort=_T("All channel");
			l_Everyday=_T("Everyday");
			l_Sensitivity=_T("Sensitivity(1-99):");
			l_Time1=_T("Time zone 1:");
			l_Time2=_T("Time zone 2:");
			l_VideoMotion=_T("Video motion region setup:");
			l_Calarm=_T("Triggering output:");
			l_Output=_T("Output");
			l_Usemotion=_T("Enable motion alarm");
		}
		else
		{
			l_Mon=_T("星期一");
			l_Tue=_T("星期二");
			l_Wed=_T("星期三");
			l_Thu=_T("星期四");
			l_Fri=_T("星期五");
			l_Sat=_T("星期六");
			l_Sun=_T("星期天");
			l_Set=_T("设置");
			l_AllPort=_T("所有通道");
			l_Everyday=_T("每天");
			l_Sensitivity=_T("检测灵敏度(1-99):");
			l_Time1=_T("布防时间段一:");
			l_Time2=_T("布防时间段二:");
			l_VideoMotion=_T("视频移动报警区域:");
			l_Port=_T("通道");
			l_Calarm=_T("联动报警输出");
			l_Output=_T("输出");
			l_Usemotion=_T("启用移动布防");
		}
	CString   str ;
	CDialog::OnInitDialog();
	
/*	m_PortCombo.ResetContent() ;

	if (pNetRemoteCtlDlg->m_nDVRType <= 0) 
	{
		for (int i=0;i<Con_pDVRPara->nPortNo ;i++)
		{
			str.Format("%s%02d",l_Port,i+1) ;
			m_PortCombo.AddString(str) ;
		}
		m_PortCombo.SetCurSel(0);
	}
	else
	{
		for (int i=0;i<m_LoginParam.ChannelCount;i++)
		{
			str.Format("%s%02d",l_Port,i+1) ;
			m_PortCombo.AddString(str) ;
		}
		m_PortCombo.SetCurSel(0);
	}
*/
	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);

	CWnd           *pWnd ;
	pWnd = GetDlgItem(IDC_ALLPORT_CHECK) ;
	pWnd->SetWindowText(l_AllPort);
	pWnd = GetDlgItem(IDC_SET_BUTTON) ;
	pWnd->SetWindowText(l_Set);
	pWnd = GetDlgItem(IDC_CHK_MOTIONREC) ;
	pWnd->SetWindowText(l_Usemotion);

	pWnd=GetDlgItem(IDC_STATICSENSITIVITY);
	pWnd->SetWindowText(l_Sensitivity);

	pWnd=GetDlgItem(IDC_STATICTIME1);
	pWnd->SetWindowText(l_Time1);

	pWnd=GetDlgItem(IDC_STATICTIME2);
	pWnd->SetWindowText(l_Time2);

	pWnd=GetDlgItem(IDC_STATICVIDEOMOTION);
	pWnd->SetWindowText(l_VideoMotion);

	pWnd=GetDlgItem(IDC_STATIC_OUTPUT);
	pWnd->SetWindowText(l_Calarm);

	str.Format("%s%d",l_Output,1);
	pWnd=GetDlgItem(IDC_CHK_OUTPUT1);
	pWnd->SetWindowText(str);
	
	str.Format("%s%d",l_Output,2);
	pWnd=GetDlgItem(IDC_CHK_OUTPUT2);
	pWnd->SetWindowText(str);

	str.Format("%s%d",l_Output,3);
	pWnd=GetDlgItem(IDC_CHK_OUTPUT3);
	pWnd->SetWindowText(str);

	str.Format("%s%d",l_Output,4);
	pWnd=GetDlgItem(IDC_CHK_OUTPUT4);
	pWnd->SetWindowText(str);
	
	UpdateData(FALSE) ;
    h_MIcon=AfxGetApp()->LoadIcon(IDI_MOTION);
    h_MaskIcon=AfxGetApp()->LoadIcon(IDI_MASK);

	m_cBgnTime1.SetFormat("HH:mm");
	m_cEndTime1.SetFormat("HH:mm");
	m_cBgnTime2.SetFormat("HH:mm");
	m_cEndTime2.SetFormat("HH:mm");

	m_cSmart.SetLimitText(2);
	int ID[16]={IDC_CHK_RECPORT1,IDC_CHK_RECPORT2,IDC_CHK_RECPORT3,IDC_CHK_RECPORT4,
		IDC_CHK_RECPORT5,IDC_CHK_RECPORT6,IDC_CHK_RECPORT7,IDC_CHK_RECPORT8,
		IDC_CHK_RECPORT9,IDC_CHK_RECPORT10,IDC_CHK_RECPORT11,IDC_CHK_RECPORT12,
		IDC_CHK_RECPORT13,IDC_CHK_RECPORT14,IDC_CHK_RECPORT15,IDC_CHK_RECPORT16};
	for(int i=0;i<16;i++)
	   GetDlgItem(ID[i])->ShowWindow(SW_HIDE);	

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


void CNetCtlMAlarmDlg::OnSetButton() 
{
	char * l_SelectPort;//=_T("Please select scheduled record camera!");
	char * l_SelectScheduleDay;//=_T("Please select scheduled record day!");
	char * l_Input_0159;//=_T("Please Input a integer between 1 and 59");
	char * l_Input_01255;
	char * l_Input_0199;//=_T("Please Input a integer between 1 and 99");
	char * l_BgnGTEnd;
	if(ENGLISH)
	{
		l_SelectPort=_T("Please select scheduled record channel!");
		l_SelectScheduleDay=_T("Please select scheduled record day!");
		l_Input_0159=_T("Please Input a integer between 1 and 59");
		l_Input_01255=_T("Please Input a integer between 1 and 255");
		l_Input_0199=_T("Please Input a integer between 1 and 99");
		l_BgnGTEnd=_T("Begin time is greater than end time!");
	}
	else
	{
		l_SelectPort=_T("请选择定时录像通道!");
		l_SelectScheduleDay=_T("请选择定时录像星期!");
		l_Input_0159=_T("请输入一个1到59之间的整数");
		l_Input_01255=_T("请输入一个1到255之间的整数");
		l_Input_0199=_T("请输入一个1到99之间的整数");
		l_BgnGTEnd=_T("开始时间大于结束时间!");
	}
	unsigned char  nPort, nWeek, nMotionAlarmOut;
	unsigned short nMotionRecPort;
	UpdateData(TRUE) ;
	DVRParaChange=true;

	if (m_AllPort) 
		nPort = 0 ;
	else 
	{
		int    i ;
		i = m_PortCombo.GetCurSel() ;
		if (i < 0)
		{
			AfxMessageBox(l_SelectPort,IDOK,NULL);//_T("请选择定时录像端口!")
			return ;
		}
		nPort = i+1 ;
	}

	if (pNetRemoteCtlDlg->m_nDVRType <= 0) 
	{
		if(m_RecTime<1||m_RecTime>255)
		{
			AfxMessageBox(l_Input_01255);
			GetDlgItem(IDC_RREC_MOTIONTIME_EDIT)->SetFocus();
			return;
		}		
	}
	else
	{
		if(m_RecTime<1||m_RecTime>255)
		{
			AfxMessageBox(l_Input_01255);
			GetDlgItem(IDC_RREC_MOTIONTIME_EDIT)->SetFocus();
			return;
		}
	}
	if(m_Smart<1||m_Smart>99)
	{
		AfxMessageBox(l_Input_0199);
		GetDlgItem(IDC_RREC_MOTIONSMART_EDIT)->SetFocus();
		return;
	}

	int   nCurTab ;
	nCurTab = m_weekTab.GetCurSel() ;
	if (nCurTab < 0)
	{
		AfxMessageBox(l_SelectScheduleDay, IDOK, NULL) ;//_T("请选择定时录像星期!")
		return ;
	}
	if(m_BgnTime1>m_EndTime1)
	{
		AfxMessageBox(l_BgnGTEnd);
		GetDlgItem(IDC_RREC_MOTIONALARM1_BGNTIME)->SetFocus();
		return;
	}
	if(m_BgnTime2>m_EndTime2)
	{
		AfxMessageBox(l_BgnGTEnd);
		GetDlgItem(IDC_RREC_MOTIONALARM2_BGNTIME)->SetFocus();
		return;
	}
	nWeek = nCurTab ;
	nMotionAlarmOut=0;
	if(m_Output1)
		nMotionAlarmOut |= 1;
	if(m_Output2)
		nMotionAlarmOut |= 1<<1;
	if(m_Output3)
		nMotionAlarmOut |= 1<<2;
	if(m_Output4)
		nMotionAlarmOut |= 1<<3;

	nMotionRecPort=0;
	if(m_RecPort1)
		nMotionRecPort |= 1;
	if(m_RecPort2)
		nMotionRecPort |= 1<<1;
	if(m_RecPort3)
		nMotionRecPort |= 1<<2;
	if(m_RecPort4)
		nMotionRecPort |= 1<<3;
	if(m_RecPort5)
		nMotionRecPort |= 1<<4;
	if(m_RecPort6)
		nMotionRecPort |= 1<<5;
	if(m_RecPort7)
		nMotionRecPort |= 1<<6;
	if(m_RecPort8)
		nMotionRecPort |= 1<<7;

	if(m_RecPort9)
		nMotionRecPort |= 1<<8;
	if(m_RecPort10)
		nMotionRecPort |= 1<<9;
	if(m_RecPort11)
		nMotionRecPort |= 1<<10;
	if(m_RecPort12)
		nMotionRecPort |= 1<<11;
	if(m_RecPort13)
		nMotionRecPort |= 1<<12;
	if(m_RecPort14)
		nMotionRecPort |= 1<<13;
	if(m_RecPort15)
		nMotionRecPort |= 1<<14;
	if(m_RecPort16)
		nMotionRecPort |= 1<<15;

	if(m_MotionRec)
	{
		if(nWeek==7)
		{
			nSelDay=1<<7;
		}
		else
		{
			nSelDay &= 0x7f;  //去除每天标志
			nSelDay |= 1<<nWeek;
		}
	}
	else
	{
		if(nWeek==7)
		{
			nSelDay &= 0x7f;
		}
		else
		{
			nSelDay &= (~(1<<nWeek));
		}
	}
	if(nWeek==7)
		nWeek=0;
	else
		nWeek++;
	int ss =sizeof(unsigned short);
	if (pNetRemoteCtlDlg->m_nDVRType <= 0) 
	{
		pNetRemoteCtlDlg->SetNetRemoteMAlarmRecSet(nPort, nWeek, m_BgnTime1, m_EndTime1, m_BgnTime2, m_EndTime2, m_Smart, m_RecTime,nMotionAlarmOut,nSelDay,nMotionRecPort) ;
	}
	else
	{
		pNetRemoteCtlDlg->SetNetRemoteMAlarmRecSet(nPort, nWeek, m_BgnTime1, m_EndTime1, m_BgnTime2, m_EndTime2, m_Smart, m_RecTime,nMotionAlarmOut,nSelDay,nMotionRecPort) ;
	}
//-------------------------
   if(Con_pDVRPara!=NULL)
   {
      short k;
      if(nPort!=0)
	  {
	      Con_pDVRPara->PortConfig[nPort-1].nMotionCheckSensitivity=m_Smart;

		  Con_pDVRPara->PortConfig[nPort-1].nMotionAlarmTime=m_RecTime;
		  Con_pDVRPara->PortConfigEx[nPort-1].AlarmRecDefendDayTag=nSelDay;
		  Con_pDVRPara->PortConfigEx[nPort-1].MotionAlarmOutTag = nMotionAlarmOut;
		  if(nWeek!=0)
		  {
			  Con_pDVRPara->PortConfig[nPort-1].tAlarmRecTable1[nWeek-1].nBgnHour=m_BgnTime1.GetHour();
			  Con_pDVRPara->PortConfig[nPort-1].tAlarmRecTable1[nWeek-1].nBgnMinute=m_BgnTime1.GetMinute();
			  Con_pDVRPara->PortConfig[nPort-1].tAlarmRecTable1[nWeek-1].nEndHour=m_EndTime1.GetHour();
			  Con_pDVRPara->PortConfig[nPort-1].tAlarmRecTable1[nWeek-1].nEndMinute=m_EndTime1.GetMinute();
			  Con_pDVRPara->PortConfig[nPort-1].tAlarmRecTable2[nWeek-1].nBgnHour=m_BgnTime2.GetHour();
			  Con_pDVRPara->PortConfig[nPort-1].tAlarmRecTable2[nWeek-1].nBgnMinute=m_BgnTime2.GetMinute();
			  Con_pDVRPara->PortConfig[nPort-1].tAlarmRecTable2[nWeek-1].nEndHour=m_EndTime2.GetHour();
			  Con_pDVRPara->PortConfig[nPort-1].tAlarmRecTable2[nWeek-1].nEndMinute=m_EndTime2.GetMinute();
		  }
		  else
		  {
			  Con_pDVRPara->PortConfigEx[nPort-1].tAlarmRecEveryday1.nBgnHour=m_BgnTime1.GetHour();
			  Con_pDVRPara->PortConfigEx[nPort-1].tAlarmRecEveryday1.nBgnMinute=m_BgnTime1.GetMinute();
			  Con_pDVRPara->PortConfigEx[nPort-1].tAlarmRecEveryday1.nEndHour=m_EndTime1.GetHour();
			  Con_pDVRPara->PortConfigEx[nPort-1].tAlarmRecEveryday1.nEndMinute=m_EndTime1.GetMinute();
			  Con_pDVRPara->PortConfigEx[nPort-1].tAlarmRecEveryday2.nBgnHour=m_BgnTime2.GetHour();
			  Con_pDVRPara->PortConfigEx[nPort-1].tAlarmRecEveryday2.nBgnMinute=m_BgnTime2.GetMinute();
			  Con_pDVRPara->PortConfigEx[nPort-1].tAlarmRecEveryday2.nEndHour=m_EndTime2.GetHour();
			  Con_pDVRPara->PortConfigEx[nPort-1].tAlarmRecEveryday2.nEndMinute=m_EndTime2.GetMinute();
		  }

	  }//if(nPort!=0)
	  else
      {
		  for(k=0;k<Con_pDVRPara->nPortNo;k++)
		  {
	         Con_pDVRPara->PortConfig[k].nMotionCheckSensitivity=m_Smart;

			 Con_pDVRPara->PortConfig[k].nMotionAlarmTime=m_RecTime;
			 Con_pDVRPara->PortConfigEx[k].AlarmRecDefendDayTag=nSelDay;
			 Con_pDVRPara->PortConfigEx[k].MotionAlarmOutTag = nMotionAlarmOut;
             
			 if(nWeek!=0)
			 {
			    Con_pDVRPara->PortConfig[k].tAlarmRecTable1[nWeek-1].nBgnHour=m_BgnTime1.GetHour();
			    Con_pDVRPara->PortConfig[k].tAlarmRecTable1[nWeek-1].nBgnMinute=m_BgnTime1.GetMinute();

⌨️ 快捷键说明

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