📄 remoteserverconfig.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 + -