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

📄 netctlrecdlg.cpp

📁 TM8000硬盘录像机客户端编程文档和Demo源代码
💻 CPP
字号:
// NetCtlRecDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Sample.h"
#include "NetCtlRecDlg.h"
#include "NetRemoteCtrlDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//--------------------------------
extern USER_DVR_PARAMETER     *Con_pDVRPara; 
extern CNetRemoteCtrlDlg	  *pNetRemoteCtlDlg;

extern BOOL    DVRParaChange;
extern BOOL		ENGLISH;
//------------------
extern LoginParam             m_LoginParam;
RecParam       m_RecParam;
extern Terminal       m_Terminal;
/////////////////////////////////////////////////////////////////////////////
// CNetCtlRecDlg dialog


CNetCtlRecDlg::CNetCtlRecDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CNetCtlRecDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CNetCtlRecDlg)
	m_AllPort = FALSE;
	m_Contact_Record = FALSE;
	m_Motion_Record = FALSE;
	m_Sch_Record = FALSE;
	m_iCameraAddr = 0;
	//}}AFX_DATA_INIT
	pParent = NULL ;
}


void CNetCtlRecDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CNetCtlRecDlg)
	DDX_Control(pDX, IDC_COMBO_CAMERA_BAUDRATE, m_ConCameraBaudrate);
	DDX_Control(pDX, IDC_MOTION_CHECK, m_cMotion_Record);
	DDX_Control(pDX, IDC_SCHEDULE_CHECK, m_cSch_Record);
	DDX_Control(pDX, IDC_PORT_COMBO, m_PortCombo);
	DDX_Check(pDX, IDC_ALLPORT_CHECK, m_AllPort);
	DDX_Check(pDX, IDC_MOTION_CHECK, m_Motion_Record);
	DDX_Check(pDX, IDC_SCHEDULE_CHECK, m_Sch_Record);
	DDX_Text(pDX, IDC_EDIT_CAMERA_ADDR, m_iCameraAddr);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CNetCtlRecDlg, CDialog)
	//{{AFX_MSG_MAP(CNetCtlRecDlg)
	ON_BN_CLICKED(IDC_SET_BUTTON, OnSetButton)
	ON_CBN_SELCHANGE(IDC_PORT_COMBO, OnSelchangePortCombo)
	ON_WM_CLOSE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNetCtlRecDlg message handlers


BOOL CNetCtlRecDlg::OnInitDialog() 
{
	char * l_Set;
	char * l_Port;
	char * l_Record;
	char * l_AllPort;
	char * l_MotionRecord;
	char * l_SchRecord;
	char * l_ManualRecord;
	if(ENGLISH)
	{
		l_Set=_T("Setup");
		l_Port=_T("Channel");
		l_Record=_T("Record");
		l_AllPort=_T("All channel");
		l_MotionRecord=_T("Motion record ");
		l_SchRecord=_T("Schedule record");
		l_ManualRecord=_T("Manual record");
	}
	else
	{
		l_Set=_T("设置");
		l_Port=_T("通道");
		l_Record=_T("录像");
		l_AllPort=_T("所有通道");
		
		l_MotionRecord=_T("视频移动报警录像 ");
		l_SchRecord=_T("定时录像");
		l_ManualRecord=_T("手动录像");
	}
	
	CDialog::OnInitDialog();
	
	CString    str ;

	m_AllPort = FALSE ;
/*	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);
	}
*/
	CWnd           *pWnd ;
	pWnd = GetDlgItem(IDC_ALLPORT_CHECK) ;
	pWnd->SetWindowText(l_AllPort);
	pWnd = GetDlgItem(IDC_SET_BUTTON) ;
	pWnd->SetWindowText(l_Set);
	pWnd = GetDlgItem(IDC_MOTION_CHECK) ;
	pWnd->SetWindowText(l_MotionRecord);
	pWnd = GetDlgItem(IDC_SCHEDULE_CHECK) ;
	pWnd->SetWindowText(l_SchRecord);

	UpdateData(FALSE) ;
	
	return TRUE ;
}

