Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[Solved] Array eines .Net Objektes
19.01.2009, 13:07
Beitrag: #1
[Solved] Array eines .Net Objektes
Hallo liebe Vee'ler!

ich bin neu in Vee und habe auch gleich eine Frage Smile

Ich habe hier eine digitale Messkamera von Radiant Imaging und dazu die zur Ansteuerung notwendigen .net-Bibliotheken.
Referencen und Namespaces wurden alle gesetzt.
Ich habe ein Object der Kamera erstellt (RiPMEngine.PMEngine), setze die Kalibrierdaten und initialisiere sie mit der entsprechenden Funktion der Klasse. Danach wird noch die Messdatenbank gesetzt.

Nun sollen die zur Verfügung stehenden Messprofile geladen und in einer .net Combobox angezeigt werden.
Dazu erstelle ich ein Object der Klasse RadioCommon20.ListItem und übergebe dieses an eine Funktion der Kamerainstanz, die mir die Daten ausließt und in das Objekt der Klasse Listitem schreibt. Übergabe als Referenz. Erwartet wird ein 1-dim- Array von Listitem.

An dieser Stelle gibt es das Problem, das er die Funktion GetMeasurementSetups nicht findet.
Ich vermute, das liegt am Übergabeparameter, da der ja nicht als Array sondern scalar angelegt wurde. Eventuell liegts auch an der ByRef...

Wie kann ich denn ein Array von meinem Objekt ListItem anlegen?
Buildrecord meckert, dass er das mit Objecten nicht kann.

Danke für eure Hilfe!


Angehängte Datei(en) Thumbnail(s)
   
Diese Nachricht in einer Antwort zitieren
21.01.2009, 13:58
Beitrag: #2
 
Also eine Teillösung hab ich vom Support Agilents erhalten:
so legt man ein Array einer Klasseninstanz an (siehe Bild)

Meine Methode findet er aber immer noch nicht :/


Angehängte Datei(en) Thumbnail(s)
   
Diese Nachricht in einer Antwort zitieren
21.01.2009, 21:36
Beitrag: #3
Array zuweisen
Hi Friedberg,

.NET ist nicht so mein Steckenpferd. Mache damit einfach zu wenig.

Deshalb kann ich nur Vermutungen äußern.

Ich vermisse eine Zuweisung der Werte zur ComboBox, die
müsste als die MeasurementSetupListItems als Input ByRef ListItemArray.

Im Objekt GetMeasurementSetupList gehört das gewählte Item aus der Combobox (als Item) an den Input.
Als Output bekommst du dann das Setup.
Jetzt versuchst du den Output als ListItemArray zu nutzen, das kann nicht gehen.

Hoffe geholfen zu haben, ist auch nicht so einfach, wenn man nicht die Klassen zur Hand hat.

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.01.2009, 13:51
Beitrag: #4
 
Ja da war noch ein Schreibfehler drin, aber soweit kommt Vee mit der Ausführung gar nicht, da er beim Aufruf der Funktion GetMeasurementListSetups mecker, diese nicht zu finden, dabei habe ich sie ja aus dem Objektbrowser zusammengklickert. Eine andere Funktion der gleichen Klasse funktioniert ja auch (pmEngine constructor)

Trotzdem Danke.


Angehängte Datei(en) Thumbnail(s)
   
Diese Nachricht in einer Antwort zitieren
26.01.2009, 15:09
Beitrag: #5
[SOLVED]
So das Problem habe ich gelöst. Big Grin Es lag daran, dass die verwendete Klasse 2 mal vorhanden ist jedoch in einem anderen Namespace und jeweils natürlich unterschiedlich implementiert wurde :/
Dummerweise sind die namespaces auch noch sehr ähnlich im Namen.

Also die Ansteuerung der Kamera von Radiant Imaging mit Prometric Dll und VEE 8.5 klappt jetzt. Ein Beispielprogramm im Anhang. Viel Spaß!

LG :mrgreen:


Angehängte Datei(en)
.vee  RI-Prometric setup.vee (Größe: 44,64 KB / Downloads: 71)
Diese Nachricht in einer Antwort zitieren
26.01.2009, 16:19
Beitrag: #6
 
Hi Friedberg,

schön, dass dein Programm jetzt läuft.
Zitat:Es lag daran, dass die verwendete Klasse 2 mal vorhanden ist jedoch in einem anderen Namespace und jeweils natürlich unterschiedlich implementiert wurde :/
Genau hier liegt auch unser Problem dir zu helfen, da wir diese Klassen nicht zur Hand haben.
Ich schau mir aber trotzdem das Programm mal an. :!:

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.01.2009, 10:24
Beitrag: #7
 
Noch als Ergänzung. Das Label MID sollte global sein, da im Eventhandler darauf zugegriffen wird.

Ich habe das Formelobjekt, in welchem auf MID zugegriffen wird, in Main erstellt und dann in das neue Eventfester gezogen. MID war aber lokal. Komischerweise ging es trotzdem. Als ich es so in ein anderes Programm mit Event kopiert habe gab es einen Fehler. Scheint wohl ein Bug in Vee zu sein?
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:




Partnerforen: LabVIEWForum.de| DIAdem-Forum.de| Machine-Vision-Forum.de| goMatlab.de| VEEforum.de