Probleme mit Half Duplex Comport



  • Hallo,

    ich muss bei einem RS232<->RS485 Adapter gleich nach writefile entweder die DTR oder
    die RTS Leitung umlegen, damit der Adapter auf Eingang steht und empfängt.
    Mein Oszi verät mir aber, das ich nach Writefile bis zum realem Senden extrem lange
    warten muss bis wirklich gesendet wurde. Mein Writefile (nicht overlapped)
    verlässt jedoch viel früher den Aufruf und würgt mir durch meinen Umschaltvorgang
    mit EscapeCommFunktion damit das gesendete signal in der Hälfte ab.
    Ich nehme an, das liegt an einem Hardwarebuffer.
    Ich habe versucht den hardwarebuffer zu flushen, brachte nichts.
    Ich habe versucht den Buffer zu verkleinern mit setupcomm (0), das scheint aber
    nur ein softwarebuffer von Windows zu sein.
    Das WaitCommEvent auf leeren Buffer geht auch viel zu früh heraus, ich denke hier wird nicht der Hardwarebuffer gecheckt.

    Für die RTS Leitung würde es ein "RTS_CONTROL_TOGGLE" geben, das dies vom
    Baustein her machen würde, aber nicht für die DTR Leitung 😞

    Specifies that the RTS line will be high if bytes are available for transmission. After all buffered bytes have been sent, the RTS line will be low.

    Ausserdem würde ich gerne selber die Kontrolle haben und evtl. das Signal
    mal auch invertiert ausgeben (es gibt viele dieser Adapter Versionen, würde
    gerne alle unterstützen mit einem Optionendialog)

    **Kann mir jemand sagen wie man herausbekommt, wann die Hardware nach writefile
    WIRKLICH gesendet hat?
    **
    Gruß
    thenoname

    ps. ähnliches hier ungelöst:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-136830-and-highlight-is-rtscontroltoggle-and-sid-is-1187ec1358cba99e634d47e19f7a0248.html


Anmelden zum Antworten