2

我有一个硬件测试设置,其中多达 255 个节点通过 USB 连接的虚拟 COM 端口向我的 Windows 系统发送跟踪消息。实际上,我使用了一个小的 Python 脚本,它在所有打开的串行端口上运行一个轮询循环,并执行一个零超时的 readline。读取的行与添加的 COM 端口源和时间戳一起打印到控制台。这几乎是实时的。但是您可以想象,CPU 使用率非常高。因此,我一直在寻找一种无需轮询即可并行实时监控所有 COM 端口的方法。

PySerial doc (look for nonblocking())说有类似选择界面的 POSIX,但仅在 UNIX 操作系统下。

有任何想法吗?

4

1 回答 1

1

我会看看扭曲的,它可能会奏效。它有一个由反应器运行的串行端口监视器。(扭曲是异步的)。

我有一个小型 Web 服务器监控并与 JeeNode(arduino 克隆)通信,接收数据馈送以及将数据发送到远程无线节点。你可以在这里看到这段代码的早期剪辑https://bitbucket.org/zutesmog/securitynode/src/93e29a7f3e26/SecurityConsole/secweb.py(它有点hacky,但你会明白的。)

然而,这并没有处理任何接近相同流量或端口数量的地方,但它不是轮询,所以我不确定它是否会扩展,但它当然值得一试。

于 2012-08-09T09:11:02.097 回答