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

📄 remoteserverconfig.cpp

📁 监控开发资料,提供二次开发源码和使用说明书
💻 CPP
字号:
// RemoteServerConfig.cpp : implementation file
//

#include "stdafx.h"
#include "newclient.h"
#include "RemoteServerConfig.h"

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

/////////////////////////////////////////////////////////////////////////////
// CRemoteServerConfig dialog
BOOL checkIPStr(CString ip)
{	//检查IP地址输入的正确性
	char str[20];
	strcpy(str,ip);
    char a;
    int dot=0;
    int a3,a2,a1,a0,i = 0;
	a3 = a2 = a1 = a0 = -1;
    if(strlen(str)==0)
		return TRUE;
    while(a=str[i++])
	{
        if((a==' ')||(a=='.')||((a>='0')&&(a<='9')))
		{
            if(a=='.')
                dot++;
        }
        else
			return FALSE;
    }
    if(dot!=3)
		return FALSE;
    else
	{
        sscanf(str,"%d.%d.%d.%d",&a3,&a2,&a1,&a0);
        if( (a0>255)||(a1>255)||(a2>255)||(a3>255))
			return FALSE;
		if( (a0 < 0) || (a1 < 0) || (a2 < 0) || (a3 < 0) )
			return FALSE;
    }
	return TRUE;
}

CRemoteServerConfig::CRemoteServerConfig(CWnd* pParent /*=NULL*/)
	: CDialog(CRemoteServerConfig::IDD, pParent)
{
	//{{AFX_DATA_INIT(CRemoteServerConfig)
	m_AlarmInNum = 0;
	m_AlarmOutNum = 0;
	m_ChanNum = 0;
	m_DNSIP = _T("");
	m_GateWay = _T("");
	m_ServerIP = _T("");
	m_IPMask = _T("");
	m_MultiIP = _T("");
	m_ServerName = _T("");
	m_NFSDir = _T("");
	m_NFSIP = _T("");
	m_ServerPort = 0;
	m_ServerSerial = _T("");
	m_YKQID = 0;
	m_HardNum = 0;
	m_ManageHostIP = _T("");
	m_ManageHostPort = 0;
	m_PPPoEName = _T("");
	m_PPPoEpsw = _T("");
	m_QMBVersion = 0;
	m_MacAddr = _T("");
	m_csHardVersion = _T("");
	m_csSoftVersion = _T("");
	m_csDspVersion = _T("");
	m_PPPoEIP = _T("");
	//}}AFX_DATA_INIT
}


