06.04.2009, 14:05
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?
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?