天天看點

GPRS子產品發送短信

http://blog.sina.com.cn/s/blog_524846000101cwtr.html

部分摘自華清遠見網上資料。

GPRS 子產品,是具有GPRS資料傳輸功能的GSM子產品。GPRS子產品就是一個精簡版的手機,內建GSM通信的主要功能于一塊電路闆上,具有發送短消息、通話、資料傳輸等功能。GPRS子產品相當于手機的核心部分,如果增加鍵盤和螢幕就是一個完整的手機。普通電腦或者單片機可以通過RS232序列槽與GPRS子產品相連,通過AT指令控制GPRS子產品實作各種基于GSM的通信功能。

GPRS 子產品,是具有GPRS資料傳輸功能的GSM子產品。GPRS子產品就是一個精簡版的手機,內建GSM通信的主要功能于一塊電路闆上,具有發送短消息、通話、資料傳輸等功能。GPRS子產品相當于手機的核心部分,如果增加鍵盤和螢幕就是一個完整的手機。普通電腦或者單片機可以通過RS232序列槽與GPRS子產品相連,通過AT指令控制GPRS子產品實作各種基于GSM的通信功能。

在超級終端輸入:

At

OK

傳回OK則說明你的子產品可以正常工作,否則出現故障。

第一、文本模式下發送短信流程

文本模式下發送資訊基本分三步驟:

1.      設定發送模式

AT+CMGF=1

CMGF為0是以PDU模式發送,為1則是以文本方式發送。

2.接收方電話号碼

AT+CMGS=138XXXXxxxx

3.輸入内容

>hello world !

注意:每敲完一條指令都要按回車,直到傳回“>”後開始輸入資訊,但是在輸入完短信内容後不能敲回車而應該按組合鍵“ctrl+z”作為結束符。Enter鍵在ascii碼中的數值是“\r”,“ctrl+z”在ascii碼中的數值是“0x1a”,是以在程式設計時可以直接在資訊内容後進行字元串拼接。

示例:

=====================================================

AT

OK

AT+CMGF=1

OK

AT+CMGS=1380189xxxx

>hello word !

=====================================================

提示:AT指令不區分大小寫,是以無論是大寫還是小寫都可以識别。

傳回OK則說明你的子產品可以正常工作,否則出現故障。

第二、PDU模式下發送短信流程

Pdu模式發送資訊仍然是三步搞定,隻不過我們在前期得做一些稍微麻煩的資料轉換工作。

我們先來看流程理清脈絡:

1.AT+CMGF=0 設定為PDU模式發送中文編碼短信

2.AT+CMGS=資訊長度

3.發送短信

示例:

======================================================================

AT

OK

AT+CMGF=0

OK

AT+CMGS=25

>0891683108100005F011000D91685110906474F90A534E6E058FDC89C1FF01

======================================================================

前面的我們容易了解:

“AT+CMGF=0”将發送模式置為PDU模式;

“AT+CMGS=25”這句CMGS後面跟的不再是電話号碼了,而是“資訊長度”,這裡我加了雙引号表示有獨特的含義後面解釋。

現在分析最關鍵的地方:

“0891683108100005F011000D91685110906474F90008000A534E6E058FDC89C1FF01”

我們可以将這段頭疼的字元串分為三段:

-----------------------------------------------------------------------------------------

“0891683108100005F0       ”                                中心号碼段

“11000D91685110906474F9000800”                     收信方号碼段

“0A534E6E058FDC89C1FF01”                            資訊段

-------------------------------------------------------------------------------------------

1.       先來看中心号碼段。

關于什麼是中心号碼我想百度比我解釋的更清楚,這裡不再贅述了。

我們其實還可以将其再細分:

08           91           683108100005F0

其中91是國際化的意思,這個作為字首必須加上。

683108100005F0是什麼意思呢?我們将它奇數位和偶數位反轉看看:

“683108100005F0”

“8613800100500F”

熟悉嗎?13800100500是中國移動北京地區的中心号碼,86是中國地區的字首這個大家應該清楚。F呢?因為在進行PDU編碼的時候規定了如果号碼位數是奇數位那麼就要在末尾加F進行補齊,由于我們國家的手機号碼位數都是11位,是以要在末尾補F。于是中國移動北京地區的中心号碼加86補齊F再奇偶位反轉最後加91國際化字首就由原來的:

“13800100500”

變成了:

“91683108100005F0”

接着我們數一下它有多少位,16位,16/2=8,是以我們把整個中心号碼組合編碼後的長度除以2,最後以十六進制的表示方式加在它的前端就大功告成了。

“0891683108100005F0”

Ok搞定,下一步繼續。

======================================================================

1.       收信方号碼段。

“11000D91685110906474F9000800”

同樣将其細分:

1100       0D91      685110906474F9           000800

其中“1100”和“000800”分别是收信方号碼段固定的字首和字尾,是以一定要記得加上。

“685110906474F9”不用講了,和中心号碼段一樣的編碼方式,原型是:

“8615010946479”(華清遠見北京總部執勤電話)。

