ritschmanhard: RS232 Schnittstelle bidirektionale Nutzung (threaded) - Problem?

Hallo liebes Forum!

Leider komm ich bei folgender Frage (trotz google) nicht weiter:
Ich habe (unter Linux) eine RS232 Schnittstelle, an welcher ein Gerät angeschlossen ist. Nun habe ich folgendes Problem:

Ich verwende an dieser Schnittstelle zum Lesen und zum Schreiben jeweils eigene Threads (TA und TB). Diese öffnen die Schnittstelle (TB w-96008N1, TA r-96008N1) (programmiert in C) und führen dann ihre Aktionen aus (TA: read; TB: write).

Nun funktioniert das Ganze zunächst augenscheinlich, da sich das Gerät wie gewünscht verhält. ABER: Über längere Zeiten treten manchmal Probleme (Lücken) auf.

Kann dies an der simultanten Nutzung von read und write liegen?
Kann flush in diesem Zusammenhang ein Problem verursachen?
Oder ist dies ein anderes Problem?

Grüsse,
Richard

  1. Sup!

    Die serielle Schnittstelle ist ein Konfigurationsalptraum, auch ohne zusätzliche Threading-Geschichten ist es schon schwer genug das Ding zum Laufen zu kriegen. Benutzt Du für die Übertragung den Hardware-Handshake (XOn/XOff)? Das würde ich sonst zuerst probieren.

    Gruesse,

    Bio

    --
    Never give up, never surrender!!!
    1. Hi Bio!

      (...) auch ohne zusätzliche Threading-Geschichten ist es schon schwer genug das Ding zum Laufen zu kriegen. Benutzt Du für die Übertragung den Hardware-Handshake (XOn/XOff)? Das würde ich sonst zuerst probieren.

      Hmm, werd ich mal probieren, ob das zu ändern ist; allerdings kann ich nicht auf die Threads verzichten, da es sonst mit dem timing schlecht geht, da ich z.B. alle 50ms einen Wert absenden muß, das Lesen aber unregelmäßig Daten zurück gibt.

      Danke für den Tip,
      Richard

    2. Moin!

      Benutzt Du für die Übertragung den Hardware-Handshake (XOn/XOff)?

      Das ist Software-Handshake. Hardware wäre CTS/RTS, oder wie das genau heißt.

      - Sven Rautenberg

      --
      "Love your nation - respect the others."