message.cpp

来自「串口通讯的编程源码。很有参考价值!值得一看」· C++ 代码 · 共 90 行

CPP
90
字号
// Message.cpp : implementation file
//

#include "stdafx.h"
#include "SerTest.h"
#include "Message.h"
#include "stdlib.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMessage dialog
extern WCHAR unibuf[128];
extern HANDLE hwriteevent;
extern int lenth;

CMessage::CMessage(CWnd* pParent /*=NULL*/)
	: CDialog(CMessage::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMessage)
	m_Input = _T("");
	//}}AFX_DATA_INIT
}


void CMessage::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMessage)
	DDX_Text(pDX, IDC_INPUT, m_Input);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMessage, CDialog)
	//{{AFX_MSG_MAP(CMessage)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMessage message handlers

void CMessage::OnOK() 
{
	// TODO: Add extra validation here
	CString str;
	GetDlgItemText(IDC_INPUT,str);

	memset(unibuf,0,128*2);
	wcscpy(unibuf,L"AT+CMGF=1\r\n");
	lenth=strlen("AT+CMGF=1\r\n")+1;
	::SetEvent(hwriteevent);
	Sleep(500);

	memset(unibuf,0,128*2);
	wcscpy(unibuf,L"AT+CMGS=\"13512413972\"\r\n");
	lenth=strlen("AT+CMGS=\"13022297099\"\r\n");
	::SetEvent(hwriteevent);
	Sleep(500);

	int mylenth=wcslen(str);
	WCHAR* tem=new WCHAR[4*mylenth+4];
	memset(tem,0,lenth*4*sizeof(WCHAR));
	for(int i=0,int j=0;i<mylenth,j<4*mylenth;i++,j+=4)
	{
	    
		_itow((int)((str.GetAt(i)>>12)&(0x000f)),&tem[j],16);
		_itow((int)((str.GetAt(i)>>8)&(0x000f)),&tem[j+1],16);
		_itow((int)((str.GetAt(i)>>4)&(0x000f)),&tem[j+2],16);
		_itow((int)((str.GetAt(i)>>0)&(0x000f)),&tem[j+3],16);

	}
	tem[j]=26;
	tem[j+1]=0;
	tem[j+2]=0;
	tem[j+3]=0; 
    
    memset(unibuf,0,128*2);
	wcscpy(unibuf,tem);	
	lenth=wcslen(unibuf);
	::SetEvent(hwriteevent);

	delete []tem;
	CDialog::OnOK();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?