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

📄 addsvrinfo.cpp

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

#include "stdafx.h"
#include "newclient.h"
#include "AddSvrInfo.h"

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

/////////////////////////////////////////////////////////////////////////////
// CAddSvrInfo dialog
extern	SERVER_INFO	serverinfo[MAXIPNUMBER];
extern	IP_INFO	allipinfo[MAXIPNUMBER][MAXCHANNUM];

CAddSvrInfo::CAddSvrInfo(CWnd* pParent /*=NULL*/)
	: CDialog(CAddSvrInfo::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAddSvrInfo)
	m_ServerName = _T("test");
	m_UserName = _T("admin");  
	m_UserPSW = _T("12345");
	m_ServerPort = 8000;
	//}}AFX_DATA_INIT
}


void CAddSvrInfo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAddSvrInfo)
	DDX_Control(pDX, IDC_SVRIP, m_ServerIPCtrl);
	DDX_Text(pDX, IDC_SVRNAME, m_ServerName);
	DDX_Text(pDX, IDC_SVRUSERNAME, m_UserName);
	DDX_Text(pDX, IDC_SVRPSW, m_UserPSW);
	DDX_Text(pDX, IDC_SVRPORT, m_ServerPort);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAddSvrInfo, CDialog)
	//{{AFX_MSG_MAP(CAddSvrInfo)
	ON_BN_CLICKED(IDC_EXIT, OnExit)
	ON_BN_CLICKED(IDC_ADDSVROK, OnAddsvrok)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAddSvrInfo message handlers

//	g_IPToStr(DWORD dip): turn the word dip into IP address string;
void g_IPToStr(DWORD dip, char outbuf[16])
{
	ZeroMemory(outbuf,16);
	WORD add1,add2,add3,add4;
	
	add1=(WORD)(dip&255);
	add2=(WORD)((dip>>8)&255);
	add3=(WORD)((dip>>16)&255);
	add4=(WORD)((dip>>24)&255);
	sprintf(outbuf,"%d.%d.%d.%d",add4,add3,add2,add1);
}

