2 Stimmen

Steuerung rs232 Windows-Terminalprogramm von Python

Ich teste ein Hardware-Stück, das einen FTP-Server hostet. Ich verbinde mich mit dem Server, um die betreffende Hardware zu konfigurieren.

Meine Testumgebung ist in Python 3 geschrieben.

Um den FTP-Server zu starten, muss ich eine spezielle proprietäre Terminalanwendung auf meinem PC starten. Soweit ich weiß, muss ich diese Software verwenden und ich habe keine Hilfedateien dafür. Ich weiß jedoch, wie ich sie verwenden muss, um den FTP-Server zu starten, und das ist alles, was ich dafür brauche.

Wenn ich diese App starte, gehe ich in das Menü und öffne einen Dialog, in dem ich den COM-Port/die Geschwindigkeit auswähle, mit dem das Hardware verbunden ist. Dann gebe ich den Befehl ein, um den FTP-Server in einem konsolenähnlichen Fenster innerhalb der Anwendung zu starten. Anschließend werde ich nach dem Administratorcode für die Hardware aufgefordert, den ich eingebe. Wenn ich das Gerät konfiguriert habe, gebe ich einen Befehl zum Neustarten der Software des Hardware heraus.

Um meine Tests vollständig zu automatisieren, muss ich das manuelle Starten dieses FTP-Servers für jeden Test entfernen.

Soweit ich weiß, habe ich zwei Möglichkeiten:

  1. Windows GUI-Automatisierung
  2. Speichern des Datenstroms, der über den COM-Port gesendet wird, wenn diese Anwendung verwendet wird.

Ich habe versucht, einen GUI-Automatisierer zu finden, aber pywinauto unterstützt kein Python 3. Gibt es hier noch andere Optionen, die ich in Betracht ziehen sollte?

Haben Sie Vorschläge, wie ich den betreffenden COM-Port überwachen und den Datenverkehr speichern kann?

Vielen Dank,

Barry

1voto

ChrisC Punkte 1272

Hast du dir pySerial angesehen? Es ist schon einige Jahre her, seit ich es benutzt habe, aber es war sehr gut im Umgang mit RS-232-Kommunikation und es scheint kompatibel mit Python 3.x zu sein.

0voto

Velociraptors Punkte 2004

Sikuli könnte die Art von GUI-Automatisierung bieten, die Sie benötigen.

0voto

Baz Punkte 11657

Ich konnte das auch mit WScript lösen, aber pySerial war die bevorzugte Lösung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X