// DlgCfgNet.cpp : implementation file
//

#include "stdafx.h"
#include "NetSdkDemo.h"
#include "DlgCfgNet.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgCfgNet dialog


CDlgCfgNet::CDlgCfgNet(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgCfgNet::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgCfgNet)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_bGetParam = FALSE;
}


void CDlgCfgNet::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgCfgNet)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgCfgNet, CDialog)
	//{{AFX_MSG_MAP(CDlgCfgNet)
	ON_BN_CLICKED(IDC_BTN_SAVE, OnBtnSave)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgCfgNet message handlers
BOOL CDlgCfgNet::GetEnvParam()
{
	int iRet;
	//if(m_bGetParam)
	//	return TRUE;
	iRet = librmconfc_env_get(g_envDev.szIP, g_envDev.wPort, g_envDev.szUserName, g_envDev.szPassword, NULL,
		MRCONFC_ENVCMD_NETWORK, sizeof(MRCONFC_NET_CFG), &m_stNet);
	if(iRet)
	{
		AfxMessageBox("获得参数失败!");
		return FALSE;
	}
	SetDlgItemInt(IDC_EDT_PORT_DATA, m_stNet.stNetPort.wPortData);
	SetDlgItemInt(IDC_EDT_PORT_WEB, m_stNet.stNetPort.wPortWeb);
	SetDlgItemInt(IDC_EDT_PORT_ONVIF, m_stNet.stNetPort.wPortOnvif);
	SetDlgItemInt(IDC_EDT_PORT_SOAP, m_stNet.stNetPort.wPortSoap);
	SetDlgItemInt(IDC_EDT_PORT_RTMP, m_stNet.stNetPort.wPortRtmp);
	SetDlgItemInt(IDC_EDT_PORT_RTSP, m_stNet.stNetPort.wPortRtsp);
	SetDlgItemInt(IDC_EDT_PORT_VISCA, m_stNet.stNetPort.wPortVisca);

	SetDlgItemText(IDC_EDT_DNS1, m_stNet.stDns.szDns1);
	SetDlgItemText(IDC_EDT_DNS2, m_stNet.stDns.szDns2);

	((CButton*)GetDlgItem(IDC_CHK_DPCH))->SetCheck((m_stNet.stEth[0].byValid & MR_ETHVALID_DHCP) ? TRUE : FALSE);
	SetDlgItemText(IDC_EDT_IPADDR, m_stNet.stEth[0].szIPAddr);
	SetDlgItemText(IDC_EDT_SUBMASK, m_stNet.stEth[0].szSubMask);
	SetDlgItemText(IDC_EDT_GETWAY, m_stNet.stEth[0].szGateway);
	SetDlgItemText(IDC_EDT_MAC, m_stNet.stEth[0].szMacAddr);

	m_bGetParam = TRUE;
	return TRUE;
}

void CDlgCfgNet::OnBtnSave() 
{
	int iRet;
	if(!m_bGetParam)
		return;

	m_stNet.stNetPort.wPortData  = GetDlgItemInt(IDC_EDT_PORT_DATA);
	m_stNet.stNetPort.wPortWeb   = GetDlgItemInt(IDC_EDT_PORT_WEB);
	m_stNet.stNetPort.wPortOnvif = GetDlgItemInt(IDC_EDT_PORT_ONVIF);
	m_stNet.stNetPort.wPortSoap  = GetDlgItemInt(IDC_EDT_PORT_SOAP);
	m_stNet.stNetPort.wPortRtmp  = GetDlgItemInt(IDC_EDT_PORT_RTMP);
	m_stNet.stNetPort.wPortRtsp  = GetDlgItemInt(IDC_EDT_PORT_RTSP);
	m_stNet.stNetPort.wPortVisca = GetDlgItemInt(IDC_EDT_PORT_VISCA);
	
	GetDlgItemText(IDC_EDT_DNS1, m_stNet.stDns.szDns1, sizeof(m_stNet.stDns.szDns1));
	GetDlgItemText(IDC_EDT_DNS2, m_stNet.stDns.szDns2, sizeof(m_stNet.stDns.szDns2));
	
	if(((CButton*)GetDlgItem(IDC_CHK_DPCH))->GetCheck())
		m_stNet.stEth[0].byValid |= MR_ETHVALID_DHCP;
	else
		m_stNet.stEth[0].byValid &= ~MR_ETHVALID_DHCP;
	
	GetDlgItemText(IDC_EDT_IPADDR,  m_stNet.stEth[0].szIPAddr, sizeof(m_stNet.stEth[0].szIPAddr));
	GetDlgItemText(IDC_EDT_SUBMASK, m_stNet.stEth[0].szSubMask, sizeof(m_stNet.stEth[0].szSubMask));
	GetDlgItemText(IDC_EDT_GETWAY,  m_stNet.stEth[0].szGateway, sizeof(m_stNet.stEth[0].szGateway));
	iRet = librmconfc_env_set(g_envDev.szIP, g_envDev.wPort, g_envDev.szUserName, g_envDev.szPassword, NULL,
		MRCONFC_ENVCMD_NETWORK, sizeof(MRCONFC_NET_CFG), &m_stNet);
	if(iRet)
	{
		AfxMessageBox("保存参数失败!");
		return;
	}
}
