![]() |
Seriell Flusssteuerung einstellen
In meinem Programm lese ich von der Seriellenschnittstelle Daten ein, die Schnittstellen Parameter
stelle ich zur Laufzeit ein mit dem Typ TDCB, was alles kein Problem ist, funktioniert alles.
Delphi-Quellcode:
Nur müßte ich noch die Flusssteuerung auf Xon / Xoff einstellen, dazu habe ich auch schon herrausgefunden
DCB.Baudrate := 38400;
DCB.ByteSize := 8; ... das man dies mit "DBC.Flags" macht, nur wie weiß ich noch nicht. Was muß ich angeben um die 3 möglichkeiten zu bekommen. (Xon/Xoff, Hardware, Keine). Ich habe schon im Forum gesucht aber höchstens mal sowas wie $1011 o.ä. gefunden jedoch was das heißt stand nie dabei. |
Re: Seriell Flusssteuerung einstellen
Hallo TUX_der_Pinguin,
Hier: ![]() gibt es eine tolle Dokumentation zu TCOMPort. Dort steht u.a.: Zitat:
Hier: ![]() gibt es ein komplettes Beispiel mit TDCB. Dort steht u.a.: Zitat:
in das hexadezimale System übertragen ergibt sich $1403 ($00001403). Im hexadezimalen System zählt man 0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F-10-11-12-13-14-15-16-17-18-19-1A-1B-... Nun ist $1430 oder 5123 nichts anderes als eine mögliche Summe der obigen Flag-codes, das heisst konkret, das $1403 die Summe von:
Delphi-Quellcode:
ist.
dcb_RtsControlEnable = $00001000; // RTS-Flusskontrolle - Öffnet RTS auf 1 bei Verbindung und hält es auf 1;
dcb_ErrorChar = $00000400; // Bestimmt, ob Bytes mit falscher Parität durch den Error-Char ersetzt wird.; dcb_ParityCheck = $00000002; // Paritätsüberprüfung; und dcb_Binary = $00000001; // Binärer Modus - In Windows immer auf 1! Für dich ist dabei erst einmal nur der erste Wert - $1000 - interessant. das veränderst du für Xon/Xoff so:
Delphi-Quellcode:
die summe ist $703 (hex!) oder 1795 (dez).
dcb_InX = $00000200; // Flusskontrolle mit XOn/XOff beim Empfangen
dcb_OutX = $00000100; // Flusskontrolle mit XOn/XOff beim Senden dcb_ErrorChar = $00000400; // Bestimmt, ob Bytes mit falscher Parität durch den Error-Char ersetzt wird.; dcb_ParityCheck = $00000002; // Paritätsüberprüfung; und dcb_Binary = $00000001; // Binärer Modus - In Windows immer auf 1!# Wie du dcb.flags zuweist (ob nun $703 oder 1795) spielt dabei keine Rolle, denn beide Darstellungen meinen ein und dasselbe. Frohes Programmieren :coder: Titanic |
Re: Seriell Flusssteuerung einstellen
Vielen dank das hat mir schon recht gut geholfen, ich habe ein mini Test Programm geschrieben wo ich die Schnittstelle
per Windows Dialog einstellen kann, dort habe ich dann die Flusssteuerung auf die 3 Möglichkeiten (Keine, Xon/Xoff und Hardware) gesetzte und mir anschließend DCB.Flags ausgeben lassen ( ShowMessage(IntToStr(DCB.Flags)); ) und kam zu folgendem Ergebnis. Keine = 4113 Xon/XOff = 785 Hardware = 8213 Ich nehme daher an das da noch ein paar andere Optionen gesetzt werden, welcher Art auch immer. So weiß ich jedoch was ich setzten muß wenn ich die Flusssteuerung einstellen muß. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz