Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Async Pro- Probleme (https://www.delphipraxis.net/19056-async-pro-probleme.html)

EConvertError 28. Mär 2004 14:54


Async Pro- Probleme
 
Hallo!

Das Ziel meines Projektes ist Textdateien über den COM Port zu senden/empfangen. Mir wurden die Async Pro Komponenten empfohlen. Das senden funktioniert perfekt, nur mit dem empfangen habe ich massive Probleme:

Das OnTriggerAvailEvent sieht so aus:
Delphi-Quellcode:
procedure TComPort.TriggerAvail(CP: TObject; Count: Word);
var
  Data: String;
  I: Integer;
begin
  { OnTriggerAvail; Read the data }
  for I:= 0 to Count do
     Data := Data + ApdComPort.GetChar;
  MainForm.Memo1.Add(Data);
end;
Nur leider funktioniert der Code nicht (es wird nichts empfangen, obwohl etwas gesendet wurde).
Die AutoOpen property ist TRUE, weil das Senden anders nicht geklappt hat (obwohl ich es so wie in der Dokumentation beschrieben gemacht habe).
In der Hilfe habe ich den Hinweis gefunden, dass diese procedure in einem Form sein soll. Muss das wirklich so sein? Ich wollte mein Programm objektorientiert schreiben, also befindet sich der obere Code in einem von TComponent abgeleiteten Objekt.

Oder weiß vielleicht jemand eine sogar andere Komponente, die einfach zu bedienen ist (sollte Open Source sein)? Auch API Programmierung käme für mich in Frage, nur wäre da ein Tutorial oder so etwas von Nutzen, denn in dem Gebiet habe ich gar keine Erfahrung.
Denn schön langsam zweifle ich, ob diese ApdComPort Komponente das Wahre ist...

mfg,
EConvertError

aMuTeX 29. Mär 2004 10:59

Re: Async Pro- Probleme
 
Ich kann dir ComPort empfehlen.

shmia 29. Mär 2004 12:05

Re: Async Pro- Probleme
 
Zitat:

Zitat von EConvertError
Das Ziel meines Projektes ist Textdateien über den COM Port zu senden/empfangen. Mir wurden die Async Pro Komponenten empfohlen. Das senden funktioniert perfekt, nur mit dem empfangen habe ich massive Probleme:

Nur leider funktioniert der Code nicht (es wird nichts empfangen, obwohl etwas gesendet wurde).

Bei den Async Pro Komponenten sollte doch auch ein Beispiel im Source Code
dabei sein. Teste die serielle Schnittstelle zuerst mit diesem Beispiel.
Zitat:

Zitat von EConvertError
In der Hilfe habe ich den Hinweis gefunden, dass diese procedure in einem Form sein soll. Muss das wirklich so sein?

Nein. Du brauchst lediglich eine Klasse um ein Event zu empfangen.
Die kann ein Formular, Datenmodul oder eine Komponente sein.
Zitat:

Zitat von EConvertError
Oder weiß vielleicht jemand eine sogar andere Komponente, die einfach zu bedienen ist (sollte Open Source sein)? Auch API Programmierung käme für mich in Frage, nur wäre da ein Tutorial oder so etwas von Nutzen, denn in dem Gebiet habe ich gar keine Erfahrung.

Von API-Programmierung würde ich dir stark :warn: abraten.
Wozu das Rad neu erfinden und alle Fehler nochmals machen ?
Es gibt allerdings schlankere Komponenten als Asych Pro; die können
zwar weniger, reichen aber meistens aus.

runger 29. Mär 2004 12:25

Re: Async Pro- Probleme
 
Hallo,

ich benutze asynchpro seit Jahren und das funktioniert einwandfrei.
Was für eine Version hast du?
Wie ist die flow control eingestellt?
An deinem Code liegts jedenfalls nicht. Hast du die Hex dump Funktion aktiviert?
Dort kannst du alles sehen was auf der Schnittstelle vor sich geht.
Autoopen ist nicht so gut, benutze lieber port.open:=true;
Stimmt die Baudrate, parity, Anzahl datenbits ......

Asynchpro ist mit das Beste was es im Moment auf dem Markt gibt und es ist kostenlos!

Rainer

( Mail mir mal mehr von deinem Code zu den property Einstellungen der port Komponente (Snapshot) )

EConvertError 29. Mär 2004 16:39

Re: Async Pro- Probleme
 
Hallo!

Vielen Dank für eure schnelle Hilfe! Ihr habt mir schon ein wenig geholfen. Falls ich das mit den Async Pro nicht schaffe, werde ich die ComPort- Komponente benützen.

@runger: Ich schicke dir eine private Message mit all den gewünschten Daten.

mfg,
EConvertError

EConvertError 3. Apr 2004 10:31

Re: Async Pro- Probleme
 
Hallo noch einmal!

Dank runger habe ich bei der Lösung meines Problems schon Fortschritte gemacht!
Ich versuche mein Ziel doch noch mit den Async Pro Komponenten zu erreichen.

Nun bekomme ich jedoch immer eine EBufferIsEmpty Exception. Ich vermute mal sehr stark, dass es an der BufferFull, bzw. an der BufferResume Property liegt, die bei mir beide 0 sind.

Welchen Wert sollen die beiden Properties denn jetzt haben? Un was bedeuten diese Properties eigentlich? Aus der Hilfe werde ich nicht schlau.

Vielen Dank schon im voraus,
EConvertError

EConvertError 4. Apr 2004 16:55

Re: Async Pro- Probleme
 
Danke, es hat sich erledigt.
Der Fehler lag in dem oben geposteten Code.

Richtig ist:
Code:
...
for I:= 0 to Count-1 do //-1 hat gefehlt!
...
mfg,
EConvertError


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 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