Pyserial problem unter Cygwin/bash

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
coca
User
Beiträge: 3
Registriert: Montag 26. Juli 2010, 21:34

Hallo,

ich kann mir eine Sache nicht genau erklären, vieleicht gibt es jemanden der den entscheidenden hint hat :)

Wenn ich mit python 2.7 unter Windows arbeite und mich zu einem target mittels serial port verbinde und das target mir Daten schickt, funktioniert alles prima. Die print und readlines purzeln Quasi in echtzeit raus und die Welt ist in Ordnung.
Code Ausschnitt:

Code: Alles auswählen

while not fileLoad:
      for lines in s.readlines():
         print lines,
         if lines.find('DrvOpen: link Major is:') >= 0:
            s.write('e')
Beim gleichen unter Cygwin mit Python 6.5 (+ pyserial) in ner bash shell, sieht die Sache anders aus. Es kommt der ganze kram über die serial schnittstelle Rx Tx mit einer riesigen Latenz, teilweiese 5 sec daher bis überhaupt etwas passiert. So kann man damit nicht arbeiten ...

Meine Frage weiß jemand woran das liegt ?
Meine Vermutung liegt irgendwie an Bash, aber ick wess nich mehr so recht weiter.

Falls das noch wichtig ist, zum Cygwin bash connecte ich mittels puttycyg.
Habe pyserial 2.5 rc1 und rc2 getestet. Meine Initialisierung für win und cygwin sieht so aus:

Code: Alles auswählen

s = serial.Serial(COM, BAUD, timeout=1)
Zuletzt geändert von coca am Dienstag 27. Juli 2010, 19:45, insgesamt 2-mal geändert.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Hmm, da scheint eventuell Kompression eingeschaltet zu sein oder Nagles Algorithmus wird nicht deaktiviert.
Gibt's eventuell eine andere Lösung?
Was willst du denn genau erreichen?
coca
User
Beiträge: 3
Registriert: Montag 26. Juli 2010, 21:34

Hi,

erreichen eigentlich nur das ich komplett mit meinem Projekt unter Python Cygwin arbeiten wollte.
Aber ich kann es ja auch genauso gut unter Windows tun. Es sind ja letzlich alles nur Prozesse ob win oder cygwin.
Lösung ist das ich mit python unter windows arbeite, da funktionert es ja.
Mich intressiert einfach nur, ob jemand eine lösung für das geschilderte Problem kennt. Habe etwas längere Zeit verbracht (erfolglos :( ) den Grund zu finden, warum rX tX mit riesen latenzen daher kommen, unter cygwin python.
Zuletzt geändert von coca am Dienstag 27. Juli 2010, 19:46, insgesamt 4-mal geändert.
BlackJack

@coca: Hast Du dass den auch mal mit Cygwin direkt auf dem Rechner ausgeführt. Ich denke ja eher dass die Netzverbindung über Putty die Verzögerungen bei der Übertragung reinbringt. Wenn Du über eine Remoteverbindung einfach ein 'e' schreibst, dann wird das nicht zwangsläufig sofort gesendet, sondern es wird gewartet bis mehr zum Senden zusammengekommen ist, oder eine Zeitüberschreitung auftritt.
coca
User
Beiträge: 3
Registriert: Montag 26. Juli 2010, 21:34

Zur info:
http://code.google.com/p/puttycyg/

Hm, grundsätzlich bin ich nicht via Netzwerk Remote verbunden. Ich bin mittels Puttycyg zum Bash connected lokal auf dem Rechner. Aber was ich mal testen könnte, mit der DOS Konsole und dann mich zum Bash verbinden (lokal). Das habe ich bisher noch gar nicht getestet in der Aufregung :D.
Aber es funktioniert ja mit der idle python shell unter windows, nur nicht via puttycyg zu cygwin bash connected.

thx schon mal fuer eure Mitthilfe soweit ...

:)
Antworten