6

/dev/input/event0 から読み取ったキーボード イベントを、X または端末を実行していない組み込みアプリケーション内で定義されている値から ASCII に変換しようとしています。

これは、独自の std::map<> を作成するだけでなく、Linux 内で定義されたキーマップ機能を介して行う必要があると思いますが、開始するのに適した場所が見つからないようです。これまでに見つけた例のほとんどは、X ウィンドウまたは端末で実行していることを前提としています。

4

2 に答える 2

1

テキスト入力(従来のUSキーボードと7ビットASCII標準の非常に単純な場合を除く)は、非常に複雑なフィールドです。Xクライアントを使用してこれを行うことを強くお勧めします。この場合、既存のすべての入力メソッドを利用できます。

ただし、必要があり、1種類のキーボードと1つの言語に満足している場合は、端末と同じようにイベントを解釈することでこれを行います。値の定義を確認してください/usr/include/linux/input.h。ShiftキーとCtrlキーの位置を追跡し(もちろん、Alt、Fnなどの非ASCIIキーは解釈できます)、キーアップイベントで対応するバイトを出力します。アプリケーションでデフォルトが機能しない場合は、自動リピート機能も実装することをお勧めします。

しかし、基本的には:しないでください。これは、あなたが思っているよりもはるかに(!)難しい問題です。

于 2012-08-28T16:36:39.190 に答える