read_trace.py

changeset 6
6b6dc68588b2
parent 0
9af1509775b6
child 10
2999318b49a2
equal deleted inserted replaced
5:4d86b11abb82 6:6b6dc68588b2
14 m = [ord(x) for x in s[:-1]] 14 m = [ord(x) for x in s[:-1]]
15 M = 0. 15 M = 0.
16 for i in range(len(s)-1): 16 for i in range(len(s)-1):
17 #M += m[i]<<(i*8) 17 #M += m[i]<<(i*8)
18 M += float(m[i])/2**((i+1)*8) 18 M += float(m[i])/2**((i+1)*8)
19 19 # XXX how do we deal negative numbers?
20 #if m[0] & 0x80: 20 #if m[0] & 0x80:
21 # M = M - 2^(len(s)) 21 # M = M - 2^(len(s))
22
23 return M * 2**(e+1) 22 return M * 2**(e+1)
24 mm = str(M)
25
26 mm = '0.'+mm + 'e' + str(e)
27 if len(s) == 8:
28 print "mm = ", mm
29 return eval(mm)
30 23
31 def decode_string(s): 24 def decode_string(s):
32 nb = ord(s[0]) 25 nb = ord(s[0])
33 s = s[1:nb+2] 26 s = s[1:nb+2]
34 r = "" 27 r = ""
28 # XXX why do we need to do this? It's not described in the manual...
35 for c in s: 29 for c in s:
36 if ord(c)>128: 30 r += chr(ord(c) & 0x7F)
37 c = chr(ord(c)-128)
38 r += c
39 return r 31 return r
40 32
41 EDSP = {0: "No data", 33 EDSP = {0: "No data",
42 1: "Frequency response", 34 1: "Frequency response",
43 2: "Power spectrum 1", 35 2: "Power spectrum 1",
143 22: "Minutes", 135 22: "Minutes",
144 23: "V²s/Hz", 136 23: "V²s/Hz",
145 24: "Octave", 137 24: "Octave",
146 25: "Seconds/Decade", 138 25: "Seconds/Decade",
147 26: "Seconds/Octave", 139 26: "Seconds/Octave",
148 #... 140 27: "Hz/Point",
141 28: "Points/Sweep",
142 29: "Points/Decade",
143 30: "Points/Octave",
144 31: "V/Vrms",
145 32: "V²",
146 33: "EU referenced to chan 1",
147 34: "EU referenced to chan 2",
148 35: "EU value",
149 } 149 }
150 150
151 EMEAS = {0: "Linear resolution", 151 EMEAS = {0: "Linear resolution",
152 1: "Log resolution", 152 1: "Log resolution",
153 2: "Swept sine", 153 2: "Swept sine",
169 169
170 170
171 EWIN = {0: "N/A", 171 EWIN = {0: "N/A",
172 1: "Hann", 172 1: "Hann",
173 2: "Flat top", 173 2: "Flat top",
174 #... 174 3: "Uniforme",
175 4: "Exponential",
176 5: "Force",
177 6: "Force chan 1/expon chan 2",
178 7: "Expon chan 1/force chan 2",
179 8: "User",
175 } 180 }
176 181
177 HEADER = [ ("Display function", EDSP, 'h', 2), 182 HEADER = [ ("Display function", EDSP, 'h', 2),
178 ('Number of elements', int, 'h', 2), 183 ('Number of elements', int, 'h', 2),
179 ('Displayed elements', int, 'h', 2), 184 ('Displayed elements', int, 'h', 2),

mercurial