der springende Punkt

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Frank8001
Beiträge: 24
Registriert: Fr 26. Apr 2013, 20:28

Re: der springende Punkt

Beitrag von Frank8001 »

Ja, so hatte ich es auch schon mal programmiert und es lief schnell. Aber da fehlt auch die Routine zum frequenzabhängigen Wiederholen der EKG-Komplexe. Die Berechnung der Intervallänge kann man natürlich ausserhalb der Schleife legen, dann kann man sie allerdings nicht während des Ablaufs ändern. Da kommt mir allerdings die Idee, dass man das Frequenzintervall über ein OnClick Ereignis bei der Eingabe der Frequenz in das Edit-Feld berechnen könnte und dann an die EKG-Routine weiterleiten könnte. Dann wird es nur einmal nach der Änderung berechnet.
Danke nochmal und Gruss
Frank

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: der springende Punkt

Beitrag von gocher »

Frank8001 hat geschrieben:Die Berechnung der Intervallänge kann man natürlich ausserhalb der Schleife legen, dann kann man sie allerdings nicht während des Ablaufs ändern. Da kommt mir allerdings die Idee, dass man das Frequenzintervall über ein OnClick Ereignis bei der Eingabe der Frequenz in das Edit-Feld berechnen könnte und dann an die EKG-Routine weiterleiten könnte. Dann wird es nur einmal nach der Änderung berechnet.

Mein Reden!

Zu den Werten, ich dachte Du berechnest die Kurve nur einmal und legst Sie dann im Array ab, um sie von dort aus in einer Schleife immer wieder zu durchlaufen, also auch außerhalb der Schleife, wenn nicht kann man die Berechnung vielleicht noch etwas optimieren?

Das ist eigentlich mein Steckenpferd und zwischendurch brauche ich schon mal Ablenkung und dann mach ich mich gerne über so etwas her! 8)
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

Frank8001
Beiträge: 24
Registriert: Fr 26. Apr 2013, 20:28

Re: der springende Punkt

Beitrag von Frank8001 »

Ja, die Kurve ist einfach mit den gespeicherten y-Werten in EKG[a] festgelegt. Aber die Frequenz, mit der die Kurve wiederholt wird, die kann im laufenden Betrieb verändert werden.
Gruß
Frank

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: der springende Punkt

Beitrag von gocher »

Also um es nicht zu kompliziert zu machen, würde ich die Berechnung durchführen und die Übergabe des Wertes über eine CriticalSection lösen, also ungefähr so:

Code: Alles auswählen

var
  ecs: TRTLCriticalSection;
  value: DWord;
 
//in Create (Programm-Start)
InitCriticalSection(ecs);
 
//setzen der Variablen von der Rechen-Routine 
procedure SetValue(A: DWord);
begin
  EnterCriticalSection(ecs);
  try
     value := A; //Wert Setzen
  finally
    LeaveCriticalSection(ecs);
  end;
end;
 
//auslesen der Variablen von der Zeichen-Routine
function GetValue(): DWord;
begin
  EnterCriticalSection(ecs);
  try
     result := value; //Wert Lesen
  finally
    LeaveCriticalSection(ecs);
  end;
end;
 
//in Destroy (Programm-Ende)
DoneCriticalSection(ecs);
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

Antworten