请大家帮忙看看,发消息给13058162005 ‘Hi’,出送时返回错误:
用的是SIMENS 2118 数据线连接COM1,在超级终端中:AT+CMGF=0(CTRL+Z)
OK
AT+CMGS=16(CTRL+Z)
>0891683108705505F011000B813150182600F500000B02C834(CTRL+Z)
+CMS ERROR:500把PDU改成(81改成91):
0891683108705505F011000B913150182600F500000B02C834(CTRL+Z)也出错!谢谢!
用的是SIMENS 2118 数据线连接COM1,在超级终端中:AT+CMGF=0(CTRL+Z)
OK
AT+CMGS=16(CTRL+Z)
>0891683108705505F011000B813150182600F500000B02C834(CTRL+Z)
+CMS ERROR:500把PDU改成(81改成91):
0891683108705505F011000B913150182600F500000B02C834(CTRL+Z)也出错!谢谢!
****************************************08**04********
08代表unicode
04两个字符'Hi'为4个字节
'H'=0048
'i'=0069
0891683108705505F011000B813150182600F500000B02C834
****************************************08**04********
该改成
AT+CMGS=18(CTRL+Z)
>0891683108705505F011000B813150182600F500080B0400480069(CTRL+Z)
ERROR
???
AT短信命令:(字符串) “AT+CMGS=”
短信中心号:(字符串)strCenter “13800755500”
区号:(字符串)strArea “86”
属性:(字符串)strAttrib “91”
中心手机号:(字符串)strPhone “13502821634”
数传格式:(字符串)strFormat “F5”
参数:(字符串)strParam “1101“
数据包:(字符串)strDataPack
设备号:strID “1234”
有效时间:(字符串)strValidtime “0B”二. 要发送的字符串描述:
“AT+CMGS=”+Len5+ Len1+strAttrib+strArea+strCenter+
strParam+Len2+strAttrib+strArea+strPhone+”00”+strFormat+strValidtime+
Len4+strID+strDataPack
注:Len5= Len3+ Len4+1
说明:除AT短信命令外,所有数据发送都需要以字符形式发送, 例如:要发送0X7E和0X80, 要以字符‘7’、‘E’、和‘8’、‘0’发送, 所以上述的字符串变量是两个字符代表一个字节,如:0XD须用字符‘0’、‘D’表示。
⑴ strArea+strCenter计算方法为:
结果必须为偶,否则以“F”补齐,并使每两位中数字颠倒。
例:86 13 80 07 55 50 0F → 以“F”补齐
68 31 08 70 55 05 F0
⑵ strArea+strPhone算法与⑴相同。
⑶ 长度Len2计算方法:(其他Len的计算与此相同)
计算的长度值转化为其十六进制的字符形式
例:Len2 = strArea+strPhone,
在本例中为Len2=2+11=13
用十六进制表示为:0X0D
转换为两个字符为: “0D”( 注:必须用两个字符表示,即不能是“D”)
⑷ StrID长度为4字节
例:“1234”为StrID的字符表达,需补齐为8个字符(即4个字节)
“00001234”,进行高低位颠倒,即:“34120000”
⑸ 长度Len 一律为一个字节(即两个字符)。