lastValueStream property

Stream<List<int>> lastValueStream

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);