本期首页 | 过往期刊 | 公司主页
CDMA WAVECOM芯片发送编码
作者:杨智慧
CDMA发中文短消息是直接发送其Unicode代码

例如:发送中文短消息“您好”其相应Unicode 编码:0x60a8 0x597d
AT+WSCL=6,4<CR> CDMA不支持PDU 好比是GSM的PDU模式。 AT+WSCL=1,2 好比是GSM的TEXT模式。
AT+CMGS="13*********",10 <CR>
0x600xa80x590x7d0x000x1a

返回代码:
+CMGS:N 表示成功发出,N 为序号。
注:程序中发送的时候应该是发送数据0x60,0xa8,0x59,0x7d,对于中文短消息其中的控制字
符也必须用其UNCODE 代码表示。消息内容的结束则以结束符来做标记,所以它的结束符
也应该是UNICODE 格式的。即在超级终端中用此种方式是无法发送成功的,因为从键盘键
入的<ctrl-Z>并非UNICODE 格式,仅ASCII 码而已。在程序中正确的结束符应该是0x00 0x1a;
在手机号码后面最好加上短消息内容长度。
不是把中文转换成的一串unicode 码直接扔给串口,而是把每个汉字转换成16进制的4个字符转换成一个ascii码。
----------------------------------------------------------------------------------------------------
但是我按照上述方法,发送短信。提示是发送成功,但对方收不到短信。
我直接读取CDMA短信猫中的短信,也是乱码,应该是ASCII转成UNICODE,但是显示不了正常的信息。

WritePort(FhndComm,'AT+CMGF=1' + #13); 设为TEXT模式,CDMA不支持PDU
Sleep(200); 延时,这是DELPHI的语法
WritePort(FhndComm,'AT+WSCL=6,4' + #13);选择中文语言
Sleep(200);

指定发送手机号,和信息宽度,宽度一定要,省去就发送不行,不知道为什么!?
WritePort(FhndComm,'AT+CMGS='+'"'+'13938225510'+'"'+',6'+#13);
Sleep(200);

WritePort(FhndComm,#$60+#$A8+#$59+#$7D+#$00+#$31);发送信息为“您好1”
延时1000毫秒后读串口返回OK,手机接收到汉字!!
Copyright 1997-2017 北京春笛信息技术有限公司 地址:北京海淀区知春路23号863软件园量子银座九层