Hallo an alle,
ich möchte mit "Putty" AT-Kommandos über serielle schnittstelle (USB) zum Handy schicken. Manual läuft das ganz gut, aber ich möchte das automatisieren und soweit ich weiss brauche ich dafür "Plink", damit ich Putty mit Python steuern kann. Ich habe es selbst versucht, aber es hat leider nicht geklappt, deswegen möchte gern fragen, ob jemand damit Erfahrung hat und mir dabei helfen kann.
Viele Grüße
Plink mit python benutzen...
Was denn fuer Probleme? Ich lehne mich mal aus dem Fenster und behaupte: wenn Putty eine stabile Verbindung hinbekommt, dann ihr auch.
@deet:deets hat geschrieben:Was denn fuer Probleme? Ich lehne mich mal aus dem Fenster und behaupte: wenn Putty eine stabile Verbindung hinbekommt, dann ihr auch.
ich habe nicht behauptet, dass Putty besser als pyserial ist, denn ich habe ihn bis jetzt nur manuell benutzt. Jetzt möchte ich ihn automatisch probieren, um zu sehen, ob die Verbindung bei ihm stabiler ist.
Hoert sich unwahrscheinlich & nach cargo-cult an. Serielle Schnittstellen sind ein bekanntes Ding, da gibt's keine grosse Varianz in der Art & Weise, wie man die benutzt. Wenn das OS oder das Telefon Probleme machen, dann hat Putty die genauso. Bestenfalls re-etabliert es eine abgebrochene Verbindung - das kannst du aber mit Python genauso machen. Und *was* genau deine Probleme sind hast du ja auch noch nicht gesagt. Weder bezogen auf pyserial, noch auf plink. Als Kommandozeilen-Tool ist das ja auch nicht gerade Raketenwissenschaft. Was klappt denn da nicht?
meine Probleme sind folgende:
wenn ich Plink bzw. Putty mit Kommandozeile bediene, dann läuft das ganz gut.
Um das gleiche mit Python zu machen, habe ich natürlich mit subprocess probiert und ich habe folgende gemacht:
Das hat aber leider nicht funktioniert. Es kommt zwar keine Fehler-Meldung, aber das Handy ruft nicht an and auf der Python Konsole bleibt es hängen, solange Plink noch aktiv ist. :K
wenn ich Plink bzw. Putty mit Kommandozeile bediene, dann läuft das ganz gut.
Code: Alles auswählen
C:\Users>plink -serial COM6
ATD 017680143503;
OK
Um das gleiche mit Python zu machen, habe ich natürlich mit subprocess probiert und ich habe folgende gemacht:
Code: Alles auswählen
from subprocess import Popen, PIPE, STDOUT
p = Popen(['plink', '-serial', 'COM6\n'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
PLINK_out = p.communicate(input='ATD 017680143503\n')[0]
print(PLINK_out)
also zum einen ist da ein \n zu viel hinter COM6. Und warum es haengt - das kann ich ohne plink naeher zu kennen nicht sagen, aber beendet sich plink denn von alleine? wenn nicht, dann tut es das auch mittels subprocess nicht.
und was ging schief bei pyserial?
und was ging schief bei pyserial?
Soweit ich weiss haben die Kollegen Pobleme beim öffnen und schließen der Comports (läuft nicht immer sauber), aber es kann auch sein, dass das bei uns mit Pyserial entwickeltes Module nicht ganz sauber ist, deswegen werde zuerst versuchen weiter mit Pyserial zu arbeiten und das Modul weiterzuentwickeln.deets hat geschrieben:also zum einen ist da ein \n zu viel hinter COM6. Und warum es haengt - das kann ich ohne plink naeher zu kennen nicht sagen, aber beendet sich plink denn von alleine? wenn nicht, dann tut es das auch mittels subprocess nicht.
und was ging schief bei pyserial?
Danke deets.