Henry hat folgendes geschrieben: |
Hallo,
ich verwende in meinen Programmen die Komponente TSerial aus der ToolBox.
Nun frage ich z.B. mit dem Ereignis OnCTS ein externes Signal ab, welches sehr Häufig erscheint (im Millisekundenbereich).
Meine Frage ist nun:
Bis zu welcher Frequenz kann man die Signale an der Schnittstelle (CTS, DSR, DCD und Ri) noch sicher auswerten?
Danke schon einmal im Voraus |
Hallo,
ich fürchte, das kann man genau genommen garnicht: Statuswechsel der Signale wie CTS werden vom Treiber erfasst (Windows-intern, ohne genaue Analyse des Treibers ist nichts darüber bekannt) und als Message in die Message Queue deiner Anwendung eingefügt. Du erfährst erst etwas davon, wenn du die Message handelst, was stark von deinem Programm abhängt - hast du eine Schleife laufen ohne Processmessages, dann überhaupt nicht.
Die empfangenen Zeichen dagegen werden gepuffert und können mit Read ausgelesen werden, je nach Timeout-Einstellung und Event-Char möglicherweise erst als fertiger String nach Eintreffen von CR-LF.
Hast du eine Schnittstelle, die nach jedem Byte CTS ab- und dann wieder anschaltet, so bekommst du etwa auf meinem Protokollanalysator die Anzeige 'T' CtsOff CtsOn 'H' CtsOff CtsOn 'E' CtsOff CtsOn ' ' CtsOff CtsOn 'Q' CtsOff CtsOn 'U' CtsOff CtsOn usw. usw., das ist eine Realtimeanzeige, aus der ich auch die Zeit in µsec für jedes Zeichen und jeden Statuswechsel entnehmen kann. Unter Windows erhälst du je 45 CTS-Off/On Events und DANN einen String 'THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG' CR LF.
Da kannst du den zeitlichen und logischen Zusammenhang (sende wenn CTS true) nur vermuten.
Gruss Reinhard