首页 > 代码库 > 使用python实现短信PDU编码
使用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指令发送了。
这里是老瘦家的儿子,如需转载请声明,我替老瘦感谢你。
使用python实现短信PDU编码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。