![]() |
AW: Chart-Komponente die 1000 Werte / sec verträgt
Meines erachtens sollte das mit OpenGl / DirectX doch ohne weiteres möglich sein.
Nur eine komponente dafür kenn ich nicht. gruss |
AW: Chart-Komponente die 1000 Werte / sec verträgt
|
AW: Chart-Komponente die 1000 Werte / sec verträgt
Im Delphi 7 gibt es bei mir 2 ActiveX-Chart-Komponenten
und ab D2007 liegt ein einfaches TChart bei. Da sollte es auch so schon Einiges zum ausprobieren geben. |
AW: Chart-Komponente die 1000 Werte / sec verträgt
Das Zeichnen selbst ist hier wirklich weniger der Knackpunkt. Eher die Vorstufe: Was übergebe ich an "was auch immer nachher zeichnet", bzw. wie viel davon, und ist das sinnvoll. Eine 3D API würde ich dafür jetzt allerdings eher nicht in den Raum werfen, für den putzigen Unterschied den das machen dürfte (zumal man an ganz anderen Stellen genau so ineffiziente Dinge tun könnte, da sie halt gleich zu handhaben wären (Speicherung, Übertragungsweg, Puffer füllen, etc.)) wäre das den doch nicht ganz kleinen Mehraufwand kaum wert (vor allem die Lernerei wenn man da noch nie was mit gemacht hat).
Erfahrungsgemäß ist es fast immer sehr sinnvoll, wirklich auch nur die Daten in einen Darstellungsmechanismus zu füttern, die tatsächlich angezeigt werden (können). Wie die Daten in den PC kommen, und wie sie dort gespeichert sind ist allein für's zeichnen zweitrangig. Man könnte eine Vermittlerschicht einführen, die berechnet für was für einen Zeitraum wie viele Werte auf wie viele Zielpixel gebracht werden müssen, und diese gräbt dann die nötigen Werte aus dem Datenbestand und reicht sie an ein Chart oder was auch immer weiter. Entsprechend dynamisch aufgebaut ist damit auch zoomen und scrollen effizient möglich denke ich. Ich glaub aber immer noch, dass die echte Schwierigkeit das Aufzeichnen wird. |
AW: Chart-Komponente die 1000 Werte / sec verträgt
Zitat:
Was dann noch Raum für andere Anwendungen übrig ließe. gruss |
AW: Chart-Komponente die 1000 Werte / sec verträgt
Zitat:
Wäre auch denkbar, die Daten zunächst in eine Textdatei zu ballern und später per bulk insert in die DB zu pusten. Ist überhaupt eine DB am Start? |
AW: Chart-Komponente die 1000 Werte / sec verträgt
Der Anteil des reinen Datenrumgeschaufels sollte den des eigentlichen Zeichnens um ein vielfaches übersteigen. Das wollte ich damit ausdrücken :) Und ob die Daten nun durchs RAM oder durch den Texturspeicher gejagt werden ist dann auch fast egal. Genau genommen ist das gerade wegen des sich ständig und in so großem Umfang ändernden Puffers eher GPU-feindlich. Man muss ja doch immer und immer wieder mit der CPU ran fürs Nachladen. Was dann noch für's Malen drauf geht sollte in beiden Fällen weitgehend vernachlässigbar sein, vorausgesetzt man beschränkt sich wirklich auf einfache Linien.
@Iwo: Problematisch ist sowas halt immer, wenn man Einzelwerte versucht zu verarbeiten. Im Bulk sind das kleine Mengen, ja. Da wäre es dann toll, wenn das Messgerät einen Puffer böte. Sowas wie "gib mal Daten der letzten Sekunde" statt 1000x in der Sekunde "gib mal das Datum". |
AW: Chart-Komponente die 1000 Werte / sec verträgt
Ich denke, dass der Ball vorerst bei "DelphiManiac" liegt. Vielleicht haben ihm die bisherigen Infos ja bereits geholfen. Alles Weitere ist nur ein Rühren in einer trüben Suppe.
|
AW: Chart-Komponente die 1000 Werte / sec verträgt
Zitat:
Ich würde eine Klasse erzeugen um die Samples zu verarbeiten. Diese Klasse bekommt als Input die ~5000-7000 Samples. Als Output werden vorverarbeitete Daten erzeugt, die dann stressfrei angezeigt werden können. Wenn z.B. der Oversampling-Faktor = 100 ist, dann werden immer 100 Samples aus dem Input zu einem Wert des Outputs (Durchschnitt bilden). Desweiteren wird gleichzeitig noch der Minimum- und der Maximumwert berechnet. Diese Daten (Durchschnitt, Minimum und Maximum) werden dann mit verschiedenen Farben zur Anzeige gebracht. Wenn man mag kann man auch noch gleich den Median berechnen. Durch diese Vorverdichtung der Daten (einstellbar über den OversamplingFaktor) kann man die Datenmenge immer so reduzieren, dass man sie ohne das System zu überfordern anzeigen kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 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