在PDU模式下,如何将零散的长短信识别并连接成一个完整的短信?

问题描述 投票:0回答:1

我在GSM调制解调器上工作,通过AT命令接口读取所有存储在SM内存中的信息,PDU模式。

AT+CMGF=1
AT+CMGL=4

返回的信息是

+CMGL: 1,"REC READ","53030303","","2017/07/10 13:04:37+24"
050003FF0301A66FB93C0FCABFEB72103AEC26CFCB7410F95D9E83DC6FBA625E87C3DF723A285     
CA7BFDB617A7A0C9A97E9F4B4FB3C7781B2EF3AC85D2E9341F43788FC06D1D165D0BC4CA7A7DD
E739A81D76D7C36C76DEA530BEE5A0A4935A943A8B549D022A7F9BD3EC32C8196E977520D1110    
A4A3AA945A9B34815298250A70E243AC3D36E7A59EE2ED345

+CMGL: 2,"REC READ","53030303","","2017/07/10 13:04:37+24"
050003FF030214C6B71CD46C4E750AA8FC6D4EB3CB2067B85DD681444728A8D99C8A1450F91B9
FD781DC75365B017DCBE93A90BBCE662BAA52A60E2442D3E970DDEBD56ECFC7AEB33CDC2E97DD
70F4DB5D768DDFEDD7BC2CB7B3CBF4F9ABDD9E8B1441A85307129DE1EDF65CA480B2CBE179196   
44FCFD37450FE5D9783DCE5B0BC3CA7838ED021C8FC9683D0

+CMGL: 3,"REC READ","53030303","","2017/07/10 13:04:37+24"
050003FF0303CA6C38

这里1,2,3的数字消息是多部分的。而我想把这个消息的三个部分合并成一个完整的消息。特别是支持两个unicode字符。

c# sms at-command pdu gsmcomm
1个回答
0
投票

维基百科上的文章 是有帮助的。简而言之,每个消息的字节5和6表示放置。

  • 050003FF0301... 3部分,第1部分
  • 050003FF0302... 3部分,第2部分
  • 050003FF0303... 3部分,第3部分

还有其他需要考虑的事情,任何PDU规范都会详细说明,但这个消息头回答了你的问题,即如何以正确的顺序识别和连接它们。

© www.soinside.com 2019 - 2024. All rights reserved.