sim800C/A6780C 短信收发问题:
发送都为TEXT模式,AT+CMGF=1;
英文短信:
AT+CSCS="IRA";
AT+CSMP=17,167,0,0;
AT+CMGS="phoneNo.(text)";
>textContent(ctrl+z);
中文短信: AT+CSCS="UCS2";
AT+CSMP=17,167,0,8;
AT+CMGS="phoneNo.(UCS2)";
>pduContent(ctrl+z);
发送完成 中文短信 设置成 AT+CSCS="IRA"; 格式,确保接收到的短信是text格式;
但是现在遇到的问题是,有时候接收到的短信格式是PDU格式,都是以 +CMT: 形式来的,不知道该怎么判断这条信息是PDU格式的。
举实际例字如下:
接收text格式短信:+CMT: "+8615244778348","","22/03/31,09:19:08+32"
100240min
接收pdu格式短信:+CMT: "",23
0891683108401505F0040D91685142748788F80000223052215261230331D90C
两种格式短信都是 以 +CMT:""格式来的,没想明白改怎么判断按照哪种格式解析(不是解析pud短信内容)?
肉眼能辨别出来的不同就是,接收pdu格式的短信的 <+CMT: "" > 的第一个双引号内是空的。感觉通过这个信息来鉴别是pdu格式的短信不太可靠(还是我想多了,按这种方法就可以)。
还一种想到的办法是接收到短信先缓存起来,用AT+CMGF?来查询返回的是 1 还是 0,是0 按pdu格式信息来解析。
希望能给个提示! 拜谢了。主要是想解出发送方的号码,好知道给谁回复信息。
"0891683108401505F0040D91685142748788F80000223052215261230331D90C"
08 SMSC地址信息的长度;
91 SMSC地址格式
683108401505F0 SMSC地址;
685142748788F8 发送方号码;
.
短息内容 7bit 或usc2
|