2017-05-05 34 views
0

私のLinuxシステムには、/ dev/hidraw1デバイスとしてQR/Barcodeスキャナが接続されています。 私はls -la /dev/hidraw*をすれば、私はcat /dev/hidraw1コマンドを使用して、このデバイスから読み取るしようとするたびに、私は私はそれがフォーマットされた方法で起動しますしないも、エンコードされたデータと一緒にジャンクデータの多くを得るLinuxシステムに接続された/ dev/hidraw1デバイスから読み取る

crw------- 1 root root 248, 0 May 5 10:18 /dev/hidraw0 
crw------- 1 root root 248, 1 May 5 11:05 /dev/hidraw1 

を取得します。ここではそのまた任意の違いを作っていなかったボー・レートの変更、連続読み込み可能な文字列には来ていないのはなぜQRコード

68<,? 
      .4xml ve7'rsion4="1 

..0"4 encod-%in4876g= 
            "UTF-8"?><PrintLetterB, 
                     .arcod4e&D!'ata"&% ' uid=$"12345,.678",name= 
                                     "Rohit 4Ka, 
poo.44r,."4 gend&& er=4"M,."4 yob=8"319,93" co 
                   ="S 

                    ,/O: 
                     Mukesh 4, 

の1の出力があります。 Here is the screenshot attached

答えて

0

あなたはHIDデバイスであり、RS-232デバイスではありません。それが使用するプロトコルはバイナリです。デバイスからのread()のたびに実際に得られることは、テキスト行ではなくHIDレポートです。

レポートの形式はデバイスによって異なります。 HID仕様では、デバイスがレポートのフォーマットを記述するHIDレポート記述子を発行することが義務付けられています。それは...複雑ですが、この特定のデバイスで作業したいだけなら、読んだレポートを見て、それが意味することを推測してみてください。

私の経験では、バーコードスキャナは通常小さなヘッダーとペイロードデータを含んでいます。ヘッダーには通常、バーコードタイプのフィールドとデータの長さがあります。また、レポートのサイズは固定されていますが、バーコードは任意に長くなっているので、長いバーコードは複数のレポートに分割されるため、これが最初の連続か最後のブロックかを示すフラグもあります。

デバイスのダンプを投稿する場合は、さらに解析するためにcatを使用しないでください。 hexdump -Cまたはod -tx1または適切なバイナリデータを示す類似のものを使用してください。

+0

バイナリデータは必要ありません。私はそれを読みやすい文字列にしたい。私が直面している問題は、私がデバイスを抜くときはいつでも、私は正しい読み込み可能な文字列で結果を得るが、私が連続的にスキャンすると、上のフォーマットでそれを得る。 – user7345878

+0

@ user7345878:あなたがデバイスを起動するときに何かを得るのは本当に疑問です... – rodrigo

+0

@ user7345878:これは、スキャナがモード "Emulate Keyboard"で設定されているためです。 'hidraw'を読むと標準キーボードが得られます キーが入力されたかのようにHIDが報告します。カーネルはそれをキーボードとしても見て、入力されたテキストをコンソールに送るが、コンソールは 'cat'で忙しいので、データが画面にエコーされ、バイナリデータが混乱している間にバッファリングされるスタンダードで。そして 'cat'が最終的に殺されると、すべてのstdinバッファがプレーンテキストとしてダンプされます。説明をありがとうございます。 – rodrigo

0

ほとんどのスキャナは、HIDデバイスまたはUSB CDCデバイスとして設定できます。 「USB Interface Configuration」のようなスキャナのマニュアルをチェックし、USB CDC(またはUSB Comポートエミュレーション)に設定できるかどうかを確認してください。できれば、Linux上で/ dev/ttyACM *としてアタッチし、データをシリアルストリームとして提供します。これは読みやすくなります。

関連する問題