![]() |
Serielle Schnittstelle pollen
Hallo,
ja ich weiss das Thema 'RS232' gibt es schon ein paar mal, aber zu meiner Frage gibt es dort leider keine Lösung. Also bitte nicht schlagen!! :oops: Ich habe ein Gerät mit dem ich sowohl über USB als auch über RS232 kommunizieren muss. Die Kommunikation erfolgt über eine DLL des Hersteller FTDI . Diese klappt alles wunderbar. Ich habe eine asynchrone Übertragung. --> Dass heißt ich frage Daten an und bekomme eine Antwort. Ich muss nun folgendes machen : 1. Datenanfragen 2. Schnittstelle pollen bis erwartete Anzahl Bytes im Buffer, wenn nicht, nach einer bestimmten Anzahl Versuchen abbrechen. Dass klappt auch wunderbar. Ich habe bei USB eine Funktion zur Abfrage der am Port liegenden Bytes. Ich kann also folgendes machen:
Delphi-Quellcode:
3. Dann kann ich die Bytes vom Port lesen.
repeat {Pollen des USB-Ports}
Sleep(1); QBytes:=Get_QBytes(1); // Bytes am Port inc(iPolling); until (QBytes =7) or (iPolling >100); 7 Bytes erwartet Ich habe alles im VCL-Thread. Würde gerne (die gesamte Kommunikation) in einen externen Thread auslagern. Nunja. Nun zum Thema, ich nutzte die AsyncPro Komponente. Hier gibt es dass Ereignis:
Delphi-Quellcode:
Mein Problem nun ich will den Port abfragen können und nicht auf ein Ereignis warten müssen, da ich sonst bei einem
ApdComPort1TriggerAvail(CP: TObject; Count: Word);
Thread(dem VCL-Thread) in Teufels Küche komme. Vielleicht könnt ihr mir helfen Gracias... |
Re: Serielle Schnittstelle pollen
Kann mir keiner helfen???
|
Re: Serielle Schnittstelle pollen
Hallo,
mit Apro kannst Du grundsätzlich mit ApdComPort1.GetChar ein Zeichen aus der Schnittstelle lesen. Allerdings habe ich damit schlechte Erfahrungen im Zusammenhang mit VCL Threads gemacht. Insbesondere auf Hyper-Threading Maschinen ist der interne Puffer der Apro Komponente durcheinander gekommen, sodass Zeichen doppelt (und dreifach) vorkamen. Gruss, Arno |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 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