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

HID接口有兩種主要實現(xiàn),一種是USB HID,另一種是linux上的HIDRAW。 linux hidraw驅(qū)動可以為使用Linux內(nèi)核的系統(tǒng)提供驅(qū)動功能,模擬HID設(shè)備,以便用戶可以與系統(tǒng)進行交互。 由于HIDRAW驅(qū)動功能的重要性,訪問和驅(qū)動HIDRAW設(shè)備在Linux開發(fā)中變得非常重要。
使用HIDRAW驅(qū)動的最常見方法需要以下幾個步驟:
首先,我們需要枚舉當前系統(tǒng)中可用的HIDRAW設(shè)備。 在Linux系統(tǒng)中,我們可以使用以下代碼來實現(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);
}
其次,當我們檢測到某個HIDRAW設(shè)備時,我們需要獲取其信息,以便可以得知我們想要使用的設(shè)備的詳細信息及其支持特性。 我們可以使用以下函數(shù)進行獲?。?/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ū)動進行通信,來實現(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ū)動可以使用Linux內(nèi)核作為HID設(shè)備,以便用戶可以與計算機進行交互。 HIDRAW驅(qū)動的使用步驟是枚舉當前可用的HIDRAW設(shè)備,獲取設(shè)備的信息并建立通信,以驅(qū)動HIDRAW設(shè)備。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級標準機房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達10T,機柜接入千兆交換機,能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認可。
本文標題:驅(qū)動LinuxHidraw驅(qū)動:深入了解如何利用它(linuxhidraw)
分享鏈接:http://m.5511xx.com/article/dhdecsh.html


咨詢
建站咨詢
