我有一个原来用于Win XP的旧USB远程控制接收器,其中包括的SW不再在Win10上运行。但是由于它的硬件仍然是Win10可用的驱动程序,因此我想尝试通过自己的软件使用它,但是我没有在W10 UWP(C#应用程序)下进行硬件通信的经验。我读了一些文章,但是Win的硬件部分并不容易,我希望有一定技能的人能立即发现我做错了什么并可以建议该怎么做。
我在设备管理器中看到列出的设备,已安装驱动程序,该设备似乎还可以。 我还可以通过DeviceWatcher类在USB端口上检测其连接/断开连接。我知道它的设备ID。我正在尝试使用该ID来打开它,但是没有成功。因为我不知道确切的类型,所以我尝试了所有可能有意义的方法:RFComm,串行设备,Usb设备,HID设备,自定义设备,但没有成功。设备管理器的HID和USB部分中列出了它的“部分”,但是HidDevice和UsbDevice类始终返回NULL。我试图从UI线程,非UI线程运行相同的表单。我试图多次调用类创建(我读给别人的第一次尝试总是返回NULL,但是对于第二次尝试却成功,但是对我没有帮助)。我还对包装清单的设备功能部分进行了很多试验,但没有成功。我还尝试了所需的访问和共享模式,但没有成功。贝娄是我的代码和我的应用程序清单。我在做什么错了?
string devId = @"\\?\USB#VID_0BC7&PID_0004#5&4bbb90c&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}";
var hid1 = await Windows.Devices.HumanInterfaceDevice.HidDevice.FromIdAsync(devId, Windows.Storage.FileAccessMode.Read);
var usb1 = await Windows.Devices.Usb.UsbDevice.FromIdAsync(devId);
var bt1 = await Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService.FromIdAsync(devId);
var ser1 = await Windows.Devices.SerialCommunication.SerialDevice.FromIdAsync(devId);
var sens1 = await Windows.Devices.Sensors.Custom.CustomSensor.FromIdAsync(devId);
var cust1 = await Windows.Devices.Custom.CustomDevice.FromIdAsync(devId, Windows.Devices.Custom.DeviceAccessMode.Read, Windows.Devices.Custom.DeviceSharingMode.Shared);
清单:
<Capabilities>
<Capability Name="internetClient" />
<DeviceCapability Name="usb">
<Device Id="any">
<Function Type="interfaceId:a5dcbf10-6530-11d2-901f-00c04fb951ed"/>
</Device>
</DeviceCapability>
<DeviceCapability Name="bluetooth.rfcomm">
<Device Id="any">
<Function Type="interfaceId:a5dcbf10-6530-11d2-901f-00c04fb951ed"/>
</Device>
</DeviceCapability>
<DeviceCapability Name="humaninterfacedevice">
<Device Id="any">
<Function Type="interfaceId:a5dcbf10-6530-11d2-901f-00c04fb951ed"/>
</Device>
</DeviceCapability>
<DeviceCapability Name="sensors.custom">
<Device Id="any">
<Function Type="interfaceId:a5dcbf10-6530-11d2-901f-00c04fb951ed"/>
</Device>
</DeviceCapability>
<DeviceCapability Name="serialcommunication" />
<DeviceCapability Name="a5dcbf10-6530-11d2-901f-00c04fb951ed"></DeviceCapability>
</Capabilities>
HID,RFComm,USB,串行返回null,传感器返回范围异常,CustomDevice返回访问被拒绝异常。