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