【问题标题】:Serial Port Comm with Arduino Device from Windows Store C# App来自 Windows Store C# 应用程序的 Arduino 设备的串行端口通信
【发布时间】:2014-05-15 07:33:42
【问题描述】:

我目前正在努力让 Leonardo 设备被识别,并通过 C# 中的串行端口与我的应用程序进行通信,用于 Windows 8 App Store。我使用http://msdn.microsoft.com/en-us/library/windows/hardware/dn312121(v=vs.85).aspx#step2 作为指导,结合http://code.msdn.microsoft.com/windowsapps/USB-CDC-Control-sample-5ba19caa 指导我。

我遇到了问题,尽管我输入了我的 PID/VID 和类/子类/协议,但我的 Arduino 设备没有出现,所以我觉得我错过了一些步骤,希望有经验的人这可以为我指出一个更具体/更详细的例子。

我的设备是 Arduino Leonardo,我正在使用 Visual Studio 2013 Ultimate 运行 windows 8.1,代码是 C#

感谢任何帮助!

【问题讨论】:

  • Arduino 使用什么驱动程序进行串行通信?它必须使用 WinUSB.sys,而不是 usbser.sys(这是旧的)。我也遇到了这个问题。为它制作一个新的驱动程序并不是特别困难,但您可能需要经历一个制作 CAT 并自己签名的过程(这可能有点麻烦)。
  • @NateDiamond 嘿 Nate,我刚刚仔细检查过,你是对的,我目前正在使用旧的 usbser.sys 驱动程序。我是 Arduino/drivers/etc 的新手,你有什么资源可以告诉我你在创建新驱动程序时使用的资源吗?
  • 当然! Check this out. 看起来真的很复杂,但是设置几个字段就很简单了,比如制造商的名字(你可以自己编一个)和VID/PID。现在,您需要安装该驱动程序。您可以禁用驱动程序签名验证或sign it yourself。这看起来很可怕,但也很容易。安装驱动程序工具包,使用 Inf2Cat,制作证书,使用 SignTool,将证书安装到 TrustedInstallers 和 Root。安装驱动
  • 如果您确实制作了自己的证书并将其安装到 root,像疯了一样保护该证书。加密它,将它存储在某个地方,甚至可能只是删除它并每次创建一个新的。如果有人得到它的副本,他们可以将任意驱动程序安装到您的计算机上。坏消息。但是,如果你保护它,那么它应该是好的。此外,并非该指南的所有部分都是 100% 需要的,但它涵盖了所有要点。 (同样:Inf2Cat、MakeCert、SignTool、安装证书、安装驱动程序)。

标签: c# windows-8 serial-port arduino windows-store-apps


【解决方案1】:

关于常规 Windows 应用程序的一般想法(不知道 W8 AppStore):
可能有帮助,也可能没有,在第二种情况下,很抱歉浪费您的时间......

要在 Windows 中获得“常规 COM”设备,无需任何额外的驱动程序,您应该使设备显示为 USB 通信设备类(又名 CDC)——除其他外,这通过适当的类/子类/协议完成. VID/PID 不在乎。这意味着设备应该向枚举 USB 主机(windows)提供 CDC/ACM USB 描述符并实现所需的端点和命令 - 假设您的板上已经存在一些东西并且您将固件下载到它,对吗?您可能想尝试将此类配置的设备连接到 Windows,并且在成功枚举后,应该会出现新的 COM 端口。如果您编写常规应用程序,您只需通过 SerialPort 类实例连接到这样的 COM 端口,无论它是通过 USB 子系统提供的......如果这有效,您应该能够启动 AppStore 部分(我不知道如何帮助)。

【讨论】:

  • 感谢您的建议!我已经让它适用于桌面应用程序,因为它显示在 Comm/Ports 下,但我的问题源于 Windows Store 库不同/更严格,我的桌面应用程序解决方案不起作用/不可用。随时欢迎更多信息!如果它对我没有帮助,它可能会帮助以后偶然发现此问题的人。
【解决方案2】:

我只想回答这个问题,因为目前不可能。我最终使用 Metro UI/UX 指南编写了一个桌面 WPF 应用程序。在此和 ClickOnce 部署之间,商店应用程序的感觉相当好地重新创建,尽管商店是理想的。

我真诚地希望微软决定在不久的将来支持这一点,Metro SDK 非常好,我很想最终移植它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 2013-11-02
    相关资源
    最近更新 更多