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



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

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

>> javaaddpath('C:Program FilesOcean OpticsOmniDriverOOI_HOMEOmniDriver.jar');
>> wrapper = com.oceanoptics.omnidriver.api.wrapper.Wrapper();
>> wrapper.openAllSpectrometers();

第一行似乎可以直接翻译,一旦''被替换为'/',我可以看到文件添加到动态java路径。

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

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

似乎有效。

第三行直接抛出错误;"error: [java] java.lang. noclassdeffounderror: Could not initialize class com. oceanopics .uniusb. uniusb "

这是我卡住的地方(UniUSB.jar是一个文件在OOI_HOME)。在上面链接的海洋光学页面上,我假设的是相同的错误被列为Matlab未能找到所需dll引起的常见问题,解决方案是将OOI_HOME的路径添加到matlabroot/toolbox/local/librarypath.txt

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

任何建议将不胜感激!

代码

>> javaaddpath('C:Program FilesOcean OpticsOmniDriverOOI_HOMEOmniDriver.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.jar的路径添加到javaclasspath.txt文件中。

相关内容

  • 没有找到相关文章

最新更新