多次打开串口?

多次打开串口?

TL;DR:一个应用程序能否以编程方式监视已打开的 COM 端口的 COM 端口状态,以及如何监视?

我通过 ttyS0 (COM1) 从主机 HOST 到另一个设备 CLIENT 进行数据通信,因此该端口肯定正在使用中。 CLIENT不仅在端口上向HOST发送数据,而且当CLIENT的电池电量低时,还将一个引脚(“RI引脚9”)从低电平设置为高电平,以便通知HOST该情况。然后,HOST 可以启动正常关闭。

当串行端口只能打开一次然后被锁定时,像 genpower(UPS 监控工具)这样的进程如何检查 PIN 的状态?

要提供附加信息:

有一个电源监控守护进程“genpowerd”,当它看到指定串行端口的指定引脚变高时,可以关闭机器。从 Ubuntu 10 开始,它似乎正在这样做,即使该串行端口也被用作两个任意端点之间的数据连接(意味着串行端口肯定正在使用)。在谷歌上搜索了一下串行端口,似乎较旧的 Unix 版本有一个附加文件

/dev/cua0

除了 /dev/ttyS0 之外。我的供应商声称,由于 genpower 不再是 Ubuntu 的一部分,我无法再使用 UPS 感应。我想知道这是否是因为 /dev/cau* 消失了?可以用来实现我想要的吗?我非常肯定 strace 没有参与其中。 genpowerd 实用程序只需使用简单的命令即可打开串行端口

fd = open(port, O_RDWR | O_NDELAY))

然后继续对其执行 ioctl(...) 调用。

相关内容