📄 mattrans.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 + -