import logging log = logging.getLogger(__name__) class TicDevice: def __init__(self, name): self._is_serial = False self.device = None try: self.device = serial.Serial(name, bytesize=serial.SEVENBITS, parity=serial.PARITY_EVEN, stopbits=serial.STOPBITS_ONE, timeout=2.0) self.device.baudrate = 9600 self._is_serial = True except: if self.device: self.device.close() self.device = None if not self.device: self.device = open(name, 'rb') self._is_serial = False def set_baudrate(self, rate): if self._is_serial: self.device.baudrate = rate def get_char(self): c = self.device.read(1) if not c: if self._is_serial: log.debug("RX Timeout") else: log.debug("EOF.") return c def is_serial(self): return self._is_serial