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

📄 serialconfig.cpp

📁 它是一个可以实时交互的嵌入式软件系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// SerialConfig.cpp : implementation file
//

#include "stdafx.h"
#include "netsdkdemo.h"
#include "SerialConfig.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSerialConfig dialog


CSerialConfig::CSerialConfig(CWnd* pParent /*=NULL*/)
	: CDialog(CSerialConfig::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSerialConfig)
	m_bDialBack = FALSE;
	m_bEncrypt = FALSE;
	m_IPmask = _T("");
	m_localIP = _T("");
	m_phoneNo = _T("");
	m_remoteIP = _T("");
	m_username = _T("");
	m_userpsw = _T("");
	m_verifypsw = _T("");
	m_decodeAddress = 0;
	//}}AFX_DATA_INIT
}


void CSerialConfig::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSerialConfig)
	DDX_Control(pDX, IDC_BOUD485SEL, m_baud485sel);
	DDX_Control(pDX, IDC_BOUD232SEL, m_baud232sel);
	DDX_Control(pDX, IDC_STOPBIT485SEL, m_stopbit485sel);
	DDX_Control(pDX, IDC_STOPBIT232SEL, m_stopbit232sel);
	DDX_Control(pDX, IDC_PPPMODESEL, m_PPPmodesel);
	DDX_Control(pDX, IDC_OPERATEMODESEL, m_operatemodesel);
	DDX_Control(pDX, IDC_FLOW485SEL, m_flow485sel);
	DDX_Control(pDX, IDC_FLOW232SEL, m_flow232sel);
	DDX_Control(pDX, IDC_DECODETYPESEL, m_decodetypesel);
	DDX_Control(pDX, IDC_DBMODESEL, m_dbmodesel);
	DDX_Control(pDX, IDC_DATABIT485SEL, m_databit485sel);
	DDX_Control(pDX, IDC_DATABIT232SEL, m_databit232sel);
	DDX_Control(pDX, IDC_COPYCHLSEL, m_copychlsel);
	DDX_Control(pDX, IDC_CHLNOSEL, m_chlnosel);
	DDX_Control(pDX, IDC_CHECKBIT485SEL, m_checkbit485sel);
	DDX_Control(pDX, IDC_CHECKBIT232SEL, m_checkbit232sel);
	DDX_Check(pDX, IDC_DIALBACK_CHECK, m_bDialBack);
	DDX_Check(pDX, IDC_ENCRYPT_CHECK, m_bEncrypt);
	DDX_Text(pDX, IDC_IPMASK, m_IPmask);
	DDX_Text(pDX, IDC_LOCALIP, m_localIP);
	DDX_Text(pDX, IDC_PHONENO, m_phoneNo);
	DDX_Text(pDX, IDC_REMOTEIP, m_remoteIP);
	DDX_Text(pDX, IDC_USERNAME, m_username);
	DDX_Text(pDX, IDC_USERPSW, m_userpsw);
	DDX_Text(pDX, IDC_VERIFYPSW, m_verifypsw);
	DDX_Text(pDX, IDC_DECODEIP, m_decodeAddress);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSerialConfig, CDialog)
	//{{AFX_MSG_MAP(CSerialConfig)
	ON_BN_CLICKED(IDC_APPLY232, OnApply232)
	ON_CBN_SELCHANGE(IDC_OPERATEMODESEL, OnSelchangeOperatemodesel)
	ON_BN_CLICKED(IDC_APPLY485, OnApply485)
	ON_CBN_SELCHANGE(IDC_CHLNOSEL, OnSelchangeChlnosel)
	ON_BN_CLICKED(IDC_RESTORE232, OnRestore232)
	ON_BN_CLICKED(IDC_RESTORE485, OnRestore485)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSerialConfig message handlers

void CSerialConfig::SetDevice (DeviceNode *nDev)
{
	m_Device = nDev;
}

int GetBaudRateSel(int boudrate)
{
	int ret = 0;
	switch(boudrate) 
	{
	case 300:
		ret = 0;
		break;
	case 600:
		ret = 1;
		break;
	case 1200:
		ret = 2;
		break;
	case 2400:
		ret = 3;
		break;
	case 4800:
		ret = 4;
		break;
	case 9600:
		ret = 5;
		break;
	case 19200:
		ret = 6;
		break;
	case 38400:
		ret = 7;
		break;
	case 57600:
		ret = 8;
		break;
	case 76800:
		ret = 9;
		break;
	case 115200:
		ret = 10;
		break;
	default:
		break;
	}
	return ret;
}

int GetBaudRate(int boudratesel)
{
	int ret = 0;
	switch(boudratesel) 
	{
	case 0:
		ret = 300;
		break;
	case 1:
		ret = 600;
		break;
	case 2:
		ret = 1200;
		break;
	case 3:
		ret = 2400;
		break;
	case 4:
		ret = 4800;
		break;
	case 5:
		ret = 9600;
		break;
	case 6:
		ret = 19200;
		break;
	case 7:
		ret = 38400;
		break;
	case 8:
		ret = 57600;
		break;
	case 9:
		ret = 76800;
		break;
	case 10:
		ret = 115200;
		break;
	default:
		break;
	}
	return ret;
}

int GetDatabitSel(int databit)
{
	int ret = 0;
	switch(databit) 
	{
	case 5:
		ret = 0;
		break;
	case 6:
		ret = 1;
		break;
	case 7:
		ret = 2;
		break;
	case 8:
		ret = 3;
		break;
	default:
		break;
	}
	return ret;
}

