微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pySerial – 有没有办法一次select多个端口?

我正在开发需要与许多串行端口进行通信的应用程序。 我havntfind了一种方法来做到这一点,而不使用每个端口的线程。 有没有办法做到这一点与单线程?像一次select或轮询多个端口? 我正在使用pyserial 2.6

使用Python获取Outlook待办事项列表

在Amazon-EC2上远程运行可执行文件并从Amazon-EC2stream式传输日志文件的最佳方法是什么?

运行wxPython2.8文档和演示的教程出错

Python – Windows最大目录path长度解决方法

从Windows上的bash脚本运行Openssl – 主题不以“/”开头

我假设你正在Pyxial的Unix平台上使用…

由于PySerial对象实现fileno()来获取底层文件描述符,所以你可以直接将它们传递给select ,这样就可以一次处理多个PySerial对象。

另一种方法是设置nonblocking(),并处理你的读写操作可能返回errno.EWOULDBLOCK错误。 这可能是最简单的方法

第三个选择是使用扭曲的串行端口,如果你不明白扭曲的事情。

更新

对于Windows来说,除了使用线程之外,您几乎可以使用inWaiting()方法 。 轮询所有的串口定期从他们的inWaiting()读取。 如果有东西在等待,那么你可以读取,只有很多字节没有阻塞。

不幸的是,pyserial没有“输出缓冲区有多少空闲空间”的方法,这意味着当你写入串行端口时,你有可能被阻塞。 如果您正在实现典型的串行端口协议,几千字节的认缓冲区大小将确保这通常不是问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