def __init__(self, port, baud_rate, terminal=None, reset=False): Connection.__init__(self, terminal) self._port = port self._baud_rate = baud_rate try: self._serial = serial.Serial(None, self._baud_rate, timeout=0, write_timeout=0.2) self._serial.dtr = False self._serial.rts = False self._serial.port = port self._serial.open() if reset: self._serial.rts = True time.sleep(0.1) self._serial.rts = False x = "" while not x.endswith(">>>"): x += self._serial.read().decode('utf-8', errors="ignore") self.send_kill() except (OSError, serial.SerialException) as e: self._serial = None return except Exception as e: return self._reader_thread = Thread(target=self._reader_thread_routine) self._reader_thread.start()
def __init__(self, host, port, terminal, password_prompt): Connection.__init__(self, terminal) self._host = host self._port = port self.s = None self.ws = None if not self._start_connection(): return if not self.handle_password(password_prompt): self._clear() raise PasswordException() self._reader_thread = Thread(target=self._reader_thread_routine) self._reader_thread.start()
def __init__(self, host, port, terminal, password_prompt): Connection.__init__(self, terminal) self._host = host self._port = port self.s = None self.ws = None try: self._start_connection() except Exception as e: self._clear() raise e if not self.handle_password(password_prompt): self._clear() raise PasswordException() self._reader_thread = Thread(target=self._reader_thread_routine) self._reader_thread.start()
def __init__(self, port, baud_rate, terminal=None, reset=False): Connection.__init__(self, terminal) self._port = port self._baud_rate = baud_rate try: self._serial = serial.Serial(None, self._baud_rate, timeout=0, write_timeout=0.2) self._serial.dtr = False self._serial.rts = False self._serial.port = port self._serial.open() kill_and_wait = not reset if reset: self._serial.rts = True time.sleep(0.1) self._serial.rts = False try: # Give board time to reset (10 seconds should be enough) self.read_to_next_prompt(10) except TimeoutError: # If we still get time out, a script was probably # started automatically and needs to be killed kill_and_wait = True if kill_and_wait: self.send_kill() self.read_to_next_prompt() except (OSError, serial.SerialException) as e: self._serial = None return except Exception as e: return self._reader_thread = Thread(target=self._reader_thread_routine) self._reader_thread.start()