2013/09/01

[nfc]Windows7からSNEPする

やりたいことは、非常に単純だったのだ。
単に、Windows PCからNexus7にURLを送りたいという、ただそれだけ。

いろいろ考えたあげく、PaSoRiのドライバをWinUSBで乗っ取り、libusbxを使って操作してAndroid Beamする、というやり方にした。
標準のドライバじゃないものを使うので、やらない方がよいと思うが、まあできなくはないですよ、というくらいで見てもらえばよいか。

 

PaSoRiはRC-S370/P。
実行環境は、Qt5。
Qtの実行ファイルを動かすのにはどうするのが正当なのかわからなかったので、dllをエラーが出るごとに追加していった。
ソースファイルも全部公開しているので、ライセンス的には大丈夫な気はしているのだが・・・。

https://sites.google.com/site/hiro99ma/home/files/windows/usbtest.zip?attredirects=0&d=1
https://sites.google.com/site/hiro99ma/home/files/windows/usbtest_exe.zip?attredirects=0&d=1

うちはWindows7 64bitなので、ほかで動くかどうかはよくわからんです。


まず、PaSoRiのドライバを標準のものから置き換えないといけない。
WinUSBはWindowsの汎用USBドライバみたいなものなのだが、それを置き換えるのは多少面倒だ。
私は、zadig.exeを使わせていただいている。

コンボボックスからRC-S956のドライバを選ぶのだが、「Options→List All Devices」としないと出てこない。
選んだら、下のドライバ選択から「WinUSB」を選択し、「Replace Driver」のボタンを押す。
そうすると、しばらくしたら成功する(と思う。失敗したことないのでわからん)。

あとは、usbtest.exeを実行し、URLを打ち込んで、Sendボタンを押して、かざせばよいと思う。
あんまりアプリの出来がよくないので、反応が悪かったり、途中で落ちたりするかも。
応答がわるいのは、ポーリングの周期を遅くしているためかもしれんな。


技術的なところは、そんなにない。
もともとlibusbxで動くように作ったNFCライブラリなので、移植はそんなに大変じゃなかった。
といいつつ、時間はかかったんだがね・・・。
Windows8であれば、たぶん標準機能でやれるのだろう(RC-S380必須になるが)。

Chromeとかでタブの同期をすればいいやん、とか言われそうだが、そういうのはあまり使いたくない派なので、こんなまどろっこしいやり方になってしまった。
まあ、libusbxとQtなので、うまくやればMacでもLinuxでもビルドできるんじゃなかろうかね。

0 件のコメント:

コメントを投稿

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