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

📄 mattrans.cpp

📁 SDK DVR/DVS HIKVISION
💻 CPP
字号:
// MatTrans.cpp : implementation file
//

#include "stdafx.h"
#include "newclient.h"
#include "MatTrans.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMatTrans dialog

CMatTrans::CMatTrans(CWnd* pParent /*=NULL*/)
	: CDialog(CMatTrans::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMatTrans)
	m_Ip = _T("");
	m_Port = 0;
	m_232FullDup = 0;
	m_485FullDup = 0;
	//}}AFX_DATA_INIT
	m_lSerialCount = 0;
}


void CMatTrans::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMatTrans)
	DDX_Control(pDX, IDC_BAUD485, m_BaudCtrl);
	DDX_Control(pDX, IDC_STOPBIT485, m_StopBitCtrl);
	DDX_Control(pDX, IDC_LIST1, m_List);
	DDX_Control(pDX, IDC_FLOW485, m_FlowCtrl);
	DDX_Control(pDX, IDC_DATABIT485, m_DataBitCtrl);
	DDX_Control(pDX, IDC_CHECKBIT485, m_CheckBitCtrl);
	DDX_Control(pDX, IDC_COMSER2, m_SerCtrl1);
	DDX_Control(pDX, IDC_COMSER, m_SerCtrl);
	DDX_Control(pDX, IDC_COMPRO, m_ProCtrl);
	DDX_Text(pDX, IDC_EDITIP, m_Ip);
	DDX_Text(pDX, IDC_EDITPORT, m_Port);
	DDX_Text(pDX, IDC_FULLDUPNUM232, m_232FullDup);
	DDX_Text(pDX, IDC_FULLDUPNUM485, m_485FullDup);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMatTrans, CDialog)
	//{{AFX_MSG_MAP(CMatTrans)
	ON_BN_CLICKED(IDC_BUTSET, OnButset)
	ON_BN_CLICKED(IDC_BUTEXIT, OnButexit)
	ON_BN_CLICKED(IDC_ADDTOLIST, OnAddtolist)
	ON_BN_CLICKED(IDC_DELFROMLIST, OnDelfromlist)
	ON_BN_CLICKED(IDC_SETFULLDUP, OnSetfulldup)
	ON_NOTIFY(HDN_ITEMCLICK, IDC_LIST1, OnItemclickList1)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMatTrans message handlers

void CMatTrans::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	//CDialog::OnCancel();
}

void CMatTrans::OnOK() 
{
	// TODO: Add extra validation here
	
	//CDialog::OnOK();
}

