2013-06-22 75 views
2

我想解碼在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

回答

2

請務必包括PDUConverter.dll在您的項目。

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

Console.WriteLine(sms.UserDataText); 

解碼的第一個參數是您的RAW PDU串包括在所述報頭端,第二個參數是告訴解碼器,一個標頭存在的標誌。

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

如果您在開始時看到陌生字符,那是因爲您有一個「智能消息」,即多部分短信應該連接成一個大消息,這是諾基亞發明的一個技巧。

該類別GsmComm.PduConverter.SmartMessaging.SmartMessageDecoder可能是如果你想處理這個聰明的消息事情的幫助。