C# 如何使用GSMComm或PduBitPacker解码PDU?

C# 如何使用GSMComm或PduBitPacker解码PDU?,c#,sms,decode,gsm,pdu,C#,Sms,Decode,Gsm,Pdu,我想用C#对从GSM调制解调器检索到的PDU文本进行解码,如何使用GSMComm或PduBitPacker对其进行解码 请用密码回答我 泰 (请注意,我已经对文本进行了编码,不需要从调制解调器获取)确保在项目中包含PDUConverter.dll IncomingSmsPdu sms = IncomingSmsPdu.Decode("0791893905004100640C9189398978168400003160915151238110050003110202C26735B94D87DF41

我想用C#对从GSM调制解调器检索到的PDU文本进行解码,如何使用GSMCommPduBitPacker对其进行解码

请用密码回答我


(请注意,我已经对文本进行了编码,不需要从调制解调器获取)

确保在项目中包含PDUConverter.dll

IncomingSmsPdu sms = IncomingSmsPdu.Decode("0791893905004100640C9189398978168400003160915151238110050003110202C26735B94D87DF41", true);

Console.WriteLine(sms.UserDataText);
Decode的第一个参数是原始PDU字符串,包括末尾的头,第二个参数是一个标志,告诉解码器有头

在UserDataText中,您将找到SMS文本

如果你在开头看到疏远的字符,那是因为你有一条“智能短信”,也就是说,一条由多个部分组成的短信息应该连接成一条大信息,这是诺基亚发明的一个技巧


如果您想处理此智能消息,GsmComm.PduConverter.SmartMessaging.SmartMessageDecoder类可能会有所帮助。

请阅读这两个类的文档。在GSMComm的FAQ中,它告诉您如何接收原始PDU,在PduBitPacker的文档中,它解释了如何使用它来解压缩PDU。PduBitPacker似乎仅适用于GSM 7位字母,因此如果您想使用无法以7位字母发送的语言,则必须对其进行调整。我已经测试过PduBitPacker,但解包的字符串与sms消息不同。@SList我不明白您对GSMComm的理解。我用我的数据创建了一个ShortMessageFromPhone对象,但如何将其转换为DecodedShortMessage?您可以从GSMComm获得一个原始PDU(而不是解码的消息),您可以将其输入PduBitPacker。您的测试短信的文本是什么,是否都是GSM 7位字符(例如数字或英语)?我的完整编码文本是:0791893905004100640C91893989781684000031609151238110050003110202 C26735B94D87DF41突出显示的文本是原始文本编码。其他是标题和。。。我的原文是“agjdmtpw”看看这个网站,它背后的算法是什么?