📄 netctlmalarmdlg.cpp
字号:
// 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 + -