最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)的評論 (共 條)

分享到微博請遵守國家法律
淅川县| 淮阳县| 布拖县| 五常市| 铁力市| 肃南| 富顺县| 渑池县| 沙洋县| 灌阳县| 和顺县| 承德县| 棋牌| 朝阳县| 屯昌县| 常州市| 隆安县| 虞城县| 花莲市| 进贤县| 那曲县| 仁化县| 理塘县| 赣榆县| 龙里县| 喜德县| 云南省| 余干县| 克山县| 旺苍县| 东乌珠穆沁旗| 寿光市| 鱼台县| 皮山县| 宁陕县| 临颍县| 乌苏市| 江孜县| 霞浦县| 前郭尔| 延寿县|