Advertisement

qt利用hid接口获取目标USB设备,并读取其数据。

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
文件夹中包含了hidapi.h、hidapi.dll和hidapi.lib等文件。我是在Windows 10系统中,借助Visual Studio 2013的Release版本进行编译,该配置是为了支持Qt应用程序的调用,并且已经成功实现。具体调用流程如下:首先,使用VID、PID以及可选的序列号,通过`hid_open()`函数打开设备。如果打开失败,则打印错误信息并返回。否则,程序会读取制造商字符串、产品字符串和序列号字符串,并通过`hid_get_manufacturer_string()`、`hid_get_product_string()`和`hid_get_serial_number_string()`函数分别获取并打印这些字符串信息。随后,程序会读取索引字符串1,同样通过`hid_get_indexed_string()`函数获取并打印。最后,程序启动一个非阻塞循环,利用`hid_read()`函数持续读取设备数据到缓冲区中。对于读取到的数据进行处理后, 将其转换为大写形式存储在cardInfo中, 并循环遍历cardInfo中的每一个元素, 调用dealWithData()函数进行相应的处理。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • QT 使 HID 特定 USB
    优质
    本教程介绍如何使用QT编程框架通过HID协议获取特定USB设备,并实现从该设备读取数据的功能。适合需要与USB硬件交互的开发者学习参考。 文件夹包含hidapi.h, hidapi.dll 和 hidapi.lib 文件,在 Windows 10 系统使用 VS2013 编译的 release 版本中用于 Qt 的调用,这是可以实现的。 调用过程如下: ```cpp int res; res = hid_init(); wchar_t wstr[MAX_STR]; int i; // 使用 VID, PID 和可选序列号打开设备。 handle = hid_open(0x0483, 0x5750, NULL); if(handle == NULL) { qDebug() << NULL-----------------------NULL; return; } else { qDebug() << not ------------NULL-----------------------NULL; } // 获取制造商字符串 res = hid_get_manufacturer_string(handle, wstr, MAX_STR); wprintf(LManufacturer String: %s\n, wstr); // 获取产品字符串 res = hid_get_product_string(handle, wstr, MAX_STR); wprintf(LProduct String: %s\n, wstr); // 获取序列号字符串 res = hid_get_serial_number_string(handle, wstr, MAX_STR); wprintf(LSerial Number String: (%d) %s\n, wstr[0], wstr); // 读取索引字符串1 res = hid_get_indexed_string(handle, 1, wstr, MAX_STR); wprintf(LIndexed String 1: %s\n, wstr); qDebug(hid read start); int res = hid_set_nonblocking(handle, 0); // 设置为非阻塞模式 while (true) { 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]); } } } ``` 这段代码展示了如何使用 HID API 库来与特定的 USB 设备进行通信,包括初始化库、打开设备、读取相关字符串信息以及设置非阻塞模式下持续读取数据。
  • Java码枪USB的后台自动功能
    优质
    本项目实现了一个Java程序,用于后台自动化地从接码枪连接的USB设备中读取数据。它简化了验证码等信息的手动输入过程,提高了工作效率和准确性。 自动获取扫码枪数据的功能允许用户自定义将扫描的数据存储到数据库或文件中,并支持同时进行多种存储操作。项目还包括使用教程以及一个用于模拟的扫码枪工具。
  • JavaJSON
    优质
    本教程介绍如何使用Java编程语言从网络服务中获取和解析JSON格式的数据。通过示例代码讲解了常用的库及其实现方法。 使用Java获取指定接口的数据时,采用了HttpServletRequset类。
  • C#编写的USB HID测试软件
    优质
    这是一款使用C#编程语言开发的USB HID(人体接口设备)读取测试工具,旨在帮助开发者和用户检测、调试及分析HID设备的数据传输情况。 这是一个用C#编写的测试软件,用于读取USB HID设备。输入VID、PID后,可以查找HID设备是否存在,并在存在的情况下读取指定的HID设备发送的数据。该软件已经过测试,可以直接使用。此程序仅能读取自定义的HID设备,不能读取键盘和鼠标等标准外设。同时支持自定义数据读取时的超时时间设置。
  • USB HID协议中文版——USBHID.pdf
    优质
    本PDF文档为《USB HID协议》的中文版本,深入解析了USB接口的人机界面设备(HID)的相关标准和规范。适合开发者及技术爱好者参考学习。 USBHID协议中文版——USB接口HID设备.pdf是一份详细介绍USB HID(人机界面)协议的文档,适用于需要了解如何通过USB连接进行人机交互的相关技术人员阅读和参考。该文档提供了关于如何设计、开发以及调试使用了HID类规范的外设所需的知识和技术细节。
  • Python_USB_HID: 和写入 USB HID 的 Python 脚本
    优质
    Python_USB_HID 是一个简洁实用的 Python 库,专为开发者设计,支持轻松地与 USB HID 设备进行数据交互,包括读取及写入操作。 Python_USB_HID 是一个用于读取和写入 USB HID 设备的 Python 脚本。该脚本基于 Python 2.7.9 版本,并在 Windows 7 64位系统上进行了测试,能够执行 USB HID 的原始读取和写入操作。
  • QTAndroid的GPS
    优质
    本教程详细介绍了如何使用Qt框架在Android设备上访问和读取GPS数据,适用于开发者进行地理位置相关应用开发。 此工程能够读取Android手机中的GPS信息,包括经度、纬度、速度以及定位精度等内容,并且可以将这些信息通过UDP协议发送出去。详细内容请参见相关文档或博客文章的介绍。
  • 在Linux中USB转串GPS信息
    优质
    本教程介绍如何在Linux系统中使用USB转串口适配器连接GPS设备,并通过相关命令获取和解析GPS数据。 本段落档详细介绍了在Linux系统下如何通过USB接口读取GPS设备的数据。主要讲解了使用USB转串口驱动的方法、打开ttyUSB0以及数据的读取等相关内容。
  • HID USB通信 异步(使Windows API)
    优质
    本教程介绍如何在Windows操作系统中通过异步方式利用API函数实现USB HID设备的数据读取,帮助开发者掌握高效的数据传输技术。 开发一个不需要第三方类库即可完成的USB通讯案例项目,使用Windows API可以确保在正式项目应用中客户无需安装额外的第三方库或特定类库文件,从而避免了由此带来的复杂问题。数据反馈和设备移除都是通过事件触发接收实现的。
  • 一个简单的示例:如何HID收和发送
    优质
    简介:本教程详解了如何识别、获取及连接HID(人体接口设备)以实现高效的数据传输与接收,适合初学者快速上手。 该代码提供了一个简单的示例,用于获取HID设备,并选择相应的HID设备进行连接以及接收和输入数据。此案例适合对USB HID设备入门的学习者参考。部分代码借鉴了网友的分享。