gpt4 book ai didi

python - telnetlib.write() 不复制 telnet.interact()

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:26 25 4
gpt4 key购买 nike

我有一台 90 年代的频谱分析仪,上面有一个远程登录客户端。我可以使用 Linux telnet CLI 远程登录,效果很好...按预期控制机器。

我想自动执行此操作,以设置好后无需理会的方式进行 100 次不同的测量,因此 Python 是很自然的选择。

我正在查看 telnetlib 模块,并且得到了一些相互矛盾的结果...请注意,我仍处于原型(prototype)设计阶段,所以我正在使用 iPython 来完成这项工作。

基本上,我可以使用 telnetlib.interact() 连接并进入交互式客户端,它的工作原理与 Linux telnet CLI 差不多。但是,当我将准确的调试输出复制到 telnetlib.write() 方法时,仪器没有响应。实际上,它在诊断输出中显示了类似 undefined header 的内容,因此消息未正确传输给它。

这是一个 iPython session 输出:

In [2]: import telnetlib

In [3]: HOST = "192.168.0.118"

In [4]: tn = telnetlib.Telnet(HOST, "5024")

In [5]: tn.set
tn.set_debuglevel tn.set_option_negotiation_callback

In [5]: tn.set_debuglevel(2)

In [6]: tn.interact()
Telnet(192.168.0.118,5024): recv b'Welcome to Telnet SCPI Server: agilent\r\nAgilent Te'
Welcome to Telnet SCPI Server: agilent
Agilent TeTelnet(192.168.0.118,5024): recv b'chnologies, N1996A, US45310134, A.02.03\r\n\r\nSCPI>\xff\xfb'
chnologies, N1996A, US45310134, A.02.03

SCPI>Telnet(192.168.0.118,5024): recv b'\x01\xff\xfb\x03'
Telnet(192.168.0.118,5024): IAC WILL 1
Telnet(192.168.0.118,5024): IAC WILL 3
Telnet(192.168.0.118,5024): recv b'\xff\xfc\x01'
Telnet(192.168.0.118,5024): IAC WONT 1
Telnet(192.168.0.118,5024): recv b'\xff\xfc\x03'
Telnet(192.168.0.118,5024): IAC WONT 3
freq:star 110khz
Telnet(192.168.0.118,5024): send b'freq:star 110khz\n'
Telnet(192.168.0.118,5024): recv b'SCPI>`
SCPI>

但是,如果我用

发送同样的东西

tn.write(b'freq:star 110khz\n'),

没有任何反应......或者,如果我发送

tn.write(b'freq:star 110khz\n\n'),

没有任何反应...仪器上没有错误消息或任何内容。就像什么都没发生一样。

我在 stackoverflow 上看到了一些问题,这些问题表明计时是个问题...除了添加 tn.set_debuglevel(2) 作为解决方法外,我不知道如何解决这个问题增加延迟,但这可能也是我的误解。

我确实知道该仪器希望以逐字符模式查看内容,但没有说明是否支持逐行模式,这就是我假设 tn.write(foo) 的方式 发送内容。

有什么地方出错了吗?

最佳答案

这是 this 的副本

需要在消息的换行二进制部分添加一个\r,所以tn.write(b'freq:star 110khz\r 不会工作,但是 tn.write(b'freq:star 110khz\r\n 会。

关于python - telnetlib.write() 不复制 telnet.interact(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37704228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com