docs: def read(self):
          """
          Reads a single character from the device.
  
          :returns: character read from the device
          :raises: :py:class:`~alarmdecoder.util.CommError`
          """
          ret = None
  
          try:
              ret = self._device.read_data(1)
  
          except (usb.core.USBError, FtdiError) as err:
              raise CommError('Error reading from device: {0}'.format(str(err)), err)
  
          return ret