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

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Queuereferenz in Array einfügen - Fehler (/Thread-Queuereferenz-in-Array-einfuegen-Fehler)



Queuereferenz in Array einfügen - Fehler - t.hipp - 06.02.2018 19:13

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


RE: Queuereferenz in Array einfügen - Fehler - GerdW - 06.02.2018 20:39

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"…)


RE: Queuereferenz in Array einfügen - Fehler - jg - 06.02.2018 20:43

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


RE: Queuereferenz in Array einfügen - Fehler - t.hipp - 07.02.2018 17:32

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. :-)