3

それで、少し検索した後... USB QRコードスキャナーからの入力をキャプチャする次の方法を見つけました。

import sys
pipe = open('/dev/input/event3', 'r')
while 1:
        for character in pipe.read():
                print(character)

動作しますが、上記の方法に関してまだ 2 つの質問があります。

私はDebian WheezyとGUIを備えたRaspberryデバイスを使用しており、GUIで発生している質問2を確認できます... GUIのない​​システムでの出力はまだわかりません

  1. それを行うより良い方法はありますか?
  2. 上記の方法では、右クリックすると、スクリプトがキャンセルされ、スキャンされたすべてのエントリが一度に出力されます。何故ですか?

アップデート

最終的にASCII文字を出力するため、上記のコードの結果を解釈し損ねたと思うので、最終的に次のことを行いました。

sys.stdin = open('/dev/tty')
a = raw_input('Scan: ')
4

1 に答える 1

1

質問 1 は、お使いの QR スキャナーに大きく依存します。多くの場合、USB デバイスはホストと通信するための複雑なプロトコルを持っているため、これがこのように機能することは幸運だと思います。たとえば、マウスの場合、クリックとマウスの動きをどのように区別しますか? 交換するには、ある種のデータ形式が必要です。

質問 2 はおそらく、メソッドが pipe.read() でブロックされ、入力を待っているためです。どういうわけか、右クリックだけで read() 関数が終了し、印刷が可能になります

于 2013-01-28T14:54:54.187 に答える