EdBrowserをwiiリモコンに対応させるまでのお話
wiiリモコンでアプリを動作させるには、色々やり方があるよ。
- WiiFlash
- actionscriptで実装できるよ。要.NETFrameworks3.0
- Wiimote over HTTP
- リクルートの川崎さんが作ったよ。サーバーとして動作させるからネット越しに使えるよ。要WIDCOMMドライバ対応のtluetoothアダプタ
- WiiRemote
- wiiリモコンでマウスカーソルを動かせるよ。最初の実験にお勧めだよ。
WiiFlash動かす環境がないから、Wiimote over HTTPでEdBrowserを拡張してみるよ。
BlueToothアダプタ購入
http://www.clevery.co.jp/eshop/g/g8940920010005/からWIDCOMMドライバ対応のtluetoothアダプタを購入したよ。
製造元が書いてないあたり、素敵だよ。
bluetoothアダプタインストール
説明書なんて付いているわけないから、勘でインストールだよ。
Wiimote over HTTPとwiimoteを繋げる。
http://127.0.0.1:8080/WiimoteOverHTTP/execute?method=findWiimote
にアクセス。
HTTP ERROR: 500 javax/bluetooth/DiscoveryListener RequestURI=/WiimoteOverHTTP/execute Caused by: java.lang.NoClassDefFoundError: javax/bluetooth/DiscoveryListener at org.mtl.wiimote.device.WiimoteManager.(WiimoteManager.java:44) at org.mtl.wiimote.service.WiimoteServiceAction.doGet(WiimoteServiceAction.java:41) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) Caused by: java.lang.ClassNotFoundException: javax.bluetooth.DiscoveryListener at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:375) at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ... 19 more Caused by: java.lang.ClassNotFoundException: javax.bluetooth.DiscoveryListener at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:375) at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at org.mtl.wiimote.device.WiimoteManager.(WiimoteManager.java:44) at org.mtl.wiimote.service.WiimoteServiceAction.doGet(WiimoteServiceAction.java:41) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
お手上げだよ。
続く。
追記
BLUECOVE 2.0.2 ってのがいるみたい。
http://www.bluecove.org/
BlueCove is a Java library for Bluetooth (JSR-82 implementation) that currently interfaces with the Mac OS X, WIDCOMM, BlueSoleil and Microsoft Bluetooth stack found in Windows XP SP2 or Windows Vista and WIDCOMM and Microsoft Bluetooth stack on Windows Mobile.
やっぱりWin2000は使えないっぽいよ・・・。(´・ω・`)