void CAddSvrInfo::OnAddsvrok() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
	if (m_ServerName == "")
	{
		AfxMessageBox("Please input DVR name!");
		return;
	}
	if (m_ServerIPCtrl.IsBlank())
	{
		AfxMessageBox("Please input DVR ip address!");
		return;
	}
	if(m_ServerPort <= 0)
	{
		AfxMessageBox("Error Port!");
		return;
	}
	if((strlen(m_UserName) > 16) || (strlen(m_UserPSW) > 16))
	{
		AfxMessageBox("The length of username and password can not exceed 16!");
		return;
	}
	int i;
	DWORD dwServerIP;
	char csServerIP[16];
	char cUserName[100];
	char cPassword[100];
	char cTemp[100];
	LONG lUserID = -1;
	DWORD dwReturned = 0;

	m_ServerIPCtrl.GetAddress(dwServerIP);
	g_IPToStr(dwServerIP, csServerIP);
	TRACE("\n### IP = %s\n", csServerIP);
	strncpy(cUserName, m_UserName, MAX_NAMELEN);
	strncpy(cPassword, m_UserPSW, PASSWD_LEN);

	CString sTemp;
	NET_DVR_DEVICEINFO DeviceInfo;
	lUserID = NET_DVR_Login(csServerIP,m_ServerPort,cUserName, cPassword, &DeviceInfo);
	if(lUserID < 0)
	{	
		int nErr = NET_DVR_GetLastError();  
		sTemp.Format("ERROR: NET_DVR_Login = %d", nErr);
		TRACE(sTemp);
		if(nErr == NET_DVR_PASSWORD_ERROR)
		{
			AfxMessageBox("Username and password error!");
		}
		//TODO: Other 
		else
		{
			AfxMessageBox("Register failed due to network or DVR is busy!");
		}
		return;
	}
	NET_DVR_NETCFG netcfg;
	memset(&netcfg, 0, sizeof(netcfg));
	if(!NET_DVR_GetDVRConfig(lUserID, NET_DVR_GET_NETCFG, 0, &netcfg, sizeof(NET_DVR_NETCFG), &dwReturned))
	{
		CString sTemp;
		sTemp.Format("Get DVR configuration failed: NET_DVR_GET_NETCFG = %d \n", NET_DVR_GetLastError());
		TRACE(sTemp);	
	}
	NET_DVR_DEVICECFG DeviceCfg;
	memset(&DeviceCfg, 0, sizeof(DeviceCfg));
	if (!NET_DVR_GetDVRConfig(lUserID, NET_DVR_GET_DEVICECFG, 0, &DeviceCfg, sizeof(DeviceCfg), &dwReturned))
	{
		sTemp.Format("%s 获取设备参数失败! ", csServerIP);
		TRACE(sTemp);
		AfxMessageBox(sTemp);
	}

	TRACE("\n### DeviceCfg.dwSoftwareVersion = 0x%x\n", DeviceCfg.dwSoftwareVersion);
	serverinfo[m_iServerNum].m_dwDevSoftVersion = DeviceCfg.dwSoftwareVersion;
	serverinfo[m_iServerNum].m_csServerAdminName.Format("%s",m_UserName);
	serverinfo[m_iServerNum].m_csServerAdminPasswd.Format("%s",m_UserPSW);
	serverinfo[m_iServerNum].m_iServerChannelNumber = DeviceInfo.byChanNum;
	serverinfo[m_iServerNum].m_dwServerIPvalue = dwServerIP;
	serverinfo[m_iServerNum].m_csServerIP.Format("%s",csServerIP);
	serverinfo[m_iServerNum].m_csServerName.Format("%s",m_ServerName);
	serverinfo[m_iServerNum].m_wServerPort = m_ServerPort;
	serverinfo[m_iServerNum].m_wServerType = DeviceInfo.byDVRType;
	serverinfo[m_iServerNum].m_lStartChannel = DeviceInfo.byStartChan;
	serverinfo[m_iServerNum].m_dwAlarmInNum = DeviceInfo.byAlarmInPortNum;
	serverinfo[m_iServerNum].m_dwAlarmOutNum = DeviceInfo.byAlarmOutPortNum;
	serverinfo[m_iServerNum].m_dwDiskNum = DeviceInfo.byDiskNum;
	serverinfo[m_iServerNum].m_lServerID = lUserID;
	serverinfo[m_iServerNum].m_csServerMultiIP = netcfg.sMultiCastIP;
	serverinfo[m_iServerNum].m_dwServerMultiIPvalue = inet_addr(netcfg.sMultiCastIP);
	ZeroMemory(cTemp, 100);
	memcpy(cTemp, DeviceInfo.sSerialNumber, SERIALNO_LEN);
	serverinfo[m_iServerNum].m_csSerialNumber.Format("%s", cTemp);
	for(i = 0; i < DeviceInfo.byChanNum; i++)
	{		
		allipinfo[m_iServerNum][i].m_csChanName.Format("Channel%d",(i+DeviceInfo.byStartChan));
		allipinfo[m_iServerNum][i].m_iChannel = i+DeviceInfo.byStartChan;	

		allipinfo[m_iServerNum][i].m_dwAddress=0;
		allipinfo[m_iServerNum][i].m_wJMQtype=0;
		allipinfo[m_iServerNum][i].m_dwProtocol=0;
		allipinfo[m_iServerNum][i].m_dwAlarmlevel=0;
		allipinfo[m_iServerNum][i].m_csUser.Format("%s",serverinfo[m_iServerNum].m_csServerAdminName);
		allipinfo[m_iServerNum][i].m_csPassword.Format("%s",serverinfo[m_iServerNum].m_csServerAdminPasswd);
		allipinfo[m_iServerNum][i].m_iServerNum = m_iServerNum;
		allipinfo[m_iServerNum][i].m_iChannelNum = i;
		allipinfo[m_iServerNum][i].m_csIP.Format("%s",serverinfo[m_iServerNum].m_csServerIP);
		allipinfo[m_iServerNum][i].m_dwIPvalue = serverinfo[m_iServerNum].m_dwServerIPvalue;
		allipinfo[m_iServerNum][i].m_csMultiIP = netcfg.sMultiCastIP;
		allipinfo[m_iServerNum][i].m_dwMultiIPvalue = inet_addr(allipinfo[m_iServerNum][i].m_csMultiIP);
		allipinfo[m_iServerNum][i].m_wServerport = serverinfo[m_iServerNum].m_wServerPort;
		allipinfo[m_iServerNum][i].m_bChoosed = FALSE;
		allipinfo[m_iServerNum][i].m_lServerID = lUserID;
		if(i >= (int)DeviceInfo.byChanNum)
		{
			allipinfo[m_iServerNum][i].m_iChannel = -1 ;
			allipinfo[m_iServerNum][i].m_bChoosed = FALSE;
			allipinfo[m_iServerNum][i].m_lServerID = -1;
			allipinfo[m_iServerNum][i].m_iChannelNum = -1;
		}
	}
	m_bChanged = TRUE;
	
	CDialog::OnOK();   
} 

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

BOOL CAddSvrInfo::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_bChanged = FALSE;

	m_ServerIPCtrl.SetAddress(192, 0, 1, 200);

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



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

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

⌨️ 快捷键说明

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