| @@ -201,10 +201,14 @@ class USBDevice(Device): | |||
| """ | |||
| return self._device.read_data(1) | |||
| def read_line(self, timeout=0.0): | |||
| def read_line(self, timeout=0.0, purge_buffer=False): | |||
| """ | |||
| Reads a line from the device. | |||
| """ | |||
| if purge_buffer: | |||
| self._buffer = '' | |||
| def timeout_event(): | |||
| timeout_event.reading = False | |||
| @@ -237,10 +241,7 @@ class USBDevice(Device): | |||
| else: | |||
| self._buffer = self._buffer[:-1] | |||
| time.sleep(0.001) | |||
| except (usb.core.USBError, FtdiError), err: | |||
| self._buffer = '' | |||
| timer.cancel() | |||
| raise util.CommError('Error reading from AD2USB device: {0}'.format(str(err))) | |||
| @@ -391,10 +392,12 @@ class SerialDevice(Device): | |||
| """ | |||
| return self._device.read(1) | |||
| def read_line(self, timeout=0.0): | |||
| def read_line(self, timeout=0.0, purge_buffer=False): | |||
| """ | |||
| Reads a line from the device. | |||
| """ | |||
| if purge_buffer: | |||
| self._buffer = '' | |||
| def timeout_event(): | |||
| timeout_event.reading = False | |||
| @@ -428,13 +431,11 @@ class SerialDevice(Device): | |||
| else: | |||
| self._buffer = self._buffer[:-1] | |||
| time.sleep(0.001) | |||
| except (OSError, serial.SerialException), err: | |||
| self._buffer = '' | |||
| timer.cancel() | |||
| raise util.CommError('Error reading from AD2SERIAL device: {0}'.format(str(err))) | |||
| else: | |||
| if got_line: | |||
| ret = self._buffer | |||
| @@ -556,10 +557,14 @@ class SocketDevice(Device): | |||
| return data | |||
| def read_line(self, timeout=0.0): | |||
| def read_line(self, timeout=0.0, purge_buffer=False): | |||
| """ | |||
| Reads a line from the device. | |||
| """ | |||
| if purge_buffer: | |||
| self._buffer = '' | |||
| def timeout_event(): | |||
| timeout_event.reading = False | |||
| @@ -592,10 +597,7 @@ class SocketDevice(Device): | |||
| else: | |||
| self._buffer = self._buffer[:-1] | |||
| time.sleep(0.001) | |||
| except socket.error, err: | |||
| self._buffer = '' | |||
| timer.cancel() | |||
| raise util.CommError('Error reading from Socket device: {0}'.format(str(err))) | |||