code: def getAllConnectedInterface():
          
  
          devices = hid.enumerate()
  
          if not devices:
              logging.debug("No Mbed device connected")
              return []
  
          boards = []
  
          for deviceInfo in devices:
              product_name = deviceInfo['product_string']
              if (product_name.find("MicArray") < 0):
                  # Skip non cmsis-dap devices
                  continue
  
              try:
                  dev = hid.device(vendor_id=deviceInfo['vendor_id'], product_id=deviceInfo['product_id'],
                      path=deviceInfo['path'])
              except IOError:
                  logging.debug("Failed to open Mbed device")
                  continue
  
              # Create the USB interface object for this device.
              new_board = HidApiUSB()
              new_board.vendor_name = deviceInfo['manufacturer_string']
              new_board.product_name = deviceInfo['product_string']
              new_board.serial_number = deviceInfo['serial_number']
              new_board.vid = deviceInfo['vendor_id']
              new_board.pid = deviceInfo['product_id']
              new_board.device_info = deviceInfo
              new_board.device = dev
              try:
                  dev.open_path(deviceInfo['path'])
              except AttributeError:
                  pass
              except IOError:
                  # Ignore failure to open a device by skipping the device.
                  continue
  
              boards.append(new_board)
  
          return boards
docs: returns all the connected devices which matches HidApiUSB.vid/HidApiUSB.pid.
          returns an array of HidApiUSB (Interface) objects