我正试图通过IP设备发送嵌入在telnet数据中的RS232命令。它完美地使用万亿期限和Windows命令提示符下的telnet,但它不使用Python工作(telnetlib)有没有一种方法来嵌入` r`甚至是` n`来通过Python发送telnet?
Using Tera Term, it works fine:
Correct Result (Fan status of 3 fans) MCU responds Correctly
然而,当我使用Python的Telnet库:
tn = telnetlib.Telnet(HOST,PORT,timeout = 3)
tn.write('send '+ DEVICE_MAC + ' rs232:1 get_fan ?\r')
HOST,PORT和DEVICE_MAC都在我原来的代码中定义。 由于某些原因,\ r不会发送到主机。
get_fan ?\r
\r
需要用于主机MCU正确处理get_fan ?
命令,但Python代码以上只发送get_fan ?
而不\r
。
有没有办法嵌入\r
甚至\n
通过telnet发送? 我正在寻找telnetlib.py中的线索,但可能解决方案更简单。如果可能,我将非常感谢您的意见。谢谢!
如果我明白了,你想发送/传递'get_fan?\ r'到命令'send rs232:1' ...如果是这样,请尝试将它包裹在单引号之间,你也可以考虑在\\ r'中跳过'\ r'。如果您想“只需点击输入 ”,请尝试使用“\ n”。除了几乎所有的路由器模型外,我遇到的几乎每个telnet服务器都使用“默认”telnet换行符“\ n”。 –
嗨Lohmar。感谢您的评论。我明白你的观点,我完全明白你的观点。问题是,一旦telnetlib.py在要发送的数据中看到一个“\ n”,它会解释此发送telnet数据(或flush。())套接字(我认为)。我发誓,我一直强调这几天,我刚刚找到解决方案。我会发布一个答案。 – bluesclues