On Dec 10, 2012, at 8:31 AM, Jean Dubois <jeandubois...@gmail.com> wrote:
[byte] > As you can see this approach suffers from the same "buffer problem" as > the approach with readline did. One now good argue as a workaround: > get rid of the first data pair and add an extra measure command for > the missing data pair, however this still does not explain why this > problem is there in Python and not in Octave and I also fear I'll get > more trouble when sending combined commands e.g. such as that to > create a staircase current > So my question is, how to modify the Python-code such that the first > data pair is indeed the first data pair > > thanks, > jean > > Here follows the new code: > #!/usr/bin/python > import time > import os > import sys > measurementcurr='' > measurementvolt='' > timesleepdefault=5 > print "Enter a numofchar (11 =<numchar =<4095):", > numofchar = int(raw_input()) > filename ='mydata.txt' > usbkeith = open('/dev/usbtmc1','r+') > usbkeith.flush() > usbkeith.write("*IDN?\n") It seems like a real leap of faith to be opening /dev/usbtmc1 as though it were a file-oriented device. I've never heard of ANY instrument interface implemented this way. Where did you see example code that did that. Have you tried to access /dev/usbtmc1 as though it were a serial device? > #strip blank line: > identification=usbkeith.readline().strip() > print 'Found device: ',identification > usbkeith.write("SYST:REM" + "\n") > usbkeith.write(":SENS:VOLT:PROT 1.5\n") > keithdata = open(filename,'w') > usbkeith.write(":OUTP:STAT ON\n") > for number, current_in in enumerate(('0.025', '0.050', '0.075', > '0.100'), 1): > usbkeith.write(":SOUR:CURR %s\n" % current_in) > time.sleep(timesleepdefault) > usbkeith.write(":MEAS:CURR?\n") > measurementcurr=usbkeith.read(numofchar) > print 'Measured current %d: ' % number, measurementcurr > usbkeith.write(":MEAS:VOLT?\n") > measurementvolt=usbkeith.read(numofchar) > print 'Measured voltage %d: ' % number, measurementvolt > keithdata.write(measurementcurr.strip()+' '+measurementvolt) > usbkeith.write(":OUTP:STAT OFF\n") > print "Goodbye, data logged in file:" > print filename > usbkeith.close() > keithdata.close() > -- > http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list