最近公司某部門要在管理系統中整合簡訊收發功能,任務落到我頭上,雖然簡訊平台並不是什麼新鮮事,買裝置也能提供二次開發庫,但之前沒接觸過,於是也很投入地作了學習和研究。起初很神秘很刺激,在網上一通搜,發現純收發簡訊功能其實並不複雜,也就是通過串列埠把at
指令傳送到簡訊收發裝置,然後從串列埠讀取傳回的資料,解析其內容可以判斷是指令響應還是返回的資料。
這裡附帶說一下測試的工具,如果只是用來測試一般的at指令,手頭又沒有可用的串列埠測試工具,windows自帶的超級終端工具是個不錯的選擇,但是超級終端沒法對已經編碼的簡訊息進行解碼,因此讀取簡訊只能看到一堆亂碼。
說到簡訊息的編碼,現在各類終端支援能支援text和pdu兩種模式,據說text模式對中文支援不好,因此被我直接忽略,pdu模式要掌握也並不複雜,一是要了解pdu編碼後的報文格式,二是要掌握編碼解碼的特定規則,一般的 pdu
編碼分為十三段,由 a
到 m十三個英文本母表示,各段的簡單說明我列了個表 :
序號
pdu
分段號
說明1
a短資訊中心位址長度, 2
位十六進製制數 (1
位元組 ) 2
b短資訊中心號碼型別, 2
位十六進製制數。 3
c 短資訊中心號碼, b+c
的長度將由 a
中的資料決定。 4
d 檔案頭位元組, 2
位十六進製制數。 5
e 資訊型別, 2
位十六進製制數。 6
f 被叫號碼長度, 2
位十六進製制數。 7
g 被叫號碼型別, 2
位十六進製制數,取值同 b
。 8 h
被叫號碼,長度由 f
中的資料決定。 9
i 協議標識, 2
位十六進製制數。 10
j 資料編碼方案, 2
位十六進製制數。 11
k 有效期, 2
位十六進製制數。 12
l 使用者資料長度, 2
位十六進製制數。 13
m 使用者資料,其長度由 l
中的資料決定。 j
中設定採用 ucs2
編碼,這裡是中英文的 unicode
字元。
關於pdu更詳細的內容,可以到非犬犬的blog(
sms pdu 手冊》 。
和簡訊相關的at指令也能在非犬犬這找到,在此表示感謝。
最後把串列埠操作、at指令封裝、pdu編譯碼一通攪和做了乙個實現,
在普通手機、簡訊modem、移動上網絡卡都測試成功 了
本想附上實現的原始碼,但沒找到上傳的地方,如果遇到有興趣的,可以發郵件到[email protected]問我索取...
Jenkin郵件收發實現原理及過程詳解
一 配置 jenkins 郵箱的全域性配置 檢查是否已安裝外掛程式email extension plugin 獲取 qq 郵箱授權碼 進入 qq 郵箱 設定 賬戶 配置 jenkins 郵箱的全域性配置 系統管理 系統設定 完成郵箱 配置 測試是否配置正確 第 次構建日誌 構建專案 構建結果 本郵...
感知機原理及python實現
感知機python實現 給定乙個資料集 t yi 輸入空間中任意一點x0 到超平面s的距離為 1 w yi w x0 b 這裡 w 是 w的l2 範數 假 設超平面 s的誤分 點集合為 m,那麼 所有誤分 點到超平 面s的總 距離為 1 w xi myi w xi b 在不考慮 1 w 的情 況下得...
非越獄iOS裝置的遠端控制實現原理
webdriveragent是facebook基於xcuitest推出的ios的移動測試框架,支援目前市面上所有ios9以上的裝置。webdriveragent 作為新的基於 xcuitest 的測試工具,有其固有優點 具體使用 請檢視官網 要注意的 1 taget 證書要設定成開發者的證書 2 在...