WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

USB2000 in Matlab: Ansteuerung? Abstürze!

 

JakobSchwalbe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.01.2009, 17:16     Titel: USB2000 in Matlab: Ansteuerung? Abstürze!
  Antworten mit Zitat      
Salü zusammen!

Ich möchte ein USB2000-Spektrometer (USB2G4335) der Firma OceanOptics in Matlab 7.7.0 (R2008b) ansprechen. Der Windows-Treiber ist installiert, SpectraSuite funktioniert, JDK 1.6.0_04 ist installiert und der JAVA_HOME-Pfad korrekt gesetzt. Ich verwende den OmniDriver+SPAM 2008.08.05. Wenn ich nun in Matlab anfange:
Code:

addpath('C:\Programme\OceanOptics\OmniDriver\include')
addpath('C:\Programme\OceanOptics\OmniDriver\OOI_HOME')
[notfound,warnings]=loadlibrary('OmniDriver32.dll','USB2000')
 

findet USB2000.h bzw. ein Unter-Headerfile, das es aufruft, als allererstes jni.h und jni_md.h nicht. Es gelang mir nicht, Matlab klar zu machen, wo es suchen soll, auch nicht durch addpath('Pfad der Dateien'). Eine Art Lösung ist es, die beiden Dateien aus ihren Javaverzeichnissen ins Verzeichnis C:\Programme\OceanOptics\OmniDriver\include zu kopieren, aber auch dann erscheint noch ein Stall voll Fehlermeldungen, zum Beispiel:
Zitat:

Type 'LARGE_INTEGER' was not found. Defaulting to type error.
Found on line 7885 of input from line 7673 of file C:\Programme\MATLAB\R2008b\sys\lcc\include\win.h

Function pointer types are unsupported in structures void ( _stdcall * SetObjectField ) ( JNIEnv * .
Found on line 14701 of input from line 750 of file C:\Programme\OceanOptics\OmniDriver\include\jni.h

Wenn ich diese Warnungen (Komplette Liste ist angehängt) einen Moment außer Acht lasse und mir die in der OmniDriver32.dll enthaltenen Funktionen anzeigen lasse (Eine gescheite Dokumentation über die verfügbaren Funktionen, wie man sie aufruft und was sie tun, gibt es leider nicht), finde ich zum Beispiel USB2000_create, die keine Argumente braucht und einen lib.pointer zurückliefert. Versuche ich aber mein Glück mit:
Code:

p = libpointer
p = calllib('OmniDriver32','USB2000_Create')
 

stürzt Matlab sofort ab - übrigens auch, wenn ich das "p =" weglasse. Absturzlog ist angehängt. Das Problem besteht auch bei allen anderen Funktionen, auch solchen, die z.B. einen void pointer als Argument brauchen und auch zurückliefern.

Die Jungs bei OceanOptics scheinen auf LabView spezialisiert und keine großen Matlab-Enthusiasten zu sein, und so frage ich mich, ob hier irgendjemand eine Idee hat, wie ich das USB2000 zum Laufen kriege. Das einzige, was es können muss, ist mir die Intensität bei einer bestimmten Wellenlänge zu sagen ...

Ich danke herzlich im Voraus für die Mühe!
Jakob

Warnungsausgabe.txt
 Beschreibung:
Warnungen anlässlich des Befehls:
>> [notfound,warnings]=loadlibrary('OmniDriver32.dll','USB2000')

Download
 Dateiname:  Warnungsausgabe.txt
 Dateigröße:  53.5 KB
 Heruntergeladen:  1171 mal
Fehlerprotokoll.txt
 Beschreibung:
Absturzprotokoll

Download
 Dateiname:  Fehlerprotokoll.txt
 Dateigröße:  4.83 KB
 Heruntergeladen:  642 mal


spectrum

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2009, 13:58     Titel: USB2000 kritisch
  Antworten mit Zitat      
Hallo wir sprechen viele OceanOptic Spectrometer von c++ aus mit
diesem Omnidriver an. Und nur beim USB2000 treten ab und zu Abstürze auf.

Das scheint an der mangelnden Kompatibilität des neuen Omnidrivers zu den alten
Geräten (2000_Serie) zu liegen. Evtl. mal den neuesten Treiber + Firmware probieren. Vlt. hilft das...Smile
 
Hilfe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2009, 17:50     Titel:
  Antworten mit Zitat      
Hi zusammen,
Ich stehe vor dem selben Problem mit dem USB2000... Ich kann irgendwie keine der mit libfunctionsview angezeigten Funktionen aufrufen. Wenn ich
Code:
p = calllib('OmniDriverSPAM32','USB2000_Create');
 

verwende stürtzt mir das System mit der oben beschriebenen Fehlermeldung ab.

Wie kann ich denn eine Funktion mit einem voidPtr im Argument aufrufen?
Hat der Threadersteller eine Lösung gefunden?
Hoffe es meldet sich jemand mit nützlichen Infos...

Danke schonmal

Ausschnitt-libfunctionview.JPG
 Beschreibung:

Download
 Dateiname:  Ausschnitt-libfunctionview.JPG
 Dateigröße:  8.56 KB
 Heruntergeladen:  580 mal
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.