pour voir envoyer des SMS à l'aide à la commande cela vous aidera.
import serial
import time
class TextMessage:
def __init__(self, recipient="+2348065777685", message="TextMessage.content not set."):
self.recipient = recipient
self.content = message
def setRecipient(self, number):
self.recipient = number
def setContent(self, message):
self.content = message
def connectPhone(self):
self.ser = serial.Serial('COM70', 460800, timeout=5, xonxoff = False, rtscts = False, bytesize = serial.EIGHTBITS, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE)
time.sleep(1)
def sendMessage(self):
self.ser.write('ATZ\r')
time.sleep(1)
self.ser.write('AT+CMGF=1\r')
time.sleep(1)
self.ser.write('''AT+CMGS="''' + self.recipient + '''"\r''')
time.sleep(1)
self.ser.write(self.content + "\r")
time.sleep(1)
self.ser.write(chr(26))
time.sleep(1)
def disconnectPhone(self):
self.ser.close()
sms = TextMessage("+2348063796720","Mummy i sent this message from my computer")
sms.connectPhone()
sms.sendMessage()
sms.disconnectPhone()
print "message sent successfully"
Pour recevoir des sms à l'aide à la commande Cela devrait aider
import serial
import time
import sys
class HuaweiModem(object):
def __init__(self):
self.open()
def open(self):
self.ser = serial.Serial('COM70', 406800, timeout=5)
self.SendCommand('ATZ\r')
self.SendCommand('AT+CMGF=1\r')
def SendCommand(self,command, getline=True):
self.ser.write(command)
data = ''
if getline:
data=self.ReadLine()
return data
def ReadLine(self):
data = self.ser.readline()
print data
return data
def GetAllSMS(self):
self.ser.flushInput()
self.ser.flushOutput()
command = 'AT+CMGL="REC UNREAD"\r\n'#gets incoming sms that has not been read
print self.SendCommand(command,getline=True)
data = self.ser.readall()
print data
h = HuaweiModem()
h.GetAllSMS()
Non, non, non! Veuillez ne pas traiter les commandes AT de cette manière. Vous ** devez ** attendre le code du résultat final (par exemple, OK, ERREUR, ...) avant d'envoyer la commande suivante. Et spécifiquement pour AT + CMGS, vous devez ** attendre ** que le modem envoie "\ n \ r>" avant de commencer à envoyer MyMessage. Voir cette réponse pour plus de détails, http://stackoverflow.com/a/15591673/23118. – hlovdal
Dormir ne remplace pas la lecture et l'analyse de la réponse.C'est aussi utile que de donner un coup de pied aux chiens qui se dressent sur votre chemin pour les faire bouger. Oui, cela peut effectivement fonctionner à certains moments, mais à un moment donné, vous serez désolé d'avoir adopté cette approche. – hlovdal