このエントリーをはてなブックマークに追加

Armadillo-400/800シリーズ:ハンディバーコードリーダ(GFS4400/QD2131/TD1100)のデータをUSB経由で取得

Armadillo-400/800シリーズで、ハンディバーコードリーダ
 GFS4400
 QD2131
 TD1100
のデータをUSB経由で取得してみました。

写真左:GFS4400 写真中:QD2131 写真右:TD1100 以下の確認において、Armadillo-840とQD2131の組み合わせで使用していますが、 以下の範囲では、ハンディバーコードリーダの機種による手順の差異はありません。 また、手順内で特に明記のない限りArmadillo-400/800シリーズは同じ手順になります。 1.Armadillo-400/800シリーズとハンディバーコードリーダを接続 Armadillo-400/800シリーズのUSBコネクタにハンディバーコードリーダを接続すると、 下記ログのようにUSBキーボードとして認識されます。
usb 2-2: new full-speed USB device number 2 using rmobile-ohci-driver
input: Datalogic ADC, Inc. Handheld Barcode Scanner as /devices/platform/rmobile-ohci-driver/usb2/2-2/2-2:1.0/input/input2
generic-usb 0003:05F9:221D.0001: input: USB HID v1.10 Keyboard [Datalogic ADC, Inc. Handheld Barcode Scanner] on usb-rmobile_ohci-2/input0
2.ハンディバーコードリーダからのデータ取得の確認 ハンディバーコードリーダのevent番号を調べます。
[root@armadillo840-0 (ttySC2) ~]# cat /proc/bus/input/devices
(略)
I: Bus=0003 Vendor=05f9 Product=221d Version=0110
N: Name="Datalogic ADC, Inc. Handheld Barcode Scanner"
P: Phys=usb-rmobile_ohci-2/input0
S: Sysfs=/devices/platform/rmobile-ohci-driver/usb2/2-2/2-2:1.0/input/input2
U: Uniq=S/N G15MA9043
H: Handlers=kbd event2
B: PROP=0
B: EV=120013
B: KEY=10000 7 ff9f207a c14057ff febeffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=1f
上記ログの場合、 H: Handlers=kbd event2 の箇所より、ハンディバーコードリーダのevent番号は"2"になっています。 ハンディバーコードリーダの情報は、"/dev/input/event*"で確認できます。(*は、上記で確認したevent番号。) 下記のようにevtestコマンドを実行した状態で、バーコードを読むと、バーコードの情報が表示されます。 (下記は、event番号が2の場合。)
[root@armadillo840-0 (ttySC2) ~]# evtest /dev/input/event2
3.ハンディバーコードリーダからのデータ取得するサンプルプログラム 上記2の"evtest"コマンドの場合、キーボードのキー情報がそのまま表示されて扱りづらいので、 キー情報を文字に置き換えるサンプルプログラム barscan.c を添付します。 補足)本サンプルでは、最大50文字で、キー情報は数字と英字のみを扱っています。  (その他のキー情報は"*"で表示するようにしてます。)  文字数の変更、記号、特殊キー等に対応する場合は、下記の箇所を変更してください。
#define BCODE_SIZE 50   // 文字数(本サンプルでは50文字)
#define KEYLIST_SIZE 59  // キー情報と文字の相関リストのサイズ(本サンプルは数字、英字を含む範囲に限定)
static unsigned char keylist[KEYLIST_SIZE] // キー情報と文字の相関リスト(後述に補足)
switch(event.code) // キー情報に対する処理(本サンプルはEnterキー時に検出時に標準出力)
3.1.ビルド方法 barscan.cをATDE5に置いて、ビルドします。 Armadillo-400シリーズの場合は、下記のようにビルドします。
atmark@atde5:~$ arm-linux-gnueabi-gcc barscan.c -o barscan
Armadillo-800シリーズの場合は、下記のようにビルドします。
atmark@atde5:~$ arm-linux-gnueabihf-gcc barscan.c -o barscan
barscanという実行ファイルが生成されます。 3.3.使い方 上記3.1で生成された実行ファイル(barscan)をArmadillo-400/800シリーズに置いて、実行権限を付けます。
[root@armadillo840-0 (ttySC2) ~]# chmod +x barscan
上記2で確認したevent番号の"/dev/input/event*"をリダイレクトで入力します。 (下記は、event番号が2の場合。)
[root@armadillo840-0 (ttySC2) ~]#./barscan < /dev/input/event2
実行後、ハンディバーコードリーダからデータ取得する毎にバーコードの情報を表示します。 (上述のとおり、文字数は50文字までで、数字と英字以外は、"*"で表示されます。)

製品: 

  • Armadillo-IoT G1/G2
  • Armadillo-840m
  • Armadillo-840
  • Armadillo-810
  • Armadillo-440
  • Armadillo-420
  • Armadillo-410

タグ: 

  • Armadillo-400
  • Armadillo-800
  • 周辺デバイス
  • プログラミング