drvAsynUSBHID (汎用USB HID用asynPortDriver)
mini-circuits社USB-SP4T-63をEPICSで制御するためのIOCをBBB上に作成することになった。
このデバイスは制御するためのIFがUSBしかなく、OSからはUSB HIDデバイスとして認識されるという代物だった。
帯名さんが事前にpython + HIDAPIを使って制御できることを確認してくれていたので、制御自体は簡単であることがわかっていた。
ちょうど、drvAsynI2Cを触ったこともあり、いっその事 USB HID デバイスで汎用的に使用できるものを asynPortDriver で作ってしまおうということになった。
ダウンロード
できたばかりなのでバグがあるかもしれませんが、ダウンロードできるようにしておきます。
概要
ドライバサポート名は、drvAsynUSBHID とした。
- デバイスのオープンやデータの送受信は drvAsynUSBHIDで行う。
- 送受信するデータは streamdevice を使って解析する。
- データの送受信は 65 byte単位で行う。
- USBデバイスへのアクセスには HIDAPI を使う。
何故、一回の送受信データが65byteなのか詳しくはわかりませんが、今回は深く突っ込みません(^^;)。
依存関係
drvAsynUSBHIDは、HIDAPIをasynPortDriverでラッピングしたものなので、HIDAPIをOSにインストールする必要があります。
- EPICS base 3.14.12.5 以上
- asynDriver 4-26 以上
- HIDAPI
ここではBBBで使用していますが、普通のPCでも動くと思います。
インストール
BBB + Debian8 を前提にして説明します。
HIDAPI
まずはHIDAPIをインストール。
root@beaglebone:~# apt-cache search hidapi libhidapi-dev - Multi-Platform library for communication with HID devices (development files) libhidapi-hidraw0 - Multi-Platform library for communication with HID devices (hidraw backend) libhidapi-hidraw0-dbg - Debugging symbols for libhidapi-hidraw0 libhidapi-libusb0 - Multi-Platform library for communication with HID devices (libusb backend) libhidapi-libusb0-dbg - Debugging symbols for libhidapi-libusb0
libusb版とhidraw版がありますが、今回はhidraw版を使用。
root@beaglebone:~# apt-get install libhidapi-hidraw0 libhidapi-dev
これ以降の使い方は、ダウンロードファイルのREADME.mdに書いてあるのでそちらを参照。
参照HP
signal11/hidapi
HID API for Linux, Mac OS X, and Windows
HIDAPI:Signal11の罠
Attachments (1)
- drvAsynUSBHID_20170704.tar.gz (9.6 KB) - added by michkawa 7 years ago.
Download all attachments as: .zip