手機AT指令 AT CMGS發資訊

2021-08-03 09:35:33 字數 1693 閱讀 6459

鴿子 例如短資訊中心號碼為深圳 +8613800755500

對方手機號碼為 +8613612345678

要傳送的資訊為「中」

演算法步驟:

一、位址部分,用字串 addr 表示

1、將短資訊中心號碼去掉+號,看看長度是否為偶數,如果不是,最後新增f

即 addr = "+8613800755500"

=> addr = "8613800755500f"

2、將奇數字和偶數字交換。

=> addr = "683108705505f0"

3、將短資訊中心號碼前面加上字元91,91是國際化的意思

=> addr = "91683108705505f0"

4、算出 addr 長度,結果除2,格式化成2位的16進製制字串,16 / 2 = 8 => "08"

=> addr = "0891683108705505f0"

二、手機號碼部分,用字串 phone

1、將手機號碼去掉+號,看看長度是否為偶數,如果不是,最後新增f

即 phone = "+8613612345678"

=> phone = "8613612345678f"

2、將手機號碼奇數字和偶數字交換。

=> phone = "683116325476f8"

三、簡訊息部分,用字串 msg 表示

1、轉字串轉換為unicode**,例如「中」的unicode**為 4e2d,

(好像是將中字的ascii碼分開,分別轉成16進製制)。因為我用delphi,

請vb朋友自己找例子,網上應該許多

function tfrmmain.str_gb2unicode( text: string ): string;

vari,j,len:integer;

cur:integer;

t:string;

ws:widestring;

begin

result:='';

ws := text;

len := length(ws);

i := 1;

j := 0;

while i <= len do

begin

cur := ord(ws[i]);

fmtstr(t,'%4.4x',[cur]); //bcd轉換

result := result+t;

inc(i);

//移位計數達到7位的特別處理

j := (j+1) mod 7;

end;

end;

即 msg = "中"

即 msg = str_gb2unicode( msg )

=> msg = "4e2d"

2、將 msg 長度除2,保留兩位16進製制數,即 4e2d = 4 / 2 => "02",再加上 msg

=> msg = "024e2d"

四、組合

1、手機號碼前加上字串 11000d91,這是一些pdu**,寫死就行了,感興趣可以參考相關pdu格式說明

即 phone = "11000d91" + phone

=> 11000d9168683116325476f8

再超級終端演示如下

組成分析:0891683110808805f0(0891+資訊中心)+11000d91+683162071959f0(手機號)+000800+024e2d

微信JSSDK開發資訊配置

但是很多人在配置和使用的時候,老是出各種錯誤。最近專案也涉及到這個,就記錄一下過程,並對方法進行封裝。基本步驟如下 1.繫結網域名稱 先確保你使用的是認證的賬號 訂閱號,服務號 wx.config 4.通過ready介面處理成功驗證 config資訊驗證後會執行ready方法,所有介面呼叫都必須在c...

精益敏捷外包開發 資訊傳遞篇

前言 本文主要是在講述精益敏捷外包開發,為何應捨棄 過重的文件 而應改採 視覺化的看板 方能有效的整合來自不同企業,位於不同辦公區的軟體外包人員,而能共同高效的完畢高質量的交付 本文 企業的 it 部門,將產品的系統,外包給不同企業,位於不同辦公區的開發與測試人員時,所面臨的乙個最大的難題之中的乙個...

收發資訊設計 指標作輸入輸出

include include include int handleini void handle out int socketsend void handle in char msg in int len in int socketreci void handle in char msg out ...