INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Laufender Puffer



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!

19.09.2007, 14:11
Beitrag #1

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Laufender Puffer
Hallo Leute,

wie war es noch mal mit dem begrenzten laufendem Puffer?

Ich habe eine Statusanzeige in Form einer Multicolumn Listbox. Dieser werden immer neue Logmeldungen als neues Arrayelement am Ende hinzugefügt. Die ersten Logmeldungen sollen aus der Anzeige (bzw. Array) verschwinden, wenn die Puffergröße überschritten wird. Ausserdem soll automatisch gescrollt werden (die 10 aktuellen Logmeldungen sollen immer angezeigt werden).

Ich habe es früher mit Build Array am Ende hinzugefügt, mit Array Size den Überlauf bestimmt und diesen überlauf mit Split Array abgeschnitten.
Nun klappt es mit Split Array nicht mehr, weil ich jetzt ein 2D Array habe, Split Array kann aber nur 1D Arrays abschneiden. Außerdem ist diese Methode nicht laufzeit- und speicher- optimal.

Noch mal die Frage: wie wird es mit dem Replace Array Subset gemacht? Die Puffergröße ist in dem Fall fest und nicht einstellbar. Das Array wird am Anfang vorinitialisiert.

eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.09.2007, 15:04
Beitrag #2

Achim Offline
*****
*****


Beiträge: 4.222
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Laufender Puffer
' schrieb:Ich habe es früher mit Build Array am Ende hinzugefügt, mit Array Size den Überlauf bestimmt und diesen überlauf mit Split Array abgeschnitten.
Nun klappt es mit Split Array nicht mehr, weil ich jetzt ein 2D Array habe, Split Array kann aber nur 1D Arrays abschneiden. Außerdem ist diese Methode nicht laufzeit- und

Kannst du evtl. statt nem 2D-Array ein "1D-Array of Cluster of 2 Elements" nehmen? Oder irgendwie was mit "ReplaceArraySubset" (ebenfalls von nem "1D-Array of Cluster of 2 Elements") + Rotate 1D-Array

Müsste mal überlegen...

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.09.2007, 15:51
Beitrag #3

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Laufender Puffer
Könntest du einen kleinen Beispiel posten? Ich weiss nicht wie ich aus dem Array Of Cluster wieder ein 2D-Array bekomme und verstehe auch nicht wozu Rotate dienen soll, ich will schiften, nicht rotaten.

Danke, eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.09.2007, 16:32 (Dieser Beitrag wurde zuletzt bearbeitet: 19.09.2007 21:16 von eg.)
Beitrag #4

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Laufender Puffer
Ok, ich habe es spaltenweise gemacht, da ich nur 4 Spalten habe.

Irgendwelche Optimierungsvorschläge?

eg


Angehängte Datei(en) Thumbnail(s)
   

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.09.2007, 19:42
Beitrag #5

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Laufender Puffer
Ok, autoscrollen mit jedem neuen Log muss ich ja nicht, da das aktuelle sowieso immer am Ende des Array ist. Somit ein Mal bei der Initialisierung des Programms scrollen reicht. Danach nur noch beim "Mouse leave" Event.
Das hat schon die CPU von 5% auf 1-2% gebracht (die Logs kommen ungefähr mit 10 Hz). Es ist aber immer noch zu viel.

Ich vermute die MCL ist echt stark reccourcenfressend. Was meint ihr dazu?

Ich habe mit einem C++ -ler gesprochen, er meint im MS VS gibt es einen Control, der aber eine Methode "Add Item" hat und die Speicherverwaltung übernimmt dieser Control für den User.

Gibt es nichts ähnliches in LV?

eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.09.2007, 21:09
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Laufender Puffer
' schrieb:Ich vermute die MCL ist echt stark reccourcenfressend. Was meint ihr dazu?
Hast du es auch mal einfach mit einem 2D-Array of Strings oder einem Table-Control versucht?

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.09.2007, 21:15 (Dieser Beitrag wurde zuletzt bearbeitet: 19.09.2007 21:15 von eg.)
Beitrag #7

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Laufender Puffer
' schrieb:Hast du es auch mal einfach mit einem 2D-Array of Strings oder einem Table-Control versucht?

MfG, Jens


Nein, habe ich nicht. Ich wollte die Zeilen in unterschiedlichen Farben darstellen (a la JKI VI PM) und die Fehlermeldungen rot markieren. Das bietet ein Tabellencontrol nicht an.
Aber als ich moch mit Farben angefangen habe stieg die CPU gleich auf 20%. Ist es nicht schön?

eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.09.2007, 06:12
Beitrag #8

Achim Offline
*****
*****


Beiträge: 4.222
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Laufender Puffer
' schrieb:Nein, habe ich nicht. Ich wollte die Zeilen in unterschiedlichen Farben darstellen (a la JKI VI PM) und die Fehlermeldungen rot markieren. Das bietet ein Tabellencontrol nicht an.

Doch! Siehe Bild...

   

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.09.2007, 06:37
Beitrag #9

Achim Offline
*****
*****


Beiträge: 4.222
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Laufender Puffer
' schrieb:Ich weiss nicht wie ich aus dem Array Of Cluster wieder ein 2D-Array bekomme

Hi,

ich meinte sowas...aber da kannst du natürlich deine Zeilen nicht unterschiedlich färben...dafür aber mit den 1D-Array-Funktionen (Split etc.) arbeiten


Sonstige .ctl  stringclusterarray.ctl (Größe: 6,55 KB / Downloads: 212)


' schrieb:und verstehe auch nicht wozu Rotate dienen soll, ich will schiften, nicht rotaten.

Das hast du ja jetzt schon verwendet...


Gruss
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Puffer-Array Julian S 11 8.937 07.08.2013 12:00
Letzter Beitrag: GerdW
  Puffer auslesen Schandmaul 2 4.796 19.08.2009 13:53
Letzter Beitrag: Schandmaul
  Wie trotz laufender Schleife user-responsiv? SteffenSI 7 5.062 30.01.2009 10:34
Letzter Beitrag: SteffenSI
  aus laufender while-schleife daten hinausschreiben trek 24 14.626 28.03.2007 11:00
Letzter Beitrag: derTetris

Gehe zu: