通过AT指令操作串口收发短信

在之前配置短信语音网关的时候买了一台华为EC122(CDMA)插电信卡使用,配置到gammu之后执行发送命令提示SMSC没有配置。
查了一下貌似CDMA没有什么短信中心号的东西。

且这台设备好多操作指令都是华为自定义的,gammu无法直接操作。
决定自己写程序操作设备串口实现短信收发。

基本思路:
1、程序文件打开串口设备,轮询串口返回;
2、当接收到+CMTI指令的之后解析指令的值,例如:+CMTI:”ME”,37,该指令意思是接到一条短信,存储在手机内存,存储Index为37;
3、通过指令:AT^HCMGR=37,读取短信内容,短信内容编码为UCS2格式,需要进行转码;

4、发送短信指令:AT^HCMGS=”电话号码” \CR\CL 之后跟着短信内容,然后输入Ctrl+Z即可发出。发送之前确认一下当前发送短信的内容格式:AT+CMGF,0为PDU格式,1为Text格式。

HUAWEI CDMA AT Command文档
Ref: http://www.letswireless.com/asp_bin/downfile/2009929121443234.pdf

TODO: 理论上上网卡总是可以通过程序操作串口发送AT指令进行操作,后续考虑完全自己实现,连gammu都不用了。


评论

《“通过AT指令操作串口收发短信”》 有 1 条评论

  1. 木头

    我最近买了一个ec121,看到在gammu的支持清单上,以为能够使用,结果还是不发短信,貌似也收不到短信,本想用来收验证码转发大微信的,现在不知道怎么办了,同样的smsc无法获取,也无法设置问题,

    你有什么好的解决办法吗?
    我企鹅,base64加密,MTM2NzYxODU=
    谢谢

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注