![]() |
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:
Nur leider funktioniert der Code nicht (es wird nichts empfangen, obwohl etwas gesendet wurde).
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; 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 |
Re: Async Pro- Probleme
Ich kann dir
![]() |
Re: Async Pro- Probleme
Zitat:
dabei sein. Teste die serielle Schnittstelle zuerst mit diesem Beispiel. Zitat:
Die kann ein Formular, Datenmodul oder eine Komponente sein. Zitat:
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. |
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) ) |
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 |
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 |
Re: Async Pro- Probleme
Danke, es hat sich erledigt.
Der Fehler lag in dem oben geposteten Code. Richtig ist:
Code:
mfg,
...
for I:= 0 to Count-1 do //-1 hat gefehlt! ... EConvertError |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 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