LabVIEWForum.de - Queuereferenz in Array einfügen - Fehler

LabVIEWForum.de

Normale Version: Queuereferenz in Array einfügen - Fehler
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich bekomme leider ein Verbindungs-Fehler (1. Verbindung: Problem mit Nummerierung 2. Verbunde Referenzen sind nicht vom gleichen Typ) beim Hinzufügen von Queuereferenzen zu einem Array. (siehe angehängtes .vi)

Die Fehler kann ich mehr oder weniger nachvollziehen, aber eine Lösungsansatz fehlt mir. :-(

Wie können mehrere unterschiedliche (Queue-)Referenzen zu einem Array zusammengefügt werden?

Gruß Thomas
Hallo Thomas,

die Enums in den jeweiligen Typdefinitionen unterscheiden sich (bzw. sind eben verschiedene Typdefinitionen)…

Du könntest TypeCasts draufwerfen:
[attachment=58757]
Ob das sinnvoll ist, musst du selbst entscheiden…
(Ich habe einfach default nach String gecastet, aber üblicherweise kannst du auch nach I32 casten. Queue-Referenzen sind auch "nur Zahlen"…)
Da eine Queue-Refnum die Infos über den Datentyp der Queue enthält, kannst du natürlich nicht 2 Queue-Refnums in einem Array zusammenpacken, bei denen der Datentyp der Queues unterschiedlich ist.

Mögliche Lösungen:
- Verwende doch überall dasselbe Enum. In einem Fall sind zwar dann ein paar Werte überflüssig, aber was solls.
- Queue-Refnums zu Variants umwandeln, dann kannst du sie zu einem Array zusammenfügen. Nachteil: Das erhöhte Handling beim Aufdröseln...
- Wie viele unterschiedliche Queue-Datentypen hast du? Wie wäre es mit einem Cluster of Arrays, jeweils ein Array für jeden Queuedatentyp.

Gruß, Jens
Danke für die Infos.

Gleiche Enums möchte ich vermeiden, da es sich um min. 8 unterschiedliche Funktionen/Unterprogramme/Queues handelt.

Naja, dann werde ich sie wohl einzeln Anbinden (8x). Hatte gehofft ne elegantere Lösung zu finden.
Variant wäre noch ne Option bei noch mehr Queues.

Dafür nochmals ne neue Funktions mit TypeCast kennen gelernt. :-)
Referenz-URLs