在运行Windows 10 IoT的覆盆子pi 3和c#通用应用程序

时间:2016-09-01 22:48:52

标签: c# visual-studio raspberry-pi uwp iot

我希望比我聪明的人能够找到解决这个问题的方法。

我有一个自助服务终端应用程序,其中有两个usb rfid阅读器插入运行Windows 10 IoT的raspberry pi 3,其中包含一个用Visual Studio编写的c#UWP应用程序。 rfid阅读器充当键盘。基本上他们只是读取rfid令牌上的id“输入”,然后按回车键。

我需要能够在任何给定时间告诉哪个rfid阅读器正在读取标签。

在插入了多个usb rfid阅读器的Windows 10计算机上使用以下项目:http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard我可以分辨出哪个rfid阅读器正在使用但无法在运行Windows 10 IoT Core的raspberry pi上运行。

我使用Windows.Devices.HumanInterfaceDevice命名空间创建了一个UWP应用程序,可以让读者显示但无法打开它。

我使用的代码是:

string selector = HidDevice.GetDeviceSelector(0x0001, 0x0006, 0x08FF, 0x0009);
var hidDevice = await HidDevice.FromIdAsync(selector, FileAccessMode.Read);
var inputReportEventHandler = new TypedEventHandler<HidDevice, HidInputReportReceivedEventArgs>(this.OnInputReportEvent);
hidDevice.InputReportReceived += inputReportEventHandler; 

当我使用:

配置Package.appxmanifest时
<DeviceCapability Name="humaninterfacedevice">
  <Device Id="vidpid:08FF 0009">
    <Function Type="usage:0001 0006"/>
  </Device>
</DeviceCapability>

并编译应用程序我收到错误:

错误DEP0700:应用注册失败。 Appx包的清单无效:由于功能元素使用问题,无法注册包:0001 0006:值被阻止,此总线上不允许(0x80073cf6)

因此,看起来Microsoft已使用Windows.Devices.HumanInterfaceDevice命名空间(https://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.humaninterfacedevice.aspx)阻止了对rfid阅读器的访问,因为它已被归类为位于顶级应用程序集合中。

所以我的选择是:

  1. 尝试使用原始输入应用程序(从上面的代码项目站点的链接),但我认为由于它正在进行的基础调用,它将在pi上运行。

    < / LI>
  2. 在pi上放置一个不同的操作系统并重写自助服务终端应用程序(我真的很喜欢使用Windows IoT和带有UWP应用程序的c#。

  3. 想一个不同的解决方案,我希望阅读这篇文章的聪明人能够提出建议。

  4. 欢迎任何建议!

0 个答案:

没有答案