OpenECHOを使ってみる(チュートリアル例題編)

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つに分けなければならないのでちょっと難しいようです。