Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ComPort Parity umschalten (https://www.delphipraxis.net/10386-comport-parity-umschalten.html)

holzfred 17. Okt 2003 13:27


ComPort Parity umschalten
 
Hi ich will über einen USB-RS232 Adapter mehrere Byts an en Gerät senden.
Mein Problem ist aber das ich eine Parity benötige, das ich nach dem 1. Byte umschalte.

Code:
WriteFile( FComPortHandle, p^, 1, nSent, nil );

dcb.Parity :=4;
SetCommState( FComPortHandle, dcb );

WriteFile( FComPortHandle, p^,4, nSent, nil );

Jetzt habe ich das Problem, daß das umschalten für mich zu lange dauert,
da, wie es scheint beim SetCommState() immer der ganze dcb-Buffer gesetzt wird.

Weiß jemand eine möglichkeit wie ich nur die Parity ändern kann?

OLLI_T 17. Okt 2003 13:41

Re: ComPort Parity umschalten
 
HY Fred!

Ich fürchte da wird Dir nix anderes übrig bleiben. Aber dauert das sooo lange? Die Struktur ist ja von der Initialisierung her gefüllt und Du brauchst nur DCB.fParity umzuswitchen.

Was ist das denn für ein komisches Protokoll bzw. Gerät? :?:

Gruss

OLLI

holzfred 17. Okt 2003 14:03

Re: ComPort Parity umschalten
 
Das ist ein USB auf RS232 Converter.

Und das umschalten dauert ca 16ms aber ich brauch 6ms.

Und wie du sehen kannst öffne ich den Com Port und setze nur die DCB.fParity
bevor ich wieder sende.

Wenn ich meinen normalen Com Port(also Com1) verwende dauert das Setzen nur 2ms.
Jetzt weiß ich nicht liegt es am Treiber oder liegt es an der SetCommState()
Funktion.
Muß dazusagen, das ich Win2K benutze und das Problem unter Win98 nicht auftaucht.
Unter Win98 sind Com1 und USB Umschaltzeiten gleich(ca 3-4ms).


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz