AT指令发送短信流程.docVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AT指令发送短信流程

HYPERLINK /linfeng999/article/details/6121003 AT指令发送短信流程 一、英文短信 发:AT 收:OK 发:AT+CMGF=1 收:OK 发:AT+CMGS收: 发:data→ //test 为发送内容,→为发送符(ctrl+z,十六进制0x1A) 收:+CMGS: 54 OK 二、中文PDU短信 本文以一个实例来解说AT指令发送PDU短信的全过程,假如我要发送下面的短信: 接收号码:+8613902433649 短信内容:工作愉快! 短信中心号码:+8613800100500 1、短信中心号码处理:用字符串 addr 表示 a、将短信息中心号码去掉+号,看看长度是否为偶数,如果不是,最后添加F 即 addr = +8613800100500 = addr = 8613800100500F b、将奇数位和偶数位交换。 = addr = 683108100005F0 c、将短信息中心号码前面加上字符91,91是国际化的意思 = addr = 91683108100005F0 d、算出 addr 长度,结果除2,格式化成2位的16进制字符串,16 / 2 = 8 = 08 = addr = 0891683108100005F0 2、手机号码处理:用字符串 phone a、将手机号码去掉+号,看看长度是否为偶数,如果不是,最后添加F 即 phone = +8613902433649 = phone = 8613902433649F b、将手机号码奇数位和偶数位交换。 = phone = 683109423346F9 3、短信息部分处理:用字符串 msg 表示 a、转字符串转换为Unicode代码,例如“工作愉快!”的unicode代码为 5DE54F5C61095FEBFF01,(转换在linux里可用iconv函数实现。) b、将 msg 长度除2,保留两位16进制数,即 5DE54F5C61095FEBFF01 = 20 / 2 = 0A,再加上 msg = msg = 0A5DE54F5C61095FEBFF01 4、组合 a、手机号码前加上字符串 11000D91(1100:固定,0D:手机号码的长度,不算+号,十六进制表示,91:发送到手机为91,发送到小灵通为81) 即 phone = 11000D91 + phone = 11000D91683109423346F9 b、手机号码后加上 000800 和刚才的短信息内容,000800也写死就可以了 即 phone = phone + 000800 + msg 即 11000D91683109423346F9 + 000800 + 0A5DE54F5C61095FEBFF01 = phone = 11000D916831094233465DE54F5C61095FEBFF01 c、phone 长度除以2,格式化成2位的十进制数 即 11000D916831094233465DE54F5C61095FEBFF01 = 50位 / 2 = 25 11000D916881012796115DE54F5C61095FEBFF01 5、所以要发送的内容为 发:AT 收:OK 发:AT+CMGF=0 收:OK 发:AT+CMGS=25 收: 发:addr+phone→ //→为发送符(ctrl+z,十六进制0x1A) 收:+CMGS: 54 OK 0891683108100005F011000D91688101279611F70008 000A 5DE5 4F5C 6109 5FEB FF01 6、如果返回不是ERROR,恭喜你,发送成功了 三、几个要注意的问题 1、发送的指令用0x0D结尾,注意不是通常认为的0x0D,0x0A。 特别是在发送PDU短信的AT+CMGS=25命令时, 一定只能以0x0D结尾。 2、在发送短信内容时,以0x1A(代表ctrl+Z的虚拟键值)结尾。 3、用AT+CMEE=1命令,可以在短信猫返回ERROR时带上原因,这样方便调试。

文档评论(0)

zsmfjy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档