configure method

  1. @nonVirtual
void configure(
  1. TDeviceConfiguration configuration, [
  2. TRegistration? registration
])

Configure this device manager by specifying its configuration. Optionally, a registration can be specified to provide runtime information about the real device, e.g., the BLE address of a Bluetooth device.

Implementation

@nonVirtual
void configure(
  TDeviceConfiguration configuration, [
  TRegistration? registration,
]) {
  // fast out if already configured
  if (isConfigured) return;

  info(
    '$runtimeType - Configuring, type: $typeName, configuration: $configuration, registration: $registration',
  );
  _configuration = configuration;
  _registration = registration;
  onConfigure();

  // Listen to status events and when this device is disconnecting or reconnected,
  // stop or restart sampling.
  statusEvents
      .where((status) => status == DeviceStatus.disconnecting)
      .listen((_) => isDisconnecting());
  statusEvents
      .where((status) => status == DeviceStatus.reconnected)
      .listen((_) => restart());

  status = DeviceStatus.configured;
}