PDU的編碼--SMS編碼

編碼一個SMS通常須要以下的信息:編碼

TP_Data_Coding_SchemeTP_UD編碼方式spa

TP_Destination_Address對方號碼設計

TP_Message_Reference參考號碼code

TP_Status_Report_Request狀態報告it

TP_User_Data用戶信息io

TP_Validity_Priod有效期變量

ServiceCenterNumber短信中心號碼數據

因此在編碼器中存在以上的屬性,並在Set中加入了處理代碼,將可讀信息轉換成對應的十六進制信息。英文

特 別注意的是TP_User_Data屬性,它能夠根據用戶數據編碼自動設置TP_UDL。對於純英文編碼,TP_UDL爲全部的字符數;對於 Unicode編碼,因爲一個字符由兩個字節表示,TP_UDL爲全部的字符數*2。注意檢查TP_User_Data的長度,對於SMS來講編碼後的 TP_UD長度不能超過140字節。也就是說英文160個字符(140/7*8),中文70個字符。di

對於TP_UD的編碼在解碼器中也有說明,在此再也不贅述。

我還設計了幾個枚舉變量:

ENUM_TP_DCS編碼方式

ENUM_TP_SRI狀態報告

ENUM_TP_VALID_PERIOD有效期

ENUM_TP_VPF有效期格式

這些枚舉變量能夠簡化輸入,也利於往後擴充。

當以上內容設置好之後,基本上一個短信的架子就出來了。此時調用GetSMSPDUCode進行組合,簡單的把十六進制拼接起來就造成了一個完整的PDU代碼。

轉自bbs.sendsms.cn    

相關文章
相關標籤/搜索