金笛工业手机论坛

金笛工业手机论坛 (http://bbs.sendsms.cn/)
-   短信开发资料 (http://bbs.sendsms.cn/f21/)
-   -   CDMA 发送短信实例 (http://bbs.sendsms.cn/t2781/)

admin 2012-08-24 18:14

CDMA 发送短信实例
 
SendMMS()
http://blog.vckbase.com/Images/Outli...BlockStart.gifhttp://blog.vckbase.com/Images/Outli...actedBlock.gif
http://blog.vckbase.com/Images/dot.gif{
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif HANDLE hCom
= CreateFile( _T("COM1"),
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif GENERIC_READ
| GENERIC_WRITE,
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
0, NULL, OPEN_EXISTING, 0, NULL );
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
if( NULL == hCom ) returnfalse;
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif DCB dcb;
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif ::GetCommState( hCom,
&dcb );
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif dcb.BaudRate
=9600;
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif dcb.ByteSize
=8;
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif dcb.Parity
= NOPARITY;
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif dcb.StopBits
= ONESTOPBIT;
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
if( !::SetCommState( hCom, &dcb ) ) returnfalse;
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
if( !::PurgeComm( hCom, PURGE_RXCLEAR ) ) returnfalse;
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif DWORD dw;
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif ::WriteFile( hCom,
"AT\r", 3, &dw, NULL );
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
// 读串口,判断是否正常
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
// 切换到中文短信方式
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
::WriteFile( hCom, "AT+WSCL=6,4\r", 12, &dw, NULL );
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
// 读串口,判断是否正常
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif

http://blog.vckbase.com/Images/Outli...rs/InBlock.gif ::WriteFile( hCom,
"AT+CMGF=1\r", 10, &dw, NULL );
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
// 读串口,判断是否正常
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif

http://blog.vckbase.com/Images/Outli...rs/InBlock.gif WCHAR wszTxt[
500];
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif ::wcscpy( wszTxt, L
"hello 你好" );
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
int len = (int)::wcslen(wszTxt);// 字符长度
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
for( int i=0; i<len; i++ ) // 交换高低字节
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
wszTxt[i] = MAKEWORD( HIBYTE(wszTxt[i]), LOBYTE(wszTxt[i]) );
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
char szNumber[50]; // 手机号码,内容长度
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
::sprintf( szNumber, "AT+CMGS=\"13901112233\",%d\r", len*2 );
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif ::WriteFile( hCom, szNumber, (DWORD)::strlen( szNumber ),
&dw, NULL );
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif ::Sleep(
500);
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif ::WriteFile( hCom, wszTxt, len
*2, &dw, NULL );
http://blog.vckbase.com/Images/Outli...rs/InBlock.gif ::WriteFile( hCom,
"\x00\x1a\r", 3, &dw, NULL ); // 结束符
// 读串口,判断是否正常

::CloseHandle( hCom );
return true;
}


所有时间均为北京时间。现在的时间是 22:09

Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2024,Jelsoft Enterprises Ltd.