2008-09-17 9 views
1

Ich verwende die RxTx-Bibliothek über USB-Serial auf einer Linux-Distribution. Die RxTx-Bibliothek scheint sich ganz anders zu verhalten (in einer schlechten Art und Weise) als wie sie über die serielle Schnittstelle funktioniert.Schreiben von Daten über RxTx mit usbserial?

Eines meiner größten Probleme ist, dass die RxTx SerialPortEvent.OUTPUT_BUFFER_EMPTY nicht auf Linux über USB-Serial funktioniert.

Woher weiß ich, wann ich in den Stream schreiben soll? Irgendwelche Indikatoren, die ich übersehen habe?

Bisher war meine Erfahrung mit dem Schreiben und Lesen gleichzeitig nicht großartig. Weiß jemand, ob ich den DATA_AVAILABLE-Handler sperren sollte, während er während des Schreibens im Stream aufgerufen wird? Oder RxTx akzeptiert gleichzeitige Lese-/Schreibvorgänge?

Vielen Dank im Voraus

Antwort

1

Mit RxTx über USB-Seriell Sie nicht notifyOnOutput true sonst sperrt sie völlig einstellen.

Ich habe das auf die harte Tour gelernt. Dieses Problem ist auf einigen Websites über das Internet dokumentiert.

Ich bin es auf Linux und ich glaube, dass dies ein Linux-Problem ist, obwohl ich das nicht bestätigen kann.

Wie für den Link, den Sie mir gegeben haben ... Ich habe die Beispiele SimpleReader und SimpleWriter gesehen, aber diese stellen keine reale Anwendung dar. Es ist nicht multi-threaded, übernimmt ein Lesen Sie den vollständigen Daten hat es statt Pufferung benötigt liest usw.

Danke,

Jeach!

+0

Ich löschte meine Antwort, weil es aussah, als ob eine bessere gegeben wurde. – Chris

4

(vielleicht etwas off-topic, aber hier geht)

Ich bin mit dieser bestimmten Bibliothek nicht vertraut, aber ich kann Ihnen aus dire Erfahrung versichern (I in den Sicherheitssystemen arbeiten (wie in: Hardware-Sicherheitsgeräte), wo RS-232 stark genutzt wird), dass nicht alle USB-Seriell-Wandler gleich geboren werden. Viele dieser Geräte emulieren also nicht alle RS-232-Leitungen, und viele Geräte können sogar keine Kommunikation ohne Flusskontrolle übernehmen. Bevor Sie die Bibliothek beschuldigen, versuchen Sie zu bestätigen, dass die Hardware tatsächlich das tut, was sie tun soll.

Ohne ein bestimmtes Produkt oder eine Marke befürworten zu wollen, ist der beste (wie in: am wenigsten fehlerhafte) USB-Seriell-Konverter, den ich seit Jahren kenne, der USA-19HS.

+0

Keyspan wurde von Tripp-Lite gekauft, der nicht an Permalinks zu glauben scheint. > :(Hier ist der neue HTML-Link: http://www.tripplite.com/en/products/model.cfm?txtModelID=3914 –

+0

ps wir haben das gleiche Modell hier bei meiner Firma. Es scheint gut zu funktionieren, obwohl es die Oberhand hat mit 2x Geschwindigkeit (230400bps) Ich mag die FTDI-basierten Teile, die bis zu 3Mbps bekommen (habe in letzter Zeit den UB232 benutzt) –

+0

Wie ich in meiner anderen RxTx Frage gepostet habe, hattest du recht Jason S. Es war der USB-Gerät, das "einige" Probleme verursacht hat. – Jeach