【问题标题】:Exclusive serial port access on OSXOSX 上的独占串行端口访问
【发布时间】:2011-08-02 05:36:12
【问题描述】:

我正在开发 an open source program,它使用 gnu.io (RXTX) 通过 USB 串行端口与微控制器通信。该应用程序在 Windows、Linux 和 OSX 上运行。它依赖gnu.io 进行便携式串行端口访问。一位 Macbook 用户发布了一份日志,显示了两件事的证据:

  • 当应用程序打开串行端口时,某些东西会导致 RTS 产生脉冲,从而重置微控制器。
  • 当应用程序打开串行端口时,某些东西会暂时改变波特率,导致输入出现垃圾。 (通常,这种微控制器/固件/USB 组合不易受到波特率差的“线路噪声”式垃圾特性的影响)。
  • 这会在应用程序处于空闲状态时定期发生(在 RTS 引发的重置后自发消息到达时做出反应/记录)

我怀疑某些其他程序偶尔会打开相同的串行端口(例如搜索连接的设备)。如何在 OSX 上防止这种情况发生?

【问题讨论】:

  • 这听起来像是 RXTX 中的一个缺陷。它可能不会以独占模式打开端口,因此其他应用程序可以打开它。会不会是片状硬件? UART 芯片出现问题,因此系统将其重置。
  • @MarkRobinson:在我的例子中,UART 是一个 FTDI USB 串行设备。
  • 作为一个实验。当您尝试同时从两个 RXTX 应用程序打开一个串行端口时会发生什么?特别是在 MacOS X 上。
  • @MarkRobinson:我没有测试 OSX 版本的硬件。问题中的详细信息来自我要求报告错误的人进行的实验。
  • 您可以尝试使用 SerialIO 来确定是 RXTX 错误还是硬件/驱动程序的问题。

标签: java macos serial-port


【解决方案1】:

据我所知,RXTX 不允许其他任何人使用它正在使用的串行端口,如果在尝试打开该端口时该端口已在使用中,则会引发异常。对我来说听起来像是一个 RXTX 错误

【讨论】:

    猜你喜欢
    • 2019-01-05
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多