带串口 UPS 的 HID 电源设备驱动程序

Posted

技术标签:

【中文标题】带串口 UPS 的 HID 电源设备驱动程序【英文标题】:HID power device driver for UPS with serial port 【发布时间】:2013-10-01 09:33:20 【问题描述】:

我有一个 UPS,它通过串行端口输出数据,例如电池状态。该 UPS 通过 USB 连接到计算机,使用串行端口到 USB 适配器。超级终端可以通过自定义协议与 UPS 进行通信。

是否可以使用 UPS 的 USB 输出为 Windows 编写 HID 电源设备驱动程序?此驱动程序应将自定义协议转换为 HID 电源设备协议。

【问题讨论】:

【参考方案1】:

是的,可以通过为您的 UPS 编写 WDM 或 KMDF USB HID 迷你驱动程序来完成。在 HID Mini 驱动程序中,您必须在 hid 集合中定义带有 USB 电源设备使用情况的 HID 报告描述符。在该驱动程序中,您需要配置和枚举您现在用于虚拟串行端口通信的 USB 管道。您必须直接从 USB 管道发送和接收数据。

在此 HID 迷你驱动程序中,一旦您使用使用页面(例如具有必要用途的电池系统作为隐藏报告)定义报告描述符并处理来自*** HID 类驱动程序的 IOCTL 调用,您可以看到您的 UPS 作为 HID UPS 电池连接到Windows 设备管理器。您可以在电源选项面板以及系统托盘中将 UPS 视为具有充电状态、交流电源状态、电池剩余容量百分比的电池,就像我们在系统托盘上看到的笔记本电脑电池状态一样。

您还可以发送现有的 UPS 命令,您现在通过超级终端发送的内容将通过 HID API 调用发送,例如根据您的要求定制开发的应用程序中的 HidD_GetFeature、HidD_SetFeature、HidD_GetInputReport、HidD_SetOutputReport 函数。

【讨论】:

以上是关于带串口 UPS 的 HID 电源设备驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

带健康设备的串口转 USB Android 应用程序

USB鼠标设备简单驱动设计

如何与 Windows 上的 USB-HID 设备通信?

USB HID 设备检测

USB接口程序编写

RK3399平台开发系列讲解(高速设备驱动篇)6.61USB如何模拟HID设备