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

📄 sendinfodlg.cpp

📁 mobitex 网络的终端采用的串口通信程序。目前正在使用
💻 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 + -