Lines Matching refs:self

40   def __init__(self, stream):
42 self.stream = stream
43 self.buffer = ''
44 self.pos = 0
46 def readline(self):
48 index = self.buffer.find('\n', self.pos)
50 result = self.buffer[self.pos:index]
51 self.pos = index + 1
54 self.buffer = self.buffer[self.pos:]
55 self.pos = 0
57 chunk = os.read(self.stream.fileno(), 4096)
63 if len(self.buffer) == 0:
66 result = self.buffer
67 self.buffer = ''
68 self.pos = 0
70 self.buffer += chunk
74 def __init__(self, adbout):
75 self.adbout = adbout
77 self.fig = plot.figure(1)
78 self.fig.suptitle('Window Orientation Listener', fontsize=12)
79 self.fig.set_dpi(96)
80 self.fig.set_size_inches(16, 12, forward=True)
82 self.raw_acceleration_x = self._make_timeseries()
83 self.raw_acceleration_y = self._make_timeseries()
84 self.raw_acceleration_z = self._make_timeseries()
85 self.raw_acceleration_magnitude = self._make_timeseries()
86 self.raw_acceleration_axes = self._add_timeseries_axes(
89 self.raw_acceleration_line_x = self._add_timeseries_line(
90 self.raw_acceleration_axes, 'x', 'red')
91 self.raw_acceleration_line_y = self._add_timeseries_line(
92 self.raw_acceleration_axes, 'y', 'green')
93 self.raw_acceleration_line_z = self._add_timeseries_line(
94 self.raw_acceleration_axes, 'z', 'blue')
95 self.raw_acceleration_line_magnitude = self._add_timeseries_line(
96 self.raw_acceleration_axes, 'magnitude', 'orange', linewidth=2)
97 self._add_timeseries_legend(self.raw_acceleration_axes)
99 shared_axis = self.raw_acceleration_axes
101 self.filtered_acceleration_x = self._make_timeseries()
102 self.filtered_acceleration_y = self._make_timeseries()
103 self.filtered_acceleration_z = self._make_timeseries()
104 self.filtered_acceleration_magnitude = self._make_timeseries()
105 self.filtered_acceleration_axes = self._add_timeseries_axes(
109 self.filtered_acceleration_line_x = self._add_timeseries_line(
110 self.filtered_acceleration_axes, 'x', 'red')
111 self.filtered_acceleration_line_y = self._add_timeseries_line(
112 self.filtered_acceleration_axes, 'y', 'green')
113 self.filtered_acceleration_line_z = self._add_timeseries_line(
114 self.filtered_acceleration_axes, 'z', 'blue')
115 self.filtered_acceleration_line_magnitude = self._add_timeseries_line(
116 self.filtered_acceleration_axes, 'magnitude', 'orange', linewidth=2)
117 self._add_timeseries_legend(self.filtered_acceleration_axes)
119 self.tilt_angle = self._make_timeseries()
120 self.tilt_angle_axes = self._add_timeseries_axes(
124 self.tilt_angle_line = self._add_timeseries_line(
125 self.tilt_angle_axes, 'tilt', 'black')
126 self._add_timeseries_legend(self.tilt_angle_axes)
128 self.orientation_angle = self._make_timeseries()
129 self.orientation_angle_axes = self._add_timeseries_axes(
133 self.orientation_angle_line = self._add_timeseries_line(
134 self.orientation_angle_axes, 'orientation', 'black')
135 self._add_timeseries_legend(self.orientation_angle_axes)
137 self.current_rotation = self._make_timeseries()
138 self.proposed_rotation = self._make_timeseries()
139 self.predicted_rotation = self._make_timeseries()
140 self.orientation_axes = self._add_timeseries_axes(
144 self.current_rotation_line = self._add_timeseries_line(
145 self.orientation_axes, 'current', 'black', linewidth=2)
146 self.predicted_rotation_line = self._add_timeseries_line(
147 self.orientation_axes, 'predicted', 'purple', linewidth=3)
148 self.proposed_rotation_line = self._add_timeseries_line(
149 self.orientation_axes, 'proposed', 'green', linewidth=3)
150 self._add_timeseries_legend(self.orientation_axes)
152 self.time_until_settled = self._make_timeseries()
153 self.time_until_flat_delay_expired = self._make_timeseries()
154 self.time_until_swing_delay_expired = self._make_timeseries()
155 self.time_until_acceleration_delay_expired = self._make_timeseries()
156 self.stability_axes = self._add_timeseries_axes(
160 self.time_until_settled_line = self._add_timeseries_line(
161 self.stability_axes, 'time until settled', 'black', linewidth=2)
162 self.time_until_flat_delay_expired_line = self._add_timeseries_line(
163 self.stability_axes, 'time until flat delay expired', 'green')
164 self.time_until_swing_delay_expired_line = self._add_timeseries_line(
165 self.stability_axes, 'time until swing delay expired', 'blue')
166 self.time_until_acceleration_delay_expired_line = self._add_timeseries_line(
167 self.stability_axes, 'time until acceleration delay expired', 'red')
168 self._add_timeseries_legend(self.stability_axes)
170 self.sample_latency = self._make_timeseries()
171 self.sample_latency_axes = self._add_timeseries_axes(
175 self.sample_latency_line = self._add_timeseries_line(
176 self.sample_latency_axes, 'latency', 'black')
177 self._add_timeseries_legend(self.sample_latency_axes)
179 self.fig.canvas.mpl_connect('button_press_event', self._on_click)
180 self.paused = False
182 self.timer = self.fig.canvas.new_timer(interval=100)
183 self.timer.add_callback(lambda: self.update())
184 self.timer.start()
186 self.timebase = None
187 self._reset_parse_state()
190 def _on_click(self, ev):
191 if not self.paused:
192 self.paused = True
193 self.timer.stop()
195 self.paused = False
196 self.timer.start()
199 def _make_timeseries(self):
203 def _add_timeseries_axes(self, index, title, ylabel, ylim, yticks, sharex=None):
207 axes = self.fig.add_axes([0.1, top, 0.8, height],
229 def _add_timeseries_line(self, axes, label, color, linewidth=1):
233 def _add_timeseries_legend(self, axes):
242 def _reset_parse_state(self):
243 self.parse_raw_acceleration_x = None
244 self.parse_raw_acceleration_y = None
245 self.parse_raw_acceleration_z = None
246 self.parse_raw_acceleration_magnitude = None
247 self.parse_filtered_acceleration_x = None
248 self.parse_filtered_acceleration_y = None
249 self.parse_filtered_acceleration_z = None
250 self.parse_filtered_acceleration_magnitude = None
251 self.parse_tilt_angle = None
252 self.parse_orientation_angle = None
253 self.parse_current_rotation = None
254 self.parse_proposed_rotation = None
255 self.parse_predicted_rotation = None
256 self.parse_time_until_settled = None
257 self.parse_time_until_flat_delay_expired = None
258 self.parse_time_until_swing_delay_expired = None
259 self.parse_time_until_acceleration_delay_expired = None
260 self.parse_sample_latency = None
263 def update(self):
267 line = self.adbout.readline()
276 timestamp = self._parse_timestamp(line)
279 if self.timebase is None:
280 self.timebase = timestamp
281 delta = timestamp - self.timebase
285 self.parse_raw_acceleration_x = self._get_following_number(line, 'x=')
286 self.parse_raw_acceleration_y = self._get_following_number(line, 'y=')
287 self.parse_raw_acceleration_z = self._get_following_number(line, 'z=')
288 self.parse_raw_acceleration_magnitude = self._get_following_number(line, 'magnitude=')
291 self.parse_filtered_acceleration_x = self._get_following_number(line, 'x=')
292 self.parse_filtered_acceleration_y = self._get_following_number(line, 'y=')
293 self.parse_filtered_acceleration_z = self._get_following_number(line, 'z=')
294 self.parse_filtered_acceleration_magnitude = self._get_following_number(line, 'magnitude=')
297 self.parse_tilt_angle = self._get_following_number(line, 'tiltAngle=')
300 self.parse_orientation_angle = self._get_following_number(line, 'orientationAngle=')
303 self.parse_current_rotation = self._get_following_number(line, 'currentRotation=')
304 self.parse_proposed_rotation = self._get_following_number(line, 'proposedRotation=')
305 self.parse_predicted_rotation = self._get_following_number(line, 'predictedRotation=')
306 self.parse_sample_latency = self._get_following_number(line, 'timeDeltaMS=')
307 self.parse_time_until_settled = self._get_following_number(line, 'timeUntilSettledMS=')
308 self.parse_time_until_flat_delay_expired = self._get_following_number(line, 'timeUntilFlatDelayExpiredMS=')
309 self.parse_time_until_swing_delay_expired = self._get_following_number(line, 'timeUntilSwingDelayExpiredMS=')
310 self.parse_time_until_acceleration_delay_expired = self._get_following_number(line, 'timeUntilAccelerationDelayExpiredMS=')
312 self._append(self.raw_acceleration_x, timeindex, self.parse_raw_acceleration_x)
313 self._append(self.raw_acceleration_y, timeindex, self.parse_raw_acceleration_y)
314 self._append(self.raw_acceleration_z, timeindex, self.parse_raw_acceleration_z)
315 self._append(self.raw_acceleration_magnitude, timeindex, self.parse_raw_acceleration_magnitude)
316 self._append(self.filtered_acceleration_x, timeindex, self.parse_filtered_acceleration_x)
317 self._append(self.filtered_acceleration_y, timeindex, self.parse_filtered_acceleration_y)
318 self._append(self.filtered_acceleration_z, timeindex, self.parse_filtered_acceleration_z)
319 self._append(self.filtered_acceleration_magnitude, timeindex, self.parse_filtered_acceleration_magnitude)
320 self._append(self.tilt_angle, timeindex, self.parse_tilt_angle)
321 self._append(self.orientation_angle, timeindex, self.parse_orientation_angle)
322 self._append(self.current_rotation, timeindex, self.parse_current_rotation)
323 if self.parse_proposed_rotation >= 0:
324 self._append(self.proposed_rotation, timeindex, self.parse_proposed_rotation)
326 self._append(self.proposed_rotation, timeindex, None)
327 if self.parse_predicted_rotation >= 0:
328 self._append(self.predicted_rotation, timeindex, self.parse_predicted_rotation)
330 self._append(self.predicted_rotation, timeindex, None)
331 self._append(self.time_until_settled, timeindex, self.parse_time_until_settled)
332 self._append(self.time_until_flat_delay_expired, timeindex, self.parse_time_until_flat_delay_expired)
333 self._append(self.time_until_swing_delay_expired, timeindex, self.parse_time_until_swing_delay_expired)
334 self._append(self.time_until_acceleration_delay_expired, timeindex, self.parse_time_until_acceleration_delay_expired)
335 self._append(self.sample_latency, timeindex, self.parse_sample_latency)
336 self._reset_parse_state()
341 self.timebase += timedelta(seconds=bottom)
342 self._scroll(self.raw_acceleration_x, bottom)
343 self._scroll(self.raw_acceleration_y, bottom)
344 self._scroll(self.raw_acceleration_z, bottom)
345 self._scroll(self.raw_acceleration_magnitude, bottom)
346 self._scroll(self.filtered_acceleration_x, bottom)
347 self._scroll(self.filtered_acceleration_y, bottom)
348 self._scroll(self.filtered_acceleration_z, bottom)
349 self._scroll(self.filtered_acceleration_magnitude, bottom)
350 self._scroll(self.tilt_angle, bottom)
351 self._scroll(self.orientation_angle, bottom)
352 self._scroll(self.current_rotation, bottom)
353 self._scroll(self.proposed_rotation, bottom)
354 self._scroll(self.predicted_rotation, bottom)
355 self._scroll(self.time_until_settled, bottom)
356 self._scroll(self.time_until_flat_delay_expired, bottom)
357 self._scroll(self.time_until_swing_delay_expired, bottom)
358 self._scroll(self.time_until_acceleration_delay_expired, bottom)
359 self._scroll(self.sample_latency, bottom)
362 self.raw_acceleration_line_x.set_data(self.raw_acceleration_x)
363 self.raw_acceleration_line_y.set_data(self.raw_acceleration_y)
364 self.raw_acceleration_line_z.set_data(self.raw_acceleration_z)
365 self.raw_acceleration_line_magnitude.set_data(self.raw_acceleration_magnitude)
366 self.filtered_acceleration_line_x.set_data(self.filtered_acceleration_x)
367 self.filtered_acceleration_line_y.set_data(self.filtered_acceleration_y)
368 self.filtered_acceleration_line_z.set_data(self.filtered_acceleration_z)
369 self.filtered_acceleration_line_magnitude.set_data(self.filtered_acceleration_magnitude)
370 self.tilt_angle_line.set_data(self.tilt_angle)
371 self.orientation_angle_line.set_data(self.orientation_angle)
372 self.current_rotation_line.set_data(self.current_rotation)
373 self.proposed_rotation_line.set_data(self.proposed_rotation)
374 self.predicted_rotation_line.set_data(self.predicted_rotation)
375 self.time_until_settled_line.set_data(self.time_until_settled)
376 self.time_until_flat_delay_expired_line.set_data(self.time_until_flat_delay_expired)
377 self.time_until_swing_delay_expired_line.set_data(self.time_until_swing_delay_expired)
378 self.time_until_acceleration_delay_expired_line.set_data(self.time_until_acceleration_delay_expired)
379 self.sample_latency_line.set_data(self.sample_latency)
381 self.fig.canvas.draw_idle()
384 def _scroll(self, timeseries, bottom):
392 def _get_following_word(self, line, prefix):
404 def _get_following_number(self, line, prefix):
405 word = self._get_following_word(line, prefix)
411 def _get_following_array_of_numbers(self, line, prefix):
431 def _append(self, timeseries, timeindex, number):
437 def _parse_timestamp(self, line):