void CMatTrans::ConInfoToDisp(int index, int i)
{
	CString tmp;

// 	if (m_stru.struTranInfo[i].byTranChanEnable == 1)
// 	{
// 		tmp = "open";
// 	}
// 	else if (m_stru.struTranInfo[i].byTranChanEnable == 0)
// 	{
// 		tmp = "close";
// 	}
// 	m_List.SetItemText(index, 1, tmp);
// 	
// 	tmp.Empty();
// 	if (m_stru.struTranInfo[i].byLocalSerialDevice == 0)
// 	{
// 		tmp = "RS485";
// 	}
// 	else if (m_stru.struTranInfo[i].byLocalSerialDevice == 1)
// 	{
// 		tmp = "RS232 console";
// 	}
// 	else
// 	{
// 		tmp = "RS232 panel control";
// 	}
// 	m_List.SetItemText(index, 2, tmp);
// 	
// 	tmp.Empty();
// 	if (m_stru.struTranInfo[i].byRemoteSerialDevice == 1)
// 	{
// 		tmp = "232";
// 	}
// 	else if (m_stru.struTranInfo[i].byRemoteSerialDevice == 2)
// 	{
// 		tmp = "485";
// 	}
// 	m_List.SetItemText(index, 5, tmp);
// 	
// 	tmp.Format("%s", m_stru.struTranInfo[i].sRemoteDevIP);
// 	m_List.SetItemText(index, 3, tmp);
// 	
// 	tmp.Format("%d", m_stru.struTranInfo[i].wRemoteDevPort);
// 	m_List.SetItemText(index, 4, tmp);
// 	
// 	switch(m_stru.struTranInfo[i].RemoteSerialDevCfg.baudrate)
// 	{
// 	case 0:
// 		tmp.Format("%d", 50);
// 		break;
// 	case 1:
// 		tmp.Format("%d", 75);
// 		break;
// 	case 2:
// 		tmp.Format("%d", 110);
// 		break;
// 	case 3:
// 		tmp.Format("%d", 150);
// 		break;
// 	case 4:
// 		tmp.Format("%d", 300);
// 		break;
// 	case 5:
// 		tmp.Format("%d", 600);
// 		break;
// 	case 6:
// 		tmp.Format("%d", 1200);
// 		break;
// 	case 7:
// 		tmp.Format("%d", 2400);
// 		break;
// 	case 8:
// 		tmp.Format("%d", 4800);
// 		break;
// 	case 9:
// 		tmp.Format("%d", 9600);
// 		break;
// 	case 10:
// 		tmp.Format("%d", 19200);
// 		break;
// 	case 11:
// 		tmp.Format("%d", 38400);
// 		break;
// 	case 12:
// 		tmp.Format("%d", 57600);
// 		break;
// 	case 13:
// 		tmp.Format("%d", 76800);
// 		break;
// 	case 14:
// 		tmp.Format("%d", 1152000);
// 		break;
// 	default:
// 		tmp.Empty();
// 		break;
// 	}
// 	m_List.SetItemText(index, 6, tmp);
// 	
// 	switch(m_stru.struTranInfo[i].RemoteSerialDevCfg.databits)
// 	{
// 	case 0:
// 		tmp.Format("%d", 5);
// 		break;
// 	case 1:
// 		tmp.Format("%d", 6);
// 		break;
// 	case 2:
// 		tmp.Format("%d", 7);
// 		break;
// 	case 3:
// 		tmp.Format("%d", 8);
// 		break;
// 	default:
// 		tmp.Empty();
// 		break;
// 	}
// 	m_List.SetItemText(index, 7, tmp);
// 	
// 	switch(m_stru.struTranInfo[i].RemoteSerialDevCfg.stopbits)
// 	{
// 	case 0:
// 		tmp.Format("%d", 1);
// 		break;
// 	case 1:
// 		tmp.Format("%d", 2);
// 		break;
// 	default:
// 		tmp.Empty();
// 		break;
// 	}
// 	m_List.SetItemText(index, 8, tmp);
// 	
// 	switch(m_stru.struTranInfo[i].RemoteSerialDevCfg.parity)
// 	{
// 	case 0:
// 		tmp.Format("none");
// 		break;
// 	case 1:
// 		tmp.Format("odd");
// 		break;
// 	case 2:
// 		tmp.Format("even");
// 		break;
// 	default:
// 		tmp.Empty();
// 		break;
// 	}
// 	m_List.SetItemText(index, 9, tmp);
// 	
// 	switch(m_stru.struTranInfo[i].RemoteSerialDevCfg.flowcontrol)
// 	{
// 	case 0:
// 		tmp.Format("none");
// 		break;
// 	case 1:
// 		tmp.Format("soft");
// 		break;
// 	case 2:
// 		tmp.Format("hard");
// 		break;
// 	default:
// 		tmp.Empty();
// 		break;
// 	}
// 	m_List.SetItemText(index, 10, tmp);

}

BOOL CMatTrans::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_ProCtrl.SetCurSel(0);
	m_SerCtrl.SetCurSel(0);
	m_SerCtrl1.SetCurSel(0);
	
	m_DataBitCtrl.SetCurSel(0);
	m_BaudCtrl.SetCurSel(0);
	m_FlowCtrl.SetCurSel(0);
	m_StopBitCtrl.SetCurSel(0);
	m_CheckBitCtrl.SetCurSel(0);

	m_Port = 0;

	m_List.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
	
	m_List.InsertColumn(0, "mark", LVCFMT_LEFT, 60, -1);
	m_List.InsertColumn(1, "switch", LVCFMT_LEFT, 80, -1);
	m_List.InsertColumn(2, "serial port", LVCFMT_LEFT, 120, -1);
	m_List.InsertColumn(3, "IP", LVCFMT_LEFT, 150, -1);
	m_List.InsertColumn(4, "port", LVCFMT_LEFT, 60, -1);
	m_List.InsertColumn(5, "remote serial port", LVCFMT_LEFT, 120, -1);
	m_List.InsertColumn(6, "baud rate", LVCFMT_LEFT, 50, -1);
	m_List.InsertColumn(7, "data bit", LVCFMT_LEFT, 50, -1);
	m_List.InsertColumn(8, "stop bit", LVCFMT_LEFT, 50, -1);
	m_List.InsertColumn(9, "parity", LVCFMT_LEFT, 50, -1);
	m_List.InsertColumn(10, "flow control", LVCFMT_LEFT, 50, -1);
	
