2012/02/19

[libusb]win32版のlibusb-1.0でCRCエラーが発生する

Windows版のlibusb-1.0を使おうとした。

USB機器を使おうとするなら、普通はドライバが必要になる。
しかし、libusbは便利なもので、VIDとPIDでアクセスすることができるようになる。
まあ、パフォーマンスなどを考えるとドライバを書いた方がいいのだろうが、libusbを使うことができるならば「libusbが動く環境ならばドライバ不要」ということができる。

 

さて、うちにあるUSBデバイスの1つをlibusbで動かそうとした。
いつも私はWindows XP(32bit)を使っているので、そのバイナリファイルをダウンロードした。

libusbは、大きく分けて2つある。
libusb-0.1系と、libusb-1.0系だ。
バージョンが異なるというよりも、APIが異なるので別物のイメージがある。
とはいっても、1.0系にはコンパチブル用に0.1ライブラリラッパも用意されている。
なので、0.1用に作っておけば良い。

 

・・・よいのだが、私は当時、最新を求めていたようだ。
linux、cygwinで動くlibusb-1.0で某デバイス向けのライブラリを作っていた。
そしてそれは期待通りに動いてくれた。

それをwin32版にすると・・・.


win32版にすると、受信でCRCエラーが発生している。
USBスニッファで見ると、エラーになるだけで、次のデータは正しく機器からは送信している。
つまり、受信側の問題みたいだ。

win32だけなのか、linuxとcygwinで偶然うまくいっているだけか。。。

0 件のコメント:

コメントを投稿

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

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