Plink mit python benutzen...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
zizou2981
User
Beiträge: 59
Registriert: Donnerstag 23. Juni 2011, 21:46

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
Zuletzt geändert von zizou2981 am Samstag 9. Juni 2012, 13:10, insgesamt 1-mal geändert.
deets

Was hat putty da verloren? Installier pyserial & gut ist.
Benutzeravatar
zizou2981
User
Beiträge: 59
Registriert: Donnerstag 23. Juni 2011, 21:46

deets hat geschrieben:Was hat putty da verloren? Installier pyserial & gut ist.
@deets:
ich benutze momentan pyserial, aber damit haben wir ständig probleme, deswegen suche ich nach eine alternative.
deets

Was denn fuer Probleme? Ich lehne mich mal aus dem Fenster und behaupte: wenn Putty eine stabile Verbindung hinbekommt, dann ihr auch.
Benutzeravatar
zizou2981
User
Beiträge: 59
Registriert: Donnerstag 23. Juni 2011, 21:46

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.
@deet:
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.
deets

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?
Benutzeravatar
zizou2981
User
Beiträge: 59
Registriert: Donnerstag 23. Juni 2011, 21:46

meine Probleme sind folgende:

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)
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
deets

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?
Benutzeravatar
zizou2981
User
Beiträge: 59
Registriert: Donnerstag 23. Juni 2011, 21:46

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?
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.

Danke deets.
Antworten