--- a/dump_as_ascii.py Mon Dec 10 20:05:39 2007 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -import sys -import time -import serial - -MODE = {'binary': 'DDBN', - 'ascii': 'DDAS', - 'ansi': 'DDAN', - } -class ConnectionError(Exception): - pass - -def read_trace(cnx, mode="binary"): - mode = mode.lower() - assert mode in MODE - mode = MODE[mode] - res = "" - cnx.write('%s\r'%mode) - i = 0 - while i<5: - l = cnx.readline() - if l.strip() == "": - i += 1 - time.sleep(0.1) - continue - #print "got a new line (%s chars) [i=%s]"%(len(l), i) - res += l - i = 0 - return res - -def open_connection(device="/dev/ttyUSB0", baudrate=115200, timeout=0.1, - address=0, mode=1): - p = serial.Serial(port=device, baudrate=baudrate, timeout=timeout) - - p.write('++addr %d\r'%address) # set address to 0 - p.write('++mode %d\r'%mode) # read listen only mode - p.write('++mode\r') - i = 0 - for i in range(10): - rmode = p.readline().strip() - if rmode != "": - break - time.sleep(timeout) - - if rmode == '' or int(rmode) != mode: - raise ConnectionError("Can't set GPIB mode to %s"%mode) - return p - - -import optparse -opt = optparse.OptionParser() -opt.add_option('-f', '--filename', default=None, - dest='filename', - help='Output filename. If not set, write to stdout') -opt.add_option('-d', '--device', default='/dev/ttyUSB0', - dest='device', - help='Device of the RS232 connection (default: /dev/ttyUSB0)', - ) -opt.add_option('-m', '--mode', default='binary', - dest='mode', - help='Dumping mode (may be "binary" [default], "ascii" or "ansi")', - ) -opt.add_option('-a', '--address', default=0, - dest='address', - help='GPIB address of the device', - ) -options, argv = opt.parse_args(sys.argv) - -cnx = open_connection(device=options.device, - address=int(options.address), mode=1) -res = read_trace(cnx, mode=options.mode) - -if options.filename: - open(options.filename, 'w').write(res) -else: - print res -