如何使用GSMComm或PduBitPacker解码PDU?

问题描述:

我想解码在C#中从GSM调制解调器获取的PDU文本,我怎样才能解码它与GSMCommPduBitPacker如何使用GSMComm或PduBitPacker解码PDU?

请回答我一个代码

TY

(PS我已编码的文本,我不需要从现代得到它)

+1

阅读两者的文档。在GSMComm的常见问题解答中,它会告诉您如何接收原始PDU,并在PduBitPacker的文档中说明如何使用它来解压PDU。 PduBitPacker似乎只适用于GSM 7位字母表,所以如果你想使用不能用7位字母表发送的语言,你必须适应它。 –

+0

我测试过_PduBitPacker_,但解压后的字符串与短信不同。 – Alireza

+0

@SList我不明白你对GSMComm的看法。我用我的数据创建了一个ShortMessageFromPhone对象,但是如何将它转换为DecodedShortMessage? – Alireza

请务必包括PDUConverter.dll在您的项目。

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

Console.WriteLine(sms.UserDataText); 

解码的第一个参数是您的RAW PDU串包括在所述报头端,第二个参数是告诉解码器,一个标头存在的标志。

在UserDataText内部,您可以找到SMS文本。

如果您在开始时看到陌生字符,那是因为您有一个“智能消息”,即多部分短信应该连接成一个大消息,这是诺基亚发明的一个技巧。

该类别GsmComm.PduConverter.SmartMessaging.SmartMessageDecoder可能是如果你想处理这个聪明的消息事情的帮助。