【问题标题】:Controlling R&S signal generator with python用 python 控制 R&S 信号发生器
【发布时间】:2019-07-09 10:51:26
【问题描述】:
import socket
import time

TCP_IP = 'rssmb100a110186.local'
TCP_PORT = 5025


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((TCP_IP,TCP_PORT))

for i in range(0,2):
    s.send(b"outp on")
    print('set output on')
    time.sleep(1)
    s.send(b'outp on')
    print('set output off')
    time.sleep(1)
print('shutdown')

s.send(b'SYST:REB') # reboot generator

我需要使用 python 控制 Rohde & Schwarz SMB 100A 射频信号发生器。当使用 putty 使用“RAW”或 TELNET 选项发送命令时,一切正常...

当使用我的(测试)python 脚本时,生成器切换到“远程操作模式”,在这个设备的 web gui 中,我可以看到收到了 SCPI 命令,但没有任何反应。当我用 telnetlib 替换套接字时,同样的问题。执行我的 python 脚本时我也没有错误。

我的python脚本和putty有什么区别?

【问题讨论】:

  • “我的 python 脚本和 putty 有什么区别?” - 也将等式的 telnet 部分添加到问题中,以便我们能够说。
  • 您可以使用嗅探器来比较原始网络数据包——这肯定会告诉您差异。
  • 我猜你需要添加换行符——否则,设备无法确定命令是否完整。

标签: python sockets


【解决方案1】:

正如 Ivan Pozdeev 在原始问题的 cmets 中所写,换行符 \n 很重要!

不打开输出:

s.send(b"outp on")

解决方案:添加\n:

s.send(b"outp on\n")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多