Rename onConnectionChanged and onValueChanged

Update changelog
Format files
This commit is contained in:
Foti Dim
2024-06-15 09:13:01 +02:00
parent 58677246b3
commit 15453eb28f
13 changed files with 210 additions and 128 deletions
+2
View File
@@ -39,6 +39,8 @@
"pairable",
"PNTSTATUS",
"PRTL",
"pubspec",
"RRSI",
"rssi",
"SETFONT",
"SETTEXT",
+6 -2
View File
@@ -1,12 +1,16 @@
## 0.9.12
* BREAKING CHANGE: Rename ScanResult to BleDevice
* BREAKING CHANGE: `ScanResult` is now `BleDevice`
* BREAKING CHANGE: `getConnectedDevices` is now `getSystemDevices`
* BREAKING CHANGE: `isPaired` is now nullable
* BREAKING CHANGE: `onValueChanged` is now `onValueChange`
* BREAKING CHANGE: `onConnectionChanged` is now `onConnectionChange`
* Add `connectionState` property to BleDevice
* Add `isSystemDevice` property to BleDevice
* Add `.perDevice` queue
* Support "ProvidePin" pairing on Windows 10/11
* Get RRSI updates on Apple platforms
* Improve code level documentation
* Improve enum parsing performance
* Improve code level documentation
## 0.9.11
* Add device name prefix filtering
+5 -5
View File
@@ -143,8 +143,8 @@ UniversalBle.connect(deviceId);
UniversalBle.disconnect(deviceId);
// Get connection state updates
UniversalBle.onConnectionChanged = (String deviceId, BleConnectionState state) {
debugPrint('OnConnectionChanged $deviceId, $state');
UniversalBle.onConnectionChange = (String deviceId, BleConnectionState state) {
debugPrint('OnConnectionChange $deviceId, $state');
}
```
@@ -171,9 +171,9 @@ UniversalBle.writeValue(deviceId, serviceId, characteristicId, value);
// Subscribe to a characteristic
UniversalBle.setNotifiable(deviceId, serviceId, characteristicId, BleInputProperty.notification);
// Get characteristic updates in `onValueChanged`
UniversalBle.onValueChanged = (String deviceId, String characteristicId, Uint8List value) {
debugPrint('onValueChanged $deviceId, $characteristicId, ${hex.encode(value)}');
// Get characteristic updates in `onValueChange`
UniversalBle.onValueChange = (String deviceId, String characteristicId, Uint8List value) {
debugPrint('onValueChange $deviceId, $characteristicId, ${hex.encode(value)}');
}
// Unsubscribe from a characteristic
+2 -2
View File
@@ -31,12 +31,12 @@ class MockUniversalBle extends UniversalBlePlatform {
@override
Future<void> connect(String deviceId, {Duration? connectionTimeout}) async {
onConnectionChanged?.call(deviceId, BleConnectionState.connected);
onConnectionChange?.call(deviceId, BleConnectionState.connected);
}
@override
Future<void> disconnect(String deviceId) async {
onConnectionChanged?.call(deviceId, BleConnectionState.disconnected);
onConnectionChange?.call(deviceId, BleConnectionState.disconnected);
}
@override
@@ -42,16 +42,16 @@ class _PeripheralDetailPageState extends State<PeripheralDetailPage> {
@override
void initState() {
super.initState();
UniversalBle.onConnectionChanged = _handleConnectionChange;
UniversalBle.onValueChanged = _handleValueChange;
UniversalBle.onConnectionChange = _handleConnectionChange;
UniversalBle.onValueChange = _handleValueChange;
UniversalBle.onPairingStateChange = _handlePairingStateChange;
}
@override
void dispose() {
super.dispose();
UniversalBle.onConnectionChanged = null;
UniversalBle.onValueChanged = null;
UniversalBle.onConnectionChange = null;
UniversalBle.onValueChange = null;
// Disconnect when leaving the page
if (isConnected) UniversalBle.disconnect(widget.deviceId);
}
+4 -1
View File
@@ -12,7 +12,10 @@ class BleDevice {
Uint8List? manufacturerDataHead;
Uint8List? manufacturerData;
Future<BleConnectionState> get connectionState async => await UniversalBle.isConnected(deviceId) ? BleConnectionState.connected : BleConnectionState.disconnected;
Future<BleConnectionState> get connectionState async =>
await UniversalBle.isConnected(deviceId)
? BleConnectionState.connected
: BleConnectionState.disconnected;
BleDevice({
required this.deviceId,
-2
View File
@@ -6,5 +6,3 @@ export 'package:universal_ble/src/models/ble_service.dart';
export 'package:universal_ble/src/models/availability_state.dart';
export 'package:universal_ble/src/models/ble_connection_state.dart';
export 'package:universal_ble/src/models/ble_device.dart';
+8 -8
View File
@@ -66,7 +66,7 @@ class UniversalBle {
}
/// Connect to a device.
/// Get notified of connection state changes in [onConnectionChanged] listener
/// Get notified of connection state changes in [onConnectionChange] listener
/// It is advised to stop scanning before connecting
/// It might throw errors if device is not connectable
/// `connectionTimeout` is supported on Web only
@@ -81,7 +81,7 @@ class UniversalBle {
}
/// Disconnect from a device.
/// Get notified of connection state changes in [onConnectionChanged] listener
/// Get notified of connection state changes in [onConnectionChange] listener
static Future<void> disconnect(String deviceId) async {
return await _bleCommandQueue.queueCommand(
() => _platform.disconnect(deviceId),
@@ -99,7 +99,7 @@ class UniversalBle {
/// Set a characteristic notifiable.
/// Set `bleInputProperty` to [BleInputProperty.notification] or [BleInputProperty.indication]
/// Updates will arrive in [onValueChanged] listener
/// Updates will arrive in [onValueChange] listener
/// To stop listening to a characteristic, set `bleInputProperty` to [BleInputProperty.disabled]
static Future<void> setNotifiable(
String deviceId,
@@ -119,7 +119,7 @@ class UniversalBle {
}
/// Read a characteristic value
/// On iOS and MacOS this command will also trigger [onValueChanged] listener
/// On iOS and MacOS this command will also trigger [onValueChange] listener
static Future<Uint8List> readValue(
String deviceId,
String service,
@@ -237,12 +237,12 @@ class UniversalBle {
_platform.onScanResult = bleDevice;
/// Get connection state changes
static set onConnectionChanged(OnConnectionChanged? onConnectionChanged) =>
_platform.onConnectionChanged = onConnectionChanged;
static set onConnectionChange(OnConnectionChange? onConnectionChange) =>
_platform.onConnectionChange = onConnectionChange;
/// Get characteristic value updates, set `bleInputProperty` in [setNotifiable] to [BleInputProperty.notification] or [BleInputProperty.indication]
static set onValueChanged(OnValueChanged? onValueChanged) =>
_platform.onValueChanged = onValueChanged;
static set onValueChange(OnValueChange? onValueChange) =>
_platform.onValueChange = onValueChange;
/// Get pair state changes,
static set onPairingStateChange(OnPairingStateChange pairingStateChange) =>
@@ -97,7 +97,7 @@ class UniversalBleLinux extends UniversalBlePlatform {
Future<void> connect(String deviceId, {Duration? connectionTimeout}) async {
final device = _findDeviceById(deviceId);
if (device.connected) {
onConnectionChanged?.call(deviceId, BleConnectionState.connected);
onConnectionChange?.call(deviceId, BleConnectionState.connected);
return;
}
await device.connect();
@@ -107,7 +107,7 @@ class UniversalBleLinux extends UniversalBlePlatform {
Future<void> disconnect(String deviceId) async {
final device = _findDeviceById(deviceId);
if (!device.connected) {
onConnectionChanged?.call(deviceId, BleConnectionState.disconnected);
onConnectionChange?.call(deviceId, BleConnectionState.disconnected);
return;
}
await device.disconnect();
@@ -189,7 +189,7 @@ class UniversalBleLinux extends UniversalBlePlatform {
for (String property in properties) {
switch (property) {
case BluezProperty.value:
onValueChanged?.call(
onValueChange?.call(
deviceId,
characteristic,
Uint8List.fromList(char.value),
@@ -429,7 +429,7 @@ class UniversalBleLinux extends UniversalBlePlatform {
updateScanResult(device.toBleDevice());
break;
case BluezProperty.connected:
onConnectionChanged?.call(
onConnectionChange?.call(
device.address,
device.connected
? BleConnectionState.connected
+164 -89
View File
@@ -15,7 +15,8 @@ PlatformException _createConnectionError(String channelName) {
);
}
List<Object?> wrapResponse({Object? result, PlatformException? error, bool empty = false}) {
List<Object?> wrapResponse(
{Object? result, PlatformException? error, bool empty = false}) {
if (empty) {
return <Object?>[];
}
@@ -97,7 +98,8 @@ class UniversalBleService {
result as List<Object?>;
return UniversalBleService(
uuid: result[0]! as String,
characteristics: (result[1] as List<Object?>?)?.cast<UniversalBleCharacteristic?>(),
characteristics:
(result[1] as List<Object?>?)?.cast<UniversalBleCharacteristic?>(),
);
}
}
@@ -150,7 +152,8 @@ class UniversalScanFilter {
result as List<Object?>;
return UniversalScanFilter(
withServices: (result[0] as List<Object?>?)!.cast<String?>(),
withManufacturerData: (result[1] as List<Object?>?)!.cast<UniversalManufacturerDataFilter?>(),
withManufacturerData: (result[1] as List<Object?>?)!
.cast<UniversalManufacturerDataFilter?>(),
);
}
}
@@ -213,15 +216,15 @@ class _UniversalBlePlatformChannelCodec extends StandardMessageCodec {
@override
Object? readValueOfType(int type, ReadBuffer buffer) {
switch (type) {
case 128:
case 128:
return UniversalBleCharacteristic.decode(readValue(buffer)!);
case 129:
case 129:
return UniversalBleScanResult.decode(readValue(buffer)!);
case 130:
case 130:
return UniversalBleService.decode(readValue(buffer)!);
case 131:
case 131:
return UniversalManufacturerDataFilter.decode(readValue(buffer)!);
case 132:
case 132:
return UniversalScanFilter.decode(readValue(buffer)!);
default:
return super.readValueOfType(type, buffer);
@@ -234,18 +237,23 @@ class UniversalBlePlatformChannel {
/// Constructor for [UniversalBlePlatformChannel]. The [binaryMessenger] named argument is
/// available for dependency injection. If it is left null, the default
/// BinaryMessenger will be used which routes to the host platform.
UniversalBlePlatformChannel({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''})
UniversalBlePlatformChannel(
{BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''})
: __pigeon_binaryMessenger = binaryMessenger,
__pigeon_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : '';
__pigeon_messageChannelSuffix =
messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : '';
final BinaryMessenger? __pigeon_binaryMessenger;
static const MessageCodec<Object?> pigeonChannelCodec = _UniversalBlePlatformChannelCodec();
static const MessageCodec<Object?> pigeonChannelCodec =
_UniversalBlePlatformChannelCodec();
final String __pigeon_messageChannelSuffix;
Future<int> getBluetoothAvailabilityState() async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.getBluetoothAvailabilityState$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.getBluetoothAvailabilityState$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
@@ -271,8 +279,10 @@ class UniversalBlePlatformChannel {
}
Future<bool> enableBluetooth() async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.enableBluetooth$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.enableBluetooth$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
@@ -298,8 +308,10 @@ class UniversalBlePlatformChannel {
}
Future<void> startScan(UniversalScanFilter? filter) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.startScan$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.startScan$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
@@ -320,8 +332,10 @@ class UniversalBlePlatformChannel {
}
Future<void> stopScan() async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.stopScan$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.stopScan$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
@@ -342,8 +356,10 @@ class UniversalBlePlatformChannel {
}
Future<void> connect(String deviceId) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.connect$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.connect$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
@@ -364,8 +380,10 @@ class UniversalBlePlatformChannel {
}
Future<void> disconnect(String deviceId) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.disconnect$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.disconnect$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
@@ -385,15 +403,19 @@ class UniversalBlePlatformChannel {
}
}
Future<void> setNotifiable(String deviceId, String service, String characteristic, int bleInputProperty) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.setNotifiable$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
Future<void> setNotifiable(String deviceId, String service,
String characteristic, int bleInputProperty) async {
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.setNotifiable$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
);
final List<Object?>? __pigeon_replyList =
await __pigeon_channel.send(<Object?>[deviceId, service, characteristic, bleInputProperty]) as List<Object?>?;
final List<Object?>? __pigeon_replyList = await __pigeon_channel.send(
<Object?>[deviceId, service, characteristic, bleInputProperty])
as List<Object?>?;
if (__pigeon_replyList == null) {
throw _createConnectionError(__pigeon_channelName);
} else if (__pigeon_replyList.length > 1) {
@@ -408,8 +430,10 @@ class UniversalBlePlatformChannel {
}
Future<List<UniversalBleService?>> discoverServices(String deviceId) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.discoverServices$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.discoverServices$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
@@ -430,19 +454,23 @@ class UniversalBlePlatformChannel {
message: 'Host platform returned null value for non-null return value.',
);
} else {
return (__pigeon_replyList[0] as List<Object?>?)!.cast<UniversalBleService?>();
return (__pigeon_replyList[0] as List<Object?>?)!
.cast<UniversalBleService?>();
}
}
Future<Uint8List> readValue(String deviceId, String service, String characteristic) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.readValue$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
Future<Uint8List> readValue(
String deviceId, String service, String characteristic) async {
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.readValue$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
);
final List<Object?>? __pigeon_replyList =
await __pigeon_channel.send(<Object?>[deviceId, service, characteristic]) as List<Object?>?;
final List<Object?>? __pigeon_replyList = await __pigeon_channel
.send(<Object?>[deviceId, service, characteristic]) as List<Object?>?;
if (__pigeon_replyList == null) {
throw _createConnectionError(__pigeon_channelName);
} else if (__pigeon_replyList.length > 1) {
@@ -462,14 +490,16 @@ class UniversalBlePlatformChannel {
}
Future<int> requestMtu(String deviceId, int expectedMtu) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.requestMtu$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.requestMtu$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
);
final List<Object?>? __pigeon_replyList =
await __pigeon_channel.send(<Object?>[deviceId, expectedMtu]) as List<Object?>?;
final List<Object?>? __pigeon_replyList = await __pigeon_channel
.send(<Object?>[deviceId, expectedMtu]) as List<Object?>?;
if (__pigeon_replyList == null) {
throw _createConnectionError(__pigeon_channelName);
} else if (__pigeon_replyList.length > 1) {
@@ -488,15 +518,24 @@ class UniversalBlePlatformChannel {
}
}
Future<void> writeValue(String deviceId, String service, String characteristic, Uint8List value, int bleOutputProperty) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.writeValue$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
Future<void> writeValue(String deviceId, String service,
String characteristic, Uint8List value, int bleOutputProperty) async {
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.writeValue$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
);
final List<Object?>? __pigeon_replyList =
await __pigeon_channel.send(<Object?>[deviceId, service, characteristic, value, bleOutputProperty]) as List<Object?>?;
final List<Object?>? __pigeon_replyList = await __pigeon_channel
.send(<Object?>[
deviceId,
service,
characteristic,
value,
bleOutputProperty
]) as List<Object?>?;
if (__pigeon_replyList == null) {
throw _createConnectionError(__pigeon_channelName);
} else if (__pigeon_replyList.length > 1) {
@@ -511,8 +550,10 @@ class UniversalBlePlatformChannel {
}
Future<bool> isPaired(String deviceId) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.isPaired$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.isPaired$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
@@ -538,8 +579,10 @@ class UniversalBlePlatformChannel {
}
Future<void> pair(String deviceId) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.pair$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.pair$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
@@ -560,8 +603,10 @@ class UniversalBlePlatformChannel {
}
Future<void> unPair(String deviceId) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.unPair$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.unPair$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
@@ -581,9 +626,12 @@ class UniversalBlePlatformChannel {
}
}
Future<List<UniversalBleScanResult?>> getSystemDevices(List<String?> withServices) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.getSystemDevices$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
Future<List<UniversalBleScanResult?>> getSystemDevices(
List<String?> withServices) async {
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.getSystemDevices$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
@@ -604,13 +652,16 @@ class UniversalBlePlatformChannel {
message: 'Host platform returned null value for non-null return value.',
);
} else {
return (__pigeon_replyList[0] as List<Object?>?)!.cast<UniversalBleScanResult?>();
return (__pigeon_replyList[0] as List<Object?>?)!
.cast<UniversalBleScanResult?>();
}
}
Future<bool> isConnected(String deviceId) async {
final String __pigeon_channelName = 'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.isConnected$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
final String __pigeon_channelName =
'dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.isConnected$__pigeon_messageChannelSuffix';
final BasicMessageChannel<Object?> __pigeon_channel =
BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
@@ -651,7 +702,7 @@ class _UniversalBleCallbackChannelCodec extends StandardMessageCodec {
@override
Object? readValueOfType(int type, ReadBuffer buffer) {
switch (type) {
case 128:
case 128:
return UniversalBleScanResult.decode(readValue(buffer)!);
default:
return super.readValueOfType(type, buffer);
@@ -661,7 +712,8 @@ class _UniversalBleCallbackChannelCodec extends StandardMessageCodec {
/// Native -> Flutter
abstract class UniversalBleCallbackChannel {
static const MessageCodec<Object?> pigeonChannelCodec = _UniversalBleCallbackChannelCodec();
static const MessageCodec<Object?> pigeonChannelCodec =
_UniversalBleCallbackChannelCodec();
void onAvailabilityChanged(int state);
@@ -669,22 +721,30 @@ abstract class UniversalBleCallbackChannel {
void onScanResult(UniversalBleScanResult result);
void onValueChanged(String deviceId, String characteristicId, Uint8List value);
void onValueChanged(
String deviceId, String characteristicId, Uint8List value);
void onConnectionChanged(String deviceId, int state);
static void setUp(UniversalBleCallbackChannel? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) {
messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : '';
static void setUp(
UniversalBleCallbackChannel? api, {
BinaryMessenger? binaryMessenger,
String messageChannelSuffix = '',
}) {
messageChannelSuffix =
messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : '';
{
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onAvailabilityChanged$messageChannelSuffix', pigeonChannelCodec,
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<
Object?>(
'dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onAvailabilityChanged$messageChannelSuffix',
pigeonChannelCodec,
binaryMessenger: binaryMessenger);
if (api == null) {
__pigeon_channel.setMessageHandler(null);
} else {
__pigeon_channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onAvailabilityChanged was null.');
'Argument for dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onAvailabilityChanged was null.');
final List<Object?> args = (message as List<Object?>?)!;
final int? arg_state = (args[0] as int?);
assert(arg_state != null,
@@ -694,22 +754,25 @@ abstract class UniversalBleCallbackChannel {
return wrapResponse(empty: true);
} on PlatformException catch (e) {
return wrapResponse(error: e);
} catch (e) {
return wrapResponse(error: PlatformException(code: 'error', message: e.toString()));
} catch (e) {
return wrapResponse(
error: PlatformException(code: 'error', message: e.toString()));
}
});
}
}
{
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onPairStateChange$messageChannelSuffix', pigeonChannelCodec,
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<
Object?>(
'dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onPairStateChange$messageChannelSuffix',
pigeonChannelCodec,
binaryMessenger: binaryMessenger);
if (api == null) {
__pigeon_channel.setMessageHandler(null);
} else {
__pigeon_channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onPairStateChange was null.');
'Argument for dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onPairStateChange was null.');
final List<Object?> args = (message as List<Object?>?)!;
final String? arg_deviceId = (args[0] as String?);
assert(arg_deviceId != null,
@@ -723,24 +786,28 @@ abstract class UniversalBleCallbackChannel {
return wrapResponse(empty: true);
} on PlatformException catch (e) {
return wrapResponse(error: e);
} catch (e) {
return wrapResponse(error: PlatformException(code: 'error', message: e.toString()));
} catch (e) {
return wrapResponse(
error: PlatformException(code: 'error', message: e.toString()));
}
});
}
}
{
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onScanResult$messageChannelSuffix', pigeonChannelCodec,
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<
Object?>(
'dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onScanResult$messageChannelSuffix',
pigeonChannelCodec,
binaryMessenger: binaryMessenger);
if (api == null) {
__pigeon_channel.setMessageHandler(null);
} else {
__pigeon_channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onScanResult was null.');
'Argument for dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onScanResult was null.');
final List<Object?> args = (message as List<Object?>?)!;
final UniversalBleScanResult? arg_result = (args[0] as UniversalBleScanResult?);
final UniversalBleScanResult? arg_result =
(args[0] as UniversalBleScanResult?);
assert(arg_result != null,
'Argument for dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onScanResult was null, expected non-null UniversalBleScanResult.');
try {
@@ -748,22 +815,25 @@ abstract class UniversalBleCallbackChannel {
return wrapResponse(empty: true);
} on PlatformException catch (e) {
return wrapResponse(error: e);
} catch (e) {
return wrapResponse(error: PlatformException(code: 'error', message: e.toString()));
} catch (e) {
return wrapResponse(
error: PlatformException(code: 'error', message: e.toString()));
}
});
}
}
{
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onValueChanged$messageChannelSuffix', pigeonChannelCodec,
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<
Object?>(
'dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onValueChanged$messageChannelSuffix',
pigeonChannelCodec,
binaryMessenger: binaryMessenger);
if (api == null) {
__pigeon_channel.setMessageHandler(null);
} else {
__pigeon_channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onValueChanged was null.');
'Argument for dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onValueChanged was null.');
final List<Object?> args = (message as List<Object?>?)!;
final String? arg_deviceId = (args[0] as String?);
assert(arg_deviceId != null,
@@ -775,26 +845,30 @@ abstract class UniversalBleCallbackChannel {
assert(arg_value != null,
'Argument for dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onValueChanged was null, expected non-null Uint8List.');
try {
api.onValueChanged(arg_deviceId!, arg_characteristicId!, arg_value!);
api.onValueChanged(
arg_deviceId!, arg_characteristicId!, arg_value!);
return wrapResponse(empty: true);
} on PlatformException catch (e) {
return wrapResponse(error: e);
} catch (e) {
return wrapResponse(error: PlatformException(code: 'error', message: e.toString()));
} catch (e) {
return wrapResponse(
error: PlatformException(code: 'error', message: e.toString()));
}
});
}
}
{
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onConnectionChanged$messageChannelSuffix', pigeonChannelCodec,
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<
Object?>(
'dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onConnectionChanged$messageChannelSuffix',
pigeonChannelCodec,
binaryMessenger: binaryMessenger);
if (api == null) {
__pigeon_channel.setMessageHandler(null);
} else {
__pigeon_channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onConnectionChanged was null.');
'Argument for dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onConnectionChanged was null.');
final List<Object?> args = (message as List<Object?>?)!;
final String? arg_deviceId = (args[0] as String?);
assert(arg_deviceId != null,
@@ -807,8 +881,9 @@ abstract class UniversalBleCallbackChannel {
return wrapResponse(empty: true);
} on PlatformException catch (e) {
return wrapResponse(error: e);
} catch (e) {
return wrapResponse(error: PlatformException(code: 'error', message: e.toString()));
} catch (e) {
return wrapResponse(
error: PlatformException(code: 'error', message: e.toString()));
}
});
}
@@ -126,10 +126,10 @@ class UniversalBlePigeonChannel extends UniversalBlePlatform {
availabilityChange: (AvailabilityState state) =>
onAvailabilityChange?.call(state),
connectionChanged: (String deviceId, BleConnectionState state) =>
onConnectionChanged?.call(deviceId, state),
onConnectionChange?.call(deviceId, state),
valueChanged:
(String deviceId, String characteristicId, Uint8List value) =>
onValueChanged?.call(deviceId, characteristicId, value),
onValueChange?.call(deviceId, characteristicId, value),
pairStateChange: (String deviceId, bool isPaired, String? error) =>
onPairingStateChange?.call(deviceId, isPaired, error),
));
@@ -156,8 +156,8 @@ extension _BleServiceExtension on UniversalBleService {
class _UniversalBleCallbackHandler extends UniversalBleCallbackChannel {
OnAvailabilityChange availabilityChange;
OnScanResult scanResult;
OnConnectionChanged connectionChanged;
OnValueChanged valueChanged;
OnConnectionChange connectionChanged;
OnValueChange valueChanged;
OnPairingStateChange pairStateChange;
_UniversalBleCallbackHandler({
@@ -63,8 +63,8 @@ abstract class UniversalBlePlatform {
OnAvailabilityChange? onAvailabilityChange;
OnScanResult? onScanResult;
OnConnectionChanged? onConnectionChanged;
OnValueChanged? onValueChanged;
OnConnectionChange? onConnectionChange;
OnValueChange? onValueChange;
OnPairingStateChange? onPairingStateChange;
static void logInfo(String message, {bool isError = false}) {
@@ -74,10 +74,10 @@ abstract class UniversalBlePlatform {
}
// Callback types
typedef OnConnectionChanged = void Function(
typedef OnConnectionChange = void Function(
String deviceId, BleConnectionState state);
typedef OnValueChanged = void Function(
typedef OnValueChange = void Function(
String deviceId, String characteristicId, Uint8List value);
typedef OnScanResult = void Function(BleDevice scanResult);
@@ -42,7 +42,7 @@ class UniversalBleWeb extends UniversalBlePlatform {
_connectedDeviceStreamList[deviceId] = device.connected.listen((event) {
if (!event) _cleanConnection(deviceId);
onConnectionChanged?.call(
onConnectionChange?.call(
deviceId,
event ? BleConnectionState.connected : BleConnectionState.disconnected,
);
@@ -52,7 +52,7 @@ class UniversalBleWeb extends UniversalBlePlatform {
@override
Future<void> disconnect(String deviceId) async {
_cleanConnection(deviceId);
onConnectionChanged?.call(deviceId, BleConnectionState.disconnected);
onConnectionChange?.call(deviceId, BleConnectionState.disconnected);
_getDeviceById(deviceId)?.disconnect();
}
@@ -214,7 +214,7 @@ class UniversalBleWeb extends UniversalBlePlatform {
_characteristicStreamList[characteristicKey] = bleCharacteristic.value
.map((event) => event.buffer.asUint8List())
.listen((event) {
onValueChanged?.call(deviceId, characteristic, event);
onValueChange?.call(deviceId, characteristic, event);
});
}
// Cancel Notification