CDMA短信猫 用 AT命令 收发短信问题

分享

----------- 查看所有短信  ---------------------------------------------------------------------------------------------------------
OK
AT+CMGF=0
OK
AT+CMGL=4

+CMGL:2,0,,126

OK

-------问题------------------------------------
在CMDA手机里 短信显示正常(无以上乱码),手机里显示 在“紧急短信”的类别里的短信 则 以上命令无显示信息
普通短信 以上命令可以收到,但 显示乱码(如上)

-----------------发短信----------------------------------------------------------------------------------------------------------------

AT
OK
AT+cmgf=1
OK
AT+cmgs="15898817832"
test123
-------问题------------------------------------
在 AT+cmgs="15898817832" 回车后 没有“>”符号,输入内容后 Ctrl+Z 显示个小箭头()就没有反应了

---------------------------------------------------------------------------------------------------------------------------------------------
以上命令在GSM短信猫中 能执行成功!
哪位高手指点一下,谢谢!

短信设备二次开发 2022-05-28 2 0

admin

  • 注册时间 : 2022-03-30 04:08:47
  • 邮箱地址 : admin@tenghengkeji.com
  • 此页面用于展示用户的基本上资料信息

回帖 ( 2 )

  1. #1楼 admin
    2022-04-10 18:01:03
    0 0
    回复
    ----------------------------------
    现在只考虑收CDMA短信,发短信暂时不考虑
    ----------------------------------

    在程序中 无返回信息(代码如下)

    C#

    SerialPort sp = new SerialPort("com8");
                  sp.BaudRate = 9600;
                sp.Open();
                sp.Write("AT\r");
                Thread.Sleep(500);
                msg = sp.ReadExisting();
                //设置中文短信
                 sp.Write("AT+WSCL=6,4\r");
                Thread.Sleep(500);
                msg = sp.ReadExisting();
                //设置文本格式短信
                sp.Write("AT+CMGF=0\r");
                Thread.Sleep(500);
                msg = sp.ReadExisting();
                sp.Write("AT+CMGL=4\r");
                Thread.Sleep(10000);
                msg = sp.ReadExisting();
                //MessageBox.Show(msg);
                textBox1.Text +="接收信息:"+ msg;
                sp.Dispose();
                sp.Close();


    -----问题----------------------------------
    CDMA卡里面有未读短信和已读短信
    textbox1显示内容为:接收信息:
    以上命令,Msg全为""
    波特率为9600 卖短信猫的 人给我设置的 可以发短信
    波特率为115200时 不能发短信
    -------------------------------------------
    AT+CMGF=0和AT+CMGF=1
    都试过了,不行
    -------------------------------------------
    希望高手再帮我找找 问题所在

    • 2022-04-10 18:01:59
      0 0
      回复

      回复@admin

      从你代码执行的指令来看, sp.Write("AT+WSCL=6,4\r");这是wavecom的CDMA模块(如Q2358C,Q2438F等)。
      这个模块你要超级终端读取看到内容只能用at+cmgf=1来读取(全英文内容直接显示的,中文是乱码),如果用at+cmgf=0读取的话,这个是肯定读取方法不正确了,所有现阶段CDMA模块都支持3GPP2里面的PDU协议,参考这个文章自己解码《CDMA PDU编解码补充解析》,注意这个CDMA PDU与GSM PDU不一样存在差异。
      TEXT模式是不支持长短信的,
      TEXT文本模式读取短信,那么初始化设备的时候最好就把at+cmgf=1就行默认设置,然后读取短信的是后,过滤掉时间戳和协议设置后就是短信的内容,然后你自己直接把这部分数据直接进行字符串16进制转中文就好,这样就得到中文短信了。