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 パスに追加されたファイルを確認できます。

2 行目は「エラー: 'com' undefined」を直接スローしますが、次のように置き換えます。

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

動作するようです。

3 行目は直接エラーをスローします。「エラー: [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 構文であることに注意してください。

もう 1 つのことは、静的なクラシック パス上にある場合、Octave が Java クラスをより適切に処理することです。したがって、パスをファイルに追加することをお勧めOmniDriver.jarjavaclasspath.txtます。詳細はマニュアルを参照してください

于 2015-06-05T15:51:49.507 に答える