我有这个非品牌的中国 UPS,我想将它插入我的计算机,手册指出它有一个“COM 端口”,但没有其他信息,它也没有提供驱动程序。
使用 USB B 型转 A 型电缆将 UPS 插入我的计算机,计算机会将其检测为“HID 兼容设备”,但似乎找不到它的任何驱动程序。
有没有办法从 UPS 获取诸如剩余电量之类的信息,以便我可以编写一个程序在断电前轻轻关闭计算机?
编辑
此工具http://networkupstools.org似乎检测到我的UPS
编辑2
无法让 NUT 与我的 UPS 配合使用,手动安装 libusb 也不起作用
编辑3
rdesc:http://sprunge.us/WEZV
lsusb:http://sprunge.us/hNiM
答案1
部分答案:
符合 HID 标准的设备应该具有 HID 描述符,它描述了设备发送和接收数据的有效格式。
在 Linux 上,您可以通过以下方式访问 HID 描述符:
查看dmesg
插入设备后出现的新行。这将告诉您 Linux 内核是否也将其识别为 HID 设备,以及总线号以及供应商和设备 ID。
如果尚未安装,请执行
mount -t debugfs none /sys/kernel/debug
以 root 身份运行。然后/sys/kernel/debug/hid/<dev>/rdesc
将包含 HID 描述符,其中<dev>
是包含总线号、供应商和设备 ID 的设备标识符以及附加编号。
使用 查看描述符的内容cat '/sys/kernel/debug/hid/<dev>/rdesc'
,并编辑问题以包含内容(或将其放在 pastebin 等中,并使用链接编辑问题)。
lsusb
并且lsusb -v -d xxxx:yyyy
(xxxx:yyyy
供应商和设备 ID 在哪里)也将提供有助于确定如何与设备通信的信息。
编辑
这是使用 HID USB 的一种有趣方式:HID 描述符表示您可以读取和写入 8 字节长度的块,具有特定于应用程序(非标准)的用途,事实上,blazer_usbNUT 中的驱动程序代码正是这样做的,通过 8 字节块模拟串行 USB。完全疯了。
这里描述了如何在 Ubuntu 下运行,显然有几个陷阱。串行接口的通信协议如下所述这里。
如果您在 Linux 下仍无法使其正常工作,请查看usbmon
以调试无法正常工作的部分。
不知道 Windows 驱动程序能做什么,除非您获取源代码并自己编写一个。