首页 文章

将OmniDriver从Matlab迁移到Octave . 需要找到Octave的librarypath.txt吗?

提问于
浏览
0

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

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路径中 .

第二行直接抛出“错误:'com'未定义”,但替换为;

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

似乎工作 .

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

这就是我现在被困住的地方(UniUSB.jar是OOI_HOME中的一个文件) . 在上面链接的OceanOptics页面上,我假设的是同样的错误被列为Matlab未能找到所需DLL的常见问题,并且该解决方案是在向matlabroot / toolbox / local /添加OOI_HOME的路径时给出的librarypath.txt

我假设如果我能找到等效的八度文件然后添加路径应该解决我的问题,但我找不到该文件 .

任何建议将不胜感激!

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语法 .

    另一件事是,如果它们位于静态经典路径上,Octave会更好地处理它们 . 所以我建议你将 OmniDriver.jar 的路径添加到 javaclasspath.txt 文件中 . 见manual for details .

相关问题