0

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

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

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

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

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

4

2 回答 2

1

看起来您需要为 Droid 部分使用外部库。请参阅:通过 Android 与串行 USB 设备通信, 特别是https://github.com/felHR85/UsbSerial上的项目。我还不明白如何将它添加到 Xamarin 中。

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

于 2016-09-26T21:13:15.420 回答
0

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

猴子机器人

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

  • 低级蓝牙 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

于 2016-08-26T17:10:34.257 回答