lpx280666373 发表于 2022-4-6 09:35

SIM800C/A7680C 接收的短信格式 怎么判断是PDU还是TEXT?

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   

lpx280666373 发表于 2022-4-8 16:28

+CMT: [<alpha>],<length><CR><LF><pdu> (PDU mode enabled)
+CMT: <oa>,[<alpha>],<scts>
[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]<CR><LF><data> (text mode enabled; about parameters in italics, refer Command Show Text Mode Parameters +CSDH).

<alpha> String type(string should be included in quotation marks) alphanumeric representation of <da> or <oa> corresponding to the entry found in MT phonebook;

jslkz 发表于 2022-8-18 11:40

关于A7680C的技术问题可以发邮件ABC_6868@126.COM,收到会尽快回复。

lpx280666373 发表于 2022-10-31 17:08

jslkz 发表于 2022-8-18 11:40
关于A7680C的技术问题可以发邮件,收到会尽快回复。

好的,谢谢您。
页: [1]
查看完整版本: SIM800C/A7680C 接收的短信格式 怎么判断是PDU还是TEXT?