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