// PageSerialPort.cpp : implementation file // #include "stdafx.h" #include "mgrnve.h" #include "ConnectionManager.h" #include "PageSerialPort.h" #include "PageControlPtz.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif extern ULONG g_Baudrate[MAX_BAUDRATE_COUNT]; ///////////////////////////////////////////////////////////////////////////// // CPageSerialPort dialog CPageSerialPort::CPageSerialPort(CWnd* pParent, CMgrNVE* pMgrCM, CConnectionManager *pConnMgr) : CParamDlg(CPageSerialPort::IDD, pParent, pMgrCM, pConnMgr) { //{{AFX_DATA_INIT(CPageSerialPort) m_strText = _T(""); //}}AFX_DATA_INIT m_uPort = 0; m_pNet5Api = NULL; m_pMsgMgr = NULL; ZeroMemory(m_SerialInfo, sizeof(m_SerialInfo)); } void CPageSerialPort::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CPageSerialPort) DDX_Control(pDX, IDC_CB_STOPBIT, m_cbStopbit); DDX_Control(pDX, IDC_CB_PORT, m_cbPort); DDX_Control(pDX, IDC_CB_PARITY, m_cbParity); DDX_Control(pDX, IDC_CB_FLOW, m_cbFlowControl); DDX_Control(pDX, IDC_CB_BAUDRATE, m_cbBaudrate); DDX_Text(pDX, IDC_EDIT_SERIAL_TEXT, m_strText); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CPageSerialPort, CDialog) //{{AFX_MSG_MAP(CPageSerialPort) ON_CBN_SELCHANGE(IDC_CB_PORT, OnSelchangeCbPort) ON_BN_CLICKED(IDC_BTN_APPLY, OnBtnApply) ON_BN_CLICKED(IDC_BTN_SEND, OnBtnSend) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPageSerialPort message handlers BOOL CPageSerialPort::SaveSetting() { return TRUE; } BOOL CPageSerialPort::ResetSetting() { if (m_cbPort.GetCurSel() == 0) { m_cbBaudrate.SetCurSel(6); } else { m_cbBaudrate.SetCurSel(3); } m_cbParity.SetCurSel(0); m_cbFlowControl.SetCurSel(0); m_cbStopbit.SetCurSel(0); return TRUE; } BOOL CPageSerialPort::UpdateSetting() { return TRUE; } BOOL CPageSerialPort::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here ULONG i; m_pNet5Api = m_pConnection->GetNet5Api(); m_pMsgMgr = m_pMgrNVE->GetMsgManager(); for (i=0; iNet5Command(NET5_NC_GET_COMM_STATE, &i, (ULONG*)&m_SerialInfo[i], NULL, NULL), "Cannot get serial port infomation"); } m_cbPort.AddString("0"); m_cbPort.AddString("1"); m_cbPort.SetCurSel(m_uPort); m_cbBaudrate.AddString("1200"); m_cbBaudrate.AddString("2400"); m_cbBaudrate.AddString("4800"); m_cbBaudrate.AddString("9600"); m_cbBaudrate.AddString("19200"); m_cbBaudrate.AddString("38400"); m_cbBaudrate.AddString("115200"); m_cbParity.AddString("none"); m_cbParity.AddString("even"); m_cbParity.AddString("odd"); m_cbFlowControl.AddString("none"); m_cbFlowControl.AddString("software"); m_cbFlowControl.AddString("hardware"); m_cbStopbit.AddString("1"); m_cbStopbit.AddString("2"); ShowSerialInfo(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CPageSerialPort::ShowSerialInfo() { for (ULONG i=0; iNet5Command(NET5_NC_SET_COMM_STATE, &m_uPort, (ULONG*)&m_SerialInfo[m_uPort], NULL, NULL), "Cannot set serial information"); } void CPageSerialPort::OnBtnSend() { // TODO: Add your control notification handler code here char szText[NVE_MAX_STR_LENGTH]; ULONG uLen; UpdateData(TRUE); strcpy(szText, (LPSTR)(LPCSTR)m_strText); uLen = strlen(szText); CHECK_AND_RETURN(m_pNet5Api->Net5Command(NET5_NC_SEND_SERIAL_DATA, &m_uPort, (ULONG*)szText, &uLen, NULL), "Cannot send serial data"); }