HP3562A/__init__.py

Tue, 18 Dec 2007 00:38:33 +0100

author
David Douard <david.douard@logilab.fr>
date
Tue, 18 Dec 2007 00:38:33 +0100
changeset 15
b930440af354
parent 14
07e2cbf140df
child 16
de9122b5680a
permissions
-rw-r--r--

make header_formatter a little bit smarter (interpret bool values when it can)

13
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
1 """
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
2 HP3562A
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
3 =======
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
4
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
5 Module for communicating with the HP 3562A Digital Signal Analyzer.
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
6
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
7 Subpackages
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
8 -----------
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
9
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
10
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
11 Constants
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
12 ---------
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
13
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
14 """
14
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
15 import struct
15
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
16 import re
14
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
17 import gpib
13
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
18
14
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
19 ########################################
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
20 # HP3562A internal binary types decoders
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
21
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
22 def decode_float(s):
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
23 assert len(s) in [4,8]
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
24 # exponential term
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
25 e = ord(s[-1])
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
26 if e & 0x80:
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
27 e = e - 256
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
28
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
29 # mantissa
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
30 m = [ord(x) for x in s[:-1]]
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
31 M = 0.
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
32 for i in range(len(s)-1):
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
33 #M += m[i]<<(i*8)
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
34 M += float(m[i])/2**((i+1)*8)
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
35 # XXX how do we deal negative numbers?
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
36 #if m[0] & 0x80:
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
37 # M = M - 2^(len(s))
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
38 return M * 2**(e+1)
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
39
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
40 def decode_string(s):
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
41 nb = ord(s[0])
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
42 s = s[1:nb+2]
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
43 r = ""
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
44 # XXX why do we need to do this? It's not described in the manual...
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
45 for c in s:
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
46 r += chr(ord(c) & 0x7F)
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
47 return r
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
48
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
49
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
50 ###
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
51 # Some useful functions
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
52 def format_header(header, head_struct, columns=80):
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
53 """
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
54 Pretty print a data block (trace, state or coord)
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
55 """
15
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
56 bool_re = re.compile(r'((?P<before>.*) )?(?P<flag>\w+/\w+)( (?P<after>.*))?')
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
57
14
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
58 todisp = []
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
59 for row in head_struct:
15
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
60 key = row[0]
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
61 typ = row[1]
14
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
62 val = header.get(key, "N/A")
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
63 if isinstance(val, basestring):
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
64 val = repr(val)
15
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
65 elif typ is bool and isinstance(val, typ):
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
66 m = bool_re.match(key)
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
67 if m:
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
68 d = m.groupdict()
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
69 key = ""
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
70 if d['before']:
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
71 key += d['before']
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
72 if d['after']:
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
73 key += d['after']
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
74 key = key.capitalize()
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
75 val = d['flag'].split('/')[not val]
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
76 else:
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
77 val = str(val)
b930440af354 make header_formatter a little bit smarter (interpret bool values when it can)
David Douard <david.douard@logilab.fr>
parents: 14
diff changeset
78 else:
14
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
79 val = str(val)
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
80 todisp.append((key+":", val))
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
81 maxk = max([len(k) for k, v in todisp])
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
82 maxv = max([len(v) for k, v in todisp])
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
83 fmt = "%%-%ds %%-%ds"%(maxk, maxv)
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
84 w = maxk+maxv+4
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
85 ncols = columns/w
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
86 nrows = len(todisp)/ncols
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
87 res = ""
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
88 for i in range(nrows):
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
89 res += "| ".join([fmt%todisp[j*nrows+i] for j in range(ncols)]) + "\n"
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
90 return res
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
91
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
92 def decode_header(data, header_struct):
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
93 d = data
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
94 typ = d[:2]
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
95 assert typ == "#A"
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
96
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
97 totlen = struct.unpack('>h', d[2:4])[0]
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
98 idx = 4
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
99 tt=0
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
100 header = {}
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
101 for i, (nam, dtype, fmt, nbytes) in enumerate(header_struct):
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
102 if dtype == str:
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
103 val = decode_string(d[idx:])
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
104 else:
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
105 if fmt:
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
106 v = struct.unpack('>'+fmt, d[idx: idx+nbytes])[0]
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
107 if isinstance(dtype, dict):
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
108 val = dtype.get(int(v), "N/A")
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
109 else:
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
110 val = dtype(v)
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
111 else:
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
112 val = dtype(d[idx: idx+nbytes])
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
113 header[nam] = val
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
114 idx += nbytes
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
115 return header, idx
13
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
116
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
117 #####################
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
118 # HP3562A constants
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
119
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
120 # GPIB buffer size is 3x80 characters lines
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
121 class STATUS_BYTE(gpib.Constants):
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
122 # HP3562A Status Byte, as returned by a serial poll
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
123 _constants = [(0x40, "RQS", "Request Service"), # when sent in response to a serial poll
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
124 (0x20, "ERR", "GPIB error"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
125 (0x10, "RDY", "ready to accept GPIB commands"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
126 ]
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
127
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
128 conditions = [(0, "NSR", "No service requested"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
129 (1, "USRQ1", "User SRQ #1"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
130 (2, "USRQ1", "User SRQ #2"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
131 (3, "USRQ1", "User SRQ #3"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
132 (4, "USRQ1", "User SRQ #4"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
133 (5, "USRQ1", "User SRQ #5"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
134 (6, "USRQ1", "User SRQ #6"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
135 (7, "USRQ1", "User SRQ #7"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
136 (8, "USRQ1", "User SRQ #8"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
137 (9, "EOD", "End of disk action"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
138 (10, "EOP", "End of plot action"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
139 (11, "STCH", "Instrument status changed"), # any change in
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
140 # the status register sets this condition
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
141 (12, "PWR", "Power on"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
142 (13, "KEY", "Key pressed"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
143 (14, "DCP", "Device clear plotter (listen)"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
144 # ...
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
145 ]
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
146 def __init__(self):
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
147 super(STATUS_BYTE, self).__init__()
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
148 self._conditions = dict([(x[0], x[1]) for x in self.conditions])
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
149 self._rev_conditions = dict([(x[1], x[0]) for x in self.conditions])
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
150 self._long_conditions = dict([(x[0], x[2]) for x in self.conditions])
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
151
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
152 def byte_condition(self, byte):
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
153 byte = byte & 0x8F
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
154 return self._conditions.get(byte, "N/A")
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
155
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
156 class IS_REGISTER(gpib.Constants):
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
157 _constants = [(0x01, "MEASP", "measeurement pause"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
158 (0x02, "ASQP", "Auto sequence pause"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
159 (0X04, "EOM", "End of measurement, capture or throughput"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
160 (0x08, "EOAS", "End of auto sequence"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
161 (0x10, "SWPR", "Sweep point ready"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
162 (0x20, "CH1OV", "Channel 1 overrange"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
163 (0x40, "CH2OV", "Channel 2 overrange"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
164 (0X80, "CH1HR", "Channel 1 half range"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
165 (0x100, "CH2HR", "Channel 2 half range"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
166 (0x200, "SFALT", "Source falt"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
167 (0x400, "RUNL", "Reference unlock"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
168 (0x800, "RMKT", "Remote marker knob turn"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
169 (0x1000, "REKT", "Remote entry knob turn"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
170 (0x2000, "ASRC", "Asctive Status Register changed"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
171 (0x4000, "PWRF", "Power-on test failed"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
172 ]
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
173
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
174 class StatusQuery(gpib.Constants):
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
175 _command = "STA?"
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
176 _constants = [(0x01, "N/A", "Not used"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
177 (0x02, "N/A", "Not used"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
178 (0x04, "KEY", "Key pressed"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
179 (0x08, "N/A", "Not used"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
180 (0x10, "RDY", "Ready"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
181 (0x20, "ERR", "Error"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
182 (0x40, "RQS", "Request"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
183 (0x80, "MOS", "Message on screen"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
184 (0x100, "MEASP", "measeurement pause"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
185 (0x200, "ASQP", "Auto sequence pause"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
186 (0X400, "EOM", "End of measurement, capture or throughput"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
187 (0x800, "EOAS", "End of auto sequence"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
188 (0x1000, "SWPR", "Sweep point ready"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
189 (0x2000, "CH1OV", "Channel 1 overrange"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
190 (0x4000, "CH2OV", "Channel 2 overrange"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
191 (0x8000, "MAOV", "Math overflow"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
192 ]
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
193 class ActivityStatysRegister(gpib.Constants):
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
194 _command = "AS?"
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
195 _constants = [(0x01, "CKFL", "Check fault log"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
196 (0x02, "FITR", "Filling time record"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
197 (0x04, "FLTR", "Filters settings"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
198 (0x08, "CFTP", "Curve fir in progress"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
199 (0x10, "MSSM", "Missed sample"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
200 (0x20, "TMPR", "Timed preview"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
201 (0x40, "ACDA", "Accept date"),
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
202 #...
78e3e839658b some forgotten added files
David Douard <david.douard@logilab.fr>
parents:
diff changeset
203 ]
14
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
204
07e2cbf140df several improvements; add an internal state reader
David Douard <david.douard@logilab.fr>
parents: 13
diff changeset
205

mercurial