“0D91”需要注意一下,其中這裡的“91”和中心号碼段的“91”意義不一樣了,這裡是表示接收方的裝置是手機的意思,“81”則是小靈通。“0D”是一個十六進制數,還原為十進制後是13,什麼意思呢?接受方的号碼是“8615010946479”共13位。

是以接收方電話經偶數位<補齊F>

然後<奇數偶數位反轉>

再<加上号碼長度>

最後<加上前字尾>最終由:

“8615010946479”

轉型為:

“11000D91685110906474F9000800”。

======================================================================

2.       資訊段。

“0A534E6E058FDC89C1FF01”

資訊段是最簡單的,大家需要了解GPRS以PDU模式發送資訊時,其内容是以unicode的方式編碼的。

其中:

“534E6E058FDC89C1FF01”

還原成GB漢字編碼為:

“華清遠見!”

其編碼(十六進制)長度是20位,20/2=10,10的十六進制表示方式是0X0A。是以資訊段的最終編碼為:

“0A534E6E058FDC89C1FF01”

3.       組合。

如果把發短信比喻為一次快遞的投遞過程,那麼過程如下:

首先是中心号碼(相當于我們的郵局);

接着是接收方号碼段(相當于我們的收信人位址);

最後是資訊段(就是你的信件了)。

OK,組合結果就是:

“0891683108100005F011000D91685110906474F90008000A534E6E058FDC89C1FF01”

至此,PDU的編碼就正式結束了。

不過我們還有最後一件事,那就是前面提到的那個“資訊長度”。

郵局是國家的公有的,我們無權去幹涉,但是收信人和資訊是我們自己制定的,是以我們要精确掌握自己所屬的資訊。

于是我們将中心号碼段剔除,變為:

“11000D91685110906474F90008000A534E6E058FDC89C1FF01”

計算一下字元串長度,50位。OK,50/2=25。

于是在PDU模式下,我們所謂的“資訊長度”:AT+CMGS=25。

回顧一下PDU模式下的發資訊流程:

======================================================================

AT

OK

AT+CMGF=0

OK

AT+CMGS=25

>0891683108100005F011000D91685110906474F90A534E6E058FDC89C1FF01

======================================================================

一定要記得最後輸完資訊編碼後要按“ctrl+z”而不是回車。

我做GPRS子產品實驗,用的是NeoWay“有方”的GPRS子產品,M660+。

短信中心号碼,需要根據SIM所在位址更換,下面列舉中國移動的短信中心号碼,備查。

中國移動短消息中心号碼大全

省份 城市 短消息中心号碼 

北京 北京 13800100500 

天津 天津 13800220500 

河北 石家莊 13800311500 

保定 13800312500 

衡水 13800318500 

邢台 13800319500 

邯鄲 13800310500 

張家口 13800313500 

承德 13800314500 

唐山 13800315500 

廊坊 13800316500 

滄州 13800317500 

秦皇島 13800335500 

山西 太原 13800351500 

大同 13800352500 

陽泉 13800353500 

朔州 13800349500 

呂梁 13800358500 

忻州 13800350500 

榆次 13800354500 

長治 13800355500 

晉城 13800356500 

臨汾 13800357500 

運城 13800359500 

内蒙古 呼和浩特 13800471500 

標頭 13800472500 

集甯 13800474500 

東勝 13800477500 

臨河 13800478500 

錫林浩特 13800479500 

海拉爾 13800470500 

赤峰 13800476500 

烏海 13800473500 

阿拉善左旗 13800483500 

通遼 13800475500 

烏蘭浩特 13800482500 

遼甯 沈陽 13800240500 

大連 13800411500 

鞍山 13800412500 

撫順 13800413500 

本溪 13800414500 

丹東 13800415500 

錦州 13800416500 

營口 13800417500 

阜新 13800418500 

遼陽 13800419500 

鐵嶺 13800410500 

朝陽 13800421500 

盤錦 13800427500 

葫蘆島 13800429500 

吉林 長春 13800431500 

吉林 13800432500 

延吉 13800433500 

四平 13800434500 

通化 13800435500 

白城 13800436500 

遼源 13800437500 

松源 13800438500 

白山 13800439500 

黑龍江 哈爾濱 13800451500 

齊齊哈爾 13800452500 

牡丹江 13800453500 

佳木斯 13800454500 

大慶 13800459500 

上海 上海 13800210500 

江蘇 蘇州 13800512500 

鎮江 13800511500 

南通 13800513500 

常州 13800519500 

無錫 13800510500 

南京 13800250500 

揚州 13800514500 

鹽城 13800515500 

徐州 13800516500 

淮陰 13800517500 

連雲港 13800518500 

泰州 13800523500 

宿遷 13800527500 

浙江 杭州 13800571500 

甯波 13800574500 

嘉興 13800573500 

金華 13800579500 

溫州 13800577500 

衢州 13800570500 

舟山 13800580500 

湖州 13800572500 

紹興 13800575500 

台州 13800576500 

麗水 13800578500 

安徽 滁州 13800550500 

合肥 13800551500 

蚌埠 13800552500 

蕪湖 13800553500 

淮南 13800554500 

馬鞍山 13800555500 

安慶 13800556500 

宿州 13800557500 

