31

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

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

助けてください!

4

1 に答える 1

50

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


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

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

  • typeたとえば、キーを押したり離したりするEV_RELための相対的な瞬間です。include/linux/input-event-codes.hEV_KEYには、さらに多くのタイプが定義されています。

  • code. はイベントコードREL_Xです。KEY_BACKSPACE

  • valueイベントが運ぶ値です。の相対的な変化、 (ジョイスティック ...)EV_RELの絶対的な新しい値、またはリリース、キープレス、および自動繰り返しのいずれかです。EV_ABS0EV_KEY12

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

于 2013-05-22T15:26:52.277 に答える