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!
Zitat:So wie ich das sehe muss ich dann für jeden Eintrag im Ring einen Case setzen, schade das es keine einfachere Lösung gibt, ich habe hier ein Ringelement das ca. 30 Einträge hat
Das siehst du falsch.
Im Case-Selektor steht "0.." - die Hilfe zur Case-Struktur erklärt dir, was das bedeutet!
Das bedeutet wohl das der Inhalt der Case Struktur immer ausgeführt wird wenn am Case Slektor ein Wert ankommt (von 0... (bis) x).
Ich hab es so gemacht und es scheint auch gut zu funktionieren, allerdings musste ich den Case "0.." noch als Standard definieren sonst gab es einen Fehler, dennoch ist mir noch unklar warum du dort diese Case Struktur eingesetzt hast denn ich habe es mal ohne versucht und das ging auch.
Zitat:allerdings musste ich den Case "0.." noch als Standard definieren sonst gab es einen Fehler
Ja. Der Grund steht in der Hilfe zur Case-Struktur…
Zitat:dennoch ist mir noch unklar warum du dort diese Case Struktur eingesetzt hast denn ich habe es mal ohne versucht und das ging auch.
Was passiert, wenn du versuchst, einen String zu parsen, der nicht im Ring/Enum vorhanden ist?
Schon mal an Tippfehler oder andere User-Interaktion gedacht?
Sorry das ich jetzt diesen Beitrag nochmal hochziehe aber irgendwie stehe ich auf den Schlauch.
Da ich nochmal Probleme mit dieser Zusammenstellung hatte habe ich es nochmal nachgebaut und mir zusätzlich Anzeigen angeschlossen um zu sehen was passiert wenn ich korrekte, nicht Vorhandene und leere Werte eingebe.
Ich bin zu dem Ergebniss gekommen das es keinen Einfluss hat ob die Case Struktur vorhanden ist oder nicht, liegt am Eingang ein String an der nicht im Ring/Enum Element vorhanden ist wird am Ausgang der "1D Array Suchen" Funktion der Wert -1 an, dieser Wert liegt immer an der "Array Indizieren" Funktion an undder INhalt der Case Struktur wird auch immer ausfegührt auch wenn das 0.. im Selektor steht da es ja keinen zweiten Case gibt, also bringt diese doch so nichts oder übersehe ich da irgendwas, fehlt da noch ein zweiter Case?
@GerdW
Bitte sei so nett erkläre es mir ich bin einfach zu Dumm das zu verstehen
Wenn die Array-Suchfunktion in deinem Array ein Elememnt sucht, welches nicht drin steht, liefert diese Funktion -1. Das soll sie ja auch. Wenn du danach eine Casestruktur mit nur einem Case, der auch den Standard enthält setzt, dann wirst du wohl auch immer da reinspringen, egal, was am Eingang steht.
Du musst schon die Cases -1 und standard unterscheiden.
Zitat:da es ja keinen zweiten Case gibt, also bringt diese doch so nichts
Korrekt erkannt: Was soll eine Case-Struktur bringen, die nur einen Case kennt, der noch dazu als "Standard" immer aufgerufen wird…
Es ist immer hilfreich, ein Problem formulieren zu können, bevor man sich ans Programmieren macht. Sowas hilft ungemein bei der Problemanalyse und -lösung! (Anders ausgedrückt: zuerst erstellt man einen PAP, dann programmiert man diesen PAP nach!)
Dieses Konstrukt hatte mir Gerd als Beispiel etwas weiter vorne in diesem Beitrag aufgezeigt wofür ich auch recht dankbar bin, leider ist auf dem Bild keine zweite Case Struktur zu erkennen und dehalb dachte ich das es nur die eine gibt. Klar machte mich das auch stutzig aber es hätte ja durchaus sein können das dies irgendeinen mir noch nicht bekannten Sinn hätte.
Ok, jetzt ist mir klar das ich noch einen zweiten Case mit einem "-1" Selektor benötige.
Was ich genau vor habe ist auf dem Bild hier zu sehen, bei dem SubVI handelt es sich um das "niScope Configure Trigger (poly)".
Das Ring Elemnt beinhaltet folgende Objekte und Werte:
AC = 0 (default im SubVI)
DC = 1
HF Reject = 3
LF Reject = 4
AC Plus HF Reject = 1001
Wenn ich den Aufbau wie im Bild zu ersten mal ausführe und z.B. DC im Eingang stehen habe dann ist klar dass das Ring Element auf den den Wert 1 gesetzt wird, aber wenn ich es dann nochmal mit leeren Inhalt am Eingang ausführe bleibt der Wert des Ring Element auf den letzte Wert stehen.
Bekomme ich es irgendwie hin das dieses Ring Element auf default gesetzt wird wenn ein falscher oder kein Wert am Eingang anliegen?
22.05.2015, 17:50 (Dieser Beitrag wurde zuletzt bearbeitet: 22.05.2015 18:00 von GerdW.)
Zitat:wenn ich es dann nochmal mit leeren Inhalt am Eingang ausführe bleibt der Wert des Ring Element auf den letzte Wert stehen.
THINK DATAFLOW: wenn du im anderen Case keinen neuen Wert in den Ring schreibst, dann behält er natürlich den letzten Wert bei…
Zitat:Bekomme ich es irgendwie hin das dieses Ring Element auf default gesetzt wird wenn ein falscher oder kein Wert am Eingang anliegen?
Ja: einfach im anderen Case den dann gewünschten Default-Wert in den Ring schreiben…
Noch was:
Das, was du da jetzt machst, ist jetzt aber Rube-Goldberg! Es ginge viel einfacher, siehe Anhang. Wenn die Auswahl der möglichen Strings von vornherein feststeht, kannst du sie auch in der Case-Struktur fest einstellen und zu jedem (erlaubten) String den passenden Wert ausgeben. Dann brauchst kein extra "type"-Control mehr und läufst nicht Gefahr, in RaceConditions zu stolpern! (Zumindest, wenn dein Ring statt der ursprünglich genannten 30 Einträge nun nur noch 5 hat…)
Da hast du recht, das macht es etwas übersichtlicher.
Das ist für Anschlüsse mit 5-10 Werten durchaus machbar aber ob das dann z.B. für die Auswahl der Messarten noch Sinn macht ist fraglich.
Naja "Sinn" ist wohl das falsche Wort, wenn man die Anzahl der Messarten sieht sollte man das eher nach dem Aufwand bewerten.
Code:
None
Frequency
Average Frequency
FFT Frequency
Period
Average Period
Rise Time
Fall Time
Rising Slew Rate
Falling Slew Rate
Overshoot
Preshoot
Voltage RMS
Voltage Cycle RMS
AC Estimate
FFT Amplitude
Voltage Average
Voltage Cycle Average
DC Estimate
Voltage Max
Voltage Min
Voltage Peak-toPeak
Voltage High
Voltage Low
Voltage Amplitude
Voltage Top
Voltage Base
Voltage Base-to-Top
Negative Width
Positive Width
Negative Duty Cycle
Positive Duty Cycle
Integral
Area
Cycle Area
Time Delay
Phase Delay
Low Ref Volts
Mid Ref Volts
High Ref Volts
Volt. Hist. Mean
Volt. Hist. Median
Volt. Hist. Mode
Volt. Hist. Max
Volt. Hist. Min
Volt. Hist. Peak-to-Peak
Volt. Hist. Mean + Stdev
Volt. Hist. Mean + 2 Stdev
Volt. Hist. Mean + 3 Stdev
Volt. Hist. Hits
Time Hist. Mean
Time Hist. Stdev
Time Hist. Median
Time Hist. Mode
Time Hist. Max
Time Hist. Min
Time Hist. Peak-to-Peak
Time Hist. Mean + Stdev
Time Hist. Mean + 2 Stdev
Time Hist. Mean + 3 Stdev
Time Hist. Hits
Time Hist. New Hits