// 	CString tmp;
// 	memset(&m_stru, 0, sizeof(m_stru));
// 	if (!NET_DVR_MatrixGetTranInfo(m_lServerID, &m_stru))
// 	{
// 		tmp.Format("Error: NET_DVR_MatrixGetTranInfo = %d", NET_DVR_GetLastError());
// 		AfxMessageBox(tmp);
// 	}
// 	else
// 	{
// 		int index = 0;
// 		for (int i=0; i<MAX_SERIAL_NUM; i++)
// 		{
// 			tmp.Format("%d", i+1);
// 			index = m_List.InsertItem(m_List.GetItemCount(), tmp);
// 
// 			ConInfoToDisp(index, i);
// 		}
// 	}
// 	m_232FullDup = (char)m_stru.by232IsDualChan;
// 	m_485FullDup = (char)m_stru.by485IsDualChan;

	UpdateData(FALSE);
	return TRUE; 	              
}

void CMatTrans::OnButset() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);

// 	m_stru.dwSize = sizeof(m_stru);
// 	m_stru.by232IsDualChan = m_232FullDup;
// 	m_stru.by485IsDualChan = m_485FullDup;
// 
// 	if (!NET_DVR_MatrixSetTranInfo(m_lServerID, &m_stru))
// 	{
// 		CString tmp;
// 		tmp.Format("Error: NET_DVR_MatrixSetTranInfo = %d", NET_DVR_GetLastError());
// 		AfxMessageBox(tmp);
// 		return;
// 	}
// 	MessageBox("success");
}


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




void CMatTrans::OnAddtolist() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
// 	POSITION pos = m_List.GetFirstSelectedItemPosition();
// 	if (pos == NULL)
// 	{
// 		AfxMessageBox("select an item first!");
// 		return;
// 	}
// 	int sel = m_List.GetNextSelectedItem(pos);
// 
// 	memset(&(m_stru.struTranInfo[sel]), 0, sizeof(m_stru.struTranInfo[sel]));
// 
// 	m_stru.struTranInfo[sel].byTranChanEnable = m_ProCtrl.GetCurSel();
// 	m_stru.struTranInfo[sel].byLocalSerialDevice = m_SerCtrl.GetCurSel();
// 	m_stru.struTranInfo[sel].byRemoteSerialDevice = m_SerCtrl1.GetCurSel()+1;
// 	sprintf(m_stru.struTranInfo[sel].sRemoteDevIP, "%s", m_Ip);
// 	m_stru.struTranInfo[sel].wRemoteDevPort = m_Port;
// 	m_stru.struTranInfo[sel].RemoteSerialDevCfg.baudrate = m_BaudCtrl.GetCurSel();
// 	m_stru.struTranInfo[sel].RemoteSerialDevCfg.databits = m_DataBitCtrl.GetCurSel();
// 	m_stru.struTranInfo[sel].RemoteSerialDevCfg.stopbits = m_StopBitCtrl.GetCurSel();
// 	m_stru.struTranInfo[sel].RemoteSerialDevCfg.parity = m_CheckBitCtrl.GetCurSel();
// 	m_stru.struTranInfo[sel].RemoteSerialDevCfg.flowcontrol = m_FlowCtrl.GetCurSel();
// 
// 	ConInfoToDisp(sel, sel);
// 	UpdateData(FALSE);
}

