0

我目前使用 Matlab 和 Ocean Optics Omnidriver ( http://oceanoptics.com/faq/controlling-usb-spectrometers-omnidriver-matlab/ ) 来控制 Windows 7 机器上的 USB 光谱仪,我正在尝试迁移到八度。

Omnidriver 是用 Java 编写的,并且有 Matlab 的合理文档。安装驱动后,相关的 Matlab 命令为:

>> javaaddpath('C:\Program Files\Ocean Optics\OmniDriver\OOI_HOME\OmniDriver.jar');
>> wrapper = com.oceanoptics.omnidriver.api.wrapper.Wrapper();
>> wrapper.openAllSpectrometers();

一旦将“\”替换为“/”,第一行似乎就直接翻译了,我可以看到该文件已添加到动态 java 路径中。

第二行直接抛出“error: 'com' undefined”,但替换为;

>> wrapper = javaObject ("com.oceanoptics.omnidriver.api.wrapper.Wrapper")

似乎工作。

然后第三行直接抛出错误;“错误:[java] java.lang.NoClassDefFoundError:无法初始化类 com.oceanoptics.uniusb.UniUSB”

这就是我现在卡住的地方(UniUSB.jar 是 OOI_HOME 中的一个文件)。在上面链接的 OceanOptics 页面上,我假设相同的错误被列为 Matlab 未能找到所需 DLL 导致的常见问题,解决方案是将 OOI_HOME 的路径添加到 matlabroot/toolbox/local/库路径.txt

我假设如果我能找到等效的八度文件,那么添加路径应该可以解决我的问题,但我找不到该文件。

任何建议将不胜感激!

4

1 回答 1

0

编码

>> javaaddpath('C:\Program Files\Ocean Optics\OmniDriver\OOI_HOME\OmniDriver.jar');
>> wrapper = com.oceanoptics.omnidriver.api.wrapper.Wrapper();
>> wrapper.openAllSpectrometers();

翻译得更好:

wrapper = javaObject ("com.oceanoptics.omnidriver.api.wrapper.Wrapper");
javaMethod ("openAllSpectrometers", wrapper);

请注意,这也是有效的 Matlab 语法。

另一件事是,如果 Java 类位于静态经典路径上,Octave 会更好地处理它们。因此,我建议您将路径添加OmniDriver.jarjavaclasspath.txt文件中。详情请参阅手册

于 2015-06-05T15:51:49.507 回答