web-dev-qa-db-ja.com

input_event構造の説明(linux / input.hから)

Input_event構造体で使用されるデータ型のプロパティを教えてください。

Input.hファイルで次のように定義されています。

struct input_event {
struct timeval time;
__u16 type;
__u16 code;
__s32 value;
};

しかし、他の説明はありません!グーグルでも面白いものは何もありませんでした。

私が知っている唯一のことは、timeがエポックからの秒またはミリ秒を与え、valueが押されたボタンのコードを与えるということです。しかし、私にとってvalueプロパティの値でさえ明確ではありません。私のプログラムでは、キーストロークごとに6つのイベントが生成されます。次のイベントは、ENTERキーを押したときの応答です。

type=4,code=4,value=458792
type=1,code=28,value=1
type=0,code=0,value=0
type=4,code=4,value=458792
type=1,code=28,value=0
type=0,code=0,value=0 

これらはaレター用です:

type=4,code=4,value=458756
type=1,code=30,value=1
type=0,code=0,value=0
atype=4,code=4,value=458756
type=1,code=30,value=0
type=0,code=0,value=0

値を実際の文字にデコードしたいのですが、プロパティの意味がわかりません。

助けてください!

22
SP5RFD

struct input_eventは、とりわけ、 include/linux/input.h で定義されています。


から5。 LinuxカーネルのイベントインターフェイスDocumentation/input/input.txt (および正しいヘッダーファイル名を提供するように変更):

  • timeはタイムスタンプで、イベントが発生した時刻を返します。

  • typeは、たとえば、EV_RELは相対的な瞬間、EV_KEYはキー入力またはリリースです。より多くのタイプが include/linux/input-event-codes.h で定義されています。

  • codeはイベントコードです。たとえば、REL_XまたはKEY_BACKSPACEです。完全なリストは include/linux/input-event-codes.h にあります。

  • valueは、イベントが運ぶ値です。 EV_RELの相対的な変更、EV_ABSの絶対新しい値(ジョイスティック...)、または0EV_KEYのリリース、1のキープレスと2はオートリピート用。

ガイドとサンプルコードについては、Web検索で "linux kernel" "input subsystem" を検索してください。

43
Nominal Animal