![查看(监控)串行端口的线路状态](https://linux22.com/image/34677/%E6%9F%A5%E7%9C%8B%EF%BC%88%E7%9B%91%E6%8E%A7%EF%BC%89%E4%B8%B2%E8%A1%8C%E7%AB%AF%E5%8F%A3%E7%9A%84%E7%BA%BF%E8%B7%AF%E7%8A%B6%E6%80%81.png)
是否有实用软件(或从 shell 脚本执行此操作的简单方法)来显示串行端口的状态 - 即闪烁“RXD”、“TXD”、“DCD”、“DTR”、“DSR”、“RTS”、 “CTS”?特别是,我需要监视“DCD”线是否大部分时间都被置位,并在某个时间间隔内被暂时清除。端口不需要嗅探,独占打开就可以了。
在 DOS 和 Windows 世界中,终端仿真器和其他调制解调器相关软件通常在 GUI 或控制台应用程序中显示引脚状态。然而,即使对于 Linux,我也找不到替代方案(尽管有人说可以/proc/tty/driver/serial
手动检查,如果它存在),更不用说 FreeBSD,它是我的实际目标。常见的工具最多cu
只minicom
显示端口设置,而不显示状态。
答案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 软件包,也许值得尝试一下。