Am 12.12.13 00:08, schrieb Jean Dubois:
I have an ethernet-rs232 adapter which allows me to connect to a measurement
instrument by means of netcat on a linux system.
e.g. entering nc 10.128.59.63 7000
allows me to enter e.g.
*IDN?
after which I get an identification string of the measurement instrument back.
I thought I could accomplish the same using the python module "socket"
and tried out the sample program below which doesn't work however:
import socket
host = '10.128.59.63'
port = 7000
size = 10
The socket library advises to use a small power of two like 1024; 10
seems very small.
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
s.send('*IDN?')
\n or \r\n is missing, you found this by yourself - look into the device
manual, which one is correct
data = s.recv(size)
It may be, that you simply need to wait for some time after the write,
before you read. And then before the device is ready, you close the
connection. If this is the case, try waiting a short time in between and
use socket.sendall() instead of socket.send()
s.close()
Maybe you need to read twice?
Can anyone here tell me how to do it properly?
The most proper way is to use asynchronous IO; never done this in python
before, check this:
http://docs.python.org/2/library/asyncore.html#asyncore-example-basic-http-client
Christian
--
https://mail.python.org/mailman/listinfo/python-list