红外探测器 USB 轮询

Infared Detector USB POLL

本文关键字:轮询 USB 探测器      更新时间:2023-10-16

我的目标是使用 c++/c# 轮询 USB 端口,以查看电源是否从外向内流动。

我有一个红外检测器 LED 连接到 USB 输出,然后返回到输入。我基本上想知道我怎么能做这样的事情:

USBDevice usb = LoadUSBDevice(port1);
boolean detected = usb:isPowerFlowingOutToIn();
if(detected){
     double amount = usb:getVoltage();
     if(amount > somenumber){
           //do stuff
     }
}

此设置无法按原样工作。USB 设备必须根据 USB 规范进行响应,否则它们将无法分配地址。由于您的设备行为不正常(例如,它无法建立供应商 ID、产品 ID、设备类别等),因此它不会获得地址。因此,假设的LoadUSBDevice(port1);不起作用。

Raymond Chen很好地总结了这一点,"分叉也是一种非标准的USB设备"。Windows USB驱动程序是相当宽容的,但你不能指望在插入USB端口时任何东西都能工作。