INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Eigenes COM Interface in eine VI/LabVIEW implementieren



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!

06.04.2009, 14:05
Beitrag #1

Novgorod Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2008

2016
2006
EN

0
Sonstige
Eigenes COM Interface in eine VI/LabVIEW implementieren
hiho.

ich möchte per LabVIEW eine kamera ansteuern, die einen COM-server zur verfügung stellt (alles lokal am selben PC).. dieser "treiber" (also der COM-server) ist darauf ausgelegt, dass verschiedene anwendungen (clients) auf ihn zugreifen können und bringt selber kein UI mit..

soweit ist noch alles ok, d.h. ich kann mit automation open auf die bereitgestellten interfaces zugreifen und methoden und properties benutzen..
nun kommt das eigentliche problem: der COM-server hat eine art überwachungsfunktion, mit der er nachschaut, ob alle clients noch "leben" und wenn nicht ggf. die kamera (bzw. kameras) wieder freigibt (die werden vorher durch die clients "gelockt").. dafür erwartet er, dass ein client seinerseits ein interface bereitstellt mit den entsprechenden überwachungsmethoden, die der server dann regelmäßig abfragt..

ich hab sehr wenig erfahrung mit activeX und COM, daher wäre ich für ein paar tipps dankbar, ob und wie das mit LabVIEW geht.. ich weiß, dass LabVIEW einen activeX-server hat, aber ich sehe da keine möglichkeit, "benutzerdefinierte" interfaces und methoden hinzuzufügen...

übrigens: bevor man auf die eigentlichen kamera-methoden vom COM-server zugreifen kann, muss man eine methode zum "registrieren" aufrufen (RegisterCallBack) und dort den namen der client-anwendung (string) und einen pointer zum (refnum!?) zum callback-interface übergeben.. letzteres geht natürlich nicht, wenn ich nicht direkt in der VI ein interface (mit methoden) aufmachen kann - oder?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.04.2009, 14:16
Beitrag #2

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Eigenes COM Interface in eine VI/LabVIEW implementieren
Hast du dir die Beispiele von LabVIEW (Example-Finder) angeschaut? (Excel und IE mit CallBack)

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.04.2009, 15:30
Beitrag #3

Novgorod Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2008

2016
2006
EN

0
Sonstige
Eigenes COM Interface in eine VI/LabVIEW implementieren
ja, hab ich.. da gehts um events und das ist was anderes, soweit ich es verstanden habe..
der COM-server benutzt auch events, aber für andere sachen (haben die funktion eines "broadcasts", um alle clients zu informieren).. die keep-alive funktion läuft nicht über events, sondern über ein eigenes interface, was die clients bereitstellen sollen.. der COM-server erwartet also, dass die clients gleichzeitig auch server sind für die callback-funktionen..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.04.2009, 12:09 (Dieser Beitrag wurde zuletzt bearbeitet: 07.04.2009 12:10 von rolfk.)
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Eigenes COM Interface in eine VI/LabVIEW implementieren
' schrieb:ja, hab ich.. da gehts um events und das ist was anderes, soweit ich es verstanden habe..
der COM-server benutzt auch events, aber für andere sachen (haben die funktion eines "broadcasts", um alle clients zu informieren).. die keep-alive funktion läuft nicht über events, sondern über ein eigenes interface, was die clients bereitstellen sollen.. der COM-server erwartet also, dass die clients gleichzeitig auch server sind für die callback-funktionen..

Das geht leider nicht. LabVIEW kann nur als eigenständiger Automation Server funktionieren mit dem Automation Interface wie es in seiner Typelib festgelegt ist. Du kannst keine VIs schreiben die ein eigenständiges COM Interface zur Verfügung stellen.

Die einzige Möglichkeit die ich hier sehe ist um hier einen ActiveX/COM Wrapper zu machen (wahrscheinlich nur in Visual C++ einigermassen einfach möglich) der dieses COM Interface auch noch in ein ActiveX Event umsetzt.

Selber würde ich das sogar noch anders tun mit einer Standard C Wrapper DLL die ich mittels Call Library Node aufrufen würde, aber COM in Standard C zu tun ist wohl für die meisten das Letzte was sie je in Erwägung ziehen würden. Aber ich habs nicht so mit C++ und ziehe diese Variante vor. Etwas mehr Handarbeit aber dafür begreife ich auch was der C Compiler gemacht hat Big Grin

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  LabVIEW und activeX Interface Nebur 3 8.970 26.03.2009 20:48
Letzter Beitrag: rolfk
  Suche eine 3D- Grafik Software die mit LabVIEW kommuniziert Holger34 14 10.071 13.10.2008 12:08
Letzter Beitrag: Y-P
  Muss aus Excel LabVIEW Vi starten und SNMP Befehle senden und zurück erhalten, sowie eine Laufvariable erhöhen Alexander Steinmitz 5 10.644 01.10.2007 19:51
Letzter Beitrag: dc6xs

Gehe zu: