AT+CNMI的使用

來源:互聯網
上載者:User
AT+CNMI的使用
短訊息類(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,比較簡單。對所有類型的短訊息,只要在收到ME送來的“+CMTI”通知後,用“AT+CMGR”指令讀取訊息內容就行了。TE與ME之間的通訊過程,舉例如下:

(初始化)
AT+CNMI=?   (查看能支援的設定範圍)
+CNMI: (0-2),(0-3),(0,2,3),(0,1),(0,1)
OK

AT+CNMI?     (查看當前設定)
+CNMI: 0,0,0,0,0  
OK

AT+CNMI=2,1 (設定為mode=2, mt=1)
OK

AT+CNMI?     (再查看當前設定)
+CNMI: 2,1,0,0,0  
OK

(過了一段時間,有一條訊息到達)
+CMTI “ME”,8   (通知:訊息已經儲存在ME記憶體中,序號為8)

AT+CMGR=8    (讀第8條訊息)
+CMGR: 8,27
0891683108200505F0240D91683158812764F80000402052110373800741E19058341E01
OK

AT+CMGD=8    (刪除第8條訊息)
OK

 

轉自:http://hi.baidu.com/dtzw/blog/item/d238ef11f5d186c7a6ef3f41.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.