zoukankan      html  css  js  c++  java
  • 2440开发板linux系统移植3G拨号上网收发短信(三)

    一、用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


    OK

  • 相关阅读:
    boost::asio在VS2008下的编译错误
    Java集合框架——接口
    ACM POJ 3981 字符串替换(简单题)
    ACM HDU 1042 N!(高精度计算阶乘)
    OneTwoThree (Uva)
    ACM POJ 3979 分数加减法(水题)
    ACM HDU 4004 The Frog's Games(2011ACM大连赛区第四题)
    Hexadecimal View (2011ACM亚洲大连赛区现场赛D题)
    ACM HDU 4002 Find the maximum(2011年大连赛区网络赛第二题)
    ACM HDU 4001 To Miss Our Children Time (2011ACM大连赛区网络赛)
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3192223.html
Copyright © 2011-2022 走看看