Xamarin表格。使用串口端口Winform应用程序?

时间:2016-08-26 16:52:46

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

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

我的问题是,似乎没有办法为Android和UWP做这件事(我的优先事项,IoS和#34;未来可能")。谷歌搜索我发现Xamarin文档中记录了System.IO.Ports.SerialPort,但我没有找到任何方法将此库添加到Droid和UWP项目中。

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您应该查看Monkey.Robotics项目的来源,因为它有使用USB,Wifi,蓝牙进行.NET MF微控制器通信和Arduino等非NetNet控制器的示例。

Monkey.Robotics

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

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

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

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

  • 外围存储库 - 强类型库,用于与各种供应商特定的外围设备(如健康监控设备,智能手表等)进行通信。

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