我正在开发需要与许多串行端口进行通信的应用程序。 我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] 举报,一经查实,本站将立刻删除。