前幾天入手一個3G模塊,便倒騰了一下。須要發送中英文混合短信,因此採用PDU模式(不瞭解google ^_^)。python
最大問題固然就是拼接PDU編碼(python這麼強大,說不定有模塊),果不其然找到一個smspdu模塊(連接:https://pypi.python.org/pypi/smspdu)。可是測試發現生成的編碼和模塊文檔要求有差異的,淚奔……但仍是能夠看一下源碼的實現方式的。剩下的就是本身加工一下。不羅嗦,上代碼:app
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指令發送了。測試
這裏是老瘦家的兒子,如需轉載請聲明,我替老瘦感謝你。google