您的当前位置:首页正文

用移远4G模块EC20发送长中文短信(级联长短信)流程

2024-11-26 来源:个人技术集锦


使用minicom或者busybox microcom工具操作/dev/ttyUSB2(波特率默认是115200):

1、参数设置:

此步包括众多参数的设置,首先是将4G模块恢复出厂设置,以免旧的设置影响级联长短信的收发。该步最重要的设置是使用text文本模式发送、启用中文编码方式、设置短信存储方式以及接收短信的模式等等。

ATI

 查看模块固件信息,证明AT命令可用

AT&F 

恢复出厂设置  返回ok  使用该命令是为了防止某些我们不熟悉的命令配置导致当前环境无法正常发送短信

AT+QCFG="IMS" 

查看sim卡是否查看sim卡的短信功能是否走4G。注意:命令AT+QCFG="IMS"无法判断sim卡是否支持短信业务,只知道短信走4G还是2G/3G

AT+QURCCFG?

 查看URC Indication Option如果没有配置则执行    

AT+QURCCFG="urcport","usbat"
AT+CSCA? 

查看是否存在短信中心  一般返回 +CSCA: "+8613800250500",145   该步可有可无

AT+CSMP?

 查看发送短信文本参数 设置参数:

AT+CSMP=17,167,0,8 

 第一个参数=17表示没有状态报告回包,第二个参数=167表示短信保存时间,第四个参数=0表示发送英文,=8表示发送中文

AT+CSCS="UCS2" 

设置短信编码方式为中文,默认是GSM,级联长短信只支持UCS2格式,不支持GSM格式

AT+CPMS? 

查看短信存储方式,如果不是返回“+CPMS: "ME",0,255,"ME",0,255,"ME",0,255”,即不是ME,请配置

AT+CPMS="ME","ME","ME"
AT+CNMI? 

 查看短信接收方式,使用默认配置+CNMI: 2,1,0,0,0  
    第1个参数mode 通知方式
                  =0 不通知TE
               =1 只在数据线空闲的情况下,通知TE,否则不通知TE 
               =2 通知TE,在数据线被占用的情况下,先缓存起来,待数据线空闲,再行通知
               =3 通知TE,在数据线被占用的情况下,通知混合在数据在红一起传输
    第2个参数信息存储或者转发到TE:
             =0 存储到默认的内存位置(包括class 3)
             =1 存储到默认的内存位置,并且向TE发出通知(包括class 3)
             =2 对于class2,存储到sim卡,并且向TE发出通知,对于其他class,直接将信息转发到TE
             =3 对于class3,直接将信息转发到TE,对于其他class,同=1的情况

AT+CMGF=1

 启用text方式发送短信,=0表示使用PDU报文方式

2、使用命令AT+QCMGS发送短信

开始使用AT+QCMGS发送短信,

例如:

AT+QCMGS="00310035003300380030003900340033003300310030",10,1,2
> 5E0554E5
+QCMGS: 145
OK
AT+QCMGS="00310035003300380030003900340033003300310030",10,2,2
> 4F60597D
+QCMGS: 146
OK


00310035003300380030003900340033003300310030是Unicode编码,对应的字符串是“15380943310”,10表示uid是短信的标识符,同一条短信的各个段应该使用同一个值。
“1,2”表示这条短信工2段(segment)内容,先发送第1段,“2,2”表示发送第2段内容。“5E0554E5”-->帅哥 , "4F60597D"-->你好。输入短信内容后再按ctrl+z便可发送出去。
此时在手机号为15380943310的手机上便能看到一条短信“帅哥你好”。
为什么使用这种分段的方式发送短信呢,因为一次发送的内容有长度限制
对于移远的EC20模块,使用GSM编码,一次最大发送长度为(140 octets - 6)*8/7=153字符。使用UCS2中文方式编码,一次最大发送长度为(140 octets - 6)/2=67字符.
这里所说的67字符包括英文、数字、符号和中文,即“123”的长度和“欧阳修”一样,都是3个字符。

3、接收短信并查看

在手机上回复短信“1知道了”,此时/dev/ttyUSB2显示:

+CMTI: "ME",0


表明收到的短信存到了ME中,短信序号为0。

AT+CMGR=0   查看0号短信
+CMGR: "REC READ","002B0038003600310035003300380030003900340033003300310030",,"23/07/28,10:01:52+32"
003177E590534E86
OK


其中002B0038003600310035003300380030003900340033003300310030是UNICODE编码,对应“+8615380943310”,003177E590534E86便是“1知道了”

AT+CMGD=0  删除序号为0的短信。


序号的分配原则是从0开始,如果某个序号对应的短信被删除了,该序号便优先被用于下条新短信。

显示全文