def read_until_string(self, str): """Pretend to read from the port until the given string is detected or the read times out. Return the previously recorded result. """ timestamp, parameters = self.next_log("read-until") # extract the argument, result, and status status = None if parameters.endswith("]"): pos = parameters.rindex(" [") status = parameters[pos + 2:-1] parameters = parameters[:pos] log_str, log_result = [eval(p) for p in parameters.split(" = ", 1)] if log_str != str: warn("%d: read-until(%r) != log(%r)" % (self.line_number, str, log_str)) if self.mimic_timing: time.sleep(timestamp - self.timestamp) self.timestamp = timestamp if status == "interval-expired": raise exception.IntervalTimeout(response=log_result) if status == "timeout-expired": raise exception.ReadTimeout(response=log_result) return log_result
def read_until_string(self, str): """Pretend to read from the port until the given string is detected or the read times out. Return the previously recorded result. """ timestamp, parameters = self.next_log("read-until") # extract the argument, result, and status status = None if parameters.endswith("]"): pos = parameters.rindex(" [") status = parameters[pos+2:-1] parameters = parameters[:pos] log_str, log_result = [eval(p) for p in parameters.split(" = ", 1)] if log_str != str: warn("%d: read-until(%r) != log(%r)" % (self.line_number, str, log_str)) if self.mimic_timing: time.sleep(timestamp - self.timestamp) self.timestamp = timestamp if status == "interval-expired": raise exception.IntervalTimeout(response=log_result) if status == "timeout-expired": raise exception.ReadTimeout(response=log_result) return log_result
def set_baudrate(self, baud): """Pretend to set the serial port baud rate""" timestamp, baudrate = self.next_log("set-baud") baudrate = int(baudrate) if baudrate != baud: warn("%d: set-baud(%d) != %d" % (self.line_number, baud, baudrate)) self.baudrate = baudrate self.timestamp = timestamp return
def set_timeout(self, timeout, interval=None): """Pretend to set the timeout and polling interval""" if interval == None: interval = timeout timestamp, parameters = self.next_log("set-timeout") log_timeout, log_interval = [float(p) for p in parameters.split(" ")] if timeout != log_timeout or interval != log_interval: warn("%d: set-timeout(%f,%f) != log(%f,%f)" % (self.line_number, timeout, interval, log_timeout, log_interval)) self.timestamp = timestamp return
def clear_tx_buffer(self): """Pretend to clear the transmission buffer""" timestamp, buffer = self.next_log("clear") if buffer != "tx": warn("%d: clear %s != tx" % (self.line_number, buffer)) return
def clear_rx_buffer(self): """Pretend to clear the receive buffer""" timestamp, buffer = self.next_log("clear") if buffer != "rx": warn("%d: clear %s != rx" % (self.line_number, buffer)) return
def set_baudrate(self, baud): """Set (and log) the serial port baud rate""" warn("set-baud %d" % baud) return
def clear_tx_buffer(self): """Clear the transmission buffer""" warn("clear tx") return
def clear_rx_buffer(self): """Clear the receive buffer""" warn("clear rx") self.buffer="" return
def write(self, str): """Write the given string to the port""" warn("write %r" % str) self.sock.send(str) return
def clear_rx_buffer(self): """Clear the receive buffer""" warn("clear rx") self.buffer = "" return