struct input event結構體定義

2021-07-05 07:42:10 字數 1313 閱讀 1840

檢視/dev/input/eventx是什麼型別的事件, cat /proc/bus/input/devices

裝置有著自己特殊的按鍵鍵碼,我需要將一些標準的按鍵,比如0-9,x-z等模擬成標準按鍵,比如key_0,key-z等,所以需要用到按鍵模擬,具體 方法就是操作/dev/input/event1檔案,向它寫入個input_event結構體就可以模擬按鍵的輸入了。

linux/input.h中有定義,這個檔案還定義了標準按鍵的編碼等

struct input_event ;
code

事件的**.如果事件的型別**是ev_key,該**code為裝置鍵盤**.**植0~127為鍵盤上的按鍵**,0x110~0x116 為滑鼠上按鍵**,其中0x110(btn_ left)為滑鼠左鍵,0x111(btn_right)為滑鼠右鍵,0x112(btn_ middle)為滑鼠中鍵.其它**含義請參看include/linux/input.h檔案. 如果事件的型別**是ev_rel,code值表示軌跡的型別.如指示滑鼠的x軸方向rel_x(**為0x00),指示滑鼠的y軸方向rel_y(** 為0x01),指示滑鼠中輪子方向rel_wheel(**為0x08).

type:

ev_key,鍵盤

ev_rel,相對座標

ev_abs,絕對座標

value

事件的值.如果事件的型別**是ev_key,當按鍵按下時值為1,鬆開時值為0;如果事件的型別**是ev_ rel,value的正數值和負數值分別代表兩個不同方向的值.

/*

* event types

*/#define ev_syn 0x00

#define ev_key 0x01 //按鍵

#define ev_rel 0x02 //相對座標(軌跡球)

#define ev_abs 0x03 //絕對座標

#define ev_msc 0x04 //其他

#define ev_sw 0x05

#define ev_led 0x11 //led

#define ev_snd 0x12//聲音

#define ev_rep 0x14//repeat

#define ev_ff 0x15

#define ev_pwr 0x16

#define ev_ff_status 0x17

#define ev_max 0x1f

#define ev_cnt (ev_max+1)

定義結構體型別時用結構體自身型別或指標定義內部成員

定義自身型別的成員是不可以的 定義結構體時,是不可以定義自身型別的成員的。這是因為結構體中各個成員所需的儲存空間大小是編譯階段確定的,當用該結構體定義自身成員時,由於結構體大小還不確定,因此此時定義的陳冠所需要的儲存空間大小也就不確定,因此編譯會報錯 定義自身型別的指標成員是可以的 但是可以定義該結...

結構體型別 結構體變數 結構體陣列 結構體指標

問題1 一元錢換為1 2 5分的硬幣,有多少種兌換方?本題要點分析及參 對各種可能情況進行一一測試。這是實現迴圈的一種方式 窮舉法 但實際上只有只有餘額才能兌換成其它面值的硬幣 main 注意換行的控制和每列的對齊 問題3 某鐵路線上有10個站,需要準備多少種客票?main b a 0 p prin...

結構體 結構體陣列

void test 函式遞迴呼叫 允許函式體裡再次呼叫函式本身 使用遞迴一定要有出口 long fact int n return n fact n 1 定義乙個新的資料型別 struct mypoint 結構體型別所占用的記憶體空間是最大資料型別的整數倍。因為結構體型別的變數在分配記憶體時有記憶體...