Bonjour à tous,
J'essaie d'écrire un petit programme dans matlab pour gérer un spectromètre. C'est un USB2000 de Oceans Optics. Il y a une fonction qui me crée des problèmes. Dans le fichier entete (.h), il est défini comme suit :
WORD EXPORTED OOI_GetADCType()
Il est supposé retourner le type de converteur A/D, une chaîne de caractères.
Lorsque j'utilise les instructions suivantes :
1 2
| loadlibrary('ooidrv32','OOIDrv32')
libfunctions('OOIDrv32') -full |
la signature que j'obtiens est: libpointer OOI_GetADCType
En executant l'instruction :
adcType = calllib('OOIDrv32','OOI_GetADCType')
et en faisant matlab crash (segmentation error).
J'ai chargé la librairie en créant un prototype mfilename. Dans le prototype, l'argument de retour de la même fonction est : .LHS='error'. J'ai changé pour mettre à la place ...LHS='uint16'. Le resultat pour adcType est de type Double, avec pour valeur 4. Alors, je ne sais plus trop quoi faire.
Si quelqu'un peut me donner un coup de main, je serai très heureux.
M D
Partager