无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

linux 系統(tǒng)編程 input子系統(tǒng)

2022-09-17 20:18 作者:GXTon_阿通  | 我要投稿

input子系統(tǒng)就是針對于各種輸入的一種框架.

框架可以認為是,一種實現(xiàn)方法,linux中有很多框架,很多子系統(tǒng).
比如之前沒有框架的時候,大家各寫各的,隨意定義函數(shù).
后來有個人寫的很好,得到認可,他寫的就是模板,大家都模仿他,之后他寫的代碼就是框架了.

輸入設(shè)備: 鼠標,鍵盤,觸摸屏 ...
輸入設(shè)備通用的特點就是,會向linux輸入數(shù)據(jù).
input子系統(tǒng)就是為了統(tǒng)一所有的交互設(shè)備而產(chǎn)生的.


它規(guī)定了輸入設(shè)備接入linux,linux識別后會在哪個文件中產(chǎn)生節(jié)點.
它規(guī)定了操作輸入設(shè)備的步驟.
它規(guī)定了輸入的數(shù)據(jù)會填充到哪個結(jié)構(gòu)體.

第一步: linux識別設(shè)備
操作目標之前,要知道設(shè)備在哪里.
基于input子系統(tǒng)注冊成功的輸入設(shè)備,都會在 /dev/input 目錄下生成相應(yīng)的設(shè)備節(jié)點(設(shè)備文件).設(shè)備節(jié)點名稱通常為eventX(X為0.1.2.3...).通過讀取這些設(shè)備節(jié)點,可以獲取輸入設(shè)備上報的數(shù)據(jù).

第二步: 打開設(shè)備
打開/dev/input/event0 設(shè)備文件;
獲取fd;

傳入兩個參數(shù)

第三步: 根據(jù)fd讀設(shè)備

應(yīng)用程序發(fā)起讀操作(譬如調(diào)用 read),刷新結(jié)構(gòu)體;
如果沒有數(shù)據(jù)可讀則會進入休眠(阻塞 I/O 情況下);?
當有數(shù)據(jù)可讀時,應(yīng)用程序會被喚醒,讀操作獲取到數(shù)據(jù)返回;

傳入三個參數(shù)

第四步: 獲取設(shè)備輸入數(shù)據(jù)
應(yīng)用程序從結(jié)構(gòu)體中得到輸入的數(shù)據(jù)。

獲得數(shù)據(jù)(在in_ev結(jié)構(gòu)體中)

如何獲取數(shù)據(jù):

每次read,都會刷新一下結(jié)構(gòu)體.

struct input_event.

該結(jié)構(gòu)體在<linux/input.h>中.

測試一個usb鍵盤程序.

1,首先是讓系統(tǒng)識別到usb鍵盤
把鍵盤按到linux板子上.
板子終端就會打印出信息.(表示板子已經(jīng)識別到usb鍵盤了)

可以查看ubs鍵盤對應(yīng)的設(shè)備節(jié)點,
使用命令: cat /proc/bus/input/devices

現(xiàn)象:
運行程序 ./testApp /dev/input/event3


鍵盤的上下左右,分別是:103, 108 ,105, 106


linux 系統(tǒng)編程 input子系統(tǒng)的評論 (共 條)

分享到微博請遵守國家法律
新安县| 罗甸县| 元谋县| 长白| 崇左市| 新巴尔虎左旗| 丁青县| 衡水市| 潮安县| 益阳市| 吉木萨尔县| 台中市| 贡山| 红桥区| 新营市| 南和县| 镇宁| 车致| 通山县| 马公市| 潼南县| 盐源县| 抚顺县| 东乌| 通城县| 吉隆县| 建水县| 塔城市| 蒲城县| 子长县| SHOW| 大名县| 南涧| 玉环县| 扬州市| 沅陵县| 厦门市| 思南县| 三台县| 灵川县| 美姑县|