void CNetCtlRecDlg::OnSetButton() 
{
	char *  l_SelectRecordPort;
	if(ENGLISH)
		l_SelectRecordPort=_T("Please select record channel!");
	else
		l_SelectRecordPort=_T("请选择录像通道!");
    BYTE portno;	
	UpdateData(TRUE) ;
    DVRParaChange=TRUE;
	if (pNetRemoteCtlDlg->m_nDVRType <= 0) 
	{
		if (m_AllPort)
		{
			int num = m_ConCameraBaudrate.GetCurSel();
			pNetRemoteCtlDlg->SetCameraPara(0,num,m_iCameraAddr);
			pNetRemoteCtlDlg->SetNetRemoteRec(0, (unsigned char)m_Sch_Record,(unsigned char)m_Motion_Record,(unsigned char)m_Contact_Record,(unsigned char)m_Record) ;
			portno=0;
		}
		else
		{
			int    i ;
			i = m_PortCombo.GetCurSel() ;
			if (i < 0)
				AfxMessageBox(l_SelectRecordPort, IDOK, NULL) ;//T("请选择录像端口!")
			else
			{
				int num = m_ConCameraBaudrate.GetCurSel();
				pNetRemoteCtlDlg->SetCameraPara(i+1,num,m_iCameraAddr);
				pNetRemoteCtlDlg->SetNetRemoteRec(i+1, m_Sch_Record,m_Motion_Record,m_Contact_Record,(unsigned char)m_Record);
				portno=i+1;
			}
		}

		if(portno!=0)
		{
			Con_pDVRPara->PortConfig[portno-1].nRecordSchedulePortStatus=m_Sch_Record;
			Con_pDVRPara->PortConfig[portno-1].nRecordAlarmPortStatus=m_Motion_Record;
//#ifdef USE_YWTSTRUCT 
			int num = m_ConCameraBaudrate.GetCurSel();
			Con_pDVRPara->PortConfigEx[portno-1].nCameraBaudRate = num;
			CEdit*pedit =(CEdit*)GetDlgItem(IDC_EDIT_CAMERA_ADDR);
			CString str;
			pedit->GetWindowText(str);
			int iTemp = atoi(str.GetBuffer(0));
			Con_pDVRPara->PortConfigEx[portno-1].nCameraAddr = iTemp;
//#endif
		}
		else
		{
			int num = m_ConCameraBaudrate.GetCurSel();
			CEdit*pedit =(CEdit*)GetDlgItem(IDC_EDIT_CAMERA_ADDR);
			CString str;
			pedit->GetWindowText(str);
			int iTemp = atoi(str.GetBuffer(0));
			for(short j=0;j<Con_pDVRPara->nPortNo;j++)
			{
				Con_pDVRPara->PortConfig[j].nRecordSchedulePortStatus=m_Sch_Record;
				Con_pDVRPara->PortConfig[j].nRecordAlarmPortStatus=m_Motion_Record;
//#ifdef USE_YWTSTRUCT 
				Con_pDVRPara->PortConfigEx[portno-1].nCameraBaudRate = num;
				Con_pDVRPara->PortConfigEx[j].nCameraAddr = iTemp;
//#endif
			}
		}
	}
	else
	{
        if (m_AllPort)
		{
			int num = m_ConCameraBaudrate.GetCurSel();
			pNetRemoteCtlDlg->SetCameraPara(0,num,m_iCameraAddr);
			pNetRemoteCtlDlg->SetNetRemoteRec(0, (unsigned char)m_Sch_Record,(unsigned char)m_Motion_Record,(unsigned char)m_Contact_Record,(unsigned char)m_Record) ;
			portno=0;
		}
		else
		{
			int    i ;
			i = m_PortCombo.GetCurSel() ;
			if (i < 0)
			{
				AfxMessageBox(l_SelectRecordPort, IDOK, NULL) ;//T("请选择录像端口!")
				return;
			}
			else
			{
				int num = m_ConCameraBaudrate.GetCurSel();
				pNetRemoteCtlDlg->SetCameraPara(i+1,num,m_iCameraAddr);
				pNetRemoteCtlDlg->SetNetRemoteRec(i+1, m_Sch_Record,m_Motion_Record,m_Contact_Record,(unsigned char)m_Record);
				portno=i+1;
			}
		}
	}
}

void CNetCtlRecDlg::OnSelchangePortCombo() 
{
	// TODO: Add your control notification handler code here
	if (pNetRemoteCtlDlg->m_nDVRType <= 0) 
	{
		BYTE portno;	
		portno=m_PortCombo.GetCurSel();
//#ifdef USE_YWTSTRUCT 
		m_ConCameraBaudrate.SetCurSel(Con_pDVRPara->PortConfigEx[portno].nCameraBaudRate);
		m_iCameraAddr = Con_pDVRPara->PortConfigEx[portno].nCameraAddr;
//#endif
		UpdateData(FALSE);
		m_cSch_Record.SetCheck(Con_pDVRPara->PortConfig[portno].nRecordSchedulePortStatus);
		m_cMotion_Record.SetCheck(Con_pDVRPara->PortConfig[portno].nRecordAlarmPortStatus);       
	}
	else
	{
		int portno;	
		portno=m_PortCombo.GetCurSel();
		pNetRemoteCtlDlg->GetDvrParam(portno+1,0,PARA_TYPE_ALARM_MOVE_PRESET,&m_RecParam,sizeof(RecParam));
	    pNetRemoteCtlDlg->GetDvrParam(portno+1,0,PARA_TYPE_TERM,&m_Terminal,sizeof(Terminal));
		if(portno<MAXPORTNO)
		{
			m_iCameraAddr = m_Terminal.BallAddressCode;
            UpdateData(FALSE);
            m_ConCameraBaudrate.SetCurSel(m_Terminal.BallBaudRate);  
			m_cSch_Record.SetCheck(m_RecParam.ScheduleRec);
			m_cMotion_Record.SetCheck(m_RecParam.MotionRec);
		}
	}		
}

BOOL CNetCtlRecDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	DWORD t1=0;
	DWORD t2=0;

    t1=pMsg->message;
	t2=(DWORD)pMsg->wParam;
	if(t1==WM_KEYDOWN&&(t2==VK_RETURN||t2==VK_ESCAPE))
       return true;
	
	return CDialog::PreTranslateMessage(pMsg);
}

void CNetCtlRecDlg::Refresh()
{
	char * l_Port;
	if(ENGLISH)
		l_Port=_T("Channel");
	else
		l_Port=_T("通道");
	CString str;
	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) ;
		}
	}
	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);
	OnSelchangePortCombo();
}

void CNetCtlRecDlg::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	
	CDialog::OnClose();
}

⌨️ 快捷键说明

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