void CMatTrans::OnDelfromlist() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
// 	POSITION pos = m_List.GetFirstSelectedItemPosition();
// 	if (pos == NULL)
// 	{
// 		return;
// 	}
// 	int sel = m_List.GetNextSelectedItem(pos);
// 
// 	memset(&(m_stru.struTranInfo[sel]), 0, sizeof(m_stru.struTranInfo[sel]));
// 
// 	ConInfoToDisp(sel, sel);
// 	UpdateData(FALSE);
}

void CMatTrans::OnSetfulldup() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
// 	POSITION pos = m_List.GetFirstSelectedItemPosition();
// 	if (pos == NULL)
// 	{
// 		AfxMessageBox("select an item first!");
// 		return;
// 	}
// 	int sel = m_List.GetNextSelectedItem(pos);
// 
// 	if (m_stru.struTranInfo[sel].sRemoteDevIP != "" && m_stru.struTranInfo[sel].wRemoteDevPort != 0)
// 	{
// 		if (m_stru.struTranInfo[sel].byLocalSerialDevice == 0)
// 		{
// 			m_485FullDup = sel + 1;
// 		}
// 		else
// 		{
// 			m_232FullDup = sel + 1;
// 		}
// 	}
// 
// 	UpdateData(FALSE);
}

void CMatTrans::OnItemclickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UpdateData(TRUE);

// 	HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
// 	// TODO: Add your control notification handler code here
// 	POSITION pos = m_List.GetFirstSelectedItemPosition();
// 	if (pos == NULL)
// 	{
// 		return;
// 	}
// 	int sel = m_List.GetNextSelectedItem(pos);
// 
// 	m_ProCtrl.SetCurSel(m_stru.struTranInfo[sel].byTranChanEnable);
// 	m_SerCtrl.SetCurSel(m_stru.struTranInfo[sel].byLocalSerialDevice);
// 	m_SerCtrl1.SetCurSel(m_stru.struTranInfo[sel].byRemoteSerialDevice);
// 	m_Ip.Format("%s", m_stru.struTranInfo[sel].sRemoteDevIP);
// 	m_Port = m_stru.struTranInfo[sel].wRemoteDevPort;
// 	m_BaudCtrl.SetCurSel(m_stru.struTranInfo[sel].RemoteSerialDevCfg.baudrate);
// 	m_DataBitCtrl.SetCurSel(m_stru.struTranInfo[sel].RemoteSerialDevCfg.databits);
// 	m_StopBitCtrl.SetCurSel(m_stru.struTranInfo[sel].RemoteSerialDevCfg.stopbits);
// 	m_FlowCtrl.SetCurSel(m_stru.struTranInfo[sel].RemoteSerialDevCfg.flowcontrol);
// 	m_CheckBitCtrl.SetCurSel(m_stru.struTranInfo[sel].RemoteSerialDevCfg.parity);
// 
// 	UpdateData(FALSE);
	*pResult = 0;
}

void CMatTrans::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UpdateData(TRUE);
/*	
	// TODO: Add your control notification handler code here
	POSITION pos = m_List.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		return;
	}
	int sel = m_List.GetNextSelectedItem(pos);
	
	m_ProCtrl.SetCurSel(m_stru.struTranInfo[sel].byTranChanEnable);
	m_SerCtrl.SetCurSel(m_stru.struTranInfo[sel].byLocalSerialDevice);
	m_SerCtrl1.SetCurSel(m_stru.struTranInfo[sel].byRemoteSerialDevice);
	m_Ip.Format("%s", m_stru.struTranInfo[sel].sRemoteDevIP);
	m_Port = m_stru.struTranInfo[sel].wRemoteDevPort;
	m_BaudCtrl.SetCurSel(m_stru.struTranInfo[sel].RemoteSerialDevCfg.baudrate);
	m_DataBitCtrl.SetCurSel(m_stru.struTranInfo[sel].RemoteSerialDevCfg.databits);
	m_StopBitCtrl.SetCurSel(m_stru.struTranInfo[sel].RemoteSerialDevCfg.stopbits);
	m_FlowCtrl.SetCurSel(m_stru.struTranInfo[sel].RemoteSerialDevCfg.flowcontrol);
	m_CheckBitCtrl.SetCurSel(m_stru.struTranInfo[sel].RemoteSerialDevCfg.parity);
*/	
	UpdateData(FALSE);
	*pResult = 0;
}

⌨️ 快捷键说明

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