Python对serial/Ethern漠不关心

2024-04-16 06:59:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试与一个使用相同协议的设备进行通信,无论是通过TCP套接字还是串行端口与它通信。不管怎样,它都是一个基于ASCII命令的界面,在这个界面中,你在一个提示下键入你的命令,然后是一个换行符,然后是一个新的提示符。在

> IDENTIFY
DEVICE_TYPE_RESPONSE
> TEST POWER
OK
>

程序可以并且应该阻塞,直到它得到新的提示,但是需要一个超时,这样你就不会永远等待,以防设备突然死亡。超时时间应该是秒,这样就不会错误地标记出网络故障,但不会迫使我在获得提示字符后再等待秒。在

我想用某种方法抽象接口,这样就不必关心底层通信层是什么。只要传递给它一个开放的套接字或一个开放的串行端口,让一切发生。有什么好办法吗?最好能在Python2.6下运行。在


Tags: 端口test命令协议键入界面responsedevice
2条回答

Python的串行包提供了很多有用的东西,包括一些serial over TCP/IP bridges。如果您想使用ASCII/Telnet与它对话,那么您可能希望将“convert”选项与简单串行到网络(TCP/IP)重定向器一起使用。在

另外,您可能还想看看Converting serial port data to TCP/IP in a linux environment上的另一个相关问题

您可以在Twisted中实现协议,它允许您使用TCP或串行端口作为传输,而无需更改协议实现。Twisted还允许您设置超时/延迟回调。在

相关问题 更多 >