фонPython: Получение данных через сокеты - [Errno 11] Ресурс временно недоступен
мне нужно общаться с Tektronix MSO 4104 из питона. Связь осуществляется по локальной сети с использованием протокола ethernet vxi11 и библиотеки сокетов python.
Ситуация
Сейчас это работает довольно хорошо; Я могу подключиться к области, и я могу отправить ей любую команду, которую я хочу (например: <socket object>.send('*IDN?')
). Однако всякий раз, когда команда должна отправлять ответ (например, * IDN?), Я пытаюсь использовать <socket object>.recv(1024)
, но я ВСЕГДА получаю сообщение об ошибке «Ресурс [Errno 11] временно недоступен».
Я знаю, что связь хороша, так как я могу получить информацию о том же «IDN»? через встроенный HTTP-интерфейс.
код
Ниже приведен фрагмент из scope.py который создает сокет дэ интерфейс с размахом.
import socket
import sys
import time
class Tek_scope(object):
'''
Open up socket connection for a Tektronix scope given an IP address
'''
def __init__(self, IPaddress, PortNumber = 4000):
self.s = socket.socket(socket.AF_INET , socket.SOCK_STREAM)
self.s.connect((IPaddress, PortNumber))
self.s.setblocking(False)
print "Scope opened Successfully"
Теперь, чтобы получить ошибку, я бегу следующее:
import scope # Imports the above (and other utility functions)
scope1 = scope.Tek_scope("10.1.10.15") #Connects to the scope
scope1.s.send('*IDN?') #Sends the *IDN? command to the scope.
# I have verified these signals are always recieved as I can
# see them reading out on the display
scope1.s.recv(1024)
# This should receive the response... but it always gives the error
системы
- Fedora 16
- Python 2.7
- Tektronix MSO4104
Вопрос
Так почему же я не recieveing никаких данных в ответ на мое приглашение? Я забыл какую-то готовку? Собираются ли данные куда-то, я просто не проверяю? Я неправильно использовал модули? Любая помощь будет принята с благодарностью!
Эй, спасибо, что сделал работа !! К сожалению для меня я закончил просто сломать все и написать его в C. Но спасибо за исправление! – Bacaa14