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

📄 configserver.cpp

📁 大华DVR的客户端开发包和Demo,从网上是下载不到的。
💻 CPP
字号:
// ConfigServer.cpp : implementation file
//

#include "stdafx.h"
#include "netsdkdemo.h"
#include "ConfigServer.h"
#include "NetSDKDemoDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CConfigServer dialog


CConfigServer::CConfigServer(CWnd* pParent /*=NULL*/)
	: CDialog(CConfigServer::IDD, pParent)
{
	//{{AFX_DATA_INIT(CConfigServer)
	//}}AFX_DATA_INIT
	m_pDev = 0;
	memset(&m_sysCFG, 0, sizeof(DHDEV_SYSTEM_ATTR_CFG));
	m_bInited = FALSE;
}


void CConfigServer::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CConfigServer)
	DDX_Control(pDX, IDC_COMBO_DATESPR, m_datesprsel);
	DDX_Control(pDX, IDC_COMBO_TIMEFMT, m_timefmtsel);
	DDX_Control(pDX, IDC_COMBO_DATEFMT, m_datefmtsel);
	DDX_Control(pDX, IDC_COMBO_VIDEOFMT, m_videofmtsel);
	DDX_Control(pDX, IDC_COMBO_OVERWRITE, m_overwritesel);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CConfigServer, CDialog)
	//{{AFX_MSG_MAP(CConfigServer)
	ON_WM_SHOWWINDOW()
	ON_BN_CLICKED(IDC_UNDO_ALL, OnUndoAll)
	ON_BN_CLICKED(IDC_APPLY, OnApply)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CConfigServer message handlers


void CConfigServer::GetConfig()
{
	if (!m_pDev || m_bInited)
	{
		return;
	}

	DWORD retlen = 0;
	BOOL bRet = CLIENT_GetDevConfig(m_pDev->LoginID, DH_DEV_DEVICECFG, 0,
								&m_sysCFG, sizeof(DHDEV_SYSTEM_ATTR_CFG), &retlen);
	if (!bRet || retlen != sizeof(DHDEV_SYSTEM_ATTR_CFG))
	{
		((CNetSDKDemoDlg*)AfxGetMainWnd())->LastError();
		return;
	}
	else
	{
		m_bInited = TRUE;
	}
	//show config information
	CString strVer;
	strVer.Format("Software Version: %d.%d, Build:%d-%d-%d",
				m_sysCFG.stVersion.dwSoftwareVersion>>16, m_sysCFG.stVersion.dwSoftwareVersion & 0x0000FFFF,
				m_sysCFG.stVersion.dwSoftwareBuildDate>>16, (m_sysCFG.stVersion.dwSoftwareBuildDate>>8) & 0x000000FF,
				m_sysCFG.stVersion.dwSoftwareBuildDate & 0x000000FF
				/*,	m_sysCFG.stVersion.dwWebVersion>>16, m_sysCFG.stVersion.dwWebVersion & 0x0000FFFF,
				m_sysCFG.stVersion.dwWebBuildDate>>16, (m_sysCFG.stVersion.dwWebBuildDate>>8) & 0x000000FF,
				m_sysCFG.stVersion.dwWebBuildDate & 0x000000FF*/);
	SetDlgItemText(IDC_VERSION, strVer);

	char *devNameList[15] = {"NONE","NoRealtimeMace","NoRealTime","MPEG1_1","MPEG1_2",
		"MPEG1_8","MPEG4_8","MPEG4_16","MPEG4_LB","MPEG4_GB",
		"MPEG4_HB","NPEG4_GBE","MPEG4_NVSII","STD_NEW","DDNS"};
	SetDlgItemText(IDC_EDIT_DEVTYPE, devNameList[m_sysCFG.byDevType]);
	SetDlgItemText(IDC_EDIT_SERIALNO, (char*)m_sysCFG.szDevSerialNo);
	SetDlgItemInt(IDC_EDIT_VIDEONUM, m_sysCFG.byVideoCaptureNum);
	SetDlgItemInt(IDC_EDIT_AUDIONUM, m_sysCFG.byAudioCaptureNum);
	SetDlgItemInt(IDC_EDIT_ALARMIN, m_sysCFG.byAlarmInNum);
	SetDlgItemInt(IDC_EDIT_ALARMOUT, m_sysCFG.byAlarmOutNum);
	SetDlgItemInt(IDC_EDIT_NETPORT, m_sysCFG.byNetIONum);
	SetDlgItemInt(IDC_EDIT_USBNUM, m_sysCFG.byUsbIONum);
	SetDlgItemInt(IDC_EDIT_IDENUM, m_sysCFG.byIdeIONum);
	SetDlgItemInt(IDC_EDIT_LPORTNUM, m_sysCFG.byLPTIONum);
	SetDlgItemInt(IDC_EDIT_232NUM, m_sysCFG.byComIONum);
	SetDlgItemInt(IDC_EDIT_VGANUM, m_sysCFG.byVgaIONum);
	SetDlgItemInt(IDC_EDIT_TALKIN, m_sysCFG.byTalkInChanNum);
	SetDlgItemInt(IDC_EDIT_TALKOUT, m_sysCFG.byTalkOutChanNum);
	SetDlgItemInt(IDC_EDIT_DECCHAN, m_sysCFG.byDecodeChanNum);
	SetDlgItemInt(IDC_EDIT_IDECTRLNUM, m_sysCFG.byIdeControlNum);
	SetDlgItemInt(IDC_EDIT_IDECTRLTYPE, m_sysCFG.byIdeControlType);
	SetDlgItemInt(IDC_EDIT_DEVNO, m_sysCFG.byDevNo);
	m_overwritesel.SetCurSel(m_sysCFG.byOverWrite);
	SetDlgItemInt(IDC_EDIT_RECLEN, m_sysCFG.byRecordLen);
	m_videofmtsel.SetCurSel(m_sysCFG.byVideoStandard);
	m_datefmtsel.SetCurSel(m_sysCFG.byDateFormat);
	m_datesprsel.SetCurSel(m_sysCFG.byDateSprtr);
	m_timefmtsel.SetCurSel(m_sysCFG.byTimeFmt);
	SetDlgItemInt(IDC_EDIT_STARTCHAN, m_sysCFG.byStartChanNo);
}

