zoukankan      html  css  js  c++  java
  • 使用python实现短信PDU编码

    前几天入手一个3G模块,便倒腾了一下。需要发送中英文混合短信,所以采用PDU模式(不了解google ^_^)。

    最大问题当然就是拼接PDU编码(python这么强大,说不定有模块),果不其然找到一个smspdu模块(链接:https://pypi.python.org/pypi/smspdu)。但是测试发现生成的编码和模块文档要求有差别的,泪奔……但还是可以看一下源码的实现方式的。剩下的就是自己加工一下。不罗嗦,上代码:

    from smspdu import SMS_SUBMIT
    
    def format_message(phone_number, message_content):
      tpdu = []
      if phone_number and message_content:
    
        #+8613010112500为短信中心号码,通过AT指令可查询
        pdu = SMS_SUBMIT.create('+8613010112500', phone_number, message_content)
    
        #00:设置使用默认短信中心号码,11:普通GSM格式,00:默认发送号码
        tpdu.append('001100')
    
        #91:+8613000000000格式 81:13000000000格式
        formatAddress = pdu.encodeAddress().replace('0B91', '0B81')
        tpdu.append(formatAddress)
    
        #00:协议标识,00为普通GSM类型;18:编码方式为UCS2; 01:有效时间
        tpdu.append('000801')
    
        #短信内容长度接短信内容unicode编码
        tpdu.append('%02X' % pdu.tp_udl)
        tpdu.append(''.join(['%02X' % ord(c) for c in pdu.tp_ud]))
      return ''.join(tpdu)
    

      

    剩下的就是通过AT指令发送了。

    这里是老瘦家的儿子,如需转载请声明,我替老瘦感谢你。

  • 相关阅读:
    介绍一下Markdown语言
    通向架构师的道路(第一天)之Apache整合Tomcat lifetragedy的专栏 博客频道 CSDN.NET
    中国分省市地图导航SVG格式(基于Raphaël)
    异构计算完全解析CSDN.NET
    cocos2dx开启Wifi
    用“Web的思想”做PC客户端
    高斯模糊原理及几个实现例子
    android开启Wifi AP
    perl函数映射
    显示Iframe指定位置
  • 原文地址:https://www.cnblogs.com/art-geek/p/5985453.html
Copyright © 2011-2022 走看看