• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2007年7月>
            24252627282930
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            收藏夾

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            最近做了一個GPRS模塊的簡單測試,其中短消息方式比較簡單,同時也與其他GPRS模塊通用,現在將我的調試筆記寫下來。

            短消息方式:

            一、與短信相關的 AT 指令

            AT+CMGC   Send  an  SMS  command(發出一條短消息命令)    

            AT+CMGD   Delete  SMS  message(刪除 SIM 卡內存的短消息)    

            AT+CMGF   Select  SMS  message  formate (選擇短消息信息收發格式: 0-PDU;1-文本) 

            AT+CMGL   List  SMS  message  from  preferred  store(列出 SIM 卡中的短消息

            AT+CMGR   Read  SMS  message(讀短消息)    

            AT+CMGS   Send  SMS  message(發送短消息)    

            AT+CMGW   Write  SMS  message  to  memory(向 SIM 內存中寫入待發的短消息)

            AT+CMSS   Send  SMS  message  from  storage(從 SIN  |M 內存中發送短消息)

            AT+CNMI   New  SMS  message  indications(顯示新收到的短消息)    

            AT+CPMS   Preferred  SMS  message  storage(選擇短消息內存)    

            AT+CSCA   SMS  service  center  address(短消息中心地址)    

            AT+CSCB   Select  cell  broadcast  messages(選擇蜂窩廣播消息)   

            AT+CSMP   Set  SMS  text  mode  parameters(設置短消息文本模式參數)

            AT+CSMS   Select  Message  Service(選擇短消息服務)

            發送短消息有兩種方式:PDU和TEXT 模式

            二、 PDU 模式下發送中英文短消息

            AT+CMGF=0                           //首先將短信息格式設為PDU 模式

            AT+CSCS=“UCS2”           //設置字符格式為UCS2 模式

            AT+CSCA=”+86138XXXXXXXX”,145              //設置短消息服務中心地址

            注:對于中國移動的短信服務中心號是+861380xxxx500,其中xxxx是你所在的長途電話區號,不足4位就補0,比如我所在的北京是010,補0后是0100,就應該+8613800100500。

            [PDU]數據單元格式定義為:

            以下例子發送“你好”到13912345678

            發送數據是:你好

            Unicode譯碼為:4F60597D

            AT+CMGS=019 //15(PDU 規約頭固定長度 15 字節)+4(報文長度 4 個字節)

            > 0011000D91683119325476F8000801044F60597D [ctrl-Z]

            00       //為SCA預留

            11       // FO 設置PDU 類型

            00       // MR 發送參考號

            0D       //DA 目的號碼長度

            91       //DA 目的號碼類型

            68       //DA 中國的區號

            3119325476F8   //DA 目的號碼編碼

            00       // PID 發送方式

            08       //DCS 編碼模式

            01       //VP 有效期

            PDU 中用戶數據前的PDU 頭的長度是15 字節

            04       //UDL 數據長度

            4F60597D    //UD 數據內容Unicode 譯碼

            例子中目的號碼是一種內存編碼方式,將每兩位數據位置互換,余下最后單位的補 F ,如13912345678 編碼為3119325476F8。用戶使用PDU 模式發送中文短消息時只需按照上述例子,改變 TPDU 的十進制長度、手機號碼編碼、報文長度和報文內容Unicode 譯碼即可。

            設置DCS 編碼模式改變短消息發送等級:

            按照GSM08.38 協議約定,PDU 中的DCS 字段(Bit7…0)用于設置短消息內容的編碼方式 和發送等級, 具體為Bit4 用于決定Bit1 和 Bit0 的設置是否有效 (1 為有效, 0 為無效) ;Bit1和Bit0 均設置為0 表示短消息發送等級為0 等級, 即直接發送至終端而不存放在SIM卡; Bit3 設置為 1 且Bit2 設置為 0 表示短消息內容為 UCS2 編碼。上例中 DCS 字段為 08,即表示短消息內容為 UCS2 編碼且無發送等級;若改為 18 則表示短消息內容為 UCS2 編碼且按0 等級發送,即直接發送至目的終端。

            三、TEXT 模式發送短消息

                   TEXT模式只支持傳送英文及數字信息,但它的編碼要比PDU模式簡單很多,所以建議采用TXET模式發送和接受短消息。

            1、TEXT模式下發送中文短消息

            AT+CMGF=1                   //首先將短信息格式設為 TEXT 模式

            AT+CSCS=“UCS2”    //設置字符格式為UCS2 模式:

            AT+CSCA=”+86138XXXXXXXX”,145      //設置短消息服務中心地址

            注:對于中國移動的短信服務中心號是+861380xxxx500,其中xxxx是你所在的長途電話區號,不足4位就補0,比如我所在的北京是010,補0后是0100,就應該+8613800100500。

            AT+CSMP=17,167,0,24  //設置短消息發送相關參數:四參數分別為 FO、VP、PID 和 DCS,代表意義與 PDU 模式中參數相同,不同的是須以十進制表示,24 表示短消息內容為 UCS2 編碼且直接發送至目的終端,如改為 25 則表示短消息內容為 UCS2 編碼且發送至SIM 卡存儲。

            發送:AT+CMGS= 手機號碼編碼[CR]

            收到[>]響應后再發送

            [報文內容Unicode 譯碼][ctrl-Z]

            以下例子發送“你好”到13912345678

            發送數據是:你好

            Unicode譯碼為:4F60597D

            AT+CMGS=” 00310033003900310032003300340035003600370038” //直接輸入手機號碼編碼

            > 4F60597D [ctrl-Z]

            用戶使用TEXT 模式發送中文短消息時只需按照上述例子,改變手機號碼編碼和報文內容的Unicode 譯碼即可。

            2、TEXT模式下發送英文短消息

            AT+CMGF=1                   //首先將短信息格式設為 TEXT 模式

            AT+CSCS=“GSM”      //設置字符格式為GSM 模式

            AT+CSCA=”+86138XXXXXXXX”,145       //設置短消息服務中心地址

            注:對于中國移動的短信服務中心號是+861380xxxx500,其中xxxx是你所在的長途電話區號,不足4位就補0,比如我所在的北京是010,補0后是0100,就應該+8613800100500。

            AT+CSMP=17,167,0,240            //設置短消息發送相關參數:四參數分別為 FO、VP、PID 和DCS,代表意義與PDU 模式中參數相同,不同的是須以十進制表示,240 表示短消息內容為默認 GSM 編碼且直接發送至目的終端,如改為 241 則表示短消息內容為 GSM 編碼且發送至SIM 卡存儲。

            發送:AT+CMGS= “13XXXXXXXXX” [CR]

            收到[>]響應后再發送

            [報文內容][ctrl-Z]

            以下例子發送“Hello”到13912345678

            報文是:Hello

            AT+CMGS=” 13912345678” //直接輸入手機號碼

            > Hello [ctrl-Z]

            使用TEXT 模式發送英文短消息時只需按照上述例子,改變手機號碼和報文內容即可。

            以上為如何發送短信的方法,那又如何接受剛收到的短消息呢?接受剛收到的短消息有兩種方法:查詢終端方式和使用事件方式。查詢方式是先不處理網絡上 發來的信息,定期使用“AT+CMGL=0”命令讀取未讀取的短信,如果有就讀入,交給上級程序處理。然后將此短消息刪除,該方法簡單,但許多時候都在做 無用功,效率低下。實際中我們使用事件方式,通過AT+CNMI指令設置接收到的短信息存儲到SIM卡,并返回提示信息。

             

            短消息類(class)的概念:根據指定儲存的位置,短消息分為class 0 - 3四個類。也可以不指定類(no class),由ME按默認設置進行處理,存儲到內存或者SIM卡中。在TPDU的TP-DCS字節中,當bit7-bit4為00x1, 01x1, 1111時,bit1-bit0指出消息所屬類:

            00 - class 0:只顯示,不儲存
            01 - class 1:儲存在ME內存中
            02 - class 2:儲存在SIM卡中
            03 - class 3:直接傳輸到TE
            GSM Modem一般都支持一條“AT+CNMI”指令,可用于設定當有某類短消息到達時,如何處置它:只儲存在指定的內存(易失的/非易失的)中,先儲存后通知TE,還是直接轉發到TE,等等。

             

            "AT+CNMI"指令語法為

            AT+CNMI=[<mode>[,<mt>[,<bm>[,<ds>[,<bfr>]]]]]

            mode - 通知方式:

              0 - 不通知TE。

              1 - 只在數據線空閑的情況下,通知TE;否則不通知TE。

              2 - 通知TE。在數據線被占用的情況下,先緩沖起來,待數據線空閑,再行通知。

              3 - 通知TE。在數據線被占用的情況下,通知混合在數據中一起傳輸。

            mt - 消息儲存或直接轉發到TE:

              0 - 儲存到默認的內存位置(包括class 3)

              1 - 儲存到默認的內存位置,并且向TE發出通知(包括class 3)

              2 - 對于class 2,儲存到SIM卡,并且向TE發出通知;對于其它class,直接將消息轉發到 TE

              3 - 對于class 3,直接將消息轉發到 TE;對于其它class,同mt=1

            bm, ds, bfr的含義,請參考相關標準文檔。一般不需要去關心它們。

            在程序中具體實現時,使用mode=2, mt="1",即AT+CNMI=2,1,0,0,0:比較簡單。對所有類型的短消息,只要在收到ME送來的"+CMTI"通知后,用"AT+CMGR"指令讀取消息內容就行了。

            舉例如下:

            (藍色表示PC機發送的數據,紅色表示模塊返回的數據)

            AT+CMGF=1                                  //設置短消息格式為TEXT格式

            OK

            AT+CCS=”CSM”                            //設置字符格式為GSM模式

            OK

            AT+CSCA=”+8613800100500”,145     //設置短消息服務中心地址

            OK

            AT+CNMI=2,1,0,0,0                       //設置收到新短信存于SIM卡中并發CMTI通知

            OK

             

            +CMTI:”SM”,1             //收到了短信,自動彈出,其中1表示存在SIM中的序號

            AT+CMGR=1                                  //讀取短信,其中1要與上面序號對應

            +CMGR:”REC UNREAD”,”8615810533873”,,”09/04/30,10:59:17+32”,145,36,0,0”8613800100500”,145,5

            ABCD                               //收到來自手機15810533873的短信,內容為ABCD

             

            OK

            AT+CMGD=1                   //刪除短信,其中1為短信序號

            posted on 2014-10-19 10:06 聶文龍 閱讀(533) 評論(0)  編輯 收藏 引用
            人妻无码久久精品| 91久久精品视频| 精品熟女少妇AV免费久久| 久久精品久久久久观看99水蜜桃| 四虎影视久久久免费观看| 中文字幕久久亚洲一区| 久久精品国产亚洲77777| 国产精品成人无码久久久久久 | 99久久精品国产免看国产一区| 国产精品久久久久9999| 久久人人爽人爽人人爽av| 久久天天躁狠狠躁夜夜avapp| 久久综合九色综合欧美狠狠| 国内精品伊人久久久影院| 亚洲成色www久久网站夜月| 久久青青草原国产精品免费| 亚洲精品无码专区久久同性男| 久久人爽人人爽人人片AV | 久久久久国产精品| 香蕉久久夜色精品国产2020| 天天爽天天爽天天片a久久网| 伊人久久大香线蕉AV色婷婷色| 青青青伊人色综合久久| 久久久久人妻精品一区 | 国产精品99久久99久久久| 久久久久亚洲精品中文字幕| 国产国产成人精品久久| 狠狠色丁香久久婷婷综合| 欧洲国产伦久久久久久久| 亚洲欧美精品伊人久久| 精品久久久久久无码中文字幕一区| 欧美久久久久久| 久久中文字幕人妻丝袜| 污污内射久久一区二区欧美日韩| 久久久WWW成人免费精品| 国产精品九九久久免费视频| 情人伊人久久综合亚洲| 精品久久久久久无码人妻蜜桃| 国内精品久久久久国产盗摄| 国内精品久久久久久麻豆| 久久久久综合国产欧美一区二区 |