load_gpib_plot.py

Mon, 10 Dec 2007 20:05:39 +0100

author
David Douard <david.douard@logilab.fr>
date
Mon, 10 Dec 2007 20:05:39 +0100
changeset 0
9af1509775b6
permissions
-rw-r--r--

initial import

0
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
1 import sys
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
2 import time
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
3 import serial
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
4 p = serial.Serial(port="/dev/ttyUSB0", baudrate=115200, timeout=0.1)
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
5
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
6 p.write('++addr 5\r') # set address to 0
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
7 p.write('++mode 0\r') # read listen only mode
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
8 p.write('++mode\r')
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
9 for i in range(10):
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
10 mode = p.readline().strip()
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
11 if mode != "":
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
12 break
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
13 time.sleep(0.1)
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
14 print "mode = ", mode
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
15 if mode == '':
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
16 print "strange"
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
17 sys.exit()
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
18
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
19 res = ""
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
20 i=0
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
21
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
22 replies={
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
23 "OE": "0",
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
24 "OH": "0,0,10000,7500",
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
25 "OI": "7470A",
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
26 "OP": "0,0,10000,7500",
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
27 "OO": "0,1,0,0,0,0,0,0",
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
28 "OF": "40,40",
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
29 "OS": "24",
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
30 }
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
31
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
32 while i<15:
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
33 l = p.readline().strip()
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
34 if l == "":
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
35 i += 1
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
36 for k, v in replies.items():
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
37 if res.endswith(k) or res.endswith(k+';'):
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
38 print "got commend", k
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
39 p.write("%s"%v)
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
40 if k == "OS":
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
41 replies[k] = "16"
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
42 break
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
43 p.write('\r')
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
44 time.sleep(0.1)
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
45 continue
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
46 print "got a new line (%s chars) [i=%s]"%(len(l), i)
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
47 res += l + "\n"
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
48 i = 0
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
49 print "over"
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
50 print "res = ", res
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
51
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
52 open('out.gpib', 'w').write(res)
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
53
9af1509775b6 initial import
David Douard <david.douard@logilab.fr>
parents:
diff changeset
54

mercurial