-
利用qt,通过hid接口获取特定的usb设备并读取其中的数据
资源介绍
文件夹中包含hidapi.h hidapi.dll hidapi.lib,我是在windows10系统中用VS2013编译的release版本,我用于qt的调用,是可以实现的。
调用过程:
int res;
res = hid_init();
wchar_t wstr[MAX_STR];
int i;
// Open the device using the VID, PID,
// and optionally the Serial number.
handle = hid_open(0x0483, 0x5750, NULL);
if(handle == NULL)
{
qDebug() << "NULL-----------------------NULL" ;
return;
}
else
{
qDebug() << " not ------------NULL-----------------------NULL" ;
}
// Read the Manufacturer String
res = hid_get_manufacturer_string(handle, wstr, MAX_STR);
wprintf(L"Manufacturer String: %s\n", wstr);
// Read the Product String
res = hid_get_product_string(handle, wstr, MAX_STR);
wprintf(L"Product String: %s\n", wstr);
// Read the Serial Number String
res = hid_get_serial_number_string(handle, wstr, MAX_STR);
wprintf(L"Serial Number String: (%d) %s\n", wstr[0], wstr);
// Read Indexed String 1
res = hid_get_indexed_string(handle, 1, wstr, MAX_STR);
wprintf(L"Indexed String 1: %s\n", wstr);
qDebug("hid read start");
int res = hid_set_nonblocking(handle, 0);
while (1)
{
res = hid_read(handle,buf,sizeof(buf));
QString asd ;
for(int i = 0;i < sizeof(buf);i++)
{
char str[20];
sprintf(str , "%02x",buf[i]);
asd+=str ;
}
if(!cardInfo.contains(asd.toUpper()))
{
cardInfo.append(asd.toUpper() );
for(int i = 0;i < cardInfo.size() ;i++)
{
dealWithData( cardInfo[i]);
}
}
}
- 上一篇: c# 访问USB摄像头 拍照 录像
- 下一篇: C# IC卡读卡器小程序附源代码