![]() |
AsyncPro in einem exterenen Thread
Hallo, nutzt zurzeit die AsyncPro Komponente in dem VCL-Thread.
Ich schreibe Daten an die Schnittstelle und warte bis Daten zurückkommen. Nun habe ich aber das Problem, das mein kompletter VCL-Thread mit warten auf das Ereignis, dass Daten im Puffer liegen wartet. Ich würde das gerne auslagern in einen extra Thread, der für mich die Kommunikation übernimmt ohne im VCL-Thread auf das
Delphi-Quellcode:
Event warten zu müssen.
procedure TForm3.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
begin // LeseDaten end; Ich will also in meinem Haupthread eine Variable, die mir sagt es liegen x Bytes im Puffer. So dass ich diese Variable pollen kann. Hoffe ihr wisst was ich meine Danke schonmal im Vorraus |
Re: AsyncPro in einem exterenen Thread
So richtig habe ich Dein Problem nicht verstanden, aber die Anzahl der Zeichen im Empfangspuffer der Apro Komponente liefert das Property InbufUsed.
Gruß, Arno. |
Re: AsyncPro in einem exterenen Thread
Hi,
an sich ist der Weg, den du gehen möchtest imho nicht wirklich schön. Pollen ist hier unnötig und verschwendet immer Rechenzeit. Ich weiß nicht wie es mit der AsynchPro aussieht, aber bei der TComPort Komponente (gibt es auch frei, bei Sourceforge) hast du eine sehr gute RS 232 Kapselung, die ein Event auslöst, wenn Daten im Puffer landen. Hier kannst du dann in diesem Ereignis leicht prüfen, wievoll der Puffer ist. Zudem hast du auch die Möglichkeit auf ein bestimmtes Zeichen zu warten und hier nur auf das auftreten dieses Zeichens im Puffer zu warten (was dann wieder ein Ereignis auslöst). Dies sollte eigentlich einen weiteren Thread unnötig machen und auf jeden Fall kein Pollen benötigen. Gruß Der Unwissende |
Re: AsyncPro in einem exterenen Thread
Genau danach habe ich gesucht, dachte die Kompo würde mir nur über das Event die Anzahl der Bytes melden.
So kann ich ja jetzt den
Delphi-Quellcode:
pollen bis die Anzahl Bytes da ist, die ich erwarte oder ein Timeout erfolgt!
InBuffUsed
Danke, manchmal liegt die Lösung so Nahe :o |
Re: AsyncPro in einem exterenen Thread
Ja aber ansonsten müsste ich ja in meinem Kommunikationsmodul auf ein Ereignis warten.
Weiss nicht wie ich dass am saubersten machen soll. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 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