📄 sendinfodlg.cpp
字号:
// SendInfoDlg.cpp : implementation file
//
#include "stdafx.h"
#include "mascdriver.h"
#include "SendInfoDlg.h"
#include "MascdriverDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSendInfoDlg dialog
extern CSendInfoDlg* pSendInfoDlg;
extern CMascdriverDlg* pMascDlg;
CSendInfoDlg::CSendInfoDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSendInfoDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSendInfoDlg)
m_bMailBox = FALSE;
m_bPosAck = FALSE;
m_iPktType = 2;
m_edtAddressess = 0;
m_strEditData = _T("01234567890123456789");
m_logFileName = _T("C:\\LOG.TXT");
m_iOneTime = 60;
m_iMaxTime = 1000000;
//}}AFX_DATA_INIT
}
void CSendInfoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSendInfoDlg)
DDX_Check(pDX, IDC_CHECK_MAILBOX, m_bMailBox);
DDX_Check(pDX, IDC_CHECK_POSACK, m_bPosAck);
DDX_Text(pDX, IDC_EDT_PKTTYPE, m_iPktType);
DDX_Text(pDX, IDC_ADDRESSEE, m_edtAddressess);
DDX_Text(pDX, IDC_EDT_SEND_DATA, m_strEditData);
DDX_Text(pDX, IDC_EDIT_LOG_FILE, m_logFileName);
DDX_Text(pDX, IDC_EDIT_ONE_TIME, m_iOneTime);
DDX_Text(pDX, IDC_EDIT_MAX_TIME, m_iMaxTime);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSendInfoDlg, CDialog)
//{{AFX_MSG_MAP(CSendInfoDlg)
ON_BN_CLICKED(IDC_RADIO128, OnRadio128)
ON_WM_CREATE()
ON_BN_CLICKED(IDC_BTN_SEND, OnBtnSend)
ON_BN_CLICKED(IDC_BTN_CONTINUE_SEND, OnBtnContinueSend)
ON_EN_KILLFOCUS(IDC_EDIT_LOG_FILE, OnKillfocusEditLogFile)
ON_BN_CLICKED(IDC_BTN_STOP_SEND, OnBtnStopSend)
ON_EN_KILLFOCUS(IDC_EDIT_ONE_TIME, OnKillfocusEditOneTime)
ON_EN_KILLFOCUS(IDC_EDIT_MAX_TIME, OnKillfocusEditMaxTime)
ON_WM_SHOWWINDOW()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSendInfoDlg message handlers
void CSendInfoDlg::OnRadio128()
{
// TODO: Add your control notification handler code here
}
int CSendInfoDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
pSendInfoDlg = this;
return 0;
}
void CSendInfoDlg::OnBtnSend()
{
pMascDlg->m_shouldSend ++;
UpdateData(TRUE);
pMascDlg->mpak_sent.addressee = m_edtAddressess;
if (m_bPosAck == TRUE) pMascDlg->mpak_sent.POSACK_F =1;
else pMascDlg->mpak_sent.POSACK_F =0;
if (m_bMailBox == TRUE) pMascDlg->mpak_sent.MAILBOX_F=1;
else pMascDlg->mpak_sent.MAILBOX_F=0;
pMascDlg->mpak_sent.PacketClass=0; //用户发送的MPAK 包属于用户信息包,此值只能为0或3
pMascDlg->mpak_sent.EXTERN_F=0; //用户只要求在网内发送,此值只能为0或1
pMascDlg->mpak_sent.PacketType=m_iPktType ; // 1 text;2 data ;3 STATUS;4 HPDATA;1extpak,用户要求以DATA 的方式发送.
pMascDlg->mpak_sent.SENDLIST_F = 0;
pMascDlg->mpak_sent.protocolId=0; //只有高级协议才能用到
pMascDlg->mpak_sent.TrafficState=0; //此项不许改变
pMascDlg->mpak_sent.UNKNOWN_F=0; //此项不许改变
if (pMascDlg->mpak_sent.PacketType!=3)
{
switch (GetCheckedRadioButton(IDC_RADIO128,IDC_RADIOSELF))
{
case IDC_RADIOSELF:
{
int i,j;
j=m_strEditData.GetLength();
for (i=0;i<j;i++)
pMascDlg->mpak_sent.BinData[i]=m_strEditData[i];
pMascDlg->mpak_sent.numchar=j;
break;
}
case IDC_RADIO128:
{
int i;
for(i=0;i<128;i++)
pMascDlg->mpak_sent.BinData[i]=char ((rand()%10)+0x30);
pMascDlg->mpak_sent.numchar=128;
break;
};
case IDC_RADIO256:
{
int i;
for(i=0;i<256;i++)
pMascDlg->mpak_sent.BinData[i]=char ((rand()%10)+0x30);
pMascDlg->mpak_sent.numchar=256;
break;
};
case IDC_RADIO512:
{
int i;
for(i=0;i<512;i++)
pMascDlg->mpak_sent.BinData[i]=char ((rand()%10)+0x30);
pMascDlg->mpak_sent.numchar=512;
break;
};
}
}else
pMascDlg->mpak_sent.status=atoi(m_strEditData);;
pMascDlg->sendMpak(pMascDlg->mpak_sent); //调用发送函数进行发送.
}
void CSendInfoDlg::OnBtnContinueSend()
{
// TODO: Add your control notification Handler code here
UpdateData(TRUE);
//将参数设置记录到主对话框
pMascDlg->iMaxTime = m_iMaxTime;
pMascDlg->iOneTime = m_iOneTime;
CString FileName;
FileName = m_logFileName;
pMascDlg->m_logFileName = FileName;
pMascDlg->m_iMpakReturned = 0;
pMascDlg->iDisconnTime = 0;
pMascDlg->m_shouldSend =0;
pMascDlg->m_sended = 0;
pMascDlg->m_received = 0;
pMascDlg->inNormalNo = 0;
//////////
CString tempStr;
tempStr = "Begin\n";
{
CFile f( FileName, CFile::modeCreate | CFile::modeWrite |CFile::modeNoTruncate|CFile::shareDenyNone );
f.Seek(0,CFile::end);
f.Write(tempStr,tempStr.GetLength()) ;
f.Close();
}
pMascDlg->fBegin = true;
{
UpdateData(TRUE);
pMascDlg->mpak_sent.addressee = m_edtAddressess;
if (m_bPosAck == TRUE) pMascDlg->mpak_sent.POSACK_F =1;
else pMascDlg->mpak_sent.POSACK_F =0;
if (m_bMailBox == TRUE) pMascDlg->mpak_sent.MAILBOX_F=1;
else pMascDlg->mpak_sent.MAILBOX_F=0;
pMascDlg->mpak_sent.PacketClass=0; //用户发送的MPAK 包属于用户信息包,此值只能为0或3
pMascDlg->mpak_sent.EXTERN_F=0; //用户只要求在网内发送,此值只能为0或1
pMascDlg->mpak_sent.PacketType=m_iPktType ; // 1 text;2 data ;3 STATUS;4 HPDATA;1extpak,用户要求以DATA 的方式发送.
pMascDlg->mpak_sent.SENDLIST_F = 0;
pMascDlg->mpak_sent.protocolId=0; //只有高级协议才能用到
pMascDlg->mpak_sent.TrafficState=0; //此项不许改变
pMascDlg->mpak_sent.UNKNOWN_F=0; //此项不许改变
if (pMascDlg->mpak_sent.PacketType!=3)
{
switch (GetCheckedRadioButton(IDC_RADIO128,IDC_RADIOSELF))
{
case IDC_RADIOSELF:
{
int i;
for (i=0;i<m_strEditData.GetLength();i++)
pMascDlg->mpak_sent.BinData[i]=m_strEditData[i];
pMascDlg->mpak_sent.numchar=i;
break;
}
case IDC_RADIO128:
{
int i;
for(i=0;i<128;i++)
pMascDlg->mpak_sent.BinData[i]=char ((rand()%10)+0x30);
pMascDlg->mpak_sent.numchar=128;
break;
};
case IDC_RADIO256:
{
int i;
for(i=0;i<256;i++)
pMascDlg->mpak_sent.BinData[i]=char ((rand()%10)+0x30);
pMascDlg->mpak_sent.numchar=256;
break;
};
case IDC_RADIO512:
{
int i;
for(i=0;i<512;i++)
pMascDlg->mpak_sent.BinData[i]=char ((rand()%10)+0x30);
pMascDlg->mpak_sent.numchar=512;
break;
};
}
}else
pMascDlg->mpak_sent.status=atoi(m_strEditData);;
}
}
void CSendInfoDlg::OnKillfocusEditLogFile()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
pMascDlg->m_logFileName = m_logFileName;
}
void CSendInfoDlg::OnBtnStopSend()
{
// TODO: Add your control notification handler code here
pMascDlg->fBegin = FALSE;
}
void CSendInfoDlg::OnKillfocusEditOneTime()
{
UpdateData(TRUE);
pMascDlg->iOneTime = m_iOneTime;
}
void CSendInfoDlg::OnKillfocusEditMaxTime()
{
UpdateData(TRUE);
pMascDlg->iMaxTime = m_iMaxTime;
}
void CSendInfoDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
CheckDlgButton(IDC_RADIO128,1);
m_edtAddressess= pMascDlg->mpak_sent.sender;
m_logFileName.Format("%s%d%s","c:\\",pMascDlg->mpak_sent.sender,".TXT");
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -