saitoh
2014年10月30日 18時06分
お世話になります。
daemonプログラム(rcから起動)でUSBキーボードから入力する手段を調べています。
実際はキーボードではなくキーボードの振りをする USB磁気カードリーダーを繋ぎたいと考えています。
数年前にArmadillo240にUSBテンキーを繋いだときは、苦し紛れに、
/dev/input/event0を読み取るという手段を使いました。
この場合、文字ではなくてキーコードが得られるだけなので対応する文字への変換が面倒でした。
他にもっと楽な手段はないでしょうか?
磁気カードリーダーをUSB接続のものにするかシリアル接続のものにするかまだ決めかねております。
USB接続のものの方が安価なようなので、USBで何とかなるならそちらの方が望ましいです。
コメント
saitoh
at_hanada
> daemonプログラム(rcから起動)でUSBキーボードから入力する手段を調べています。
USBキーボード=HID(ヒューマンインターフェースデバイス)なので、
HIDを生で扱えるライブラリだと都合いいのかなと思います。
ということで、世間にこんなものもあります。
HID API for Linux, Mac OS X, and Windows
http://www.signal11.us/oss/hidapi/
(ライセンスは3種:GPLv3/BSD/The more liberal original HIDAPI licenseからの
選択とのことですので、実際にご使用する際はご注意を。
ソースは下の方のDownloadに、GitHubへのリンクとzipとで用意されています)
HIDを抽象化しているものですが、(linuxの場合は)バックエンドとして
libusb(ユーザーランドレベルからUSBを直接扱う)を使用しています。
libusb使用の参考:
最新組み込みLinux実践講座Part5 | 組み込みLinuxのArmadilloサイト
http://armadillo.atmark-techno.com/articles/sd-a500-embedded-course-ch5
(USB接続の名刺スキャナをArmadillo-500上のlibusbから制御するサンプルです)
> 実際はキーボードではなくキーボードの振りをする USB磁気カードリーダーを繋ぎたいと考えています。
(libusbを知らずとも)HIDの形で扱えるならば、それだけハードルは
下がると思いますが…hidapiの使用例は、様々なハードウェア・OS上であります。
hidapi ライブラリ - Google 検索
https://www.google.co.jp/search?q=hidapi+%E3%83%A9%E3%82%A4%E3%83%96%E3…
hidapiを使い、RFIDをNode.jsから触る例のソースなんかも見つかりますね。
bklynjones/node-hid-rfid · GitHub
https://github.com/bklynjones/node-hid-rfid
(src/HID.ccが、C++によってhidapiを使用しているコードです)
ほぼ同じような形でいけるんじゃないかと思いますが、どうでしょうか。
saitoh
at_yashi
2014年11月5日 18時52分
USB接続のものは、USBシリアルに見えますか?
もしそうなら、ttyUSB0をひらけば、tty経由で読むことができるはずです。
もし、input layer 経由で
/dev/input/event*
にみえるだけならlibxkbcommon[1]が良いかもしれません。サンプルつけますね。
将来的には、libinput[2] になると思いますが、まだ xkbcommonの方が良いと思います。
[1]:http://xkbcommon.org/
[2]:http://www.freedesktop.org/wiki/Software/libinput/