AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Chart-Komponente die 1000 Werte / sec verträgt

Ein Thema von DelphiManiac · begonnen am 17. Jun 2012 · letzter Beitrag vom 18. Jun 2012
Antwort Antwort
Seite 2 von 2     12   
EWeiss
(Gast)

n/a Beiträge
 
#11

AW: Chart-Komponente die 1000 Werte / sec verträgt

  Alt 18. Jun 2012, 11:56
Meines erachtens sollte das mit OpenGl / DirectX doch ohne weiteres möglich sein.
Nur eine komponente dafür kenn ich nicht.

gruss
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#12

AW: Chart-Komponente die 1000 Werte / sec verträgt

  Alt 18. Jun 2012, 12:25
Sowas? Oder hier.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#13

AW: Chart-Komponente die 1000 Werte / sec verträgt

  Alt 18. Jun 2012, 13:50
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#14

AW: Chart-Komponente die 1000 Werte / sec verträgt

  Alt 18. Jun 2012, 14:01
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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#15

AW: Chart-Komponente die 1000 Werte / sec verträgt

  Alt 18. Jun 2012, 14:05
Zitat:
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
Na ja putzig ist das nicht gerade da in dem Fall die CPU Auslastung seitens der GPU bei so hohem rechenaufwand doch sehr reduziert würde.
Was dann noch Raum für andere Anwendungen übrig ließe.

gruss
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#16

AW: Chart-Komponente die 1000 Werte / sec verträgt

  Alt 18. Jun 2012, 14:14
Ich glaub aber immer noch, dass die echte Schwierigkeit das Aufzeichnen wird.
Das Ablegen auf Platte geht schnell genug. Eine SQL-DB wird da schon eine kleine Herausforderung, sollte aber möglich sein, denn 1000 Werte sind gerade mal 20k (Double + Zeitstempel+PK), lass es 30k sein.

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?
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#17

AW: Chart-Komponente die 1000 Werte / sec verträgt

  Alt 18. Jun 2012, 14:15
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".
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium (18. Jun 2012 um 14:17 Uhr)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: Chart-Komponente die 1000 Werte / sec verträgt

  Alt 18. Jun 2012, 14:37
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.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#19

AW: Chart-Komponente die 1000 Werte / sec verträgt

  Alt 18. Jun 2012, 16:35
Anders formuliert: Versuche Deine Anforderungen der Messtechnik / Datenverarbeitung von denen der Visualisierung getrennt zu betrachten und auch getrennt um zu setzten. Ich denke, dass könnte Dich weiter bringen.
Das halte ich auch für den richtigen Ansatz.
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.
Andreas

Geändert von shmia (18. Jun 2012 um 16:36 Uhr) Grund: tja die Rechtschreibung mal wieder
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:25 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