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
値を実際の文字にデコードしたいのですが、プロパティの意味がわかりません。
助けてください!
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
の絶対新しい値(ジョイスティック...)、または0
のEV_KEY
のリリース、1
のキープレスと2
はオートリピート用。
ガイドとサンプルコードについては、Web検索で "linux kernel" "input subsystem"
を検索してください。