08.09.2011, 12:50
Beitrag #2
|
illuminus
LVF-Gelegenheitsschreiber
Beiträge: 67
Registriert seit: Jul 2005
LabVIEW Professional 2011, Embedded for ARM MCU, Embedded for ADI BF
1996
EN
55129
Deutschland
|
RE: Überschreiben von Fehlern
Hi,
ich glaube du hast da was mit den Fehler falsch verstanden. Zum einen sind die Fehlercodes bereits mit definierten Fehlern belegt, zum anderen ist der String nicht die Fehlermeldung sondern die Fehlerquelle. Schau dir lieber erst mal die Hilfe zum Errorhandling an.
Zu deinem Programmablauf denke ich schau dir mal "in range" und "min max" an, befindet sich in der Palette der Vergleichsoperatoren. Damit sollte es einfacher gehen.
Gruß
Das Schönste, was wir entdecken können, ist das Geheimnisvolle.
|
|
|
08.09.2011, 13:11
Beitrag #3
|
eb
LVF-Lernwilliger
Beiträge: 292
Registriert seit: Mar 2008
2014
2008
EN
12xxx
Deutschland
|
RE: Überschreiben von Fehlern
Meinst du so etwas?
So wie das hier sind es nur 2 OpenG-Funktionen.
Sobald in "doppelteEinträge" etwas drin steht (ArrayGröße>0) sind doppelte Einträge vorhanden. Das Array spuckt gleich die Indizes mit aus, an welcher Stelle die doppelten Einträge zu finden sind im UrsprungsKanalwahl-Array
|
|
|
08.09.2011, 13:40
Beitrag #4
|
beginner85
LVF-Grünschnabel
Beiträge: 45
Registriert seit: Sep 2011
2010
2011
DE_EN
|
RE: Überschreiben von Fehlern
Hallo,
danke für die schnellen Antworten, hab es mittlerweile auch gelöst bekommen, nur allerdings sehr umständlich und es macht vielleicht den kompletten Ablauf etwas langsamer.
@erik.brenncke:
Ja von der Beschreibung her suche ich so etwas, verstehe aber deinen Code leider nicht, dafür fehlt mir einfach die Erfahrung.
|
|
|
08.09.2011, 13:51
(Dieser Beitrag wurde zuletzt bearbeitet: 08.09.2011 13:53 von eb.)
Beitrag #5
|
eb
LVF-Lernwilliger
Beiträge: 292
Registriert seit: Mar 2008
2014
2008
EN
12xxx
Deutschland
|
RE: Überschreiben von Fehlern
Wenn du OpenG installiert hast, dann schau dir die Hilfe-Einträge zu den beiden Funktionen an.
Ich habe den QuellCode nur hineinkopiert für den Fall, dass du kein OpenG hast/kennst.
Also zuerst einmal habe ich 2 Arrays, statt 2 Cluster. Somit ist die Verarbeitung sehr einfach. Es sind also ein Array der Kanalauswähler und ein Array, das diese Kanalauswahl jeweils aktiviert/deaktivert.
Danach sind es nur 2 Funktionen:
1. Kanäle filtern. Es interessieren ja nur die Kanalauswähler, die auf sichtbar geschaltet sind. Nur in diesen wird auf doppelte Einträge geprüft. Zum filtern wird einfach das Array durchgegangen und wenn der einzelne gewählte Kanal auf sichtbar geschaltet ist, wird er zum Ausgangsarray hinzugefügt. So ensteht das Array, das nur sichtbare Kanäle enthält
2. Dieses gefilterte Array wird nun auf doppelte Einträge geprüft. Dazu wird jedes Element im Array nochmal gesucht, taucht es erneut auf, ist der Eintrag mindestens doppelt vorhanden. Er wird gelöscht und der Index des Eintrages wird sich gemerkt. Am Ende kommt das "bereinigte" Array (ohne doppelte Einträge) heraus, sowie die Indizes aller doppelten Einträge, welche ja gelöscht wurden.
Mit diesem Ergebnis siehst du nun sofort:
Wenn doppelte Einträge gefunden wurden, hast du die Indizes der betroffenen Kanalauswähler gleich zurückbekommen.
Bsp.: im Array "doppelte Kanäle" steht 2,5. Dann sind die Kanäle, die an Stelle 2 und Stelle 5 (Achtung Zählung beginnt bei 0) gewählt wurden doppelt und sollten verändert werden.
Wenn du Fragen hast, immer her damit.
|
|
|
08.09.2011, 14:18
Beitrag #6
|
beginner85
LVF-Grünschnabel
Beiträge: 45
Registriert seit: Sep 2011
2010
2011
DE_EN
|
RE: Überschreiben von Fehlern
Hi,
ich habe die Cluster nun in ein Array gepackt (mittels Array erstellen) und möchte mittels einer Schleife nach "aktiven" Schaltern suchen. Die Schleife hat Anzahl (Array Größe ) Durchläufe. Mit welcher Funktion kann ich nun auf die einzelnen Attribute der Cluster zugreifen?
|
|
|
08.09.2011, 16:08
Beitrag #7
|
illuminus
LVF-Gelegenheitsschreiber
Beiträge: 67
Registriert seit: Jul 2005
LabVIEW Professional 2011, Embedded for ARM MCU, Embedded for ADI BF
1996
EN
55129
Deutschland
|
RE: Überschreiben von Fehlern
Warum müssen die Schalter denn unbedingt in Clustern sein?
Du kannst nicht so ohne weiteres in einem Cluster suchen, es muss immer der Wert herausgezogen werden.
Ich gehe mal davon aus, dass du den Cluster verwendest damit der Kanal und der Schalter immer zusammen sind und du eine Bessere Übersicht behältst, erschwert dir aber den weiteren Ablauf deines Programms. Ich empfehle dir die Buttons in ein Array und die Kanäle in ein anderes zu packen, das ist programmtechnischen einfacher und du kannst mit den Array-Funktionen arbeiten.
Das Schönste, was wir entdecken können, ist das Geheimnisvolle.
|
|
|
08.09.2011, 17:36
Beitrag #8
|
|
|
09.09.2011, 08:26
Beitrag #9
|
beginner85
LVF-Grünschnabel
Beiträge: 45
Registriert seit: Sep 2011
2010
2011
DE_EN
|
RE: Überschreiben von Fehlern
(08.09.2011 16:08 )illuminus schrieb: Warum müssen die Schalter denn unbedingt in Clustern sein?
Du kannst nicht so ohne weiteres in einem Cluster suchen, es muss immer der Wert herausgezogen werden.
Ich gehe mal davon aus, dass du den Cluster verwendest damit der Kanal und der Schalter immer zusammen sind und du eine Bessere Übersicht behältst, erschwert dir aber den weiteren Ablauf deines Programms. Ich empfehle dir die Buttons in ein Array und die Kanäle in ein anderes zu packen, das ist programmtechnischen einfacher und du kannst mit den Array-Funktionen arbeiten.
Ich muss das Projekt weiterführen und kann deshalb nicht besonders viele Änderungen mehr vornehmen.
|
|
|
| |