Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过python套接字模块发送SCPI命令_Python_Sockets - Fatal编程技术网

通过python套接字模块发送SCPI命令

通过python套接字模块发送SCPI命令,python,sockets,Python,Sockets,我正在使用python的socket模块向我的Keysight设备发送一个简单的SCPI命令,但得到一个空白响应。有人知道我做错了什么吗 这是我的简单脚本 import socket s = socket.socket() print("connecting") s.connect(("192.168.25.7",5024)) print("sending") s.settimeout(10) s.send("*IDN?\n&

我正在使用python的socket模块向我的Keysight设备发送一个简单的SCPI命令,但得到一个空白响应。有人知道我做错了什么吗

这是我的简单脚本

import socket
s = socket.socket()
print("connecting")
s.connect(("192.168.25.7",5024))
print("sending")
s.settimeout(10)
s.send("*IDN?\n")
print(s.recv(2048))
我希望这个脚本能够返回

➜  ~ python hack_na.py
connecting
sending
Agilent Technologies,E5063A,MY54100104,A.03.00
➜  ~ 
但是如果我运行脚本,我会得到这个输出

➜  ~ python hack_na.py
connecting
sending

➜  ~ 
我可以确认我通过telnet获得了设计输出

➜  ~ telnet 192.168.25.7 5024
Trying 192.168.25.7...
Connected to 192.168.25.7.
Escape character is '^]'.

SCPI> *IDN?
Agilent Technologies,E5063A,MY54100104,A.03.00
SCPI>
telnet> Connection closed.

提前谢谢大家。

这两个版本不一样

在第一种情况下,您没有看到任何输出,因为您实际上没有从套接字向服务器发送完整的消息。
telnet
协议,而不仅仅是
\n
。因此,您需要执行
s.send(“*IDN?\r\n”)

但实际上,你应该使用更好的工具来完成这项工作。Python的
socket
模块只是直接绑定到BSD套接字接口,通常用于构建低级网络应用程序。因此,您需要自己担心一些恼人的细节,比如行尾。更好的选择是使用更高级的库,更适合您的目的。是作为telnet客户端运行的内置模块,或者您可以显式地为SCPI使用