Cluster Constanten - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Cluster Constanten (/Thread-Cluster-Constanten) |
Cluster Constanten - dali4u - 29.09.2009 13:58 Hi, ich habe einige Fragen zu Cluster Konstanten. Es ist ja relativ einfach eine Constante im Blockdiagramm zu setzen. Allerdings benötige ich Cluster, die ich erst im Programmablauf erstellt werden, z.B. [attachment=21486] Hierzu habe ich zum unteren Beispiel einige Fragen: 1. Kann man dem Cluster "#attributes" während des Programmablaufs Elemente hinzufügen, d.h. den Inhalt beliebig ändern? z.B. ein dritten Wert hinzufügen oder ein Element löschen? 2. Wie kann ich den Namen "#attributes" und "Request" während der Ausführung ändern? Eigenschaftsknoten für Cluster Constanten habe ich nicht gefunden. Gruß Stefan Cluster Constanten - TSC - 29.09.2009 14:57 Du kannst das Cluster glaube ich nciht so ohne weiteres "erweitern". Dazu musst du es Aufschlüsseln und zu ienem neuen Cluster verbinden. Dabei kannst du natürlich auch direkt einen neuen Namen vergeben. [attachment=21488] Du hast in deinem unteren Beispiel das Alte Cluster aus zwei Elementen gebündelt. Als ergebnis bekommst du Ein Cluster mit einem Cluster als inhalt. Das ist glaube ich nciht das, was du willst. LG Torsten Cluster Constanten - Lucki - 29.09.2009 15:26 zu 1 Das geht definitiv nicht. Dazu mußt Du entweder ein Array nehmen oder es ist etwas Kreativität gefragt. Du erstellst im Cluser einfach die maximales Anzahl von Elementen und legst z.B. fest, wenn eine Null im Element steht, ist es nicht gültig. Oder Du fügst in den Cluster ein weiteres Element ein, in dem die Anzahl der gütigen Elemente vermerkt ist. (Also Wenn Du als Platzhater 6 Elemente im Cluster hast, und in dem zusätzlichen Element steht eine 3 drin, dann sind nur in den ersten drei Elementen gütige Werte enthalten) zu 2. Das geht nicht, allerdings ist das in keiner Hinsicht ein Nachteil. Enfach ein verborgenes Bedienelement statt einer Konstanten verwenden Cluster Constanten - dali4u - 29.09.2009 15:31 ' schrieb:Dabei kannst du natürlich auch direkt einen neuen Namen vergeben. Hi Torsten, so gehts zwar, aber nochmal der Hinweis, wie schon geschrieben: nicht im Blockdiagramm Ich muss während der Laufzeit -> Cluster erstellen -> Inhalte ändern können ohne das die Namen (Beschriftung) der Inhalte verloren gehen -> die Namen der Cluster beliebig setzen können Fest verdrahtet ist das alles kein Problem, aber während der Laufzeit schon... bin noch dabei das alles über Eigenschaftsknoten zu machen... komme aber nicht sehr weit Stefan Cluster Constanten - IchSelbst - 29.09.2009 15:54 ' schrieb:-> Cluster erstellenDu willst also einen neuen Typ erstellen. Vergleiche bei Lucki. Einen neuen Typ während der Laufzeit zu erstellen ist in allen Programmiersprachen sehr aufwändig. Sowas würde über RTTI (RunTimeTypInfo) gehen. Solche Typen wären dann dynamisch und müssten von allen Elementen, die damit arbeiten sollen, genau so (nämlich dynamisch) verarbeitet werden. Der Typ Variant entspricht in etwa einem dynamischen Typ. Möglicherweise würde deine Aufgabe über Variant zu löschen sein. Ein weiteres Problem besteht darin, dass es gerade in LV zu jedem Element auf dem BD ein korrespondierendes Element auf dem FP gibt. Du müsstest also auf auf dem FP zur Laufzeit neue Elemente generieren. Das ist gerade in LV noch schwieriger. Zitat:-> Inhalte ändern können ohne das die Namen (Beschriftung) der Inhalte verloren gehenWo liegt jetzt hier ein Problem? Hinweis: Den Namen kann man nicht ändern. Nur die Beschriftung. "Name" ist der Name der Variablen im BD, Beschriftung erscheint im FP. Zitat:-> die Namen der Cluster beliebig setzen können"Namen setzen" würde heißen du gibt der Instanz eines Typs einen Namen. Geht natürlich erst dann, wenn der dynamische Typ geht. Warum willst den Namen ändern oder die Beschriftung? Wenn den Namen, warum denn den Namen? [*grübel*] Wenn ich so ganz kurz darüber nachdenke, könnte man, sollte es nichts besseres geben, zumindest den Typ aus Variants erzeugen. [*grübel*] Man kann auch ein 2DArrayOfString machen. Reihen: Anzahl der Elemente des Typs. Spalten: VariablenTyp, VariablenWert, VariablenName. Cluster Constanten - schrotti - 29.09.2009 15:55 Wenn du etwas Zeit hast gäbe es da noch eine zweite Möglichkeit. Du benutzt ja zu Generierung des XML-String eine Funktion von JKL. Eingang ist hier ein Variant. Du könntest jetzt natürlich diesen Variant zur Laufzeit so basteln, das "Easy Generate XML" glaubt, einen Cluster vor sich zu haben, den dann die OpenG Funktionen artgerecht zerlegen. Anbei ein Beispiel [attachment=21491] Die andere Möglichkeit wäre natürlich, das ganze mit dem XML-Parser zu machen. Cluster Constanten - IchSelbst - 29.09.2009 16:00 @dali4u ' schrieb:Du benutzt ja zu Generierung des XML-String eine Funktion von JKL.Bevor ich hier in die falsche Richtung denke: Willst du lediglich Daten in einem XML ablegen oder soll ein Anwender Daten am FP sehen, bearbeiten etc. können, also eigenlich alles unabhängig von XML? |