PC機控制簡訊收發裝置原理及實現 1

2021-05-23 20:25:19 字數 1404 閱讀 4471

最近公司某部門要在管理系統中整合簡訊收發功能,任務落到我頭上,雖然簡訊平台並不是什麼新鮮事,買裝置也能提供二次開發庫,但之前沒接觸過,於是也很投入地作了學習和研究。起初很神秘很刺激,在網上一通搜,發現純收發簡訊功能其實並不複雜,也就是通過串列埠把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 在...