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