code: def probe_characteristics(self, conn_id, handle, services):
          
          self._command_task.async_command(['_probe_characteristics', handle, services],
                                           self._probe_characteristics_finished, {'connection_id': conn_id,
                                                                                  'handle': handle,
                                                                                  'services': services})
docs: Probe a device for all characteristics defined in its GATT table
  
          This routine must be called after probe_services and passed the services dictionary
          produced by that method.
  
          Args:
              handle (int): a handle to the connection on the BLED112 dongle
              conn_id (int): a unique identifier for this connection on the DeviceManager
                  that owns this adapter.
              services (dict): A dictionary of GATT services produced by probe_services()