📄 remoteserialconfig.cpp
字号:
// 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 + -