register method

List<MultiModalPercept> register(
  1. Perception perception
)

Registers an incoming perception.

Immediately attempts cross-modal binding with recent perceptions in the complementary modality buffers.

Implementation

List<MultiModalPercept> register(Perception perception) {
  _pruneExpired();

  final buffer = _buffers[perception.modality] ??= [];
  buffer.add(_TimestampedPercept(
    perception: perception,
    receivedAt: DateTime.now(),
  ));

  final newBindings = _attemptBinding(perception);
  if (newBindings.isNotEmpty) {
    _logger.info(
        'Cross-modal binding: ${newBindings.length} event(s) '
        'involving ${perception.modality.name}');
  }
  return newBindings;
}