【发布时间】:2018-08-16 22:43:19
【问题描述】:
我为我的项目编写了一个 Windows 应用程序,它有助于使用虚拟 COM 端口与微控制器进行串行通信。这非常简单 - 芯片制造商 (atmel) 提供 USB 驱动程序(Windows 10 甚至不需要,只有较低版本)并且访问端口是一些基本代码。
但是我希望它也可以在其他系统上运行,主要是 osx。我刚刚发现了 mono,通过 mono 迁移分析器运行了我的应用程序,令我高兴的是,除了几次调用之外,该应用程序相对较好(我认为只有几个问题我可以解决)。
还有两个大问题:
- 如何使用单声道访问 mac com 端口?根据this 的说法,这并不容易。
- 即使我能得到正确的串口,我该如何与之通信? Atmel 只提供 Windows 驱动程序,所以恐怕根本行不通。
我已就 avr 论坛上的第二个问题向similar question 提问,一位乐于助人的用户回复了这个:
可能就像将 macOS 的 USB 设备文件系统“以某种方式”链接到 Mono 的运行时一样简单。
我必须可耻地说我不确定这意味着什么以及我是否完全可以实现 - 以我有限的编程知识并且基本上没有使用 osx 的经验。所以恐怕像 Class Compliance 这样的解决方案是我无法企及的。
提前致谢!
【问题讨论】:
-
到目前为止你尝试过什么? (具体来说,如果您在链接的线程中向下滚动到this,您是否尝试过所暗示的答案?)祝您好运,欢迎来到 Stack Overflow!
-
好吧,我会的……我设法以某种方式移植了我的应用程序,至少可以在朋友的 macbook Air 上运行(尽管我花了比预期更长的时间,尽管 monoanalyzer 告诉我我的应用程序100% 准备就绪),似乎我能够使用基本的 SerialPort.GetPortNames() 列出所有端口(并且有很多!)其中一个似乎是我的设备 - 尽管为什么它被称为 usbmodem1421 我不知道。尽管如此,在使用名称连接到它之后,它似乎在没有任何驱动程序的情况下工作!现在我需要找出如何识别正确的 COM 端口,最好通过 VID/PID。