ところで、たろサさん作のAndroid用Lua言語実行環境LuaridaはUIとインタプリタがソケット接続で実現されています。UI側がサーバなので、例えばLuaインタプリタ以外からUIサーバとして接続されることもありなんじゃないか、Microbridgeからの接続もアリなんじゃないかとたろサさんが仰っていたので、実験してみました。
たろサさんから、LuaridaからUIサーバ部だけに切り出された Marida と、ソケット通信のコマンドセットの一覧をいただいていたので、実験はスムースに進みました。
Luaridaは内部で60081番ポートを使用しているようです(netstatによると)。Maridaも同様、TCPの60081番で待ち受けしています。そこに対して接続し、規定のコマンドセットを投げるわけです。
今回は、実験にAndroid 1.6端末のIS01を使用しています。制御対象は、過去の記事でも使用したサーボを連結したロボットもどきです。マイコンボードは日本Androidの会神戸支部オリジナルマイコンボードである、「PIC ADK Miniboard」を使用しています。もちろん神戸支部でポーティングしているMicrobridge/PICが焼いてあります。
PIC側実装としては、まずAndroid端末と接続した後、ADB shellを使用し、Maridaのメインアクティビティを起動するインテントを投げます。Marida起動後は上述の60081ポートと繋ぐようADB daemonにお願いして、あとはMaridaと繋ぎます。
シーケンス図、軽く書いたレベルですみませんが、貼り付けます。

動画はこちら。
Android NDKネイティブプログラミング―Native Development Kit
posted with amazlet at 11.08.02
出村 成和
秀和システム
売り上げランキング: 725
秀和システム
売り上げランキング: 725