?? 接收短信流程
字號(hào):
連接好數(shù)據(jù)線、插入SIM卡、接上Modem電源線,配置好minicom之后,打開minicom1.AT+CMGF=0 回車(采用PDU格式)返回OK:******************************AT+CMGF=0OK******************************2.AT+CNMI=2,1 (設(shè)置為mode=2, mt=1)返回OK:******************************AT+CNMI=2,1OK******************************可以查看設(shè)置是否成功:AT+CNMI? (再查看當(dāng)前設(shè)置)******************************AT+CNMI?+CNMI: 2,1,0,0,0OK******************************3.當(dāng)短信到來時(shí)會(huì)自動(dòng)提醒(過了一段時(shí)間,有一條消息到達(dá))******************************+CMTI: "SM",5******************************通知:消息已經(jīng)存儲(chǔ)在ME內(nèi)存中,序號(hào)為84.查看短信(用序號(hào)指定)******************************AT+CMGR=5 (讀第5條消息)+CMGR: 0,,24 0891683108100005F0240D91685121004572F0000880210191342323044F60597D OK******************************08 91 683108100005F0 24 0D 91 685121004572F0 00 08 80210191342323 04 4F60597D 08 91 8613800100500F 24 0D 91 8615120054270F 00 08 08121019433223 04 4F60597D08:SMSC地址信息的長(zhǎng)度共 8 個(gè)八位字節(jié)(包括 91)91:SMSC地址格式(TON/NPI) 用國(guó)際格式號(hào)碼(在前面加‘+’)68 31 08 10 00 05 F0:SMSC地址8613800100500,補(bǔ)‘F’湊成偶數(shù)個(gè)24:基本參數(shù)(TP-MTI/MMS/RP) 接收0D 回復(fù)地址數(shù)字個(gè)數(shù)共 13 個(gè)十進(jìn)制數(shù)(不包括 91 和‘F’)91 回復(fù)地址格式(TON/NPI) 國(guó)際格式68 51 21 00 45 72 F0:回復(fù)地址(TP-RA) 8613910199192,補(bǔ)‘F’湊成偶數(shù)個(gè)00:協(xié)議標(biāo)識(shí)(TP-PID) 是普通 GSM 類型,點(diǎn)到點(diǎn)方式08:用戶信息編碼方式(TP-DCS) UCS2 編碼80 21 01 91 34 23 23:服務(wù)時(shí)間戳(TP-SCTS) 2008-12-10 19:43:3204:用戶信息長(zhǎng)度(TP-UDL) 實(shí)際長(zhǎng)度 4個(gè)字節(jié)4F60597D:用戶信息(TP-UD) “你好”08 91 683108100005F0 04 0D 91 685121004903F1 00 08 80210102226223 0A 6211662F4F605927723708 91 683108100005F0 24 0D 91 685121004572F0 00 08 80210191342323 04 4F60597D 08 91 8613800100500F 24 0D 91 8615120054270F 00 08 08121019433223 04 4F60597D解碼,求出時(shí)間、對(duì)方號(hào)碼以及短信內(nèi)容(將UCS2編碼格式轉(zhuǎn)換成utf-8格式)/*將接收到的PDU字符串進(jìn)行解碼,求出時(shí)間、對(duì)方號(hào)碼以及短信內(nèi)容(將UCS2編碼格式轉(zhuǎn)換成utf-8格式)pdu:接收到的PDU字符串time:時(shí)間,格式為“年/月/日,時(shí):分:秒”phone:發(fā)送方的手機(jī)號(hào)碼,格式為“86XXXXXXXXXXX”,總共11位(不算“86”)msg:短信內(nèi)容,已經(jīng)轉(zhuǎn)換為utf-8格式轉(zhuǎn)換成功則返回0;否則返回-1*/int get_message(const char *pdu,char *time,char *phone,char *msg);算法流程:/* 獲取并處理時(shí)間 */將pdu的第42位(從0開始)到第53位復(fù)制到my_time, (=> my_time <- "802101913423")并對(duì)my_time進(jìn)行奇偶位交換 (=> my_time <- "081210194332")格式化為“年/月/日,時(shí):分:秒”到time上。/* 獲取手機(jī)號(hào)碼 */將pdu的第24位(從0開始)到第37位復(fù)制到my_phone, (=> my_phone <- "685121004572F0")對(duì)my_phone進(jìn)行奇偶位交換 (=> my_phone <- "8615120054270F")將my_phone最后一位('F')清除后復(fù)制到phone/* 獲取短信內(nèi)容 */將pdu的第56、57位轉(zhuǎn)化為數(shù)字并存放在num中 (=> num <- 4)將pdu的第58位到第(57+num*2)位復(fù)制到my_msg中 (=> my_msg <- "4F60597D")對(duì)my_msg轉(zhuǎn)換成utf-8格式并復(fù)制到msg中
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -