如何使用GSMComm或PduBitPacker解码PDU?
问题描述:
我想解码在C#中从GSM调制解调器获取的PDU文本,我怎样才能解码它与GSMComm或PduBitPacker?如何使用GSMComm或PduBitPacker解码PDU?
请回答我一个代码
TY
(PS我已编码的文本,我不需要从现代得到它)
答
请务必包括PDUConverter.dll在您的项目。
IncomingSmsPdu sms = IncomingSmsPdu.Decode("0791893905004100640C9189398978168400003160915151238110050003110202C26735B94D87DF41", true);
Console.WriteLine(sms.UserDataText);
解码的第一个参数是您的RAW PDU串包括在所述报头端,第二个参数是告诉解码器,一个标头存在的标志。
在UserDataText内部,您可以找到SMS文本。
如果您在开始时看到陌生字符,那是因为您有一个“智能消息”,即多部分短信应该连接成一个大消息,这是诺基亚发明的一个技巧。
该类别GsmComm.PduConverter.SmartMessaging.SmartMessageDecoder可能是如果你想处理这个聪明的消息事情的帮助。
阅读两者的文档。在GSMComm的常见问题解答中,它会告诉您如何接收原始PDU,并在PduBitPacker的文档中说明如何使用它来解压PDU。 PduBitPacker似乎只适用于GSM 7位字母表,所以如果你想使用不能用7位字母表发送的语言,你必须适应它。 –
我测试过_PduBitPacker_,但解压后的字符串与短信不同。 – Alireza
@SList我不明白你对GSMComm的看法。我用我的数据创建了一个ShortMessageFromPhone对象,但是如何将它转换为DecodedShortMessage? – Alireza