c# - 在 Mac 上以单声道方式使用 USB COM 端口
问题描述
我为我的项目编写了一个 Windows 应用程序,它有助于使用虚拟 COM 端口与微控制器进行串行通信。这非常简单——芯片制造商 (atmel) 提供了 USB 驱动程序(Windows 10 甚至不需要,只有较低版本)并且访问端口是一些基本代码。
但是我希望它也可以在其他系统上工作,主要是 osx。我刚刚发现了 mono,通过 mono 迁移分析器运行了我的应用程序,令我高兴的是,除了几次调用之外,该应用程序相对较好(我认为只有几个问题我可以解决)。
仍然存在两个大问题:
- 如何使用单声道访问 mac com 端口?据此,这并不容易。
- 即使我能得到正确的串口,我该如何与之通信呢?Atmel 只提供 Windows 驱动程序,所以恐怕根本行不通。
我在 avr 论坛上就第二个问题提出了类似的问题,一位乐于助人的用户回答说:
可能就像将 macOS 的 USB 设备文件系统“以某种方式”链接到 Mono 的运行时一样简单。
我必须可耻地说我不确定这意味着什么,以及我是否完全可以实现 - 以我有限的编程知识和基本上没有使用 osx 的经验。所以恐怕像Class Compliance这样的解决方案是我无法企及的。
提前致谢!
解决方案
回答我自己的问题:
- 我设法使用 SerialPort.GetPortNames() 访问了这些端口 - 其中有很多(列出了几十个),但是它确实有效,并且连接我的设备的端口有一个不同的名称。仍然有一些问题需要解决,主要是识别端口是否真的处于活动状态(即使在我关闭设备而不拔掉 USB 电缆后它仍然列出),但使用名称连接到串行端口是可行的。
- 与我的 xmega mcu 的通信不需要驱动程序,开箱即用。
推荐阅读
- python - DRF 序列化器按属性将数据分组到数组中
- vue.js - Vue Routing vue 添加 /#/ 到 url,如果清除默认所有 url 为 '/'
- excel - 有没有办法使用 pandas、python 或 excel 在行顶部转置所有 CSV 列值?(第 1 列 = 第 1 行,第 2 列 = 第 2 行)
- php - 如何在 Symfony 4 中调用服务?
- python - 在 tkinter gui 中隐藏隐藏文件夹
- xpath - 查找要在 Google 表格 IMPORTXML 中使用的网站的 XML
- php - getItems 中的行数
- list - 如何使用python从字符串列表中查找最高数字
- api - 使用 Bitbucket Server API 创建标签失败
- java - 从另一个方法访问侦听器方法参数