2011/07/30

PaSoRi以外のR/Wに選択肢はあるだろうか

今日FeliCaに詳しい人と話していて、PaSoRiを開発用途で使うのはFNさんとしてはやっぱりよろしく思わないだろうなぁ、という気がしてきた。
個人で楽しむ分には気にはしないけれども、代替えがあるのかどうか考えてみた。



まず出てくるのは、RC-S620/S。
これはUARTなので、組込機器としては使いやすい。
しかしこれが製品のAndroid端末向けとなると、ちょっと話が変わってくる。
たぶん、Android製品でUARTポートを持つものはないと思う。
そうなると、USB変換しなくてはならない。
うちにはCP2102があるので、これを使えばUART-USB変換ができる。
できるのだが、今度はAndroid側でUART制御ができなくてはならない。

Linuxであれば/dev/ttyUSB0などでアクセスできる。
しかし、それは/dev/ttyUSB0へのアクセス権があるからだ。
何もしなければ、rootの人しかアクセスできないので、アプリからは使えない。
最近のAndroidでは、udevを使ってアクセス制御ができるようになっているが、どっちにせよアクセス許可がユーザにまで広げられていないとだめだ。

そして、カーネルがシリアル変換を有効にしているかどうか、ということもある。
ユーザに公開しないし使うようにしないのなら、ドライバレベルでOFFになっているかもしれない。


Androidアプリ側でUSB機器を制御することを考えると、実はドライバが対応していない方がいいのかもしれない。
ここはまだ調べていないのだが・・・。

Android3.1からは、USB Host機能が使用できるようになっている。
まあ、少なくともAPIは追加されているので、製品として使えるようにしてあるなら、使えるだろう。

カーネルがUSB Hostに対応するだけなら、ドライバが対応していればいい。
例えば、USBキーボードを挿すとそこから文字入力ができる、などというしくみはアプリではなくドライバが対応していて、Androidのプラットフォーム側が利用していると思われる。

そう考えると、ドライバとしては認識されていないUSB機器だけがAPIで制御できるのではなかろうか。
下からと上からアクセスされるのをプラットフォームはよしとすまい。
ならば、UART-USB変換がドライバとして対応されていない方が、USB Host機能を使うにはよいのかもしれない。


しれないが・・・CP2102の仕様書を読んでドライバをアプリでやるのか・・・という思いはある。
めんどくさい。
まあ、できるようになっておくと今後としてはいいのかもしれんが・・・。

結論を急がず、別の選択肢を考えてみよう。


「UARTがだめなら、最初からUSBにすればいいじゃないの」ということで登場したのかどうかわからないが、RC-S620/Uという製品がある。
シリアル版が「S」で、USB版が「U」なのだろう。
これなら、何も考えずに使えるのではなかろうか?

ネットで検索したが・・・情報が出てこない。
そもそも、一般人が入手できそうなルートが見当たらない。
なんだろう、PaSoRiとの棲み分けが難しいのだろうか。

気にはなるが、入手できないなら仕方ない。


ならば、SONYから離れざるを得まい。

と探してみたが、これもまた選択肢が少ない。
IOデータの「ピタっち」が一番近いのだが、生産中止になっている。

ACR社のものが近いと言えば近いのだが・・・開発に使っていいのかわからん。
SDK買った人ならいいよ、なのかもしれん。
それならPaSoRiも同じだよなぁ。。。



結局のところ、PaSoRiも明示的に「開発に使うな」とは書いてないのだ。
見つけていないだけかもしれんが・・・。
たぶんNGなのは、PaSoRiとの通信をモニタすることだろう。
昔のソフトにはよく「解析するな」みたいな文言が書かれていたものだ。

まあ、PaSoRiが本当に動かせてから考えるとしよう。
杞憂になってしまうのは技術者的には嫌なのだが、なんらかの理由でできないかもしれんしね。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。