code: def start_discovery(self, service_uuids=[]):
          
  
          discovery_filter = {'Transport': 'le'}
          if service_uuids:  # D-Bus doesn't like empty lists, it needs to guess the type
              discovery_filter['UUIDs'] = service_uuids
  
          try:
              self._adapter.SetDiscoveryFilter(discovery_filter)
              self._adapter.StartDiscovery()
          except dbus.exceptions.DBusException as e:
              if e.get_dbus_name() == 'org.bluez.Error.NotReady':
                  raise errors.NotReady(
                      "Bluetooth adapter not ready. "
                      "Set `is_adapter_powered` to `True` or run 'echo \"power on\" | sudo bluetoothctl'.")
              if e.get_dbus_name() == 'org.bluez.Error.InProgress':
                  # Discovery was already started - ignore exception
                  pass
              else:
                  raise _error_from_dbus_error(e)
docs: Starts a discovery for BLE devices with given service UUIDs.
  
          :param service_uuids: Filters the search to only return devices with given UUIDs.