C# 红外探测器USB轮询
我的目标是使用c++/c#轮询usb端口,查看电源是否从输出端流向输入端 我有一个红外探测器led连接到usb输出,然后返回到输入。我基本上想知道我如何能做这样的事情:C# 红外探测器USB轮询,c#,c++,usb,C#,C++,Usb,我的目标是使用c++/c#轮询usb端口,查看电源是否从输出端流向输入端 我有一个红外探测器led连接到usb输出,然后返回到输入。我基本上想知道我如何能做这样的事情: USBDevice usb = LoadUSBDevice(port1); boolean detected = usb:isPowerFlowingOutToIn(); if(detected){ double amount = usb:getVoltage(); if(amount > somenu
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端口时,您不能期望任何东西都能正常工作。您需要阅读红外探测器文档。通常,此类设备随附具有已知编程接口的驱动程序。例如,红外设备可以通过用户模式程序作为插座或虚拟COM端口进行访问。usb::getVoltage
不需要,仅为5伏。您可能想要getCurrent
。