configure method
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;
}