【问题标题】:Xamarin Forms. Port a Winform application using serial port?Xamarin 形式。使用串行端口移植 Winform 应用程序?
【发布时间】:2017-01-03 09:57:52
【问题描述】:

我有一个相对简单的 Winform 应用程序,用于通过 USB 转串口与 Arduino 进行通信。我希望使用 Xamarin Forms 使其尽可能通用。

我的问题是,Android 和 UWP 似乎都没有办法做到这一点(我的优先事项,IoS“可能”在未来)。谷歌搜索我发现在 Xamarin 文档中有一个 System.IO.Ports.SerialPortdocumented,但我没有找到任何方法将此库添加到 Droid 和 UWP 项目中。

如果需要,我想我可以编写一个接口并根据编译的项目有不同的实现,但我很想找到一些例子。

我还想将 WiFi 用作串行而不是 USB,并让用户选择他想要链接到 Arduino 的方式。所有这些在 Winform 中都没什么大不了的,所以我很惊讶这在 Xamarin 上看起来几乎是不可能的!

感谢您提供正确方向的任何帮助和指示。我不想放弃这个项目,但同时我不能花很多时间在似乎没有实施的事情上(截至目前)。

【问题讨论】:

    标签: winforms xamarin xamarin.android xamarin.forms xamarin.windows


    【解决方案1】:

    看起来您需要为 Droid 部分使用外部库。 请参阅:Comunicating with serial USB device over Android,特别是https://github.com/felHR85/UsbSerial 上的项目。我还不明白如何将它添加到 Xamarin。

    UWP 使用 Device.Serial 类,而不是 System.IO.Serial 类。所以最终这一层代码将位于代码的平台相关层中,每个平台一个。

    【讨论】:

      【解决方案2】:

      您应该查看Monkey.Robotics 项目的源代码,因为它包含使用 USB、Wifi、蓝牙与 .NET MF 微控制器和非 .Net MF 控制器(如 Arduino)进行通信的示例。

      Monkey.Robotics

      Mobile 堆栈由三个不同的部分组成:

      • 低级蓝牙 LE (BLE) API - 支持与 BLE 设备通信的跨平台 API(目前仅限 iOS 和 Android)。

      • Low-Level Wifi API - 一种跨平台 API(目前仅适用于 iOS 和 Android),支持连接到启用 WiFi 的设备。请注意,WiFi API 仍在进行中。

      • 消息传递框架 - 通过 WiFi 或 BLE 向外围设备发送消息的高级跨平台协议。

      • 外设库 - 强类型库,用于与各种供应商特定的外设进行通信,例如健康监测设备、智能手表等。

      参考:https://github.com/xamarin/Monkey.Robotics

      【讨论】:

      • 谢谢你的回答,我去看看。不确定它是否真的符合我的需求,但我会调查。
      猜你喜欢
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-01
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多