subscribe method
Subscribes to updates from the characteristic specified.
This stream terminates automatically when the device is disconnected.
Implementation
Stream<List<int>> subscribe() {
_assertValidity();
final isDisconnected = _lib.connectedDeviceStream
.where((update) =>
update.deviceId == service.deviceId &&
(update.connectionState == DeviceConnectionState.disconnecting ||
update.connectionState == DeviceConnectionState.disconnected))
.cast<void>()
.firstWhere((_) => true, orElse: () {});
return _lib.initialize().asStream().asyncExpand(
(_) => _lib._connectedDeviceOperator.subscribeToCharacteristic(
CharacteristicInstance(
characteristicId: id,
characteristicInstanceId: _instanceId,
serviceId: service.id,
serviceInstanceId: service._instanceId,
deviceId: service.deviceId,
),
isDisconnected,
),
);
}