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

📄 remoteparamscfg.cpp

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

#include "stdafx.h"
#include "newclient.h"
#include "RemoteParamsCfg.h"


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

extern SERVER_INFO	serverinfo[MAXIPNUMBER];
extern IP_INFO		selipinfo[MAXNUMBER];
extern IP_INFO		allipinfo[MAXIPNUMBER][MAXCHANNUM];
/////////////////////////////////////////////////////////////////////////////
// CRemoteParamsCfg dialog

CRemoteParamsCfg::CRemoteParamsCfg(CWnd* pParent /*=NULL*/)
	: CDialog(CRemoteParamsCfg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CRemoteParamsCfg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CRemoteParamsCfg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRemoteParamsCfg)
	DDX_Control(pDX, IDC_TABREMOTECFG, m_Tab);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CRemoteParamsCfg, CDialog)
	//{{AFX_MSG_MAP(CRemoteParamsCfg)
	ON_BN_CLICKED(IDC_SAVEPARA, OnSavepara)
	ON_NOTIFY(TCN_SELCHANGE, IDC_TABREMOTECFG, OnSelchangeTabremotecfg)
	ON_BN_CLICKED(IDEXIT, OnExit)
	ON_BN_CLICKED(IDC_RESTORE, OnRestore)
	ON_BN_CLICKED(ID_CANCEL, OnCancel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRemoteParamsCfg message handlers

BOOL CRemoteParamsCfg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here	
	m_Tab.InsertItem(0, "服务器参数配置");
	m_Tab.InsertItem(1, "监控通道参数配置");
	m_Tab.InsertItem(2, "串口参数配置");
	m_Tab.InsertItem(3, "报警参数配置");
	m_Tab.InsertItem(4, "用户配置");
	m_bConnectServer = TRUE;
	
	m_RemoteServerCfgDlg.m_lServerID = m_lServerID;
	m_RemoteServerCfgDlg.m_lStartChannel = m_lStartChannel;
	m_RemoteServerCfgDlg.m_iChannelnumber = m_iChannelnumber;
	
	m_RemoteChannelCfgDlg.m_iChannelnumber = m_iChannelnumber;
	m_RemoteChannelCfgDlg.m_lServerID = m_lServerID;
	m_RemoteChannelCfgDlg.m_lStartChannel = m_lStartChannel;
	m_RemoteChannelCfgDlg.m_dwAlarmOutNum = m_dwAlarmOutNum;

	m_RemoteSerialCfgDlg.m_iChannelnumber = m_iChannelnumber;
	m_RemoteSerialCfgDlg.m_lServerID = m_lServerID;
	m_RemoteSerialCfgDlg.m_lStartChannel = m_lStartChannel;		

	m_RemoteAlarmCfgDlg.m_iChannelnumber = m_iChannelnumber;
	m_RemoteAlarmCfgDlg.m_lServerID = m_lServerID;
	m_RemoteAlarmCfgDlg.m_lStartChannel = m_lStartChannel;
	m_RemoteAlarmCfgDlg.m_dwAlarmInNum = m_dwAlarmInNum;
	m_RemoteAlarmCfgDlg.m_dwAlarmOutNum = m_dwAlarmOutNum;
			
	m_RemoteUserCfgDlg.m_iChannelnumber = m_iChannelnumber;
	m_RemoteUserCfgDlg.m_lServerID = m_lServerID;
	m_RemoteUserCfgDlg.m_lStartChannel = m_lStartChannel;
	m_RemoteUserCfgDlg.m_bSuperUser = m_bSuperUser;	
	m_RemoteUserCfgDlg.m_loginname = m_Username;
			
	m_RemoteServerCfgDlg.Create(IDD_SUBDLG_SERVERCFG, &m_Tab);
	m_bConnectServer = m_RemoteServerCfgDlg.m_bConnectServer;
	m_RemoteChannelCfgDlg.m_bConnectServer = m_bConnectServer;
	m_RemoteSerialCfgDlg.m_bConnectServer = m_bConnectServer;
	m_RemoteAlarmCfgDlg.m_bConnectServer = m_bConnectServer;
	m_RemoteUserCfgDlg.m_bConnectServer = m_bConnectServer;
	
	m_RemoteChannelCfgDlg.Create(IDD_SUBDLG_CHANCFG, &m_Tab);
	m_RemoteSerialCfgDlg.Create(IDD_SUBDLG_SERIALCFG, &m_Tab);
	m_RemoteAlarmCfgDlg.Create(IDD_SUBDLG_ALARMCFG, &m_Tab);
	m_RemoteUserCfgDlg.Create(IDD_DLG_USERCFG, &m_Tab);
	m_RemoteServerCfgDlg.ShowWindow(SW_SHOW);
	m_RemoteChannelCfgDlg.ShowWindow(SW_HIDE);
	m_RemoteSerialCfgDlg.ShowWindow(SW_HIDE);
	m_RemoteAlarmCfgDlg.ShowWindow(SW_HIDE);
	m_RemoteUserCfgDlg.ShowWindow(SW_HIDE);

	//ATM机专用
	if(m_iServertype == 2)
	{
		m_Tab.InsertItem(5, "交易信息");
		m_RemoteATMInfoDlg.m_lServerID = m_lServerID;
		m_RemoteATMInfoDlg.m_bConnectServer = m_bConnectServer;
		m_RemoteATMInfoDlg.Create(IDD_SUBDLG_ATMINFO, &m_Tab);
		m_RemoteATMInfoDlg.ShowWindow(SW_HIDE);
	}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


void CRemoteParamsCfg::OnSavepara() 
{
	// TODO: Add your control notification handler code here
	int i, j;
	CString sTemp;
	if(m_RemoteServerCfgDlg.bSetServerParams)
	{
		if(!NET_DVR_SetDVRConfig(m_lServerID, NET_DVR_SET_DEVICECFG, 0,&(m_RemoteServerCfgDlg.m_devicecfg), sizeof(NET_DVR_DEVICECFG)))
		{
			sTemp.Format("设置服务器配置信息失败: NET_DVR_GET_DEVICECFG = %d \n", NET_DVR_GetLastError());
			TRACE(sTemp);
			AfxMessageBox("参数保存失败!");
			return ;
		}
		if(!NET_DVR_SetDVRConfig(m_lServerID, NET_DVR_SET_NETCFG, 0,&(m_RemoteServerCfgDlg.m_netcfg), sizeof(NET_DVR_NETCFG)))
		{
			sTemp.Format("设置服务器配置信息失败: NET_DVR_SET_NETCFG = %d \n", NET_DVR_GetLastError());
			TRACE(sTemp);
			AfxMessageBox("参数保存失败!");	
			return ;
		}
		serverinfo[m_iServer].m_csServerMultiIP = m_RemoteServerCfgDlg.m_netcfg.sMultiCastIP;
		serverinfo[m_iServer].m_dwServerMultiIPvalue = inet_addr(m_RemoteServerCfgDlg.m_netcfg.sMultiCastIP);
		for(j=0; j<m_iChannelnumber; j++)
		{
			allipinfo[m_iServer][j].m_csMultiIP = m_RemoteServerCfgDlg.m_netcfg.sMultiCastIP;
			allipinfo[m_iServer][j].m_dwMultiIPvalue = inet_addr(allipinfo[m_iServer][j].m_csMultiIP);
			if( (allipinfo[m_iServer][j].m_bChoosed) && (allipinfo[m_iServer][j].m_iSequence != -1) )
			{
				selipinfo[allipinfo[m_iServer][j].m_iSequence].m_csMultiIP = allipinfo[m_iServer][j].m_csMultiIP;
				selipinfo[allipinfo[m_iServer][j].m_iSequence].m_dwMultiIPvalue = allipinfo[m_iServer][j].m_dwMultiIPvalue;
			}
		}
		m_RemoteServerCfgDlg.bSetServerParams = FALSE;
	}
	for(i=0; i<m_iChannelnumber; i++)
	{
		int m_nChanNum = i + m_lStartChannel;
		if(m_RemoteChannelCfgDlg.bSetChannelPara[i])
		{
			if(!NET_DVR_SetDVRConfig(m_lServerID, NET_DVR_SET_PICCFG, m_nChanNum,&(m_RemoteChannelCfgDlg.m_piccfg[i]), sizeof(NET_DVR_PICCFG)))
			{
				sTemp.Format("%d ERROR: NET_DVR_SET_PICCFG = %d \n", m_nChanNum, NET_DVR_GetLastError());
				TRACE(sTemp);
				AfxMessageBox("参数保存失败!");	
				return ;
			}
			if(!NET_DVR_SetDVRConfig(m_lServerID,NET_DVR_SET_COMPRESSCFG, m_nChanNum,&(m_RemoteChannelCfgDlg.m_compressioncfg[i]), sizeof(NET_DVR_COMPRESSIONCFG)))
			{
				sTemp.Format("%d ERROR: NET_DVR_SET_COMPRESSCFG = %d \n", m_nChanNum, NET_DVR_GetLastError());
				TRACE(sTemp); 
				AfxMessageBox("参数保存失败!");	
				return ;
			}
			if(!NET_DVR_SetDVRConfig(m_lServerID,NET_DVR_SET_RECORDCFG, m_nChanNum,&(m_RemoteChannelCfgDlg.m_record[i]), sizeof(NET_DVR_RECORD)))	
			{
				CString sTemp;
				sTemp.Format("%d ERROR: NET_DVR_SET_RECORDCFG = %d \n", m_nChanNum, NET_DVR_GetLastError());
				TRACE(sTemp);
				AfxMessageBox("参数保存失败!");	
				return ;
			}
			m_RemoteChannelCfgDlg.bSetChannelPara[i] = FALSE;
		}
	}
	if(m_RemoteSerialCfgDlg.bSetSerialParams)
	{
		if(!NET_DVR_SetDVRConfig(m_lServerID, NET_DVR_SET_RS232CFG, 0, &(m_RemoteSerialCfgDlg.rs232cfg), sizeof(NET_DVR_RS232CFG)))
		{
			sTemp.Format("设置232串口参数失败!: NET_DVR_SET_RS232CFG = %d \n", NET_DVR_GetLastError());
			TRACE(sTemp); 
			AfxMessageBox("参数保存失败!");	
			return;
		}
		for(i=0; i<m_iChannelnumber; i++)
		{
			int m_nChanNum = i + m_lStartChannel;
			if(!NET_DVR_SetDVRConfig(m_lServerID, NET_DVR_SET_DECODERCFG, m_nChanNum,&(m_RemoteSerialCfgDlg.decodercfg[i]), sizeof(NET_DVR_DECODERCFG)))
			{		
				sTemp.Format("设置通道%d 485串口参数失败!: NET_DVR_SET_DECODERCFG = %d \n", m_nChanNum, NET_DVR_GetLastError());
				TRACE(sTemp); 
				AfxMessageBox("参数保存失败!");		
				return;
			}
		}
		m_RemoteSerialCfgDlg.bSetSerialParams = FALSE;
	}
	if(m_RemoteAlarmCfgDlg.bSetAlarmParams)
	{
		for(i=0; i<(int)m_dwAlarmInNum; i++)
		{

			if(!NET_DVR_SetDVRConfig(m_lServerID, NET_DVR_SET_ALARMINCFG, i,&(m_RemoteAlarmCfgDlg.m_alarmincfg[i]), sizeof(NET_DVR_ALARMINCFG)))
			{
				sTemp.Format("报警输入%d参数设置失败: NET_DVR_SET_ALARMINCFG = %d \n", i, NET_DVR_GetLastError());
				TRACE(sTemp); 
				AfxMessageBox("参数保存失败!");		
				return;	
			}
		}
		for(i=0; i<(int)m_dwAlarmOutNum; i++)
		{
			if(!NET_DVR_SetDVRConfig(m_lServerID, NET_DVR_SET_ALARMOUTCFG, i,&(m_RemoteAlarmCfgDlg.m_alarmoutcfg[i]), sizeof(NET_DVR_ALARMOUTCFG)))
			{
				sTemp.Format("报警输出%d参数设置失败: NET_DVR_SET_ALARMOUTCFG = %d \n", i, NET_DVR_GetLastError());
				TRACE(sTemp); 
				AfxMessageBox("参数保存失败!");		
				return;	
			}
		}
		m_RemoteAlarmCfgDlg.bSetAlarmParams = FALSE;
	}
	if(m_RemoteUserCfgDlg.bSetUserParams)
	{
		if(!NET_DVR_SetDVRConfig(m_lServerID, NET_DVR_SET_USERCFG, 0,&(m_RemoteUserCfgDlg.m_user), sizeof(NET_DVR_USER)))
		{
			sTemp.Format("ERROR: NET_DVR_SET_USERCFG = %d \n", NET_DVR_GetLastError());
			TRACE(sTemp); 
			AfxMessageBox("参数保存失败!");		
			return;		
		}
		m_RemoteUserCfgDlg.bSetUserParams = FALSE;
	}

	if(m_iServertype == 2)
	{
		if(m_RemoteATMInfoDlg.m_bSetPara)
		{
			if(!NET_DVR_ClientSetframeformat(m_lServerID, &(m_RemoteATMInfoDlg.m_ATMInfo)))
			{
				sTemp.Format("ERROR: NET_DVR_ClientSetframeformat = %d \n", NET_DVR_GetLastError());
				TRACE(sTemp); 
				AfxMessageBox("参数保存失败!");		
				return;		
			}
			m_RemoteATMInfoDlg.m_bSetPara = FALSE;
		}
	}
	AfxMessageBox("参数保存成功!");	
}

void CRemoteParamsCfg::OnSelchangeTabremotecfg(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	switch(m_Tab.GetCurSel())
	{
	case 0:
		m_RemoteServerCfgDlg.ShowWindow(SW_SHOW);
		m_RemoteChannelCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteSerialCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteAlarmCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteUserCfgDlg.ShowWindow(SW_HIDE);
		//ATM机专用
		if(m_iServertype == 2)
		{
			m_RemoteATMInfoDlg.ShowWindow(SW_HIDE);
		}
		break;
	case 1:
		m_RemoteServerCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteChannelCfgDlg.ShowWindow(SW_SHOW);
		m_RemoteSerialCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteAlarmCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteUserCfgDlg.ShowWindow(SW_HIDE);
		//ATM机专用
		if(m_iServertype == 2)
		{
			m_RemoteATMInfoDlg.ShowWindow(SW_HIDE);
		}
		break;
	case 2:
		m_RemoteServerCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteChannelCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteSerialCfgDlg.ShowWindow(SW_SHOW);
		m_RemoteAlarmCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteUserCfgDlg.ShowWindow(SW_HIDE);
		//ATM机专用
		if(m_iServertype == 2)
		{
			m_RemoteATMInfoDlg.ShowWindow(SW_HIDE);
		}
		break;
	case 3:
		m_RemoteServerCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteChannelCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteSerialCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteAlarmCfgDlg.ShowWindow(SW_SHOW);
		m_RemoteUserCfgDlg.ShowWindow(SW_HIDE);
		//ATM机专用
		if(m_iServertype == 2)
		{
			m_RemoteATMInfoDlg.ShowWindow(SW_HIDE);
		}
		break;
	case 4:
		m_RemoteServerCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteChannelCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteSerialCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteAlarmCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteUserCfgDlg.ShowWindow(SW_SHOW);
		//ATM机专用
		if(m_iServertype == 2)
		{
			m_RemoteATMInfoDlg.ShowWindow(SW_HIDE);
		}
		break;
	case 5:
		m_RemoteServerCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteChannelCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteSerialCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteAlarmCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteUserCfgDlg.ShowWindow(SW_HIDE);
		m_RemoteATMInfoDlg.ShowWindow(SW_SHOW);
		break;
	default:
		break;
	}
	*pResult = 0;
}

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

void CRemoteParamsCfg::OnCancel() 
{
	// TODO: Add your control notification handler code here
	
}

void CRemoteParamsCfg::OnRestore() 
{
	// TODO: Add your control notification handler code here
	if(NET_DVR_RestoreConfig(m_lServerID))
	{
		AfxMessageBox("恢复默认值成功!");
	}
	else
	{
		AfxMessageBox("恢复默认值失败!");	
	}
}

⌨️ 快捷键说明

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