code: def read(self, count):
          
  
          def _usb_reader():
              """Data reader identifying usb timeout exception."""
              try:
                  return self.interface.read(count)
              except usb.USBError as exc:
                  if exc.errno in (errno.ETIMEDOUT, -errno.ETIMEDOUT):
                      raise USBTimeoutException()
                  raise
  
          supress_end_en, _ = self.get_attribute(constants.VI_ATTR_SUPPRESS_END_EN)
  
          if supress_end_en:
              raise ValueError('VI_ATTR_SUPPRESS_END_EN == True is currently unsupported by pyvisa-py')
  
          term_char, _ = self.get_attribute(constants.VI_ATTR_TERMCHAR)
          term_char_en, _ = self.get_attribute(constants.VI_ATTR_TERMCHAR_EN)
  
          return self._read(_usb_reader,
                            count,
                            lambda current: True, # USB always returns a complete message
                            supress_end_en,
                            term_char,
                            term_char_en,
                            USBTimeoutException)
docs: Reads data from device or interface synchronously.
  
          Corresponds to viRead function of the VISA library.
  
          :param count: Number of bytes to be read.
          :return: data read, return value of the library call.
          :rtype: (bytes, VISAStatus)