阜陽 13800558500 

黃山 13800559500 

淮北 13800561500 

銅陵 13800562500 

宣城 13800563500 

六安 13800564500 

巢湖 13800565500 

貴池 13800566500 

福建 福州 13800591500 

廈門 13800592500 

甯德 13800593500 

莆田 13800594500 

泉州 13800595500 

漳州 13800596500 

龍岩 13800597500 

三明 13800598500 

南平 13800599500 

江西 南昌 13800791500 

上饒 13800793500 

鷹潭 13800701500 

撫州 13800794500 

九江 13800792500 

宜春 13800795500 

吉安 13800796500 

贛州 13800797500 

景德鎮 13800798500 

萍鄉 13800799500 

新餘 13800790500 

山東 青島 13800532500 

濟南 13800531500 

淄博 13800533500 

濰坊 13800536500 

煙台 13800535500 

威海 13800631500 

臨沂 13800539500 

萊蕪 13800634500 

聊城 13800635500 

日照 13800633500 

棗莊 13800632500 

德州 13800534500 

濟甯 13800537500 

荷澤 13800530500 

泰安 13800538500 

東營 13800546500 

濱州 13800543500 

河南 鄭州 13800371500 

許昌 13800374500 

開封 13800378500 

商丘 13800370500 

漯河 13800395500 

周口 13800394500 

平頂山 13800375500 

信陽 13800376500 

南陽 13800377500 

洛陽 13800379500 

焦作 13800391500 

新鄉 13800373500 

鶴壁 13800392500 

駐馬店 13800396500 

濮陽 13800393500 

安陽 13800372500 

三門峽 13800398500 

湖北 武漢 13800270500 

襄樊 13800710500 

孝感 13800712500 

鹹甯 13800715500 

荊州 13800716500 

宜昌 13800717500 

恩施 13800718500 

十堰 13800719500 

随州 13800722500 

荊門 13800724500 

江漢 13800728500 

湖南 長沙 13800731500 

常德 13800736500 

衡陽 13800734500 

邵陽 13800739500 

嶽陽 13800730500 

益陽 13800737500 

湘潭 13800732500 

株州 13800733500 

張家界 13800744500 

郴州 13800735500 

婁底 13800738500 

吉首 13800743500 

懷化 13800745500 

永州 13800746500 

廣東 廣州 13800200500 

深圳 13800755500 

汕頭 13800754500 

韶關 13800751500 

清遠 13800763500 

潮州 13800768500 

揭陽 13800663500 

湛江 13800759500 

茂名 13800668500 

江門 13800750500 

東莞 13800769500 

河源 13800762500 

梅州 13800753500 

汕尾 13800660500 

佛山 13800757500 

雲浮 13800766500 

順德 13800765500 

肇慶 13800758500 

江門 13800750500 

陽江 13800662500 

珠海 13800756500 

中山 13800760500 

惠州 13800752500 

廣西 南甯 13800771500 

柳州 13800772500 

桂林 13800773500 

梧州 13800774500 

玉林 13800775500 

百色 13800776500 

欽州 13800777500 

河池 13800778500 

北海 13800779500 

防城港 13800770500 

海南 海口 13800898500 

重慶 重慶 13800230500 

四川 成都 13800280500 

攀枝花 13800812500 

自貢 13800813500 

綿陽 13800816500 

南充 13800817500 

廣安 13800826500 

宜賓 13800831500 

内江 13800832500 

樂山 13800833500 

西昌 13800834500 

雅安 13800835500 

康定 13800836500 

馬爾康 13800837500 

德陽 13800838500 

廣元 13800839500 

泸州 13800830500 

遂甯 13800825500 

巴中 13800827500 

達川 13800818500 

貴州 貴陽 13800851500 

雲南 昆明 13800871500 

玉溪 13800877500 

曲靖 13800874500 

保山 13800875500 

思茅 13800879500 

楚雄 13800878500 

文山 13800876500 

麗江 13800888500 

個舊 13800873500 

大理 13800872500 

陝西 西安 13800290500 

延安 13800911500 

榆林 13800912500 

渭南 13800913500 

商洛 13800914500 

安康 13800915500 

漢中 13800916500 

寶雞 13800917500 

銅川 13800919500 

鹹陽 13800910500 

甘肅 蘭州 13800931500 

白銀 13800943500 

臨夏 13800930500 

甘南 13800941500 

張掖 13800936500 

金昌 13800935500 

酒泉 13800937500 

天水 13800938500 

定西 13800932500 

平涼 13800933500 

慶陽 13800934500 

隴南 13800939500 

青海 西甯 13800971500 

甯夏 銀川 13800951500 

新疆 烏魯木齊 13800991500 

克拉瑪依 13800990500 

石河子 13800992500 

奎屯 13800993500 

昌吉 13800994500 

吐魯番 13800995500 

庫爾勒 13800996500 

阿克蘇 13800997500 

喀什 13800998500 

伊甯 13800999500 

塔城 13800901500 

哈密 13800902500 

和田 13800903500 

阿勒泰 13800906500 

阿圖什 13800908500 

博州 13800909500

繼續閱讀