• ARM+linux系统移植3G拨号上网收发短信(三)【转】


    本文转载自:http://blog.csdn.net/hanmengaidudu/article/details/17099755

    一、用text查看模式
    下面的“发”是指我敲的命令,“收”是指回车后显示的信息包括其他接收的信息。
    ~ >: microcom -s 115200 /dev/ttyUSB1
    发:at
    收:OK


    设置成文本模式读:
    发:at+cmgf=1


    收:OK


    将信息保存在SIM卡中:


    发:at+cpms="SM","SM","SM"
    收:+CPMS: 0,50,0,50,0,50


    收:OK




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




    收到了会有这个提示信息:
    收:+CMTI: "SM",0


    查看信息:
    发:at+cmgl="rec unread"
    收:+CMGL: 0,"REC UNREAD","+8613135699576",,"13/07/14,22:11:10+32"
    收:4F60597D
    经过一个unicode转换器4F60597D ===>你好


    收:OK




    二、PDU模式查看


    下面取网上一个例子


    假设终端收到的短信为:
    +CMT: ,24


    0891683108200205F0240D91683157121468F0000860800331220000044F60597D


    现在的任务是逆编码,从而获得信息。
    下面分析一下接收到的PDU数据:


    (1)08 //信息中心号码的长度,将91+683108200205F0的长度除2,格式化成2位的16进制字符串所得


    (2)91 //短信中心号码类型


    (3)683108200205F0 //短信中心号码,转换方法前面有提到


         ==>+8613800220500


    (4)24 //TPDU头字节


    (5)0D //发送源号码长度,8613752141860的长度格式化为2位16进制所得


    (6)91 //发送源号码类型


    (7)683157121468F0 //发送源号码,发送端的号码为:
         
         ==>+8613752141860
         


    (8)00 //协议标识 TP—PID


    (9)08 //数据编码方案,08:中文编码,00为英文或数字,Bit No.7与Bit No.6


    (10)608003312200 //日期时间,奇偶互换:06-08-30 13:22:00,有论坛上写接收到的是026080……就是前面有’02’,表示2006-08…但是我用不同的手机发送短信过来接收到的都是06,无法取得2006,不知道是发送方手机设置的问题还是哪里的问题,还在研究中.


    (11)00 //时区


    (12)04 //用户数据长度TP-UDL(TP-User-Data-Length),4F60597D的长度除2格式化为2位16进制数所得


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

     

    在提供一个例子:

    PDU模式查看




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


    +CMGL: 2,0,,28
    0891683108200705F4240D91685123377660F0000831704132305423084F60597D00200020


    现在的任务是逆编码,从而获得信息。
    下面分析一下接收到的PDU数据:


    (1)08 //信息中心号码的长度,将91+683108200205F0的长度除2,格式化成2位的16进制字符串所得


    (2)91 //短信中心号码类型


    (3)683108200705F4 //短信中心号码,转换方法前面有提到


         ==>+8613800270504


    (4)24 //TPDU头字节


    (5)0D //发送源号码长度,8613752141860的长度格式化为2位16进制所得


    (6)91 //发送源号码类型


    (7)685123377660F0 //发送源号码,发送端的号码为:
         
         ==>+8615327367060
         


    (8)00 //协议标识 TP—PID


    (9)08 //数据编码方案,08:中文编码,00为英文或数字,Bit No.7与Bit No.6


    (10)317041323054 //日期时间,奇偶互换:13-07-14 23:03:45,有论坛上写接收到的是026080……就是前面有’02’,表示2006-08…但是我用不同的手机发送短信过来接收到的都是06,无法取得2006,不知道是发送方手机设置的问题还是哪里的问题,还在研究中.


    (11)23 //时区


    (12)08 //用户数据长度TP-UDL(TP-User-Data-Length),4F60597D的长度除2格式化为2位16进制数所得


     (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

  • 相关阅读:
    #include 和 #pragma comment 的相对路径起点
    linux学习之——phpMyadmin配置
    linux学习之——LAMP配置
    python学习之——文件过滤,不显示文件中以‘#’开头的行
    python学习之——元组中两数相加之和等于某数
    python学习之——识别标识符&关键字
    python学习之——single number
    python学习之——Add Digits
    python学习之——猜大小
    python学习之——冒泡排序
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/7182261.html
Copyright © 2020-2023  润新知