Lines Matching refs:self

33     def __init__(self, dev, filename, prefix, timeout=None, line_queue=None):
34 self.filename = filename
35 self.dev = dev
38 self.f = open(filename, "wb+")
39 self.serial = serial.Serial(dev, 115200, timeout=timeout)
41 self.f = open(filename, "rb")
42 self.serial = None
44 self.byte_queue = queue.Queue()
49 self.line_queue = line_queue
51 self.line_queue = queue.Queue()
52 self.prefix = prefix
53 self.timeout = timeout
54 self.sentinel = object()
55 self.closing = False
57 if self.dev:
58 self.read_thread = threading.Thread(
59 target=self.serial_read_thread_loop, daemon=True)
61 self.read_thread = threading.Thread(
62 target=self.serial_file_read_thread_loop, daemon=True)
63 self.read_thread.start()
65 self.lines_thread = threading.Thread(
66 target=self.serial_lines_thread_loop, daemon=True)
67 self.lines_thread.start()
69 def close(self):
70 self.closing = True
71 if self.serial:
72 self.serial.cancel_read()
73 self.read_thread.join()
74 self.lines_thread.join()
75 if self.serial:
76 self.serial.close()
80 def serial_read_thread_loop(self):
81 greet = "Serial thread reading from %s\n" % self.dev
82 self.byte_queue.put(greet.encode())
84 while not self.closing:
86 b = self.serial.read()
89 self.byte_queue.put(b)
91 print(self.prefix + str(err))
93 self.byte_queue.put(self.sentinel)
97 def serial_file_read_thread_loop(self):
98 greet = "Serial thread reading from %s\n" % self.filename
99 self.byte_queue.put(greet.encode())
101 while not self.closing:
102 line = self.f.readline()
104 self.byte_queue.put(line)
107 self.byte_queue.put(self.sentinel)
112 def serial_lines_thread_loop(self):
115 bytes = self.byte_queue.get(block=True)
117 if bytes == self.sentinel:
118 self.read_thread.join()
119 self.line_queue.put(self.sentinel)
124 if self.dev:
125 self.f.write(bytes)
126 self.f.flush()
135 time=time, prefix=self.prefix, line=line, endc='\033[0m'), flush=True, end='')
137 self.line_queue.put(line)
140 def lines(self, timeout=None, phase=None):
148 self.close()
152 line = self.line_queue.get(timeout=read_timeout)
155 self.close()
158 if line == self.sentinel:
160 self.lines_thread.join()