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 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。