@@ -2,6 +2,7 @@ import 'dart:async';
2
2
import 'dart:io' ;
3
3
4
4
import 'package:flutter_reactive_ble/src/connected_device_operation.dart' ;
5
+ import 'package:flutter_reactive_ble/src/debug_logger.dart' ;
5
6
import 'package:flutter_reactive_ble/src/device_connector.dart' ;
6
7
import 'package:flutter_reactive_ble/src/device_scanner.dart' ;
7
8
import 'package:flutter_reactive_ble/src/discovered_devices_registry.dart' ;
@@ -10,6 +11,7 @@ import 'package:flutter_reactive_ble/src/model/characteristic_value.dart';
10
11
import 'package:flutter_reactive_ble/src/model/connection_priority.dart' ;
11
12
import 'package:flutter_reactive_ble/src/model/connection_state_update.dart' ;
12
13
import 'package:flutter_reactive_ble/src/model/discovered_device.dart' ;
14
+ import 'package:flutter_reactive_ble/src/model/log_level.dart' ;
13
15
import 'package:flutter_reactive_ble/src/model/qualified_characteristic.dart' ;
14
16
import 'package:flutter_reactive_ble/src/model/scan_mode.dart' ;
15
17
import 'package:flutter_reactive_ble/src/model/uuid.dart' ;
@@ -31,12 +33,13 @@ class FlutterReactiveBle {
31
33
@required DeviceScanner deviceScanner,
32
34
@required DeviceConnector deviceConnector,
33
35
@required ConnectedDeviceOperation connectedDeviceOperation,
36
+ @required DebugLogger debugLogger,
34
37
}) {
35
38
_pluginController = pluginController;
36
39
_deviceScanner = deviceScanner;
37
40
_deviceConnector = deviceConnector;
38
41
_connectedDeviceOperator = connectedDeviceOperation;
39
-
42
+ _debugLogger = debugLogger;
40
43
_trackStatus ();
41
44
}
42
45
@@ -93,6 +96,7 @@ class FlutterReactiveBle {
93
96
DeviceConnector _deviceConnector;
94
97
ConnectedDeviceOperation _connectedDeviceOperator;
95
98
DeviceScanner _deviceScanner;
99
+ DebugLogger _debugLogger;
96
100
97
101
/// Initializes this [FlutterReactiveBle] instance and its platform-specific
98
102
/// counterparts.
@@ -116,6 +120,8 @@ class FlutterReactiveBle {
116
120
scanRegistry: scanRegistry,
117
121
);
118
122
123
+ _debugLogger ?? = DebugLogger (print);
124
+
119
125
_deviceConnector ?? = DeviceConnector (
120
126
pluginController: _pluginController,
121
127
discoveredDevicesRegistry: scanRegistry,
@@ -296,6 +302,9 @@ class FlutterReactiveBle {
296
302
.clearGattCache (deviceId)
297
303
.then ((info) => info.dematerialize ());
298
304
305
+ /// Subscribes to a updates from a the characteristic specified.
306
+ ///
307
+ /// This stream terminates automatically when the device is disconnected.
299
308
Stream <List <int >> subscribeToCharacteristic (
300
309
QualifiedCharacteristic characteristic) {
301
310
final terminateFuture = connectedDeviceStream
@@ -313,4 +322,19 @@ class FlutterReactiveBle {
313
322
),
314
323
);
315
324
}
325
+
326
+ /// Sets the verbosity of debug output.
327
+ ///
328
+ /// Use [LogLevel.verbose] for full debug output. Make sure to run this only for debugging purposes.
329
+ /// Use [LogLevel.none] to disable logging. This is also the default.
330
+ void setLogLevel (LogLevel logLevel) {
331
+ switch (logLevel) {
332
+ case LogLevel .none:
333
+ _debugLogger.disable ();
334
+ break ;
335
+ case LogLevel .verbose:
336
+ _debugLogger.enable ();
337
+ break ;
338
+ }
339
+ }
316
340
}
0 commit comments