![]() |
Re: Signalverlauf
Ich würde die Messwerte in ein VBO laden und das Ganze hardwarebeschleunigt mit OpenGL oder DirectX (oder Andorra 2D) zeichnen. Damit sollten Bildwiederholraten von über 1000FPS drin sein.
|
Re: Signalverlauf
- Messwerte in eine Liste schieben.
- Mit einem Timer (Interval=1) folgendes aufrufen - Timer abschalten - Die aktuelle Liste mit Assign kopieren - Alle Messwerte darstellen - Timer einschalten - Die Liste zyklisch bereinigen (damit der Speicher nicht vollläuft) Dann ist die Darstellung der Messwerte praktisch so schnell wie der Rechner das abarbeiten kann (ausgenommen dies kleine Millisekündchen, bis der Timer wieder anspringt) |
Re: Signalverlauf
Ein Timer schafft nie eine Auflösung von 1 Millisekunde. Unter XP maxmimal 10 ms und unter Win9x nur 50 ms.
Gut, wie das bei Vista ist, weiß ich nicht. Einen normalen TTimer würde ich dafür nicht nutzen, dann schon eher einen Timer, der schneller ist und wie er sicherlich in Andorra 2D zu finden ist, das Andreas bereits erwähnt hat. Edit: Einen Timer würde ich jedoch nur fürs Einlesen mit einem hohen Intervall nutzen. Die Ausgabe reicht ja langsamer, denn da kommt ein TFT ja sonst eh nicht hinterher. |
Re: Signalverlauf
Ich denke, dass es sinnvoll ist, die Messdaten in einem Thread einzulesen und in eine Art Ringbuffer zu schreiben. Dieser kann dann periodisch von dem Grafiksystem ausgegeben werden.
Damit die Bewegung flüssig erscheinen sollten schon Bildwiederholraten von 60-100FPS langen - mehr schaffen die meisten Monitore sowieso nicht. Von daher muss Hardwarebeschleunigung nicht unbedingt sein. |
Re: Signalverlauf
|
Re: Signalverlauf
Ja das sieht ganz gut aus, ist nur etwas aufwendig für das was ich machen will, so mit Dll und so!
Ich hab mal das mit der Verzögerten Darstellung in einem TChart versucht, hatte da aber wohl gestern Abend schon die Augen zu beim proggen.! Also ich lad beim Progstart erstmal die 1000 Werte 3 mal, also insgesamt 3000, in das Chart! Diese habe ich vorher in ein Array eingelesen! Zum testen benutze ich jetzt erstmal immer die gleichen 1000 Werte, also ich versuche immer das Array in das Chart zu laden. Probleme: Ich komme nicht ganz klar, bspw. links 100 Werte im Chart zu löschen und rechts 100 neue anzufügen! --> völliges Brett vorm Kopf Und das meinetwegen dann alle 100ms per Timer! Kennt sich jemend mit TChartValueList aus, geh ich da richtig in der Annahme, dass ich eigentlich meine Werte die ich ins Array schreibe nicht auch gleich darein schreiben könnte, und wenn ja wie kann ich das realisieren, wenn ich die TChartValueList per for Schleife bspw. mit den Arraywerten testweise füllen möchte. Werden bei jeder Änderung dieser List auch die Werte im Graph geändert? VD |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 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