Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Daten-Ereignisse feststellen (https://www.delphipraxis.net/167728-daten-ereignisse-feststellen.html)

UliBru 15. Apr 2012 11:57

Daten-Ereignisse feststellen
 
Hallo,

ich bekomme über eine dll Daten in einem Puffer übergeben. Hierzu liefert die Schnittstelle einen Record, in dem die Adresse auf den Puffer als auch die Information bzgl. der Puffergröße mitgeteilt wird. Zusätzlich enthält der Record eine weitere Information, nämlich eine Abtastfrequenz.
Derzeit lese ich die Daten per Poll-Modus aus. D.h. der Record wird zylisch befragt, ob die Pufergröße > 0 ist und dann wird gelesen.

Als erstes stellt sich für mich die Frage, wie man es realisieren könnte, dass eben nicht gepollt wird, sondern wie man ein Ereignis erzeugt, welches anzeigt, das Daten vorliegen.

Weiterhin kann sich während der Datenerzeugung die Abtastfrequenz ändern. Das wird mit jeder Abfrage de Records ebenfalls festgestellt. Wie könnte man ein eigenes Event und eine zugehörige Prozedur erstellen, welche auf die Änderung der Variablen Abtastfrequenz reagieren?
Hintergrund ist, dass sich bei Änderung der Frequenz die Auswertung der Pufferdaten mitändern muss.

Oder bleibt letztendlich nur die Möglichkeit, dass mein Programm den Record pollt und dann eben damit arbeitet?

himitsu 15. Apr 2012 12:19

AW: Daten-Ereignisse feststellen
 
Wenn die DLL keinen "Neue Daten sind da"-Callback anbietet, bleibt dir wohl nix anderes übrig.

Aber du kannst die Pollfrequenz an die Abtastfrequenz anpassen. (Pause bis zu den nächsten Daten berechnen)


Das Ganze könnte man in einem Thread machen und würde bei vorhandenen Daten ein Ereignis auslösen/aufrufen.


Was passiert eigentlich, wenn man mal vergißt Daten abzufragen?
Also wenn mehrere Datenblöcke eingetroffen sind, während der letzen Abfrage.
Oder wenn neue Daten eintreffen, während man gerade am Abfragen ist?


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