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();
// A device connecting after the study has started has its executors paused,
// and nothing else resumes them.
statusEvents.where((status) => status == DeviceStatus.connected).listen((_) => start());
statusEvents.where((status) => status == DeviceStatus.disconnecting).listen((_) => isDisconnecting());
statusEvents.where((status) => status == DeviceStatus.reconnected).listen((_) => restart());
status = DeviceStatus.configured;
}