在Mac上的Mono中使用USB COM端口

时间:2018-08-16 22:43:19

标签: c# mono

我为我的项目编写了一个Windows应用程序,该应用程序有助于使用虚拟COM端口与微控制器进行串行通信。这非常简单-芯片制造商(atmel)提供USB驱动程序(对于Windows 10甚至不是必需的,只有较低版本),访问端口是一些基本代码。

但是,我希望它也可以在其他系统上运行,主要是osx。我刚刚发现了Mono,通过Mono迁移分析器运行了我的应用程序,令我高兴的是,除了几个调用该应用程序相对比较好之外(我认为只有两个问题可以解决)。

还有2个大问题:

  1. 如何使用Mono访问mac com端口?根据{{​​3}},这并不容易。
  2. 即使我可以获得正确的串行端口,也该如何与之通信? Atmel仅提供Windows驱动程序,因此恐怕根本无法使用。

我已在avr论坛上向this询问了第二个问题,一位乐于助人的用户回答道:

  

可能就像将macOS的USB设备文件系统“以某种方式”链接到Mono的运行时一样简单。

我必须可耻地说我不确定它的含义,以及我是否可以完全实现-由于我的编程知识有限,而且基本上没有osx经验。因此,我担心“类合规性”之类的解决方案遥不可及。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

要回答我自己的问题:

  1. 我设法使用SerialPort.GetPortNames()访问端口-其中有很多(列出了几十个),但是它确实可以工作,并且连接了我的设备的端口具有一个不同的名称。仍然有一些问题需要解决,主要是确定端口是否确实处于活动状态(即使在我关闭设备而没有拔下USB电缆的情况下,该端口仍会列出),但是使用该名称连接到串行端口是可行的。
  2. 与我的xmega mcu进行通信不需要驱动程序,即可使用。