void CRemoteServerConfig::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRemoteServerConfig)
	DDX_Control(pDX, IDC_SERVERTYPE, m_ServerTypeCtrl);
	DDX_Control(pDX, IDC_RECYCLERECORD, m_RecycleRecord);
	DDX_Control(pDX, IDC_COMBOPPPOE, m_ComPPPoE);
	DDX_Control(pDX, IDC_COMBONETFACE, m_NetFace);
	DDX_Text(pDX, IDC_ALARMINNUM, m_AlarmInNum);
	DDX_Text(pDX, IDC_ALARMOUTNUM, m_AlarmOutNum);
	DDX_Text(pDX, IDC_EDITCHANNUM, m_ChanNum);
	DDX_Text(pDX, IDC_EDITDNSIP, m_DNSIP);
	DDX_Text(pDX, IDC_EDITGATEWAY, m_GateWay);
	DDX_Text(pDX, IDC_EDITIP, m_ServerIP);
	DDX_Text(pDX, IDC_EDITIPMASK, m_IPMask);
	DDX_Text(pDX, IDC_EDITMULTIIP, m_MultiIP);
	DDX_Text(pDX, IDC_EDITNAME, m_ServerName);
	DDX_Text(pDX, IDC_EDITNFSDIR, m_NFSDir);
	DDX_Text(pDX, IDC_EDITNFSIP, m_NFSIP);
	DDX_Text(pDX, IDC_EDITPORT, m_ServerPort);
	DDX_Text(pDX, IDC_EDITSERIAL, m_ServerSerial);
	DDX_Text(pDX, IDC_EDITYKQID, m_YKQID);
	DDX_Text(pDX, IDC_HDNUM, m_HardNum);
	DDX_Text(pDX, IDC_MANAGEHOSTIP, m_ManageHostIP);
	DDX_Text(pDX, IDC_MANAGEHOSTPORT, m_ManageHostPort);
	DDX_Text(pDX, IDC_PPPoENAME, m_PPPoEName);
	DDX_Text(pDX, IDC_PPPoEPSW, m_PPPoEpsw);
	DDX_Text(pDX, IDC_QMBVERSION, m_QMBVersion);
	DDX_Text(pDX, IDC_EDITMACIP, m_MacAddr);
	DDX_Text(pDX, IDC_HWVERSION, m_csHardVersion);
	DDX_Text(pDX, IDC_SWVERSION, m_csSoftVersion);
	DDX_Text(pDX, IDC_DSPVERSION, m_csDspVersion);
	DDX_Text(pDX, IDC_PPPOEIP, m_PPPoEIP);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CRemoteServerConfig, CDialog)
	//{{AFX_MSG_MAP(CRemoteServerConfig)
	ON_BN_CLICKED(IDSVROK, OnSvrok)
	ON_BN_CLICKED(IDEXIT, OnExit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRemoteServerConfig message handlers
BOOL CRemoteServerConfig::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CRect rc(0, 0, 0, 0);
	GetParent()->GetClientRect(&rc);
	((CTabCtrl*)GetParent())->AdjustRect(FALSE, &rc);
	MoveWindow(&rc);
	char cTemp[200];
	
	bSetServerParams = FALSE;
	m_bConnectServer = TRUE;

	if(!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_DEVICECFG, 0,&m_devicecfg, sizeof(NET_DVR_DEVICECFG), &dwReturned))
	{	CString sTemp;
		int iErr = NET_DVR_GetLastError();
		if (iErr == NET_DVR_USERNOTEXIST)
		{
			m_bConnectServer = FALSE;		
			sTemp.Format("该用户不存在!!!!!!!!!!!");
			AfxMessageBox(sTemp);
			return FALSE;
		}
		else if(iErr == NET_DVR_NETWORK_FAIL_CONNECT)
		{
			m_bConnectServer = FALSE;		
			sTemp.Format("服务器连接不上,请检查网络!!!!!");
			AfxMessageBox(sTemp);
			return FALSE;
		}
		sTemp.Format("获取服务器配置信息失败: NET_DVR_GET_DEVICECFG = %d \n", NET_DVR_GetLastError());
		AfxMessageBox(sTemp);
		return FALSE;
	} 

	if(!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_NETCFG, 0,&m_netcfg, sizeof(NET_DVR_NETCFG), &dwReturned))
	{
		CString sTemp;
		sTemp.Format("获取服务器配置信息失败: NET_DVR_GET_NETCFG = %d \n", NET_DVR_GetLastError());
		AfxMessageBox(sTemp);	
		return FALSE;
	}
	ZeroMemory(cTemp, 200);
	memcpy(cTemp, m_devicecfg.sDVRName, NAME_LEN);
	m_ServerName.Format("%s", cTemp);
	m_YKQID = m_devicecfg.dwDVRID;
	ZeroMemory(cTemp, 200);
	memcpy(cTemp, m_devicecfg.sSerialNumber, SERIALNO_LEN);
	m_ServerSerial.Format("%s", cTemp);
	m_csSoftVersion.Format("V%d.%d build %02d%02d%02d", (m_devicecfg.dwSoftwareVersion>>16)&0xFFFF, m_devicecfg.dwSoftwareVersion&0xFFFF, (m_devicecfg.dwSoftwareBuildDate>>16)&0xFFFF, (m_devicecfg.dwSoftwareBuildDate>>8)&0xFF,m_devicecfg.dwSoftwareBuildDate&0xFF);
	m_csHardVersion.Format("0x%x", m_devicecfg.dwHardwareVersion);
	m_QMBVersion = m_devicecfg.dwPanelVersion;
	m_csDspVersion.Format("V%d.%d build %02d%02d%02d", (m_devicecfg.dwDSPSoftwareVersion>>16)&0xFFFF, m_devicecfg.dwDSPSoftwareVersion&0xFFFF, (m_devicecfg.dwDSPSoftwareBuildDate>>16)&0xFFFF-2000, (m_devicecfg.dwDSPSoftwareBuildDate>>8)&0xFF,m_devicecfg.dwDSPSoftwareBuildDate&0xFF);
	m_AlarmInNum = m_devicecfg.byAlarmInPortNum;
	m_AlarmOutNum = m_devicecfg.byAlarmOutPortNum;
	m_ChanNum = m_devicecfg.byChanNum;	
	m_ServerTypeCtrl.SetCurSel(m_devicecfg.byDVRType-1);
	m_DNSIP = m_netcfg.sDNSIP;
	m_GateWay = m_netcfg.sGatewayIP;
	m_ServerIP = m_netcfg.struEtherNet[0].sDVRIP;
	m_IPMask = m_netcfg.struEtherNet[0].sDVRIPMask;
	m_MacAddr.Format("%02x:%02x:%02x:%02x:%02x:%02x", m_netcfg.struEtherNet[0].byMACAddr[0],m_netcfg.struEtherNet[0].byMACAddr[1],m_netcfg.struEtherNet[0].byMACAddr[2],m_netcfg.struEtherNet[0].byMACAddr[3],m_netcfg.struEtherNet[0].byMACAddr[4],m_netcfg.struEtherNet[0].byMACAddr[5]);
	m_MultiIP = m_netcfg.sMultiCastIP;
	ZeroMemory(cTemp, 200);
	memcpy(cTemp, m_netcfg.sNFSDirectory, PATHNAME_LEN);
	m_NFSDir.Format("%s", cTemp);
	m_NFSIP = m_netcfg.sNFSIP;
	m_ServerPort = m_netcfg.struEtherNet[0].wDVRPort;
	m_HardNum = m_devicecfg.byDiskNum;
	m_ManageHostIP = m_netcfg.sManageHostIP;
	m_ManageHostPort = m_netcfg.wManageHostPort;
	ZeroMemory(cTemp, 200);
	memcpy(cTemp, m_netcfg.sPPPoEUser, NAME_LEN);
	m_PPPoEName.Format("%s", cTemp);
	ZeroMemory(cTemp, 200);
	memcpy(cTemp, m_netcfg.sPPPoEPassword, PASSWD_LEN);
	m_PPPoEpsw.Format("%s", cTemp);

	m_RecycleRecord.SetCurSel(m_devicecfg.dwRecycleRecord);
	m_NetFace.SetCurSel(m_netcfg.struEtherNet[0].dwNetInterface-1);
	m_ComPPPoE.SetCurSel(m_netcfg.dwPPPOE);
	m_PPPoEIP = m_netcfg.sPPPoEIP;

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


