我正試圖通過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