web-dev-qa-db-ja.com

xorgおよびevdevの実行時のバーコードスキャナー入力

テキストコンソール(CTRL + ALT + F1またはXを実行していない)でバーコードをスキャンすると、正しい入力が得られますが、Xで実行されているアプリケーションを試してみると、正しいバーコードが得られません。

スキャナーは、バーコードの後に​​「n」が続くように構成されています。 Xの下では、前のバーコードではなく、「n」のみを取得します。

Xevを実行して、何が起こっているかを確認しました。出力の抜粋は次のとおりです。

> KeyPress event, serial 35, synthetic NO, window 0x6800001,
>     state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
> KeyRelease event, serial 35, synthetic NO, window 0x6800001,
>     state 0x18, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
> KeyPress event, serial 35, synthetic NO, window 0x6800001,
>     state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
> KeyRelease event, serial 35, synthetic NO, window 0x6800001,
>     state 0x18, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,

バーコードのすべての桁に1つのKeyPress/KeyReleaseイベントペアがありますが、Alt_LのKeyPressイベントとKeyReleaseイベントの間にイベントは発生していませんか?

ソリューションのコンポーズキーを確認する必要がありますか、それとも通常のコンソールの動作とどのように一致させることができますか?

ps。 Welch AllynST3400バーコードスキャナーを使用しています。

編集:

コマンドラインでshowkeyを実行し、バーコードでスキャンしました。これは私が得た出力です:

keycode  28 release
keycode  56 press
keycode  82 press
keycode  76 press
keycode  80 press
keycode  56 release
keycode  56 press
keycode  82 press
keycode  75 press
keycode  73 press
keycode  56 release

バーコードスキャナーがLeft-Alt +#+#+#を使用して正しい文字を取得しているようです。また、バーコードスキャナーは、Left-Altと一緒に使用したテンキーのリリースイベントを送信しないようです。私は別のフォーラムで似たようなものを読みましたが、解決策はありませんでした。 showkeyでLeft-Alt +#+#+#を手動で使用すると、キーごとに押して放します。

問題は、Xorgを実行しているときにKeyPressイベントがないのはなぜですか?

7
Dirk

多くの場合、バーコードリーダーを再構成して、より使いやすい出力を出力できます。多くの場合、構成は特別なバーコードをスキャンすることによって行われます。ドキュメントを参照してください。

2
jofel