void CRemoteServerConfig::OnSvrok() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
	if(m_ServerPort <= 0)
	{
		AfxMessageBox("非法的服务器端口号!");
		return;
	}
	
	if( (m_ServerIP == "0.0.0.0") || (m_ServerIP == "") || !checkIPStr(m_ServerIP))
	{
		AfxMessageBox("非法的服务器IP地址!");
		return;
	}
	
	if(!checkIPStr(m_IPMask))
	{
		AfxMessageBox("非法的掩码地址!");
		return;
	}
	
	if(!checkIPStr(m_DNSIP))
	{
		AfxMessageBox("非法的DNS地址!");
		return;
	}
	if(!checkIPStr(m_MultiIP))
	{
		AfxMessageBox("非法的多播IP地址!");
		return;
	}
	if(!checkIPStr(m_GateWay))
	{
		AfxMessageBox("非法的网关IP地址!");
		return;
	}
	if(!checkIPStr(m_NFSIP))
	{
		AfxMessageBox("非法的NFS服务器地址!");
		return;
	}
	if(!checkIPStr(m_ManageHostIP))
	{
		AfxMessageBox("非法的管理主机IP地址!");
		return;
	}
	if(!checkIPStr(m_PPPoEIP))
	{
		AfxMessageBox("非法的解析服务器地址!");
		return;
	}
	
	m_devicecfg.dwDVRID = m_YKQID;
	memcpy(m_devicecfg.sDVRName, m_ServerName, NAME_LEN);	
	memcpy(m_netcfg.struEtherNet[0].sDVRIP, m_ServerIP, 16);
	memcpy(m_netcfg.struEtherNet[0].sDVRIPMask, m_IPMask, 16);
	memcpy(m_netcfg.sDNSIP, m_DNSIP, 16);	
	memcpy(m_netcfg.sMultiCastIP, m_MultiIP,16);
	memcpy(m_netcfg.sGatewayIP, m_GateWay,16);
	m_netcfg.struEtherNet[0].wDVRPort = m_ServerPort;
	memcpy(m_netcfg.sNFSDirectory, m_NFSDir,PATHNAME_LEN);
	memcpy(m_netcfg.sNFSIP, m_NFSIP,16);
	memcpy(m_netcfg.sManageHostIP, m_ManageHostIP,16);
	m_netcfg.wManageHostPort = m_ManageHostPort;
	memcpy(m_netcfg.sPPPoEUser, m_PPPoEName, NAME_LEN);
	memcpy(m_netcfg.sPPPoEPassword, m_PPPoEpsw, PASSWD_LEN);
	memcpy(m_netcfg.sPPPoEIP, m_PPPoEIP, 16);
	m_netcfg.struEtherNet[0].dwNetInterface = m_NetFace.GetCurSel()+1;
	m_devicecfg.dwRecycleRecord = m_RecycleRecord.GetCurSel();
	m_netcfg.dwPPPOE = m_ComPPPoE.GetCurSel();
	bSetServerParams = TRUE;
}

void CRemoteServerConfig::OnExit() 
{
	// TODO: Add your control notification handler code here
	bSetServerParams = FALSE;
}

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

⌨️ 快捷键说明

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