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

📄 remoteserialconfig.cpp

📁 SDK DVR/DVS HIKVISION
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// RemoteSerialConfig.cpp : implementation file
//

#include "stdafx.h"
#include "newclient.h"
#include "RemoteSerialConfig.h"

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

/////////////////////////////////////////////////////////////////////////////
// CRemoteSerialConfig dialog
void CALLBACK fSerialDataCallBack(LONG lSerialHandle,char *pRecvDataBuffer,DWORD dwBufSize,DWORD dwUser)
{
	char pRecv[1024]; 
	CString csTemp;
	sprintf(pRecv, pRecvDataBuffer, dwBufSize);
	csTemp.Format("%s", pRecv);
	TRACE("csTemp = %s", csTemp);
}

CRemoteSerialConfig::CRemoteSerialConfig(CWnd* pParent /*=NULL*/)
	: CDialog(CRemoteSerialConfig::IDD, pParent)
{
	//{{AFX_DATA_INIT(CRemoteSerialConfig)
	m_decodeaddr = 0;
	m_IpMask = _T("");
	m_LocalIp = _T("");
	m_Psw = _T("");
	m_RemoteIp = _T("");
	m_Telephone = _T("");
	m_UserName = _T("");
	m_bSjjm = FALSE;
	m_bHuibo = FALSE;
	m_VerifyPSW = _T("");
	//}}AFX_DATA_INIT
}


void CRemoteSerialConfig::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRemoteSerialConfig)
	DDX_Control(pDX, IDC_HBMODE, m_HBModeCtrl);
	DDX_Control(pDX, IDC_PPPMODE, m_PPPModeCtrl);
	DDX_Control(pDX, IDC_COPY485CFG, m_copy485cfgctrl);
	DDX_Control(pDX, IDC_STOPBIT232, m_stopbit232);
	DDX_Control(pDX, IDC_STOPBIT485, m_stopbit485);
	DDX_Control(pDX, IDC_OPERATEMODE, m_operatemode);
	DDX_Control(pDX, IDC_FLOW485, m_flow485);
	DDX_Control(pDX, IDC_FLOW232, m_flow232);
	DDX_Control(pDX, IDC_DATABIT485, m_databit485);
	DDX_Control(pDX, IDC_DATABIT232, m_databit232);
	DDX_Control(pDX, IDC_COMBODECODETYPE, m_decodetypectrl);
	DDX_Control(pDX, IDC_COMBOCHANNEL, m_channelctrl);
	DDX_Control(pDX, IDC_CHECKBIT485, m_checkbit485);
	DDX_Control(pDX, IDC_CHECKBIT232, m_checkbit232);
	DDX_Control(pDX, IDC_BAUD485, m_baud485);
	DDX_Control(pDX, IDC_BAUD232, m_baud232);
	DDX_Text(pDX, IDC_EDITDECODEADDRESS, m_decodeaddr);
	DDX_Text(pDX, IDC_EDITIPMASK, m_IpMask);
	DDX_Text(pDX, IDC_EDITLOCALIP, m_LocalIp);
	DDX_Text(pDX, IDC_EDITPSW, m_Psw);
	DDX_Text(pDX, IDC_EDITREMOTEIP, m_RemoteIp);
	DDX_Text(pDX, IDC_EDITTELEPHONE, m_Telephone);
	DDX_Text(pDX, IDC_EDITUSERNAME, m_UserName);
	DDX_Check(pDX, IDC_SJJM, m_bSjjm);
	DDX_Check(pDX, IDC_HUIBO, m_bHuibo);
	DDX_Text(pDX, IDC_EDITVERIFYPSW, m_VerifyPSW);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CRemoteSerialConfig, CDialog)
	//{{AFX_MSG_MAP(CRemoteSerialConfig)
	ON_BN_CLICKED(IDC_485OK, On485ok)
	ON_BN_CLICKED(IDC_BUT485COPY, OnBut485copy)
	ON_CBN_SELCHANGE(IDC_COMBOCHANNEL, OnSelchangeCombochannel)
	ON_BN_CLICKED(IDSERIALOK, OnSerialok)
	ON_BN_CLICKED(IDEXIT, OnExit)
	ON_CBN_SELCHANGE(IDC_OPERATEMODE, OnSelchangeOperatemode)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRemoteSerialConfig message handlers

