diff options
author | uvok | 2025-07-31 16:29:28 +0200 |
---|---|---|
committer | uvok | 2025-07-31 16:29:28 +0200 |
commit | 32f6e089c79ba1c3a9d5ee438999dc4b8f784871 (patch) | |
tree | ef7392e1ff8ecbcf52143bb16f2a078a125886c4 /lib/control | |
parent | f356d40ee8a67de32a1c6fc26431e455f4e3f417 (diff) |
Add RSSI scan limit
Diffstat (limited to 'lib/control')
-rw-r--r-- | lib/control/universal_ble_scanner_controller.dart | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/control/universal_ble_scanner_controller.dart b/lib/control/universal_ble_scanner_controller.dart index e111f3b..7785088 100644 --- a/lib/control/universal_ble_scanner_controller.dart +++ b/lib/control/universal_ble_scanner_controller.dart @@ -27,11 +27,14 @@ class UniversalBleScannerController extends ScannerControllerImpl { StreamSubscription<BleDevice>? _subScan; StreamSubscription<AvailabilityState>? _subAvail; final List<BleDevice> _devices = []; + final int? rssiLimit; - UniversalBleScannerController() { + UniversalBleScannerController({this.rssiLimit}) { // fuck this limitation, I want an instance method to be called, which doesn't // work in an initializer. - _subScan = UniversalBle.scanStream.listen(_newDeviceAction); + _subScan = UniversalBle.scanStream + .where((d) => rssiLimit == null || (d.rssi ?? 0) > (rssiLimit!)) + .listen(_newDeviceAction); _subAvail = UniversalBle.availabilityStream.listen(_newAvailabilityAction); } |