stream property
The stream of Measurement
objects for this StreamProbe
.
Must be implemented by sub-classes.
Implementation
@override
Stream<Measurement> get stream async* {
await for (final monitoringResult
in flutterBeacon.monitoring(beaconRegions)) {
if (monitoringResult.monitoringState == MonitoringState.inside) {
debug(
'$runtimeType - Entered region: ${monitoringResult.region.identifier}');
yield* flutterBeacon.ranging(beaconRegions).map(
(rangingResult) {
final closeBeacons = rangingResult.beacons
.where((beacon) => beacon.accuracy <= beaconDistance)
.toList();
return Measurement.fromData(BeaconData.fromRegionAndBeacons(
region: rangingResult.region.identifier,
beacons: closeBeacons,
));
},
);
} else if (monitoringResult.monitoringState == MonitoringState.outside) {
debug(
'$runtimeType - Exited region: ${monitoringResult.region.identifier}');
}
}
}