AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

AsyncPro in einem exterenen Thread

Ein Thema von DelphiManiac · begonnen am 31. Aug 2006 · letzter Beitrag vom 31. Aug 2006
Antwort Antwort
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

AsyncPro in einem exterenen Thread

  Alt 31. Aug 2006, 10:08
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:
procedure TForm3.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
begin
// LeseDaten
end;
Event warten zu müssen.

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
  Mit Zitat antworten Zitat
arnold mueller

Registriert seit: 27. Jul 2005
129 Beiträge
 
#2

Re: AsyncPro in einem exterenen Thread

  Alt 31. Aug 2006, 14:16
So richtig habe ich Dein Problem nicht verstanden, aber die Anzahl der Zeichen im Empfangspuffer der Apro Komponente liefert das Property InbufUsed.

Gruß, Arno.
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: AsyncPro in einem exterenen Thread

  Alt 31. Aug 2006, 15:04
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
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#4

Re: AsyncPro in einem exterenen Thread

  Alt 31. Aug 2006, 15:14
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
InBuffUsed pollen bis die Anzahl Bytes da ist, die ich erwarte oder ein Timeout erfolgt!

Danke, manchmal liegt die Lösung so Nahe
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#5

Re: AsyncPro in einem exterenen Thread

  Alt 31. Aug 2006, 15:15
Ja aber ansonsten müsste ich ja in meinem Kommunikationsmodul auf ein Ereignis warten.

Weiss nicht wie ich dass am saubersten machen soll.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:35 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