我有一个相对简单的Winform应用程序,用于通过USB转串口与Arduino进行通信。我想使用Xamarin Forms使其尽可能通用。
我的问题是,似乎没有办法为Android和UWP做这件事(我的优先事项,IoS和#34;未来可能")。谷歌搜索我发现Xamarin文档中记录了System.IO.Ports.SerialPort
,但我没有找到任何方法将此库添加到Droid和UWP项目中。
如果我需要,我想我可以编写一个接口,并根据编译的项目有不同的实现,但我很想找到一些例子。
我还想将WiFi用作串口而不是USB,让用户选择他想要链接到Arduino的方式。所有这些在Winform中都没什么大不了的,所以我很惊讶Xamarin看起来几乎不可能!
感谢您提供正确方向的任何帮助和指示。我不想放弃这个项目,但同时我不能花很多时间在一些似乎没有实现的东西上(截至目前)。
答案 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控制器的示例。
Mobile堆栈由三个不同部分组成:
低级蓝牙LE(BLE)API - 支持与BLE设备通信的跨平台API(目前仅限iOS和Android)。
低级别Wifi API - 一种跨平台API(目前仅适用于iOS和Android),支持连接启用WiFi的设备。请注意,WiFi API仍在进行中。
消息传递框架 - 通过WiFi或BLE实现消息外围设备的高级跨平台协议。
外围存储库 - 强类型库,用于与各种供应商特定的外围设备(如健康监控设备,智能手表等)进行通信。