查看(监控)串行端口的线路状态

查看(监控)串行端口的线路状态

是否有实用软件(或从 shell 脚本执行此操作的简单方法)来显示串行端口的状态 - 即闪烁“RXD”、“TXD”、“DCD”、“DTR”、“DSR”、“RTS”、 “CTS”?特别是,我需要监视“DCD”线是否大部分时间都被置位,并在某个时间间隔内被暂时清除。端口不需要嗅探,独占打开就可以了。

在 DOS 和 Windows 世界中,终端仿真器和其他调制解调器相关软件通常在 GUI 或控制台应用程序中显示引脚状态。然而,即使对于 Linux,我也找不到替代方案(尽管有人说可以/proc/tty/driver/serial手动检查,如果它存在),更不用说 FreeBSD,它是我的实际目标。常见的工具最多cuminicom显示端口设置,而不显示状态。

答案1

AFAIK 您可以使用端口读取 DCD 引脚。根据https://www.freebsd.org/doc/en/articles/serial-uart/DCD位于调制解调器状态寄存器(端口0x06+PORT_ADDR)的位 7 中。对于您的应用程序,Bit 3DDCD可能更好。也可以hook中断,看一下Modem Status Change中断。

答案2

Ckermit 是一个非常强大的串行/调制解调器通信程序,适用于基于 Unix 的计算机,但我不记得它是否支持可视化显示 RS232 控制引脚状态的功能。自 2011 年哥伦比亚大学暂停支持以来,该项目进展缓慢,但似乎正在卷土重来。

我无法分辨出www.kermitproject.org是否有这样的功能。许多 Linux 发行版都有 ckermit 软件包,也许值得尝试一下。

相关内容