BOOL CRemoteSerialConfig::OnInitDialog() 
{
	CDialog::OnInitDialog();	
	// TODO: Add extra initialization here
	CRect rc(0, 0, 0, 0);
	GetParent()->GetClientRect(&rc);
	((CTabCtrl*)GetParent())->AdjustRect(FALSE, &rc);
	MoveWindow(&rc);
	
	CString sTemp;
	char cTemp[100];
	m_nChanSel = 0;
	m_lSerial = -1;
	m_nCopyChanNum = -1;
	m_copy485cfgctrl.ResetContent();
	m_channelctrl.ResetContent();	
	sTemp.Format(_T("All Channels"));
	m_copy485cfgctrl.AddString(sTemp);
	
	bSetSerialParams = FALSE;
	bGet232Serial = FALSE;
	
	for(int i=0; i<m_iChannelnumber; i++)
	{
		bGet485Serial[i] = FALSE;
		sTemp.Format("Channel%d", (m_lStartChannel+i));
		m_channelctrl.AddString(sTemp);
		m_copy485cfgctrl.AddString(sTemp);
		m_nChanNum = i+m_lStartChannel;
		if(m_bConnectServer)
		{
			if(!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_DECODERCFG, m_nChanNum,&decodercfg[i], sizeof(NET_DVR_DECODERCFG), &dwReturned))
			{		
				sTemp.Format("Get RS-485 parameters of channel%d failed!: NET_DVR_GET_DECODERCFG = %d \n", m_nChanNum, NET_DVR_GetLastError());
				AfxMessageBox(sTemp);	
			}
			else
			{
				bGet485Serial[i] = TRUE;
			}
		}
		
	}
	if(bGet485Serial[m_nChanSel])
	{
		m_nChanNum = m_nChanSel+m_lStartChannel;
		m_baud485.SetCurSel(decodercfg[m_nChanSel].dwBaudRate);
		m_databit485.SetCurSel(decodercfg[m_nChanSel].byDataBit);
		m_stopbit485.SetCurSel(decodercfg[m_nChanSel].byStopBit);
		m_checkbit485.SetCurSel(decodercfg[m_nChanSel].byParity);
		m_flow485.SetCurSel(decodercfg[m_nChanSel].byFlowcontrol);
		m_decodetypectrl.SetCurSel(decodercfg[m_nChanSel].wDecoderType);
		m_decodeaddr = (BYTE)decodercfg[m_nChanSel].wDecoderAddress;
		GetDlgItem(IDSERIALOK)->EnableWindow(TRUE);
		GetDlgItem(IDC_BUT485COPY)->EnableWindow(TRUE);
		GetDlgItem(IDC_485OK)->EnableWindow(TRUE);	
	}	
	if(m_bConnectServer)
	{
		if(!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_RS232CFG, 0, &rs232cfg, sizeof(NET_DVR_RS232CFG), &dwReturned))
		{
			sTemp.Format("Get RS-232 parameters failed!: NET_DVR_GET_RS232CFG = %d \n", NET_DVR_GetLastError());
			AfxMessageBox(sTemp);
		}
		else
		{
			m_baud232.SetCurSel(rs232cfg.dwBaudRate);
			m_databit232.SetCurSel(rs232cfg.byDataBit);
			m_stopbit232.SetCurSel(rs232cfg.byStopBit);
			m_checkbit232.SetCurSel(rs232cfg.byParity);
			m_flow232.SetCurSel(rs232cfg.byFlowcontrol);
			m_operatemode.SetCurSel(rs232cfg.dwWorkMode);
			if(rs232cfg.dwWorkMode == 0)
			{
/*				GetDlgItem(IDC_BUTTONSTART)->EnableWindow(FALSE);
				GetDlgItem(IDC_BUTTONSTOP)->EnableWindow(FALSE);
				GetDlgItem(IDC_BUTTONSEND)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITSEND)->EnableWindow(FALSE);
*/				m_PPPModeCtrl.SetCurSel(rs232cfg.struPPPConfig.byPPPMode);
				m_HBModeCtrl.SetCurSel(rs232cfg.struPPPConfig.byRedialMode);
				m_bHuibo = rs232cfg.struPPPConfig.byRedial;
				m_bSjjm = rs232cfg.struPPPConfig.byDataEncrypt;
				ZeroMemory(cTemp, 100);
				memcpy(cTemp, rs232cfg.struPPPConfig.sUsername, NAME_LEN);
				m_UserName.Format("%s", cTemp);
				ZeroMemory(cTemp, 100);
				memcpy(cTemp, rs232cfg.struPPPConfig.sPassword, PASSWD_LEN);
				m_Psw.Format("%s", cTemp);
				ZeroMemory(cTemp, 100);
				memcpy(cTemp, rs232cfg.struPPPConfig.sPassword, PASSWD_LEN);
				m_VerifyPSW.Format("%s", cTemp);

				m_RemoteIp = rs232cfg.struPPPConfig.sRemoteIP;
				m_LocalIp = rs232cfg.struPPPConfig.sLocalIP;
				m_IpMask = rs232cfg.struPPPConfig.sLocalIPMask;
				
				ZeroMemory(cTemp, 100);
				memcpy(cTemp, rs232cfg.struPPPConfig.sTelephoneNumber, PHONENUMBER_LEN);
				m_Telephone.Format("%s", cTemp);
			}
			else if(rs232cfg.dwWorkMode == 1)
			{
/*				GetDlgItem(IDC_BUTTONSTART)->EnableWindow(FALSE);
				GetDlgItem(IDC_BUTTONSTOP)->EnableWindow(FALSE);
				GetDlgItem(IDC_BUTTONSEND)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITSEND)->EnableWindow(FALSE);
*/				GetDlgItem(IDC_PPPMODE)->EnableWindow(FALSE);
				GetDlgItem(IDC_HBMODE)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITUSERNAME)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITPSW)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITVERIFYPSW)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITREMOTEIP)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITLOCALIP)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITIPMASK)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITTELEPHONE)->EnableWindow(FALSE);
				GetDlgItem(IDC_SJJM)->EnableWindow(FALSE);
				GetDlgItem(IDC_HUIBO)->EnableWindow(FALSE);
			}
			else if(rs232cfg.dwWorkMode == 2)
			{
				GetDlgItem(IDC_PPPMODE)->EnableWindow(FALSE);
				GetDlgItem(IDC_HBMODE)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITUSERNAME)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITPSW)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITVERIFYPSW)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITREMOTEIP)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITLOCALIP)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITIPMASK)->EnableWindow(FALSE);
				GetDlgItem(IDC_EDITTELEPHONE)->EnableWindow(FALSE);
				GetDlgItem(IDC_SJJM)->EnableWindow(FALSE);
				GetDlgItem(IDC_HUIBO)->EnableWindow(FALSE);
			}
			bGet232Serial = TRUE;
			GetDlgItem(IDSERIALOK)->EnableWindow(TRUE);
		}
	}
		
	m_channelctrl.SetCurSel(m_nChanSel);
	m_copy485cfgctrl.SetCurSel(m_nChanSel);
	pSerialCFG = this;
	UpdateData(FALSE);

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

void CRemoteSerialConfig::On485ok() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	m_nChanSel = m_channelctrl.GetCurSel();
	if(bGet485Serial[m_nChanSel])
	{		
		decodercfg[m_nChanSel].dwBaudRate = m_baud485.GetCurSel();
		decodercfg[m_nChanSel].byDataBit = m_databit485.GetCurSel();
		decodercfg[m_nChanSel].byStopBit = m_stopbit485.GetCurSel();

⌨️ 快捷键说明

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