![]() |
Fehlercluster via Queue - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Fehlercluster via Queue (/Thread-Fehlercluster-via-Queue) |
RE: Fehlercluster via Queue - GerdW - 07.08.2015 09:39 Hallo hansi, Zitat:Ich vetsehe aber trotzdem nicht wie ich ohne das Ereignisscase die Daten quasi als Multiplex nach unten bekommeWelches "Ereignis-Case"? Was ist das überhaupt? In deinem Test-VI ist keine Ereignisstruktur, da läuft doch alles "automatisch"… RE: Fehlercluster via Queue - hansi9990 - 07.08.2015 10:03 (07.08.2015 09:39 )GerdW schrieb: Hallo hansi, Ich meinte natürlich eine Ereigisstruktur. Ich glaube jetzt schreiben wir aneinander vorbei und ich bin jetzt gänzlich verwirrt ![]() Also nochmal langsam zum mitschreiben: Ich habe dieses beiden (Links zu) Beispiele: 1. Using Variants to Pass Multiple Data Types Through a Single Queue 2. Using Multiple Data Types within a Queue Auf das in 2. angehängte "Multiple Data Types Queue(Variant).vi" basiert das von mir Programmierte und in Beitrag #9 angehängte vi. Nach den beiden Antworten von dir: "das Beispiel, was du da rausgesucht hast, ist doch prima. Warum hast du es dann nicht exakt so, wie es präsentiert wurde, nachprogrammiert?" und "Die erste Variante ist also mit deiner quasi gleichwertig und dazu noch universeller/einfacher einsetzbar" hatte ich erst mal mein vi verworfen und wollte auf Basis von 1. es nochmal versuchen und dort gibt es eine Ereignisstruktur. Hier werden alle Ereignisse die ich manuel am Frontpanel durchführe via Queue/Cluster/Variant.. in die zweite Schleife transportiert. Ich habe jetzt nicht verstanden wie ich alle Daten ohne diese Struktur nach unten bekomme. RE: Fehlercluster via Queue - GerdW - 07.08.2015 10:05 Hallo hansi, Zitat:Ich habe jetzt nicht verstanden wie ich alle Daten ohne diese Struktur nach unten bekomme.Lass die Eventstruktur einfach weg und schicke deine Daten immer dann in die Queue, wenn du sie von der seriellen Schnittstelle empfängst… RE: Fehlercluster via Queue - hansi9990 - 07.08.2015 10:31 Ich habe es jetzt mal für meine Bedürfnisse etwas angepasst, aber ich bekomme dennoch nicht beide Datentypen (Messwer und Fehler) zusammen in die zweite Schleife und wenn ich es oben hin bekomme dann habe ich unten noch immer das Problem das wenn die Case Struktur umschaltet eines der Ergebnisse auf einen Wert gesetzt wird den ich angeben muss oder mit "Standard verwenden, wenn nicht verwendet" belegen muss. RE: Fehlercluster via Queue - GerdW - 07.08.2015 10:43 Hallo Hansi, aber ich bekomme dennoch nicht beide Datentypen (Messwer und Fehler) zusammen in die zweite Schleife Ich habe mal zwei Möglichkeiten gezeigt: [attachment=53784] Zitat:noch immer das Problem das wenn die Case Struktur umschaltet eines der Ergebnisse auf einen Wert gesetzt wird den ich angeben muss oder mit "Standard verwenden, wenn nicht verwendet" belegen muss.Das hatten wir mit den Schieberegistern doch schon einmal gelöst. Warum ist das jetzt wieder ein Problem??? ![]() (Im Bild bin ich darauf nicht eingegangen, da geht es nur um den Versand der Daten.) RE: Fehlercluster via Queue - hansi9990 - 07.08.2015 12:09 Ah jetzt ja, eine Insel. ![]() Muss ich dann noch im Receiver ein Case für unbekannte Typen erstellen oder sind das durch das typdefinierte Enum die Vorgaben eindeutig? Und wiederum herzlichen Dank für deine Geduld mit mir ![]() RE: Fehlercluster via Queue - GerdW - 07.08.2015 12:16 Hallo Hansi, Zitat:Muss ich dann noch im Receiver ein Case für unbekannte Typen erstellen oder sind das durch das typdefinierte Enum die Vorgaben eindeutig?Entweder oder… Entweder: du erstellst einen "Standard"-Case, der dann greift, wenn ein Enumwert ankommt, der sonst in der Case-Struktur nicht behandelt wird. Da fallen dann Enum-Werte hinein, die du evtl. später neu in der Enum-Typdefinition hinzufügst. Vorteil: dein Receiver ist immer "fehlerfrei", kann aber neue Enumwerte nicht automatisch erkennen. Oder: du erstellst für jeden Enum-Wert einen Case und keinen Standard-Case. Wenn du dann später an der Enum-Typdefinition etwas änderst, sagt dir LabVIEW sofort, dass du deine Case-Struktur noch um die neuen Enumwerte erweitern musst. Vorteil: du kannst nie vergessen, neue Enumwerte nachzupflegen, da LabVIEW sonst immer einen "broken arrow" zeigt. RE: Fehlercluster via Queue - hansi9990 - 07.08.2015 13:23 Ok, dann würde ich zur Sicherheit die Methode ohne Standard Case wählen. ![]() Nun noch eine eher allgemeine Frage zur Case Struktur die mich in der Vergangenheit schon etwas beschäftigt hat, was müsste denn bei den einzelnen Typen die am Case Selektor angeschlossen werden können als Standardwert in der Selektorbeschriftung stehe oder müsste das dann einfach leer sein? Bei einem Zahlen Typ ist es ja definiert und abhängig von der Darstellung aber wie ist das z.B. mit Enum oder String? RE: Fehlercluster via Queue - jg - 07.08.2015 13:30 Der "Default"-Case deckt alles ab, was du nicht in anderen Cases definiert hast. Ob noch explizit ein weiterer Wert dabei steht oder nicht, das ist egal. Gruß, Jens RE: Fehlercluster via Queue - GerdW - 07.08.2015 13:31 Hallo Hansi, Zitat:was müsste denn bei den einzelnen Typen die am Case Selektor angeschlossen werden können als Standardwert in der Selektorbeschriftung stehe oder müsste das dann einfach leer sein?Egal welcher Datentyp: "Standard"! Zitat:Bei einem Zahlen Typ ist es ja definiert und abhängig von der Darstellung aber wie ist das z.B. mit Enum oder String?Wieso ist das bei Zahlen definiert? Was ist da "anhängig von der Darstellung"? Allgemeine Antwort: ein "Standard"-Case behandelt alle Cases, die nicht explizit in der Case-Struktur definiert wurden. |