新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM+linux系統(tǒng)移植3G撥號上網(wǎng)收發(fā)短信三

ARM+linux系統(tǒng)移植3G撥號上網(wǎng)收發(fā)短信三

作者: 時間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
一、用text查看模式
下面的“發(fā)”是指我敲的命令,“收”是指回車后顯示的信息包括其他接收的信息。
~ >: microcom -s 115200 /dev/ttyUSB1
發(fā):at
收:OK


設(shè)置成文本模式讀:
發(fā):at+cmgf=1


收:OK


將信息保存在SIM卡中:


發(fā):at+cpms="SM","SM","SM"
收:+CPMS: 0,50,0,50,0,50


收:OK




等待接收短信。。。。。。




收到了會有這個提示信息:
收:+CMTI: "SM",0


查看信息:
發(fā):at+cmgl="rec unread"
收:+CMGL: 0,"REC UNREAD","+8613135699576",,"13/07/14,22:11:10+32"
收:4F60597D
經(jīng)過一個unicode轉(zhuǎn)換器4F60597D ===>你好


收:OK




二、PDU模式查看


下面取網(wǎng)上一個例子


假設(shè)終端收到的短信為:
+CMT: ,24


0891683108200205F0240D91683157121468F0000860800331220000044F60597D


現(xiàn)在的任務(wù)是逆編碼,從而獲得信息。
下面分析一下接收到的PDU數(shù)據(jù):


(1)08 //信息中心號碼的長度,將91+683108200205F0的長度除2,格式化成2位的16進(jìn)制字符串所得


(2)91 //短信中心號碼類型


(3)683108200205F0 //短信中心號碼,轉(zhuǎn)換方法前面有提到


==>+8613800220500


(4)24 //TPDU頭字節(jié)


(5)0D //發(fā)送源號碼長度,8613752141860的長度格式化為2位16進(jìn)制所得


(6)91 //發(fā)送源號碼類型


(7)683157121468F0 //發(fā)送源號碼,發(fā)送端的號碼為:

==>+8613752141860



(8)00 //協(xié)議標(biāo)識 TP—PID


(9)08 //數(shù)據(jù)編碼方案,08:中文編碼,00為英文或數(shù)字,Bit No.7與Bit No.6


(10)608003312200 //日期時間,奇偶互換:06-08-30 13:22:00,有論壇上寫接收到的是026080……就是前面有’02’,表示2006-08…但是我用不同的手機發(fā)送短信過來接收到的都是06,無法取得2006,不知道是發(fā)送方手機設(shè)置的問題還是哪里的問題,還在研究中.


(11)00 //時區(qū)


(12)04 //用戶數(shù)據(jù)長度TP-UDL(TP-User-Data-Length),4F60597D的長度除2格式化為2位16進(jìn)制數(shù)所得


(13) 4F60597D //”你好”的UNICODE碼:

本文引用地址:http://m.butianyuan.cn/article/201611/317920.htm

在提供一個例子:

PDU模式查看




終端收到的短信提示信息:
+CMTI: "SM",2


+CMGL: 2,0,,28
0891683108200705F4240D91685123377660F0000831704132305423084F60597D00200020


現(xiàn)在的任務(wù)是逆編碼,從而獲得信息。
下面分析一下接收到的PDU數(shù)據(jù):


(1)08 //信息中心號碼的長度,將91+683108200205F0的長度除2,格式化成2位的16進(jìn)制字符串所得


(2)91 //短信中心號碼類型


(3)683108200705F4 //短信中心號碼,轉(zhuǎn)換方法前面有提到


==>+8613800270504


(4)24 //TPDU頭字節(jié)


(5)0D //發(fā)送源號碼長度,8613752141860的長度格式化為2位16進(jìn)制所得


(6)91 //發(fā)送源號碼類型


(7)685123377660F0 //發(fā)送源號碼,發(fā)送端的號碼為:

==>+8615327367060



(8)00 //協(xié)議標(biāo)識 TP—PID


(9)08 //數(shù)據(jù)編碼方案,08:中文編碼,00為英文或數(shù)字,Bit No.7與Bit No.6


(10)317041323054 //日期時間,奇偶互換:13-07-14 23:03:45,有論壇上寫接收到的是026080……就是前面有’02’,表示2006-08…但是我用不同的手機發(fā)送短信過來接收到的都是06,無法取得2006,不知道是發(fā)送方手機設(shè)置的問題還是哪里的問題,還在研究中.


(11)23 //時區(qū)


(12)08 //用戶數(shù)據(jù)長度TP-UDL(TP-User-Data-Length),4F60597D的長度除2格式化為2位16進(jìn)制數(shù)所得


(13) 4F60597D00200020 //”你好 ”有兩個空格的UNICODE碼:




四、查看已讀信息
OK
at+cmgl=0
OK
at+cmgf=1
OK
at+cmgl="rec read"
+CMGL: 0,"REC READ","+8613135699576",,"13/07/14,22:11:10+32"
4F60597D
+CMGL: 1,"REC READ","+8615327367060",,"13/07/14,23:00:50+32"
hello.good work.
+CMGL: 2,"REC READ","+8615327367060",,"13/07/14,23:03:45+32"
4F60597D00200020


OK
at+cmgl=1
ERROR
at+cmgf=0
OK
at+cmgl=1
+CMGL: 0,1,,24
0891683108200705F6240D91683131659975F6000831704122110123044F60597D
+CMGL: 1,1,,35
0891683108200705F6240D91685123377660F000003170413200052311E8329BFD769DDF6F3208747FCBD72E
+CMGL: 2,1,,28
0891683108200705F4240D91685123377660F0000831704132305423084F60597D00200020


OK



評論


技術(shù)專區(qū)

關(guān)閉