新聞中心
繼計(jì)算機(jī)發(fā)展的幾十年 后,從外部輸入設(shè)備到桌面計(jì)算機(jī)的一個(gè)重要連接,是一個(gè)兼容計(jì)算機(jī)的專用輸入設(shè)備,被稱為HID(Human interface Device),簡(jiǎn)單來(lái)說(shuō),HID設(shè)備是用戶可以與計(jì)算機(jī)進(jìn)行直接交互的設(shè)備,它可以幫助用戶控制計(jì)算機(jī),其中包括鼠標(biāo),鍵盤,游戲控制臺(tái),手柄,觸摸板等。

HID接口有兩種主要實(shí)現(xiàn),一種是USB HID,另一種是linux上的HIDRAW。 linux hidraw驅(qū)動(dòng)可以為使用Linux內(nèi)核的系統(tǒng)提供驅(qū)動(dòng)功能,模擬HID設(shè)備,以便用戶可以與系統(tǒng)進(jìn)行交互。 由于HIDRAW驅(qū)動(dòng)功能的重要性,訪問和驅(qū)動(dòng)HIDRAW設(shè)備在Linux開發(fā)中變得非常重要。
使用HIDRAW驅(qū)動(dòng)的最常見方法需要以下幾個(gè)步驟:
首先,我們需要枚舉當(dāng)前系統(tǒng)中可用的HIDRAW設(shè)備。 在Linux系統(tǒng)中,我們可以使用以下代碼來(lái)實(shí)現(xiàn):
#include
#include
int opened_hidraw_devices = 0;
for (int i = 0; i
{ // Enumarate up to 16 hidraw devices
char device_name[65] = { 0 };
sprintf(device_name, "/dev/hidraw%d", i);
int fd = open(device_name, O_RDWR);
if (fd
opened_hidraw_devices++;
close(fd);
}
其次,當(dāng)我們檢測(cè)到某個(gè)HIDRAW設(shè)備時(shí),我們需要獲取其信息,以便可以得知我們想要使用的設(shè)備的詳細(xì)信息及其支持特性。 我們可以使用以下函數(shù)進(jìn)行獲?。?/p>
int hidraw_get_info(int fd, struct hidraw_info *info)
{
int RES;
memset(info, 0, sizeof(*info));
res = ioctl(fd, HIDIOCGRAWINFO, info);
if (res
{
perror("HIDIOCGRAWINFO");
return -1;
}
return 0;
}
最后,我們可以使用該設(shè)備的HIDRAW驅(qū)動(dòng)進(jìn)行通信,來(lái)實(shí)現(xiàn)與設(shè)備的交互:
int hidraw_send_data(int fd, uint8_t* data, size_t len)
{
int res;
// Write data to the HIDRAW device
res = write(fd, data, len);
if (res
{
perror("write");
return -1;
}
return 0;
}
int hidraw_read_data(int fd, uint8_t* data, size_t len)
{
int res;
// Read data from the HIDRAW device
res = read(fd, data, len);
if (res
{
perror("read");
return -1;
}
return 0;
綜上所述,利用Linux HIDRAW驅(qū)動(dòng)可以使用Linux內(nèi)核作為HID設(shè)備,以便用戶可以與計(jì)算機(jī)進(jìn)行交互。 HIDRAW驅(qū)動(dòng)的使用步驟是枚舉當(dāng)前可用的HIDRAW設(shè)備,獲取設(shè)備的信息并建立通信,以驅(qū)動(dòng)HIDRAW設(shè)備。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
當(dāng)前名稱:驅(qū)動(dòng)LinuxHidraw驅(qū)動(dòng):深入了解如何利用它(linuxhidraw)
文章分享:http://www.dlmjj.cn/article/dhdecsh.html


咨詢
建站咨詢
