我使用的是 AnyDATA CDMA DTGS800-6025模块
接收短信提前设置 AT+UGSM=1(使用第二套短信接口) AT+CMGF=0(普通编码输出格式)
AT+CMGR=0 接收第一条短信.模块的输出内容是 13 10 43 67 77 71 82 58 32 48 48 48 48 48 50 51 48 44 49 53 48 48 48 48 48 48 48 48 48 44 49 53 48 48 48 48 48 48 48 48 48 44 50 48 48 56 47 49 50 47 48 50 47 49 49 58 51 51 44 51 44 97 98 99 13 10 13 10 79 75 13 10
内容是:\r\n+CMGR: 00000230,15000000000,15000000000,2008/12/02/11:33,3,abc\r\n\r\nOK\r\n
AT+CMGR=1 接收第二条短信.模块的输出内容是 13 10 43 67 77 71 82 58 32 48 48 48 48 48 50 51 48 44 49 53 48 48 48 48 48 48 48 48 48 44 49 53 48 48 48 48 48 48 48 48 48 44 50 48 48 56 47 49 50 47 48 50 47 49 49 58 51 51 44 49 50 44 0 97 0 98 0 99 89 42 150 51 79 96 13 10 13 10 79 75 13 10
内容是:\r\n+CMGR: 00000230,15000000000,15000000000,2008/12/02/11:33,3,abc太阳你\r\n\r\nOK\r\n
问题就处在这里了,不管是普通的编码还是usc2编码在输出的时候,如果短信内容是纯英文的,就只输出其ascii码,如果中间有了中文就会输出信息内容为unicode码.这个判断起来就很麻烦啊.还有就是对方发送的短信过长的时候会被自动拆成多条发送过来,这时模块输出的信息长度就不对了.
小弟的问题是有没有办法让模块的输出一直都是unicode码,或者是其他的方法能实现也行.在线等.解决立刻+分,谢谢
没有
具体看CDMA模块的资料。
自动拆分,怎么会长度不对?拆分是按照一定的规则进行的,显示内容前要过滤用于规则的字符。
这个和模块的相关度很大。只能帮你顶一下,最后能把你用的模块的资料贴一下。这样猜很难。
谢谢楼上的2位,问题已经解决了. 分数平均给2位列
我昨天也拿回来一个 anydata的短信猫一直也没研究明白,想和你请教一下。我的QQ:472281