我有一台UPS通过串口输出数据,如电池状态。此UPS通过USB连接到计算机,使用串行端口连接USB适配器。通过自定义协议,超级终端可以与UPS进行通信。
是否可以使用UPS的USB输出为Windows编写HID电源设备驱动程序?此驱动程序应将自定义协议转换为HID电源设备协议。
答案 0 :(得分: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函数)从定制开发的应用程序发送。