データストリームにデータを送信するために、JPachube.jarとMatlabを使用しています。このJavaコードは私のマシンで動作します:
package smartclassroom;
import Pachube.Data;
import Pachube.Feed;
//import Pachube.FeedFactory;
import Pachube.Pachube;
import Pachube.PachubeException;
public class SendFeed {
public static void main(String arsg[]) throws InterruptedException{
SendFeed s = new SendFeed(0.0);
s.setZainteresovanost(0.3);
double output = s.getZainteresovanost();
System.out.println("zainteresovanost " + output);
try {
Pachube p = new Pachube("MYAPIKEY");
Feed f = p.getFeed(MYFEED);
f.updateDatastream(0, output);
} catch (PachubeException e) {
System.out.println(e.errorMessage);
}
}
private double zainteresovanost;
public SendFeed(double vrednost) {
zainteresovanost = vrednost;
}
public void setZainteresovanost(double vrednost) {
zainteresovanost = vrednost;
}
public double getZainteresovanost() {
return zainteresovanost;
}
}
しかし、Matlabからこれを行う必要があります。例を書き直してみました(リンクの例は私のマシンで動作しています):javacを使用してjavaクラスをコンパイルし、JPachube.jarとSendFeed.classをパスに追加してから、Matlabでこのコードを利用します。
javaaddpath('C:\work')
javaMethod('main','SendFeed','');
pachubeValue = SendFeed(0.42);
エラーが発生します:
??? Error using ==> javaMethod
No class SendFeed can be located on Java class path
Error in ==> post_to_pachube2 at 6
javaMethod('main','SendFeed','');
私が言ったように、リンクからの例が機能しているので、これは奇妙です。
その後、JPachubeをMatlabコードに直接含め、Matlabで同等のコードを作成することにしました。
javaaddpath('c:\work\JPachube.jar')
import Pachube.Data.*
import Pachube.Feed.*
import Pachube.Pachube.*
import Pachube.PachubeException.*
pachube = Pachube.Pachube('MYAPIKEY');
feed = pachube.getFeed(MYFEED);
feed.updateDatastream(0, 0.54);
そして、私はこのエラーを受け取ります:
??? No method 'updateDatastream' with matching signature found for class 'Pachube.Feed'.
Error in ==> post_to_pachube2 at 12
feed.updateDatastream(0, 0.54);
だから私はほとんどすべてを試しましたが、何もしませんでした!この作業を行う方法はどれでも私には問題ありません。よろしくお願いします!