AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Daten-Ereignisse feststellen

Daten-Ereignisse feststellen

Ein Thema von UliBru · begonnen am 15. Apr 2012 · letzter Beitrag vom 15. Apr 2012
Antwort Antwort
UliBru

Registriert seit: 10. Mai 2010
123 Beiträge
 
Delphi XE6 Professional
 
#1

Daten-Ereignisse feststellen

  Alt 15. Apr 2012, 11:57
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?
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
31.029 Beiträge
 
Delphi XE3 Professional
 
#2

AW: Daten-Ereignisse feststellen

  Alt 15. Apr 2012, 12:19
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?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:

Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2016 by Daniel R. Wolf