lastValueStream property
this stream emits values:
- anytime
read()
is called - anytime
write()
is called - anytime a notification arrives (if subscribed)
- and when first listened to, it re-emits the last value for convenience
Implementation
Stream<List<int>> get lastValueStream => FlutterBluePlus._methodStream.stream
.where((m) => m.method == "OnCharacteristicReceived" || m.method == "OnCharacteristicWritten")
.map((m) => m.arguments)
.map((args) => BmCharacteristicData.fromMap(args))
.where((p) => p.remoteId == remoteId)
.where((p) => p.serviceUuid == serviceUuid)
.where((p) => p.characteristicUuid == characteristicUuid)
.where((p) => p.success == true)
.map((c) => c.value)
.newStreamWithInitialValue(lastValue);