Wie kann ich einen SMS über den Befehl mit Zoom 7.2m Tri-Band USB-Modem senden?
-
24-10-2019 - |
Frage
Ich versuche, eine einfache Python 2.6 -Anwendung unter OSX 10.6.6 zu erstellen, mit der SMS auf meinem Zoom 7,2m (3G) USB -Modem gesendet und empfangen werden kann.
Wenn Sie zunächst das USB -Modem einstecken, scheinen keine TTY- oder CU -Sitzungen erstellt zu werden. Ich muss die Modem -Software ausführen, um die folgenden Sitzungen zu initiieren.
cu.LJADeviceInterface2621 cu.LJADiagConnector2620 cu.LJAMobileConnector2622 tty.LJADeviceInterface2621 tty.LJADiagConnector2620 tty.LJAMobileConnector2622
Nach viel "Spaß" scheint es die einzige Sitzung zu sein, die ich lesen und schreiben kann, ist "cu.ljadeviceInterface2621". Beim Versuch, eine Verbindung zur TTY -Instanz davon herzustellen, bekomme ich einen Fehler -
serial.serialutil.seriaLexception: konnte nicht port /dev/tty.ljadeviceInterface2621 öffnen: [Errno 16] Ressource beschäftigt: '/dev/tty.ljadeViceInterface262' '
Das ist aber in Ordnung - ich habe zumindest etwas zum Arbeiten, das Cu -Äquivalent.
Mein Skript ist wie folgt;
ser = serial.Serial("/dev/cu.LJADeviceInterface2621", 9600, timeout=1)
print "Setting DTR..."
ser.setDTR(True)
sleep(3)
print "Turning off DTR..."
ser.setDTR(False)
searching = True
ser.setDTR(True)
while searching:
print "Write instruction..."
txt=raw_input()
if txt.find("ZZ")>-1:
txt=txt.replace("ZZ",chr(13))
ser.write(txt)
ser.close()
Jetzt habe ich auch ein anderes Skript, das die Nachrichten auf "cu.ljadeviceInterface2621" überwacht. Dieses Skript ist wie folgt;
ser = serial.Serial("/dev/cu.LJADeviceInterface2621", 9600, timeout=1)
print "Attempting search."
while True:
line = ser.readline()
print ">", line
Mit diesen Skripten, die beide im Schreibcode ausgeführt werden, geben ich die folgenden Zeilen ein.
(Hinweis: Die ZZ -Eingabe wird für Strg -Z über das obige Schreibskript ersetzt - CHR (13))
AT+CMGF = 1zz [Drücken Sie Eingabetaste, um Schreiben zu begehen
OK
AT+cmgw = "+447725123123" r n [Drücken Sie die Eingabetaste, um Schreiben zu begehen
ERROR
Ich sollte den Text der Nachricht schreiben, gefolgt von Strg-Z (CHR (13), aber ich bekomme einen sofortigen Fehler.
Das USB -Modem verfügt über eine gültige SIM mit Kredit, es hat ein Signal, ich kann einen Text von der Zoom -Modemsoftware senden (dies funktioniert jedoch nur im PDU -Modus - aber das Modem unterstützt den Textmodus gemäß AT+CMGF = Befehl) und Empfangen Sie Nachrichten.
Irgendwelche Ideen?
Ich freue mich, bei Bedarf weitere Informationen zu geben, danke stu
Lösung
Denken Sie auch daran, dass es viele Projekte gibt, die die Aufgabe für Sie erledigen (Pysms ist einer von ihnen)
Andere Tipps
Nun, ich benutze dieses Modem nie, aber ich nehme an, es verwendet Standard -GSM bei Befehlen, und AT+CMGW ist falsch.
Sie sollten senden: AT+cmgs = "+111111111" r n sms text strl-z
Und das sollte funktionieren