首先你需要有 python-messaging, 除非你想自己写一大堆的pdu解码编码吧
[https:]]
安装依赖是setup-tools, 因为安装脚本依赖他来解决其他依赖=_=.
当然还需要pySerial…用来和串口通讯,
这里假设ser是你的串口对象, 带timeout的设定(否则你就华丽丽等卡死吧23333)
发短信
from messaging.sms import SmsSubmit
from messaging.sms.deliver import SmsDeliver
pdu = SmsSubmit(number, text).to_pdu()[0]
ser.write('AT+CMGS=%dr' % pdu.length)
ser.readlines()
ser.write('%sx1a' % pdu.pdu)
for i in range(100):
a = self.ser.readlines()
for line in a :
#print line
if "OK" in line:
print "SUCC"
break
if "ERROR" in line:
print "ERROR"
break
收短信
from messaging.sms import SmsSubmit
from messaging.sms.deliver import SmsDeliver
ser.write('AT+CMGL=0r')
time.sleep(0.5)
recv_once = ser.read(1000)
recv = ''
while recv_once:
recv = recv + recv_once
recv_once = self.ser.read(1000)
time.sleep(0.1)
for line in recv.split():
try:
sms = SmsDeliver(line.strip())
print sms.number, sms.text
except:
pass
这里收的是所谓的未读短信, 执行过AT+CMGL=0之后就算已读了, 要AT+CMGL=4才能找到了…