シンプルコマンダー



 Java初心者なので、エラー処理など至らないが、以下のようなコードレベルで、ERS-210に無線LANカードを搭載し、AIBOマスタースタジオのメモリースティック ERF-PC02または、プログラミングメモリースティックにシステムファイル類をコピーしたものの構成で、接続、コマンド発行、切断の一連の操作を行える。

サンプルJavaコード: SimpleCommander.java
//    SimpleCommander.java 
import  java.net.*; 
import  java.io.*; 

class SimpleCommander { 
	public void r_code(String str, OutputStream out) {
		try {
			byte[] buf = str.getBytes();
			out.write(buf, 0, buf.length);
			out.flush();
		} catch (IOException e) {
			System.err.println(e.getMessage());
		}
	}

	public static void main(String args[]) throws IOException { 
		Socket  sock;
		InputStream  in = null;
		OutputStream out = null;

		if (args.length != 1) {
			System.err.println("Usage: java SimpleCommander server-name");
		} else {
			sock = new Socket(args[0], 21002);	// aiboのポート番号 21002 に接続 
			in  = sock.getInputStream();		// aiboとの通信用の入力ストリームを獲得
			out = sock.getOutputStream();		// aiboとの通信用の出力ストリームを獲得
			SimpleCommander aibo = new SimpleCommander();

			aibo.r_code("PLAY:ACTION:STAND\n",out);
			aibo.r_code("PLAY:ACTION:LIE\n",out);
			aibo.r_code("@DISS\n",out);

			in.close(); 
			out.close(); 
			sock.close(); 
		}
	} 
}

サンプルコード


注意
上記サンプルを使用して発生した、いかなるトラブルに対しも、当方は一切関知致しません。
各自の責任の範囲で実行して下さい。




コンパイル方法
以下のコマンドで中間コードを生成する。



実行方法の例
R-Code.rの定義がない状態で、AIBOを起動しておき、以下のコマンドを実行する。

実行後、立って、伏せる動作をする。



簡単な解説
 引数で受け取ったAIBOのIPアドレス(ホストネーム)のポート21002にソケット接続する。
 AIBOへの出力ストリームを取得する。
 出力ストリームに PLAY:ACTION:STAND のコマンドを送る。
 出力ストリームに PLAY:ACTION:LIE のコマンドを送る。
 出力ストリームに @DISS のコマンドを送る。
 AIBOへの出力ストリームを閉じる。
 AIBOへのソケットを閉じる。

注) 入力ストリームは省略



補足
 起動が遅いが、コマンドを引数で入力できるようにし、簡単なバッチ処理を書けば、とりあえず、暫定的なコマンダーもどきができるだろう。



Java開発環境ならびに、実行環境について
技術評論社発行の JAVA PRESS Vol 14 の特集1 「Let's Bigin Java」が、役に立つだろう。
特別付録のCD-ROMに Java 2 SKD 1.3 が収納されている。



"AIBO"および"メモリースティック"、"R-Code"、"OPEN-R"は、もちろん、ソニー(株)の商標です。
このページはソニー(株)と関係無く、hkora11が勝手に作ったものです。