文本模式下发长短信 AT+CSMP 的参数 fo vp pid dcs,其中主要是 fo 设置 Bit No. 7 RP 0 6 UDHI 1 5 SRR 0 4 VPF 1 0 3 2 RD 0 1 MTI 0 1 0
要实现发送长短信,必须设 bit6=1,即 UDHI=1。标准版本软件默认 17、49,一旦设置 81 就会返回 error 的。 修改后的软件可以通过 AT 指令控制 AT+CSMP 中 fo 参数设置。 fo=0x51(十进制 81、二进制 1010001),set UDHI 作用是通知 SMS 中心这个短信是长信。 设了 UDHI 后的发信内容前 6 个字节为长信协议头, 是通知接收方如何组合长信的, 如没有 协议头发出的会作单一条短信对待。 通过模块实现文本模式发送长短信,是分多次发的,每次不大于短信规定的 140 字节,模 块是不会智能加上协议头。 以两条为例; 第一条 05 00 03 39 02 01 4F 60 59 7D 30 02 //你好。 第二条 05 00 03 39 02 02 8B F7 7A 0D 50 19 // 请稍候 上述经发送第一条后,再发第二条,手机将会显示: 你好。请稍候 协议头解析 05—— 协议头的长度 00 ——标志这是个分拆短信 03 ——分拆数据元素的长度 39 ——唯一标志(用于把两条短信合并) 02 ——一共两条 02 ——这是第二条 AT+CMGF=1 OK AT+CSCS="UCS2" OK AT+CSCA? +CSCA: "002B0038003600310033003800300030003200310030003500300030",145 OK AT+CSMP=81,167,0,25 OK
AT+CMGS="00310033003800310038003200370030003000360039" > 0500033902014F60597D3002 +CMGS: 115 OK AT+CMGS="00310033003800310038003200370030003000360039" > 0500033902028BF77A0D5019 +CMGS: 116 OK PDU 模式发送长短信 通过模块实现 PDU 模式发送长短信,也是分多次发的,每次不大于短信规定的 140 字节, 模块是不会智能加上协议头。
0891683108200305F0——SMSC 地址,也可以直接用 00 代替,表示用默认的地址 51——有协议头标志 00——MR 0D91683118280760F9——回复地址 00——TP-PID 08——TP-DCS 01——时间戳 (TP-SCTS) 0A——用户信息长度 (TP-UDL) 05——协议头的长度 00——标志这是个分拆短信 03——分拆数据元素的长度 23——唯一标志(用于把两条短信合并) 02——一共两条 01——这是第一条
AT+CMGF=0 OK AT+CSCS="UCS2" OK AT+CSCA? +CSCA: "002B0038003600310033003800300030003200310030003500300030",145 OK AT+CMGS=25 > 0051000D91683118280760F90008010A0500032302014F60597D +CMGS: 117 OK AT+CMGS=25 > 0051000D91683118280760F90008010A0500032302024F60597D +CMGS: 118 OK