Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
12.04.2011, 09:54 (Dieser Beitrag wurde zuletzt bearbeitet: 12.04.2011 10:03 von Peer.)
Moin,
ich arbeite seid einigen Wochen mit Labview und bin grade an einem Punkt angekommen, wo ich nicht so richtig weiß, wie ich weiter machen soll. Ich hoffe ihr könnt mir dabei helfen.
Ich habe einen Maussensor mit einem VI kalibriert und mir eigene X- und Y-Achsen erstellt. Ich lasse mir die aktuelle Position der Maus in einem Graphen anzeigen, würde allerdings auch gerne sehen, wo ich bisher mit der Maus überall war.
Das heißt ich möchte mit meiner Maus einen Graphen malen. Ich hab mir gedacht, dass das nicht besonders schwer sein kann, aber ich finde einfach nicht die richtigen Funktionen.
Ich hab mir überlegt, dass ich alle Daten in ein Array schreibe und die Werte dann plotte, allerdings hätte ich dann eine Begrenzung der Strecke und ich möchte auch kein riesiges Array bauen...
Habt ihr da eine Lösung oder ein Tipp für mich?
Vielen Dank
Peer
Ich bin morgens nur so müde, weil ich nachts Batman bin ^^
Anzeige
12.04.2011, 10:01 (Dieser Beitrag wurde zuletzt bearbeitet: 12.04.2011 10:09 von jg.)
Moin,
ich hab das probiert und für eine "normale" Maus funktioniert das auch ganz gut. Allerdings muss ich für meine zwecke die Rohdaten der maus verwenden, weil ich eine sehr hohe auflösung verwende (ca.26µm). Nach einer kurzen Strecke stürzt der Rechner ab, weil das Array zu groß wird. Deshalb hab ich nach einer Lösung ohne wachsende Arrays gesucht. Ich hab auch ein rotate and replace-Array ausprobiert, aber das geht nur unwesentlich besser. Ich werde später nochmal probieren das Beispielprogramm mit Rohdaten zum Absturz zu bringen. Dazu kommt, dass hinter den Mausdaten später noch ein Messignal-Array stehen wird-> Ich brauche gute Performance.
Hat vielleicht noch jemand eine andere Idee?
Danke
Peer
Also das Beispielprogramm ist, genau wie mein Programm, davon überfordert...
Ich bin morgens nur so müde, weil ich nachts Batman bin ^^
Also um noch mal auf meine Frage zurück zu kommen...
Gibt es keine Möglichkeit die aktuellen Werte wie ein Bild, wenn der PC laggt, auf den Graphen zu legen?
Ich bin morgens nur so müde, weil ich nachts Batman bin ^^
Zitat:Gibt es keine Möglichkeit die aktuellen Werte wie ein Bild, wenn der PC laggt, auf den Graphen zu legen?
Kannst du den Satz nochmal umformulieren? Du willst, wenn der PC "laggt", ihn mit noch mehr Arbeit belasten???
Zitat:Ich hab mir überlegt, dass ich alle Daten in ein Array schreibe und die Werte dann plotte, allerdings hätte ich dann eine Begrenzung der Strecke und ich möchte auch kein riesiges Array bauen...
Habt ihr da eine Lösung oder ein Tipp für mich?
- Um den Verlauf zu sehen, musst du dir irgendwo ein Array mit bisherigen Messwerten anlegen. Also: Daten in ein größenbegrenztes Array schreiben!
- Performance kostet auch das zu häufige Neuzeichnen eines Graphen - aber da machen wir schon
Ah das hört sich doch nicht schlecht an. Wie könnte ich den Graphen denn weniger häufig zeichnen lassen?
Ich habe mittlerweile ein 6000 Elemente großes 2D-Array hinbekommen, welches flüssig läuft. Allerdings hätte ich da gerne mindestens das doppelte stehen. Ich mache das jetzt mit einem Wrap-Around. Die ältesten Daten werden immer gelöscht, wie bei dem Spiel-Klassiker Snake.
Oder wäre es möglich nach 6000 Werten ein neues Array anzulegen und das alte trotzdem im Graphen zu behalten?
Vielen Dank
Peer
Ich bin morgens nur so müde, weil ich nachts Batman bin ^^
So, ich habe mittlerweile die 40000 geknackt, indem ich eine In Place - Struktur verwende und noch seltener meinen Graphen aktualisiere.
Ich habe allerdings ein neues Problem...
Mir ist aufgefallen, dass ich immer eine maximale CPU Auslastung habe, sobald ich das Programm starte. Jetzt habe ich versucht das ein bisschen einzudämmen, indem ich in meiner äußeren While-Schleife einen Wait ms counter einsetze.
Das macht das Programm allerdings sooooo viel langsamer, dass das keine Option ist.
Nun meine Frage: Kann man auch weniger als 1ms in Labview warten?
Danke
Peer
EDIT: Ach ja und noch was... Es gibt ja diesen graphen, mit dem man einen Wert über die Zeit Darstellen kann. Dieser, der so durchläuft... Ich glaube die heißen waveformcharts oder so. Gibt es die auch für 2D-Daten?
Ich bin morgens nur so müde, weil ich nachts Batman bin ^^