「OpenECHO for Processing Tutorial」を見ながら、例題を動かしてみます。
例題は OpenECHO-master\Processing\libraries\OpenECHO\examplesフォルダの中にあります。 こんな顔ぶれです。
Tutorial1_HowToMakeANode
Tutorial2a_PowerDistributionBoard
Tutorial2b_ElectricEnergySensor
Tutorial2c_TemperatureHumiditySensor
Tutorial3a_AllLightsAirconOff
Tutorial3b_AllLightsAirconOff_Individual
Tutorial4_LightEmulator
Tutorial5a_iRemoconLight
Tutorial5b_iRemoconAircon
Tutorial6a_ImplementRealNode
Tutorial6b_ElectricLock
Tutorial7_AllLightsOff
Tutorial8_WebAPI
例えば Tutorial1_HowToMakeANodeの中には Tutorial1_HowToMakeANode.pdeというファイルが入っています。 .pde というのは Processingで扱うソース・ファイルの拡張子です。
RPiの上で動かすには純粋なJavaの方が都合がいいです。 .pdeファイルはJavaとは少し異なる部分があるので、そのままでは使えません。
Tutorial1_HowToMakeANode.pdeを適当なテキストエディタで開いてみます。
import java.io.IOException;
import com.sonycsl.echo.Echo;
import com.sonycsl.echo.node.EchoNode;
import com.sonycsl.echo.eoj.profile.NodeProfile;
import com.sonycsl.echo.eoj.device.DeviceObject;
import com.sonycsl.echo.processing.defaults.DefaultNodeProfile;
import com.sonycsl.echo.processing.defaults.DefaultController;
void setup() {
// ノードの作成をします。
try {
Echo.start( new DefaultNodeProfile(), new DeviceObject[] {
new DefaultController()
});
}
catch( IOException e) {
e.printStackTrace();
}
(以下略)
これをこんな風に変更します。
(前略)
import com.sonycsl.echo.processing.defaults.DefaultController;
import com.sonycsl.echo.processing.defaults.DefaultNodeProfile;
public class Main {
public static void main(String[] args) {
// ノードの作成をします。
try {
Echo.start( new DefaultNodeProfile(), new DeviceObject[] {
new DefaultController()
});
}
catch( IOException e) {
e.printStackTrace();
}
(中略)
} ← 一番最後の行に追加
あと、
println(" Node Profile = " + en.getNodeProfile());
のように printlnメソッドが使われているところを全て System.out.printlnに置換します。
最後に編集したファイルを、「Main.java」という名前で別名保存します。 この Main.java を Eclipseで読み込んで、実行してやるとちゃんと動いてくれました。
Javaについては全く知識がないので、これで合っているのか分かりませんが、とりあえず動いているから良しとしよう。
同じような方法で Tutorial3bまではエラーが出なくなりましたが、Tutorial4、Tutorial5a、Tutorial5bの3つは EchoDeviceと同じく Mainと iRemoconLightなどファイルを2つに分けなければならないのでちょっと難しいようです。