void CConfigServer::SetDevice(DeviceNode *pDev)
{
	m_pDev = pDev;
}

/************************************************************************
 *	系统信息
************************************************************************/

/* DSP能力描述 
typedef struct 
{
	DWORD	dwVideoStandardMask;	//视频制式掩码,按位表示设备能够支持的视频制式
	DWORD	dwImageSizeMask;		//分辨率掩码,按位表示设备能够支持的分辨率设置
	DWORD	dwEncodeModeMask;		//编码模式掩码,按位表示设备能够支持的编码模式设置
} DH_DSP_ENCODECAP, *LPDH_DSP_ENCODECAP;
*/

BOOL CConfigServer::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	g_SetWndStaticText(this);

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

void CConfigServer::OnShowWindow(BOOL bShow, UINT nStatus) 
{
	CDialog::OnShowWindow(bShow, nStatus);
	
	if (bShow)
	{
		GetConfig();
	}
}

void CConfigServer::OnUndoAll() 
{
	m_bInited = FALSE;
	GetConfig();
}

void CConfigServer::OnApply() 
{
	if (!m_bInited)
	{
		return;
	}
	m_sysCFG.byDevNo = GetDlgItemInt(IDC_EDIT_DEVNO);
	m_sysCFG.byOverWrite = m_overwritesel.GetCurSel();
	m_sysCFG.byRecordLen = GetDlgItemInt(IDC_EDIT_RECLEN);
	m_sysCFG.byVideoStandard = m_videofmtsel.GetCurSel();
	m_sysCFG.byDateFormat = m_datefmtsel.GetCurSel();
	m_sysCFG.byDateSprtr = m_datesprsel.GetCurSel();
	m_sysCFG.byTimeFmt = m_timefmtsel.GetCurSel();

	BOOL bRet = CLIENT_SetDevConfig(m_pDev->LoginID, DH_DEV_DEVICECFG, 0,
								&m_sysCFG, sizeof(DHDEV_SYSTEM_ATTR_CFG));
	if (!bRet)
	{
		((CNetSDKDemoDlg*)AfxGetMainWnd())->LastError();
		return;
	}
	else
	{
		MessageBox("Apply Success!", "OK");
	}
}

⌨️ 快捷键说明

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