2013-05-22 35 views
16

input_event構造体が使用するデータ型のプロパティは何か教えてください。input_event構造体の説明(linux/input.hから)

それは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 

プロパティ。

助けてください!

答えて

33

struct input_eventはとりわけinclude/linux/input.hで定義されています。 LinuxカーネルDocumentation/input/input.txt(正しいヘッダファイル名を提供するために修飾された)で5.イベントインタフェースから


  • timeタイムスタンプである、それはイベント時刻を返します起こりました。

  • type相対瞬間、キー押下又は 放出のためEV_KEYたとえばEV_RELするためのものです。より多くのタイプはinclude/linux/input-event-codes.hで定義されています。

  • codeは、例えばREL_X又はKEY_BACKSPACEため、再び完全 リストはinclude/linux/input-event-codes.hであり、イベントコードです。

  • valueは、イベントが運ぶ値です。キー押下とオートリピートのため2ため EV_RELの相対変化、絶対新しいEV_ABS(ジョイスティック...)の値、または 放出のためEV_KEYため01いずれか。

ガイドとコード例については、"linux kernel" "input subsystem"のウェブ検索を行ってください。