int GetDatabit(int databitsel)
{
	int ret = 0;
	switch(databitsel) 
	{
	case 0:
		ret = 5;
		break;
	case 1:
		ret = 6;
		break;
	case 2:
		ret = 7;
		break;
	case 3:
		ret = 8;
		break;
	default:
		break;
	}
	return ret;
}

BOOL CSerialConfig::OnInitDialog() 
{
	CDialog::OnInitDialog();
	g_SetWndStaticText(this);

	CRect rc(0, 0, 0, 0);
	GetParent()->GetClientRect(&rc);
	((CTabCtrl*)GetParent())->AdjustRect(FALSE, &rc);
	MoveWindow(&rc);

	//初始化界面
	m_checkbit232sel.InsertString(0, MSG_SERIALCFG_NONE);
	m_checkbit232sel.InsertString(1, MSG_SERIALCFG_ODD);
	m_checkbit232sel.InsertString(2, MSG_SERIALCFG_EVEN);
	
	m_flow232sel.InsertString(0, MSG_SERIALCFG_NOCTRL);
	m_flow232sel.InsertString(1, MSG_SERIALCFG_SCTRL);
	m_flow232sel.InsertString(2, MSG_SERIALCFG_HCTRL);

	m_operatemodesel.InsertString(0, MSG_SERIALCFG_PPPOE);
	m_operatemodesel.InsertString(1, MSG_SERIALCFG_CONSOLE);
	m_operatemodesel.InsertString(2, MSG_SERIALCFG_TRANSPARENT);

	m_PPPmodesel.InsertString(0, MSG_SERIALCFG_ACTIVE);	
	m_PPPmodesel.InsertString(1, MSG_SERIALCFG_PASSIVE);
	
	m_dbmodesel.InsertString(0, MSG_SERIALCFG_SPECIFIED);
	m_dbmodesel.InsertString(1, MSG_SERIALCFG_DEFAULT);

	m_checkbit485sel.InsertString(0, MSG_SERIALCFG_NONE);
	m_checkbit485sel.InsertString(1, MSG_SERIALCFG_ODD);
	m_checkbit485sel.InsertString(2, MSG_SERIALCFG_EVEN);

	m_flow485sel.InsertString(0, MSG_SERIALCFG_NOCTRL);
	m_flow485sel.InsertString(1, MSG_SERIALCFG_SCTRL);
	m_flow485sel.InsertString(2, MSG_SERIALCFG_HCTRL);


	CString sTemp;
	char cTemp[100];
	m_nChanSel = 0;
	m_nCopyChanNum = -1;
	m_copychlsel.ResetContent();
	m_chlnosel.ResetContent();	
	sTemp.Format(_T(NAME_SERIALCFG_ALLCHANNEL));
	m_copychlsel.AddString(sTemp);
	
	bSetSerial232 = FALSE;
	bGet232Serial = FALSE;
	
	for(int i=0; i < m_Device->Info.byChanNum; i++)
	{
		bGet485Serial[i] = FALSE;
		bSetSerial485[i] = FALSE;
		sTemp.Format("%d", (i+1));
		sTemp = NAME_SERIALCFG_CHANNEL + sTemp;
		m_chlnosel.AddString(sTemp);
		m_copychlsel.AddString(sTemp);
		m_nChanNum = i;
		//if(m_bConnectServer)
		//{
			if(!CLIENT_GetDevConfig(m_Device->LoginID, DEV_GET_DECODERCFG, m_nChanNum,&decodercfg[i], sizeof(NET_DEV_DECODERCFG), &dwReturned))
			{		
			//	sTemp.Format("获取通道%d 485串口参数失败!: DEV_GET_DECODERCFG = %d \n", m_nChanNum, NET_DVR_GetLastError());
				AfxMessageBox("485 error");	
			}
			else
			{
				bGet485Serial[i] = TRUE;
			}
	//	}	
	}
	if(bGet485Serial[m_nChanSel])
	{
		m_nChanNum = m_nChanSel;
		m_baud485sel.SetCurSel(GetBaudRateSel(decodercfg[m_nChanSel].dwBaudRate));
		m_databit485sel.SetCurSel(GetDatabitSel(decodercfg[m_nChanSel].byDataBit));
		m_stopbit485sel.SetCurSel(decodercfg[m_nChanSel].byStopBit);
		m_checkbit485sel.SetCurSel(decodercfg[m_nChanSel].byParity);
		m_flow485sel.SetCurSel(decodercfg[m_nChanSel].byFlowcontrol);
		m_decodetypesel.SetCurSel(decodercfg[m_nChanSel].wDecoderType);
		m_decodeAddress = (BYTE)decodercfg[m_nChanSel].wDecoderAddress;
		GetDlgItem(IDC_APPLY232)->EnableWindow(TRUE);
		GetDlgItem(IDC_COPYOK)->EnableWindow(TRUE);
		GetDlgItem(IDC_APPLY485)->EnableWindow(TRUE);	
	}	
//	if(m_bConnectServer)
//	{
		if(!CLIENT_GetDevConfig(m_Device->LoginID, DEV_GET_RS232CFG, 0, &rs232cfg, sizeof(NET_DEV_RS232CFG), &dwReturned))
		{
			//sTemp.Format("获取232串口参数失败!: NET_DVR_GET_RS232CFG = %d \n", NET_DVR_GetLastError());

⌨️ 快捷键说明

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