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

📄 setclientrecordplan.cpp

📁 SDK DVR/DVS HIKVISION
💻 CPP
字号:
// SetClientRecordPlan.cpp : implementation file
//

#include "stdafx.h"
#include "newclient.h"
#include "SetClientRecordPlan.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSetClientRecordPlan dialog
extern	CLIENTPARAM	ClientParam;

CSetClientRecordPlan::CSetClientRecordPlan(CWnd* pParent /*=NULL*/)
	: CDialog(CSetClientRecordPlan::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSetClientRecordPlan)
	m_iHour11 = 0;
	m_iHour12 = 0;
	m_iHour21 = 0;
	m_iHour22 = 0;
	m_iHour31 = 0;
	m_iHour32 = 0;
	m_iHour41 = 0;
	m_iHour42 = 0;
	m_iMinute11 = 0;
	m_iMinute12 = 0;
	m_iMinute21 = 0;
	m_iMinute22 = 0;
	m_iMinute31 = 0;
	m_iMinute32 = 0;
	m_iMinute41 = 0;
	m_iMinute42 = 0;
	//}}AFX_DATA_INIT
}


void CSetClientRecordPlan::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSetClientRecordPlan)
	DDX_Control(pDX, IDC_COPYWEEKDAY, m_CopyDateCtrl);
	DDX_Control(pDX, IDC_COMBOWEEKDAY, m_DateCtrl);
	DDX_Text(pDX, IDC_EDITHOUR011, m_iHour11);
	DDX_Text(pDX, IDC_EDITHOUR012, m_iHour12);
	DDX_Text(pDX, IDC_EDITHOUR021, m_iHour21);
	DDX_Text(pDX, IDC_EDITHOUR022, m_iHour22);
	DDX_Text(pDX, IDC_EDITHOUR031, m_iHour31);
	DDX_Text(pDX, IDC_EDITHOUR032, m_iHour32);
	DDX_Text(pDX, IDC_EDITHOUR041, m_iHour41);
	DDX_Text(pDX, IDC_EDITHOUR042, m_iHour42);
	DDX_Text(pDX, IDC_EDITMIN011, m_iMinute11);
	DDX_Text(pDX, IDC_EDITMIN012, m_iMinute12);
	DDX_Text(pDX, IDC_EDITMIN021, m_iMinute21);
	DDX_Text(pDX, IDC_EDITMIN022, m_iMinute22);
	DDX_Text(pDX, IDC_EDITMIN031, m_iMinute31);
	DDX_Text(pDX, IDC_EDITMIN032, m_iMinute32);
	DDX_Text(pDX, IDC_EDITMIN041, m_iMinute41);
	DDX_Text(pDX, IDC_EDITMIN042, m_iMinute42);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSetClientRecordPlan, CDialog)
	//{{AFX_MSG_MAP(CSetClientRecordPlan)
	ON_BN_CLICKED(IDC_BUTRECCOPY, OnButreccopy)
	ON_CBN_SELCHANGE(IDC_COMBOWEEKDAY, OnSelchangeComboweekday)
	ON_BN_CLICKED(IDLOCALRECOK, OnLocalrecok)
	ON_BN_CLICKED(IDEXIT, OnExit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSetClientRecordPlan message handlers
BOOL CSetClientRecordPlan::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CTime ct = CTime::GetCurrentTime();

	int DayOfWeek = ct.GetDayOfWeek() - 1;
	m_DateCtrl.SetCurSel(DayOfWeek);
	m_CopyDateCtrl.SetCurSel(7);
	m_bChanged = FALSE;
	m_iHour11 = ClientParam.m_ClientRecordTime[DayOfWeek][0].m_iStartHour;
	m_iMinute11 = ClientParam.m_ClientRecordTime[DayOfWeek][0].m_iStartMinute;
	m_iHour12 = ClientParam.m_ClientRecordTime[DayOfWeek][0].m_iStopHour;
	m_iMinute12 = ClientParam.m_ClientRecordTime[DayOfWeek][0].m_iStopMinute;
	
	m_iHour21 = ClientParam.m_ClientRecordTime[DayOfWeek][1].m_iStartHour;
	m_iMinute21 = ClientParam.m_ClientRecordTime[DayOfWeek][1].m_iStartMinute;
	m_iHour22 = ClientParam.m_ClientRecordTime[DayOfWeek][1].m_iStopHour;
	m_iMinute22 = ClientParam.m_ClientRecordTime[DayOfWeek][1].m_iStopMinute;
	
	m_iHour31 = ClientParam.m_ClientRecordTime[DayOfWeek][2].m_iStartHour;
	m_iMinute31 = ClientParam.m_ClientRecordTime[DayOfWeek][2].m_iStartMinute;
	m_iHour32 = ClientParam.m_ClientRecordTime[DayOfWeek][2].m_iStopHour;
	m_iMinute32 = ClientParam.m_ClientRecordTime[DayOfWeek][2].m_iStopMinute;
	
	m_iHour41 = ClientParam.m_ClientRecordTime[DayOfWeek][3].m_iStartHour;
	m_iMinute41 = ClientParam.m_ClientRecordTime[DayOfWeek][3].m_iStartMinute;
	m_iHour42 = ClientParam.m_ClientRecordTime[DayOfWeek][3].m_iStopHour;
	m_iMinute42 = ClientParam.m_ClientRecordTime[DayOfWeek][3].m_iStopMinute;
	UpdateData(FALSE);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CSetClientRecordPlan::OnButreccopy() 
{
	// TODO: Add your control notification handler code here
	int iCurdate, iCopydate, i, j;
	
	UpdateData(TRUE);
	iCurdate = m_DateCtrl.GetCurSel();
	iCopydate = m_CopyDateCtrl.GetCurSel();
	
	if( (iCopydate < 0) || (iCopydate >= m_CopyDateCtrl.GetCount()) )
		return;
	if(iCopydate == iCurdate)
		return;
	if(iCopydate == 7)
	{
		for(i = 0; i < 7; i++)
		{
			if(i == iCurdate)
				continue;
			for(j = 0; j < 4; j++)
			{
				ClientParam.m_ClientRecordTime[i][j].m_iStartHour = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartHour;
				ClientParam.m_ClientRecordTime[i][j].m_iStartMinute = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartMinute;
				ClientParam.m_ClientRecordTime[i][j].m_iStartTime = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartTime;
				ClientParam.m_ClientRecordTime[i][j].m_iStopHour = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopHour;
				ClientParam.m_ClientRecordTime[i][j].m_iStopMinute = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopMinute;
				ClientParam.m_ClientRecordTime[i][j].m_iStopTime = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopTime;
			}
		}
	}
	else
	{
		for(j = 0; j < 4; j++)
		{
			ClientParam.m_ClientRecordTime[iCopydate][j].m_iStartHour = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartHour;
			ClientParam.m_ClientRecordTime[iCopydate][j].m_iStartMinute = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartMinute;
			ClientParam.m_ClientRecordTime[iCopydate][j].m_iStartTime = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartTime;
			ClientParam.m_ClientRecordTime[iCopydate][j].m_iStopHour = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopHour;
			ClientParam.m_ClientRecordTime[iCopydate][j].m_iStopMinute = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopMinute;
			ClientParam.m_ClientRecordTime[iCopydate][j].m_iStopTime = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopTime;
		}
	}	
}

void CSetClientRecordPlan::OnSelchangeComboweekday() 
{
	// TODO: Add your control notification handler code here
	int i;
	
	i = m_DateCtrl.GetCurSel();
	if( (i < 0) || (i >= m_DateCtrl.GetCount()) )
		return;
	m_iHour11 = ClientParam.m_ClientRecordTime[i][0].m_iStartHour;
	m_iMinute11 = ClientParam.m_ClientRecordTime[i][0].m_iStartMinute;
	m_iHour12 = ClientParam.m_ClientRecordTime[i][0].m_iStopHour;
	m_iMinute12 = ClientParam.m_ClientRecordTime[i][0].m_iStopMinute;
	
	m_iHour21 = ClientParam.m_ClientRecordTime[i][1].m_iStartHour;
	m_iMinute21 = ClientParam.m_ClientRecordTime[i][1].m_iStartMinute;
	m_iHour22 = ClientParam.m_ClientRecordTime[i][1].m_iStopHour;
	m_iMinute22 = ClientParam.m_ClientRecordTime[i][1].m_iStopMinute;
	
	m_iHour31 = ClientParam.m_ClientRecordTime[i][2].m_iStartHour;
	m_iMinute31 = ClientParam.m_ClientRecordTime[i][2].m_iStartMinute;
	m_iHour32 = ClientParam.m_ClientRecordTime[i][2].m_iStopHour;
	m_iMinute32 = ClientParam.m_ClientRecordTime[i][2].m_iStopMinute;
	
	m_iHour41 = ClientParam.m_ClientRecordTime[i][3].m_iStartHour;
	m_iMinute41 = ClientParam.m_ClientRecordTime[i][3].m_iStartMinute;
	m_iHour42 = ClientParam.m_ClientRecordTime[i][3].m_iStopHour;
	m_iMinute42 = ClientParam.m_ClientRecordTime[i][3].m_iStopMinute;
	UpdateData(FALSE);
}

void CSetClientRecordPlan::OnLocalrecok() 
{
	// TODO: Add your control notification handler code here
	int i, j;
	
	UpdateData(TRUE);	
	i = m_DateCtrl.GetCurSel();
	if( (i < 0) || (i > 6) )
		return;
	
	if( (m_iHour11 < 0) || (m_iHour12 < 0) || (m_iHour21 < 0) || (m_iHour22 < 0) ||		\
		(m_iHour31 < 0) || (m_iHour32 < 0) || (m_iHour41 < 0) || (m_iHour42 < 0) )
	{
		AfxMessageBox("Hour range is 0 -- 24!");
		return;
	}
	if( (m_iMinute11 < 0) || (m_iMinute11 > 60) || (m_iMinute12 < 0) || (m_iMinute12 > 60) ||		\
		(m_iMinute21 < 0) || (m_iMinute21 > 60) || (m_iMinute22 < 0) || (m_iMinute22 > 60) ||		\
		(m_iMinute31 < 0) || (m_iMinute31 > 60) || (m_iMinute32 < 0) || (m_iMinute32 > 60) ||		\
		(m_iMinute41 < 0) || (m_iMinute41 > 60) || (m_iMinute42 < 0) || (m_iMinute42 > 60) )
	{
		AfxMessageBox("Minute range is 0 -- 60!");
		return;
	}
	ClientParam.m_ClientRecordTime[i][0].m_iStartHour = m_iHour11;
	ClientParam.m_ClientRecordTime[i][0].m_iStartMinute = m_iMinute11;
	ClientParam.m_ClientRecordTime[i][0].m_iStopHour = m_iHour12;
	ClientParam.m_ClientRecordTime[i][0].m_iStopMinute = m_iMinute12;
	ClientParam.m_ClientRecordTime[i][0].m_iStartTime = m_iHour11 * 100 + m_iMinute11;
	ClientParam.m_ClientRecordTime[i][0].m_iStopTime = m_iHour12 * 100 + m_iMinute12;
	
	ClientParam.m_ClientRecordTime[i][1].m_iStartHour = m_iHour21;
	ClientParam.m_ClientRecordTime[i][1].m_iStartMinute = m_iMinute21;
	ClientParam.m_ClientRecordTime[i][1].m_iStopHour = m_iHour22;
	ClientParam.m_ClientRecordTime[i][1].m_iStopMinute = m_iMinute22;
	ClientParam.m_ClientRecordTime[i][1].m_iStartTime = m_iHour21 * 100 + m_iMinute21;
	ClientParam.m_ClientRecordTime[i][1].m_iStopTime = m_iHour22 * 100 + m_iMinute22;
	
	ClientParam.m_ClientRecordTime[i][2].m_iStartHour = m_iHour31;
	ClientParam.m_ClientRecordTime[i][2].m_iStartMinute = m_iMinute31;
	ClientParam.m_ClientRecordTime[i][2].m_iStopHour = m_iHour32;
	ClientParam.m_ClientRecordTime[i][2].m_iStopMinute = m_iMinute32;
	ClientParam.m_ClientRecordTime[i][2].m_iStartTime = m_iHour31 * 100 + m_iMinute31;
	ClientParam.m_ClientRecordTime[i][2].m_iStopTime = m_iHour32 * 100 + m_iMinute32;
	
	ClientParam.m_ClientRecordTime[i][3].m_iStartHour = m_iHour41;
	ClientParam.m_ClientRecordTime[i][3].m_iStartMinute = m_iMinute41;
	ClientParam.m_ClientRecordTime[i][3].m_iStopHour = m_iHour42;
	ClientParam.m_ClientRecordTime[i][3].m_iStopMinute = m_iMinute42;
	ClientParam.m_ClientRecordTime[i][3].m_iStartTime = m_iHour41 * 100 + m_iMinute41;
	ClientParam.m_ClientRecordTime[i][3].m_iStopTime = m_iHour42 * 100 + m_iMinute42;
	
	TRACE("m_ClientRecordTime[%d][0] section1:%ld ----- %ld", i, ClientParam.m_ClientRecordTime[i][0].m_iStartTime, ClientParam.m_ClientRecordTime[i][0].m_iStopTime);
	TRACE("m_ClientRecordTime[%d][1] section2:%ld ----- %ld", i, ClientParam.m_ClientRecordTime[i][1].m_iStartTime, ClientParam.m_ClientRecordTime[i][1].m_iStopTime);
	TRACE("m_ClientRecordTime[%d][2] section3:%ld ----- %ld", i, ClientParam.m_ClientRecordTime[i][2].m_iStartTime, ClientParam.m_ClientRecordTime[i][2].m_iStopTime);
	TRACE("m_ClientRecordTime[%d][3] section4:%ld ----- %ld", i, ClientParam.m_ClientRecordTime[i][3].m_iStartTime, ClientParam.m_ClientRecordTime[i][3].m_iStopTime);
	
	for(j = 0; j < 4; j++)
	{
		if( (ClientParam.m_ClientRecordTime[i][j].m_iStartTime >= 2400) || (ClientParam.m_ClientRecordTime[i][j].m_iStopTime > 2400) )
		{
			AfxMessageBox("Record time must not exceed 24:00!");
			return;
		}
		if(ClientParam.m_ClientRecordTime[i][j].m_iStartTime > ClientParam.m_ClientRecordTime[i][j].m_iStopTime)
		{
			AfxMessageBox("Start time must be less than end time!");
			return;
		}
		for(int k = j+1; k < 4; k++)
		{
			if(	((ClientParam.m_ClientRecordTime[i][j].m_iStartTime > ClientParam.m_ClientRecordTime[i][k].m_iStartTime) &&
				(ClientParam.m_ClientRecordTime[i][j].m_iStartTime < ClientParam.m_ClientRecordTime[i][k].m_iStopTime))
				||	((ClientParam.m_ClientRecordTime[i][j].m_iStopTime > ClientParam.m_ClientRecordTime[i][k].m_iStartTime) &&
				(ClientParam.m_ClientRecordTime[i][j].m_iStopTime < ClientParam.m_ClientRecordTime[i][k].m_iStopTime))	)
			{
				AfxMessageBox("Record time must not repeat!");
				return;
			}
		}
		
	}
	m_bChanged = TRUE;
	(CButton *)GetDlgItem(IDC_BUTRECCOPY)->EnableWindow(TRUE);	
}

void CSetClientRecordPlan::OnExit() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
}

void CSetClientRecordPlan::OnCancel() 
{
	// TODO: Add extra cleanup here
	
//	CDialog::OnCancel();
}

void CSetClientRecordPlan::OnOK() 
{
	// TODO: Add extra cleanup here
	
	//	CDialog::OnOK();
}

⌨️ 快捷键说明

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