LabVIEWForum.de - Listbox ist zu langsam

LabVIEWForum.de

Normale Version: Listbox ist zu langsam
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Die Listbox kann ich doch nur über einen Eigenschaftsknoten beschreiben oder?

Ich möchte beim auslesen von CAN Nachrichten diese in einer Listbox darstellen, wo die Daten nach ID sortiert werden. Das sortieren, Array erstellen und die Nachrichten in der richtigen Reihenfolge darstellen funktioniert tadellos. Wenn jedoch die Daten in den Eigenschaftsknoten der Listbox geschrieben werden dauert dies zu lange!
Meine Berechnungen und Wandlungen von Integer in String usw. dauern ca. 1-2 ms ohne Eigenschaftsknoten, wird dieser beschrieben dauert das ganze 30ms, somit kann ich nicht alle Nachrichten anzeigen und der Puffer läuft über.
Was ist eine schnellere Alternative zur Listbox?

mfg Daniel
Brauchst du unbedingt nen String?
Wenn ja -- wozu?

Ich würd Ein Array mit eben den Integern nehmen.

Gruß
Achimedes
hmm, die Listbox nimmt doch aber nur Strings, das wandeln von integer in string kostet keine bedeutende zeit, ansonsten würde ich ja auch integer nehmen, die lassen sich aber schlecht auf dem frontpanel darstellen und sortieren.
ich brauche mal mehr infos.

Wo kommen die nachrichten her?

Sind es Text nachrichten oder nur Zahlenwerte?

Warum nimmst du denn die Listbox? Du schreibst ja das du die nachrichten eh schon in nem Array Sortierst.
Dann würd ich auch nur das darstellen.

Kannst du dein Programm mal hochladen?
So das hier ist der dll Zugriff auf die Hardware (pcan to usb)
[Bild: 18137-12.jpg]

Hier ist ein Ausschnitt aus dem Programm mit der Listbox die alles durcheinander bringt
[Bild: 18137-13.jpg]

Und so soll es am Ende im Programm aussehen
[Bild: 18137-14.jpg]

Der Quellcode dürfte dir nicht viel bringen, da du ja die Hardware brauchst, ich hoffe das reicht an Bildern, dabei sieht es im Panel mit der Listbox am ende so gut aus.

Die Version mit dem String-Array klappt zeitlich, sieht jedoch auf dem Panel bescheiden aus.

Beim Versuch alles in einen String zu schreiben, bin ich daran gescheitert, das im Panel keine Tabs als Tab angezeigt werden, da können auch keine werte sortiert werden.

vielen dank

mfg daniel
Huhuh Daniel-le,
ich hab ein Cluster erstellt und das in ein Array gesetzt.
Versuch mal das zu benutzen.

Das aussehen musst du halt noch ein wenig bearbeiten.
[attachment=4041]
<div align="left">Habe bei mir 8.2 noch nicht installiert, vielleicht hat Achim schon die ultimative Lösung genannt.
Ich befürchte aber, daß diese Langsamkeit schlichtweg die Eigenschaft des Eigenschaftsknotens ist und Du das Problem anders lösen mußt.
Zitat aus Johnson/Jennings LabVIEW Graphical Programming:
Property Nodes (CLAD)
...Indiscriminately scattering Property nodes throughuout your programm will seriously degrade performance as portions of your block diagram wait while properties execute in the user interface. A general rule of thumb is to never place Property Nodes within the main processing loop(s)...

Also: Das Listenfeld nicht bei jedem Schleifendurchlauf aktualisieren, sondern nur bei tatsächlichen Wertänderungen. Oder besser: Nur dann, wenn eine Bedienhandlung ansteht (bzw. eine Anzeige gewünscht wird), also wenn z.B. der Mauszeiger in das Listenfeld eintritt. Oder... (Dir wird schon noch was einfallen)
Das Beste ist natürlich, das Listenfeld mit dem Eigsnschaftsknoten gar nicht zu verwenden </div>
Ich hab mal wieder nicht auf die versionen geachtet.
morgen in der firma kann ich es dann vielleicht auf 7.1 speichern.
jetzt für 7.1
[attachment=4046]
Habe mir alles noch mal angesehen, im Grunde hast Du das Problem bereits selbst gelöst, wenn Du schreibt, daß es mit der Ergebnisdarstellung als Vektor keine Problem gibt. Aber Dich stört daran wahrscheinlich, daß dann die Darstellung nicht so ist wie Du es gern hättest.

Dem kann aber ganz leicht abgeholfen werden:
Frontpanel --> Kontextmenü --> ersetzen --> Feld "Liste&Tabelle --> Tabelle. Naja, vielleicht sieht es nicht ganz so fein aus wie dein Listenfeld, aber ich meine es ist immer noch gut genug:
[attachment=4047]

Wenn Du dann die Geschwindigkeit noch weiter steigern willst, dann kannst Du ja außerdem dem Vorschlag von Achim nachgehen und Zahlen anstelle von Strings als Tabellenelemente verwenden. Aber Dein wesentlicher Fehler war wohl ein einziger falscher Mausklick: Platzieren des Listenfeldes statt der Tabelle auf dem Frontpanel.
Seiten: 1 2
Referenz-URLs