Seite 1 von 1

Serielle Schnittstelle und Python

Verfasst: Donnerstag 22. April 2004, 15:50
von antimicro
Hi,
hat einer von euch schon mal USPP benutzt? Ich habe folgendes Problem:

Mit der Klasse USPP übertrage ich Packete über die Serielle die aus 2x 255 und dann einem Count (0-255), 4 x 4 Bytes und einem CommandWord (8Bit) bestehen.

Das klappt ja auch wunderbar, wenn man das einmal macht.
Ich hab diese Übertragung in einer Thread laufen und schicke die Daten quasi dauernt ab. Unter Windows ist das kein Problem nur unter Linux stoppt die Übertragung nach ca. 70 mal senden und setzt für eine ca. 1 Sekunde. Dannach läuft der Thread wieder weiter für ca. 70 Übertragungen.

Seltsam, oder? :?

Die Einstellungen sind => Port: /dev/ttyS0(linux), COM1(win), 19200Baud und Timeout von 1 Sekunde.

Ist vielleicht ein Pufferproblem oder ähnliches. Gleich Morgen setz ich in der Übertragung mal ein sleep(0.01) ein oder ähnliches.

Die Daten müssen unbedingt flüssig in über den Port. Wie gesagt unter Windows kein Thema aber unter Linux :?: :!:

Wär sau cool wenn einer ne Idee hätte.
Ich dank schon mal im voraus. :wink:

Verfasst: Donnerstag 22. April 2004, 16:10
von Dookie
Hi anitmicro,

wenn wo ein Puffer ist, sollte es auch eine Methode "flush" oder was ähnliches geben. Ich kenne USPP zwar nicht, würde aber mal nach sowas suchen.


Gruß

Dookie

Verfasst: Donnerstag 22. April 2004, 16:26
von antimicro
Hi Dookie:
ja man kann den Buffer leeren mit flush. Aber vielleicht ist das ja auch ein Problem mit Linux. Von wegen Priority und so *seuftz* :wink:

Verfasst: Donnerstag 22. April 2004, 16:43
von Dookie
Hi antimicro,

könnte da vielleicht auch der GC zwischenfunken?
Versuch mal am Begin der Funktion ein

Code: Alles auswählen

gc.collect()
natürlich musst Du vorher gc importieren.


Gruß

Dookie

Verfasst: Freitag 23. April 2004, 16:49
von antimicro
Hi,
jo ich habs hinbekommen. Das lag wohl daran das der PC der die Daten gesendet hat zu schnell war. Ich meine jetzt nicht die Übertragungsgeschwindigkeit sondern die Zeit zwischen den Packeten.

Nach einem einer Pause von 10ms klappte das alles super.

Aber vielen dank für die Hilfe!