code: def _probe_services_finished(self, result):
          
  
          #If we were disconnected before this function is called, don't proceed
          handle = result['context']['handle']
          conn_id = result['context']['connection_id']
  
          conndata = self._get_connection(handle, 'preparing')
  
          if conndata is None:
              self._logger.info('Connection disconnected before prob_services_finished, conn_id=%d',
                                conn_id)
              return
  
          if result['result'] is False:
              conndata['failed'] = True
              conndata['failure_reason'] = 'Could not probe GATT services'
              self.disconnect_async(conn_id, self._on_connection_failed)
          else:
              conndata['services_done_time'] = time.time()
              self.probe_characteristics(result['context']['connection_id'], result['context']['handle'], result['return_value']['services'])
docs: Callback called after a BLE device has had its GATT table completely probed
  
          Args:
              result (dict): Parameters determined by the probe and context passed to the call to
                  probe_device()