二进制表示形式:0 0 0 10 0 01
TP-MTI:01
TP-Message-Type-Indicator(消息类型指示符)
Bit1,0:01 指示为SMS-SUBMIT类型
TP-RD:0
TP-Reject-Duplicates(是否拒绝相同重复消息)
Bit2:0 指示短消息中心接受未转发的具有相同TP-MR的消息。
TP-VPF:10
TP-Validity-Period-Format(有效期格式)
Bit4,3:10 指示使用相对格式。
TP-SRR:0
TP-Status-Report-Request
Bit5:0 指示不使用状态报告。
TP-UDHI:0
TP-User-Data-Header-Indicator(用户数据头标示)
Bit6:0 指示这是一个SMS消息,没有用户数据头。EMS消息需要设置。
TP-RP:0
TP-Reply-Path(回复路径)
Bit7:0 指示没有设置回复路径。
只需要将bit5设置成1即可接收回执 即pdu-type为31
11点左右gsm modem到手马上接上电脑开始测试,结果令我哭啊!!!!!发了n条没有收到一个回执。只好再查资料,同时打开SMS with the SMS PDU-mode以及hesicong大大那里找来的开发文档开始啃,哈哈!皇天不负有心人啊!终于找到个和短信接收相关的at指令AT+CNMI=<mode>,<mt>,<bm>,<ds>,<brf>
参数:
mode:
0——缓存在终端
1——直接发送到TE
mt:
0——接收到新的SMS不返回事件
1——如果接收到的SMS存储在na ,则返回
+CMTI:<mem>,<index>
2——除了Class2 SMS,新的SMS直接发送到终端,返回:
+CMT:<length><CR><LF><PDU>
3——Class3 SMS使用mt=2的方法返回,其他类型的使用mt=1的方法返回。
bm:
0——小区广播不通知
2——新的小区广播通知,返回
+CBM:<length><CR><LF><pdu>
3——Class3格式的小区广播通知,使用bm=2格式
ds:
0——状态报告不通知
1——新的状态报告通知,返回:
+CDS:<length><CR><LF><pdu>
2——如果新的状态报告存储到ME,则返回:
+CDSI:<mem>,<index>
brf:
1——始终为1
再次打开超级终端输入
at+cnmi?
+CNMI:0,1,0,0,0
果然是这里的问题了
按照前面mode定义
重新设置cnmi
at+cnmi=1,1,0,1,1
OK
再发送一条短信返回OK后大概5s终端返回了
+CDS: 26
0006320D91683161721356F6506071415354005060714153640000
第一段000632意义不是很明白(哪位大大知道麻烦告诉一声◎◎)
0D接收方号码长度
683161721356F6接收方号码
50607141535400信息到达短信中心的时间(我猜的)
5060714153640000信息发送到接收方的时间(也是猜的)
后续要做的事就是在接到回执的时候把手机号码解析出来,就可以进行统计分析了
目前的问题就解决的差不多了,不过估计编码的时候还是会产生不少的问题,到时候
再说啦