From fc35f744883ed72d2ed87f68e7d7ecfb578ebd5a Mon Sep 17 00:00:00 2001 From: iAMD Date: Thu, 15 Jul 2021 20:18:49 +0800 Subject: [PATCH] =?UTF-8?q?iOS=20=E5=B9=B3=E5=8F=B0=E5=AE=9E=E7=8E=B0=20(#?= =?UTF-8?q?2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 修复 UUID 创建失败的问题 * 移除 scanning 属性 * 临时提交 * CentralManager 开发 & 示例项目开发 * CentralManager 开发 & 示例项目开发 * android 插件生命周期监听 * 修改 API * 示例程序开发 * 修改字体,添加 API,解决后台问题 * Central#connect API * 蓝牙连接部分开发 * 蓝牙连接部分开发 * 解决一些问题 * 解决一些问题 * Connect API 优化 * 添加 API * example 开发 * API 基本完成 * 消息重命名 * API 修改,Android 实现 * 删除多余代码 * 删除多余文件 * 解决 descriptor 自动生成报错的问题 * 还原 Kotlin 版本,广播处理代码迁移至 dart 端 * Kotlin 版本升至 1.5.20 * 解决特征值通知没有在主线程触发的问题,优化代码 * 引入哈希值,避免对象销毁后继续使用 * 使用下拉刷新代替搜索按钮 * 解决由于热重载和蓝牙关闭产生的问题 * 更新插件信息 * 更新 README 和 CHANGELOG * 更新许可证 * 添加注释 * 添加注释,central 拆分 * dartfmt -w . * flutter build ios --no-codesign * API 重构 * 添加 connectable 属性 * Android 8.0 之前无法获取 connectable 属性 * 解决合并错误 * 解决连接时可能引发异常的一个问题,iOS 开发 * API 修改,TODO: iOS 哈希值为 64 位无法用 Int32 表示 * iOS 开发 * iOS 开发完成,使用 UUID 实现对象映射 * 更新版本记录和文档 --- CHANGELOG.md | 7 + README.md | 9 +- android/build.gradle | 2 +- .../MessageOuterClass.java | 8686 +++++++++++------ .../BluetoothLowEnergyPlugin.kt | 558 +- .../ConnectArgumentsKt.kt | 18 +- .../bluetooth_low_energy/ConnectionLostKt.kt | 62 - .../bluetooth_low_energy/DiscoveryKt.kt | 35 +- .../bluetooth_low_energy/GATTKt.kt | 36 +- .../GattCharacteristicKt.kt | 162 +- .../GattCharacteristicNotifyArgumentsKt.kt | 75 +- .../GattCharacteristicReadArgumentsKt.kt | 71 +- .../GattCharacteristicValueKt.kt | 52 +- .../GattCharacteristicWriteArgumentsKt.kt | 79 +- .../GattConnectionLostKt.kt | 62 + .../bluetooth_low_energy/GattDescriptorKt.kt | 18 +- .../GattDescriptorReadArgumentsKt.kt | 89 +- .../GattDescriptorWriteArgumentsKt.kt | 93 +- .../GattDisconnectArgumentsKt.kt | 35 +- .../bluetooth_low_energy/GattServiceKt.kt | 18 +- .../bluetooth_low_energy/MessageKt.kt | 222 +- .../bluetooth_low_energy/NativeGATT.kt | 5 + .../NativeGattCharacteristic.kt | 5 + .../NativeGattDescriptor.kt | 5 + .../bluetooth_low_energy/NativeGattService.kt | 5 + .../bluetooth_low_energy/NativeValue.kt | 7 + example/android/build.gradle | 2 +- example/ios/Flutter/Debug.xcconfig | 1 + example/ios/Flutter/Release.xcconfig | 1 + example/ios/Podfile | 41 + example/ios/Podfile.lock | 29 + example/ios/Runner.xcodeproj/project.pbxproj | 90 +- .../contents.xcworkspacedata | 3 + example/ios/Runner/Info.plist | 2 + example/lib/main.dart | 89 +- example/pubspec.lock | 54 +- ios/Classes/NativeGATT.swift | 18 + ios/Classes/NativeGattCharacteristic.swift | 18 + ios/Classes/NativeGattDescriptor.swift | 12 + ios/Classes/NativeGattService.swift | 18 + ios/Classes/NativeValue.swift | 17 + .../SwiftBluetoothLowEnergyPlugin.swift | 516 +- ios/Classes/message.pb.swift | 1540 +++ ios/bluetooth_low_energy.podspec | 11 +- lib/bluetooth_low_energy.dart | 1 - lib/src/bluetooth.dart | 40 +- lib/src/central.dart | 34 +- lib/src/discovery.dart | 11 +- lib/src/extension.dart | 144 +- lib/src/gatt.dart | 32 +- lib/src/gatt_characteristic.dart | 82 +- lib/src/gatt_descriptor.dart | 54 +- lib/src/gatt_service.dart | 6 +- lib/src/mac.dart | 34 - lib/src/message.pb.dart | 1273 +-- lib/src/message.pbenum.dart | 60 +- lib/src/message.pbjson.dart | 301 +- lib/src/util.dart | 5 +- lib/src/uuid.dart | 4 +- proto/message.proto | 139 +- pubspec.lock | 48 +- pubspec.yaml | 2 +- test/bluetooth_low_energy_test.dart | 397 +- 63 files changed, 10278 insertions(+), 5267 deletions(-) delete mode 100644 android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/ConnectionLostKt.kt create mode 100644 android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattConnectionLostKt.kt create mode 100644 android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGATT.kt create mode 100644 android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGattCharacteristic.kt create mode 100644 android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGattDescriptor.kt create mode 100644 android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGattService.kt create mode 100644 android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeValue.kt create mode 100644 example/ios/Podfile create mode 100644 example/ios/Podfile.lock create mode 100644 ios/Classes/NativeGATT.swift create mode 100644 ios/Classes/NativeGattCharacteristic.swift create mode 100644 ios/Classes/NativeGattDescriptor.swift create mode 100644 ios/Classes/NativeGattService.swift create mode 100644 ios/Classes/NativeValue.swift create mode 100644 ios/Classes/message.pb.swift delete mode 100644 lib/src/mac.dart diff --git a/CHANGELOG.md b/CHANGELOG.md index 4574166..c897dba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.1.0 + +- Add implements on iOS. +- Combine available and state for Bluetooth. +- Add connectable for Discovery. +- Add maximumWriteLength for GATT. + ## 0.0.2 - Fix connect blocked when bluetooth closed. diff --git a/README.md b/README.md index 00e6f4d..807b8c9 100644 --- a/README.md +++ b/README.md @@ -26,17 +26,16 @@ dependencies: bluetooth_low_energy: ^ ``` +*Note*: Bluetooth Low Energy doesn't work on Android emulators, so use physical devices which has bluetooth features for development. + ### Android Make sure you have a `miniSdkVersion` with 21 or higher in your `android/app/build.gradle` file, now we only support Android 5.0 or above. -*Note*: Bluetooth Low Energy doesn't work on Android emulators, so use physical devices which has bluetooth features for development. - ### iOS -TO BE DONE. +Make sure you have a minimum deployment target of 9.0 or above, you can uncomment the first line `platform :ios, '9.0'` in your iOS project's `Podfile`. ## Issues -- Only support Android for now, iOS will available as soon as possible. -- Only support central APIs for now. +- Not support peripheral APIs for now. diff --git a/android/build.gradle b/android/build.gradle index 4339c91..0871e66 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -2,7 +2,7 @@ group 'dev.yanshouwang.bluetooth_low_energy' version '1.0-SNAPSHOT' buildscript { - ext.kotlin_version = '1.5.20' + ext.kotlin_version = '1.5.21' repositories { google() mavenCentral() diff --git a/android/src/main/java/dev/yanshouwang/bluetooth_low_energy/MessageOuterClass.java b/android/src/main/java/dev/yanshouwang/bluetooth_low_energy/MessageOuterClass.java index e23904e..b56fdeb 100644 --- a/android/src/main/java/dev/yanshouwang/bluetooth_low_energy/MessageOuterClass.java +++ b/android/src/main/java/dev/yanshouwang/bluetooth_low_energy/MessageOuterClass.java @@ -20,112 +20,104 @@ public final class MessageOuterClass { public enum MessageCategory implements com.google.protobuf.ProtocolMessageEnum { /** - * BLUETOOTH_AVAILABLE = 0; + * BLUETOOTH_STATE = 0; */ - BLUETOOTH_AVAILABLE(0), + BLUETOOTH_STATE(0), /** - * BLUETOOTH_STATE = 1; + * CENTRAL_START_DISCOVERY = 1; */ - BLUETOOTH_STATE(1), + CENTRAL_START_DISCOVERY(1), /** - * CENTRAL_START_DISCOVERY = 2; + * CENTRAL_STOP_DISCOVERY = 2; */ - CENTRAL_START_DISCOVERY(2), + CENTRAL_STOP_DISCOVERY(2), /** - * CENTRAL_STOP_DISCOVERY = 3; + * CENTRAL_DISCOVERED = 3; */ - CENTRAL_STOP_DISCOVERY(3), + CENTRAL_DISCOVERED(3), /** - * CENTRAL_DISCOVERED = 4; + * CENTRAL_CONNECT = 4; */ - CENTRAL_DISCOVERED(4), + CENTRAL_CONNECT(4), /** - * CENTRAL_CONNECT = 5; + * GATT_DISCONNECT = 5; */ - CENTRAL_CONNECT(5), + GATT_DISCONNECT(5), /** - * GATT_DISCONNECT = 6; + * GATT_CONNECTION_LOST = 6; */ - GATT_DISCONNECT(6), + GATT_CONNECTION_LOST(6), /** - * GATT_CONNECTION_LOST = 7; + * GATT_CHARACTERISTIC_READ = 7; */ - GATT_CONNECTION_LOST(7), + GATT_CHARACTERISTIC_READ(7), /** - * GATT_CHARACTERISTIC_READ = 8; + * GATT_CHARACTERISTIC_WRITE = 8; */ - GATT_CHARACTERISTIC_READ(8), + GATT_CHARACTERISTIC_WRITE(8), /** - * GATT_CHARACTERISTIC_WRITE = 9; + * GATT_CHARACTERISTIC_NOTIFY = 9; */ - GATT_CHARACTERISTIC_WRITE(9), + GATT_CHARACTERISTIC_NOTIFY(9), /** - * GATT_CHARACTERISTIC_NOTIFY = 10; + * GATT_DESCRIPTOR_READ = 10; */ - GATT_CHARACTERISTIC_NOTIFY(10), + GATT_DESCRIPTOR_READ(10), /** - * GATT_DESCRIPTOR_READ = 11; + * GATT_DESCRIPTOR_WRITE = 11; */ - GATT_DESCRIPTOR_READ(11), - /** - * GATT_DESCRIPTOR_WRITE = 12; - */ - GATT_DESCRIPTOR_WRITE(12), + GATT_DESCRIPTOR_WRITE(11), UNRECOGNIZED(-1), ; /** - * BLUETOOTH_AVAILABLE = 0; + * BLUETOOTH_STATE = 0; */ - public static final int BLUETOOTH_AVAILABLE_VALUE = 0; + public static final int BLUETOOTH_STATE_VALUE = 0; /** - * BLUETOOTH_STATE = 1; + * CENTRAL_START_DISCOVERY = 1; */ - public static final int BLUETOOTH_STATE_VALUE = 1; + public static final int CENTRAL_START_DISCOVERY_VALUE = 1; /** - * CENTRAL_START_DISCOVERY = 2; + * CENTRAL_STOP_DISCOVERY = 2; */ - public static final int CENTRAL_START_DISCOVERY_VALUE = 2; + public static final int CENTRAL_STOP_DISCOVERY_VALUE = 2; /** - * CENTRAL_STOP_DISCOVERY = 3; + * CENTRAL_DISCOVERED = 3; */ - public static final int CENTRAL_STOP_DISCOVERY_VALUE = 3; + public static final int CENTRAL_DISCOVERED_VALUE = 3; /** - * CENTRAL_DISCOVERED = 4; + * CENTRAL_CONNECT = 4; */ - public static final int CENTRAL_DISCOVERED_VALUE = 4; + public static final int CENTRAL_CONNECT_VALUE = 4; /** - * CENTRAL_CONNECT = 5; + * GATT_DISCONNECT = 5; */ - public static final int CENTRAL_CONNECT_VALUE = 5; + public static final int GATT_DISCONNECT_VALUE = 5; /** - * GATT_DISCONNECT = 6; + * GATT_CONNECTION_LOST = 6; */ - public static final int GATT_DISCONNECT_VALUE = 6; + public static final int GATT_CONNECTION_LOST_VALUE = 6; /** - * GATT_CONNECTION_LOST = 7; + * GATT_CHARACTERISTIC_READ = 7; */ - public static final int GATT_CONNECTION_LOST_VALUE = 7; + public static final int GATT_CHARACTERISTIC_READ_VALUE = 7; /** - * GATT_CHARACTERISTIC_READ = 8; + * GATT_CHARACTERISTIC_WRITE = 8; */ - public static final int GATT_CHARACTERISTIC_READ_VALUE = 8; + public static final int GATT_CHARACTERISTIC_WRITE_VALUE = 8; /** - * GATT_CHARACTERISTIC_WRITE = 9; + * GATT_CHARACTERISTIC_NOTIFY = 9; */ - public static final int GATT_CHARACTERISTIC_WRITE_VALUE = 9; + public static final int GATT_CHARACTERISTIC_NOTIFY_VALUE = 9; /** - * GATT_CHARACTERISTIC_NOTIFY = 10; + * GATT_DESCRIPTOR_READ = 10; */ - public static final int GATT_CHARACTERISTIC_NOTIFY_VALUE = 10; + public static final int GATT_DESCRIPTOR_READ_VALUE = 10; /** - * GATT_DESCRIPTOR_READ = 11; + * GATT_DESCRIPTOR_WRITE = 11; */ - public static final int GATT_DESCRIPTOR_READ_VALUE = 11; - /** - * GATT_DESCRIPTOR_WRITE = 12; - */ - public static final int GATT_DESCRIPTOR_WRITE_VALUE = 12; + public static final int GATT_DESCRIPTOR_WRITE_VALUE = 11; public final int getNumber() { @@ -152,19 +144,18 @@ public final class MessageOuterClass { */ public static MessageCategory forNumber(int value) { switch (value) { - case 0: return BLUETOOTH_AVAILABLE; - case 1: return BLUETOOTH_STATE; - case 2: return CENTRAL_START_DISCOVERY; - case 3: return CENTRAL_STOP_DISCOVERY; - case 4: return CENTRAL_DISCOVERED; - case 5: return CENTRAL_CONNECT; - case 6: return GATT_DISCONNECT; - case 7: return GATT_CONNECTION_LOST; - case 8: return GATT_CHARACTERISTIC_READ; - case 9: return GATT_CHARACTERISTIC_WRITE; - case 10: return GATT_CHARACTERISTIC_NOTIFY; - case 11: return GATT_DESCRIPTOR_READ; - case 12: return GATT_DESCRIPTOR_WRITE; + case 0: return BLUETOOTH_STATE; + case 1: return CENTRAL_START_DISCOVERY; + case 2: return CENTRAL_STOP_DISCOVERY; + case 3: return CENTRAL_DISCOVERED; + case 4: return CENTRAL_CONNECT; + case 5: return GATT_DISCONNECT; + case 6: return GATT_CONNECTION_LOST; + case 7: return GATT_CHARACTERISTIC_READ; + case 8: return GATT_CHARACTERISTIC_WRITE; + case 9: return GATT_CHARACTERISTIC_NOTIFY; + case 10: return GATT_DESCRIPTOR_READ; + case 11: return GATT_DESCRIPTOR_WRITE; default: return null; } } @@ -221,6 +212,123 @@ public final class MessageOuterClass { // @@protoc_insertion_point(enum_scope:dev.yanshouwang.bluetooth_low_energy.MessageCategory) } + /** + * Protobuf enum {@code dev.yanshouwang.bluetooth_low_energy.BluetoothState} + */ + public enum BluetoothState + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNSUPPORTED = 0; + */ + UNSUPPORTED(0), + /** + * POWERED_OFF = 1; + */ + POWERED_OFF(1), + /** + * POWERED_ON = 2; + */ + POWERED_ON(2), + UNRECOGNIZED(-1), + ; + + /** + * UNSUPPORTED = 0; + */ + public static final int UNSUPPORTED_VALUE = 0; + /** + * POWERED_OFF = 1; + */ + public static final int POWERED_OFF_VALUE = 1; + /** + * POWERED_ON = 2; + */ + public static final int POWERED_ON_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static BluetoothState valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static BluetoothState forNumber(int value) { + switch (value) { + case 0: return UNSUPPORTED; + case 1: return POWERED_OFF; + case 2: return POWERED_ON; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + BluetoothState> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public BluetoothState findValueByNumber(int number) { + return BluetoothState.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.getDescriptor().getEnumTypes().get(1); + } + + private static final BluetoothState[] VALUES = values(); + + public static BluetoothState valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private BluetoothState(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:dev.yanshouwang.bluetooth_low_energy.BluetoothState) + } + public interface MessageOrBuilder extends // @@protoc_insertion_point(interface_extends:dev.yanshouwang.bluetooth_low_energy.Message) com.google.protobuf.MessageOrBuilder { @@ -237,72 +345,186 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.MessageCategory getCategory(); /** - * bool state = 2; + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; * @return Whether the state field is set. */ boolean hasState(); /** - * bool state = 2; + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + /** + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; * @return The state. */ - boolean getState(); + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState getState(); /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + * @return Whether the startDiscoveryArguments field is set. + */ + boolean hasStartDiscoveryArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + * @return The startDiscoveryArguments. + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments getStartDiscoveryArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArgumentsOrBuilder getStartDiscoveryArgumentsOrBuilder(); + + /** + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; * @return Whether the discovery field is set. */ boolean hasDiscovery(); /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; * @return The discovery. */ dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery getDiscovery(); /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; */ dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.DiscoveryOrBuilder getDiscoveryOrBuilder(); /** - * bool scanning = 4; - * @return Whether the scanning field is set. + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; + * @return Whether the connectArguments field is set. */ - boolean hasScanning(); + boolean hasConnectArguments(); /** - * bool scanning = 4; - * @return The scanning. + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; + * @return The connectArguments. */ - boolean getScanning(); + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments getConnectArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArgumentsOrBuilder getConnectArgumentsOrBuilder(); /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + * @return Whether the disconnectArguments field is set. + */ + boolean hasDisconnectArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + * @return The disconnectArguments. + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments getDisconnectArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArgumentsOrBuilder getDisconnectArgumentsOrBuilder(); + + /** + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; * @return Whether the connectionLost field is set. */ boolean hasConnectionLost(); /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; * @return The connectionLost. */ - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost getConnectionLost(); + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost getConnectionLost(); /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; */ - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLostOrBuilder getConnectionLostOrBuilder(); + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLostOrBuilder getConnectionLostOrBuilder(); /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + * @return Whether the characteristicReadArguments field is set. + */ + boolean hasCharacteristicReadArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + * @return The characteristicReadArguments. + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments getCharacteristicReadArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArgumentsOrBuilder getCharacteristicReadArgumentsOrBuilder(); + + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + * @return Whether the characteristicWriteArguments field is set. + */ + boolean hasCharacteristicWriteArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + * @return The characteristicWriteArguments. + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments getCharacteristicWriteArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArgumentsOrBuilder getCharacteristicWriteArgumentsOrBuilder(); + + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + * @return Whether the characteristicNotifyArguments field is set. + */ + boolean hasCharacteristicNotifyArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + * @return The characteristicNotifyArguments. + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments getCharacteristicNotifyArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArgumentsOrBuilder getCharacteristicNotifyArgumentsOrBuilder(); + + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; * @return Whether the characteristicValue field is set. */ boolean hasCharacteristicValue(); /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; * @return The characteristicValue. */ dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue getCharacteristicValue(); /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; */ dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValueOrBuilder getCharacteristicValueOrBuilder(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + * @return Whether the descriptorReadArguments field is set. + */ + boolean hasDescriptorReadArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + * @return The descriptorReadArguments. + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments getDescriptorReadArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArgumentsOrBuilder getDescriptorReadArgumentsOrBuilder(); + + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + * @return Whether the descriptorWriteArguments field is set. + */ + boolean hasDescriptorWriteArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + * @return The descriptorWriteArguments. + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments getDescriptorWriteArguments(); + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArgumentsOrBuilder getDescriptorWriteArgumentsOrBuilder(); + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Message.ValueCase getValueCase(); } /** @@ -358,13 +580,28 @@ public final class MessageOuterClass { break; } case 16: { + int rawValue = input.readEnum(); valueCase_ = 2; - value_ = input.readBool(); + value_ = rawValue; break; } case 26: { - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.Builder subBuilder = null; + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.Builder subBuilder = null; if (valueCase_ == 3) { + subBuilder = ((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments) value_).toBuilder(); + } + value_ = + input.readMessage(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments) value_); + value_ = subBuilder.buildPartial(); + } + valueCase_ = 3; + break; + } + case 34: { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.Builder subBuilder = null; + if (valueCase_ == 4) { subBuilder = ((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery) value_).toBuilder(); } value_ = @@ -373,31 +610,96 @@ public final class MessageOuterClass { subBuilder.mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery) value_); value_ = subBuilder.buildPartial(); } - valueCase_ = 3; - break; - } - case 32: { valueCase_ = 4; - value_ = input.readBool(); break; } case 42: { - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.Builder subBuilder = null; + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.Builder subBuilder = null; if (valueCase_ == 5) { - subBuilder = ((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) value_).toBuilder(); + subBuilder = ((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments) value_).toBuilder(); } value_ = - input.readMessage(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.parser(), extensionRegistry); + input.readMessage(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.parser(), extensionRegistry); if (subBuilder != null) { - subBuilder.mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) value_); + subBuilder.mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments) value_); value_ = subBuilder.buildPartial(); } valueCase_ = 5; break; } case 50: { - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.Builder subBuilder = null; + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.Builder subBuilder = null; if (valueCase_ == 6) { + subBuilder = ((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) value_).toBuilder(); + } + value_ = + input.readMessage(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) value_); + value_ = subBuilder.buildPartial(); + } + valueCase_ = 6; + break; + } + case 58: { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.Builder subBuilder = null; + if (valueCase_ == 7) { + subBuilder = ((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) value_).toBuilder(); + } + value_ = + input.readMessage(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) value_); + value_ = subBuilder.buildPartial(); + } + valueCase_ = 7; + break; + } + case 66: { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.Builder subBuilder = null; + if (valueCase_ == 8) { + subBuilder = ((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments) value_).toBuilder(); + } + value_ = + input.readMessage(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments) value_); + value_ = subBuilder.buildPartial(); + } + valueCase_ = 8; + break; + } + case 74: { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.Builder subBuilder = null; + if (valueCase_ == 9) { + subBuilder = ((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments) value_).toBuilder(); + } + value_ = + input.readMessage(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments) value_); + value_ = subBuilder.buildPartial(); + } + valueCase_ = 9; + break; + } + case 82: { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.Builder subBuilder = null; + if (valueCase_ == 10) { + subBuilder = ((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments) value_).toBuilder(); + } + value_ = + input.readMessage(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments) value_); + value_ = subBuilder.buildPartial(); + } + valueCase_ = 10; + break; + } + case 90: { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.Builder subBuilder = null; + if (valueCase_ == 11) { subBuilder = ((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue) value_).toBuilder(); } value_ = @@ -406,7 +708,35 @@ public final class MessageOuterClass { subBuilder.mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue) value_); value_ = subBuilder.buildPartial(); } - valueCase_ = 6; + valueCase_ = 11; + break; + } + case 98: { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.Builder subBuilder = null; + if (valueCase_ == 12) { + subBuilder = ((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments) value_).toBuilder(); + } + value_ = + input.readMessage(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments) value_); + value_ = subBuilder.buildPartial(); + } + valueCase_ = 12; + break; + } + case 106: { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.Builder subBuilder = null; + if (valueCase_ == 13) { + subBuilder = ((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments) value_).toBuilder(); + } + value_ = + input.readMessage(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments) value_); + value_ = subBuilder.buildPartial(); + } + valueCase_ = 13; break; } default: { @@ -447,10 +777,17 @@ public final class MessageOuterClass { implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { STATE(2), - DISCOVERY(3), - SCANNING(4), - CONNECTIONLOST(5), - CHARACTERISTICVALUE(6), + STARTDISCOVERYARGUMENTS(3), + DISCOVERY(4), + CONNECTARGUMENTS(5), + DISCONNECTARGUMENTS(6), + CONNECTIONLOST(7), + CHARACTERISTICREADARGUMENTS(8), + CHARACTERISTICWRITEARGUMENTS(9), + CHARACTERISTICNOTIFYARGUMENTS(10), + CHARACTERISTICVALUE(11), + DESCRIPTORREADARGUMENTS(12), + DESCRIPTORWRITEARGUMENTS(13), VALUE_NOT_SET(0); private final int value; private ValueCase(int value) { @@ -469,10 +806,17 @@ public final class MessageOuterClass { public static ValueCase forNumber(int value) { switch (value) { case 2: return STATE; - case 3: return DISCOVERY; - case 4: return SCANNING; - case 5: return CONNECTIONLOST; - case 6: return CHARACTERISTICVALUE; + case 3: return STARTDISCOVERYARGUMENTS; + case 4: return DISCOVERY; + case 5: return CONNECTARGUMENTS; + case 6: return DISCONNECTARGUMENTS; + case 7: return CONNECTIONLOST; + case 8: return CHARACTERISTICREADARGUMENTS; + case 9: return CHARACTERISTICWRITEARGUMENTS; + case 10: return CHARACTERISTICNOTIFYARGUMENTS; + case 11: return CHARACTERISTICVALUE; + case 12: return DESCRIPTORREADARGUMENTS; + case 13: return DESCRIPTORWRITEARGUMENTS; case 0: return VALUE_NOT_SET; default: return null; } @@ -509,139 +853,377 @@ public final class MessageOuterClass { public static final int STATE_FIELD_NUMBER = 2; /** - * bool state = 2; + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; * @return Whether the state field is set. */ - @java.lang.Override public boolean hasState() { return valueCase_ == 2; } /** - * bool state = 2; + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; + * @return The enum numeric value on the wire for state. + */ + public int getStateValue() { + if (valueCase_ == 2) { + return (java.lang.Integer) value_; + } + return 0; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; * @return The state. */ - @java.lang.Override - public boolean getState() { + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState getState() { if (valueCase_ == 2) { - return (java.lang.Boolean) value_; + @SuppressWarnings("deprecation") + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState result = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState.valueOf( + (java.lang.Integer) value_); + return result == null ? dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState.UNRECOGNIZED : result; } - return false; + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState.UNSUPPORTED; } - public static final int DISCOVERY_FIELD_NUMBER = 3; + public static final int STARTDISCOVERYARGUMENTS_FIELD_NUMBER = 3; /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + * @return Whether the startDiscoveryArguments field is set. + */ + @java.lang.Override + public boolean hasStartDiscoveryArguments() { + return valueCase_ == 3; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + * @return The startDiscoveryArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments getStartDiscoveryArguments() { + if (valueCase_ == 3) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.getDefaultInstance(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArgumentsOrBuilder getStartDiscoveryArgumentsOrBuilder() { + if (valueCase_ == 3) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.getDefaultInstance(); + } + + public static final int DISCOVERY_FIELD_NUMBER = 4; + /** + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; * @return Whether the discovery field is set. */ @java.lang.Override public boolean hasDiscovery() { - return valueCase_ == 3; + return valueCase_ == 4; } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; * @return The discovery. */ @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery getDiscovery() { - if (valueCase_ == 3) { + if (valueCase_ == 4) { return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery) value_; } return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.getDefaultInstance(); } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; */ @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.DiscoveryOrBuilder getDiscoveryOrBuilder() { - if (valueCase_ == 3) { + if (valueCase_ == 4) { return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery) value_; } return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.getDefaultInstance(); } - public static final int SCANNING_FIELD_NUMBER = 4; + public static final int CONNECTARGUMENTS_FIELD_NUMBER = 5; /** - * bool scanning = 4; - * @return Whether the scanning field is set. + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; + * @return Whether the connectArguments field is set. */ @java.lang.Override - public boolean hasScanning() { - return valueCase_ == 4; + public boolean hasConnectArguments() { + return valueCase_ == 5; } /** - * bool scanning = 4; - * @return The scanning. + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; + * @return The connectArguments. */ @java.lang.Override - public boolean getScanning() { - if (valueCase_ == 4) { - return (java.lang.Boolean) value_; + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments getConnectArguments() { + if (valueCase_ == 5) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments) value_; } - return false; + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.getDefaultInstance(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArgumentsOrBuilder getConnectArgumentsOrBuilder() { + if (valueCase_ == 5) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.getDefaultInstance(); } - public static final int CONNECTIONLOST_FIELD_NUMBER = 5; + public static final int DISCONNECTARGUMENTS_FIELD_NUMBER = 6; /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + * @return Whether the disconnectArguments field is set. + */ + @java.lang.Override + public boolean hasDisconnectArguments() { + return valueCase_ == 6; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + * @return The disconnectArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments getDisconnectArguments() { + if (valueCase_ == 6) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.getDefaultInstance(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArgumentsOrBuilder getDisconnectArgumentsOrBuilder() { + if (valueCase_ == 6) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.getDefaultInstance(); + } + + public static final int CONNECTIONLOST_FIELD_NUMBER = 7; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; * @return Whether the connectionLost field is set. */ @java.lang.Override public boolean hasConnectionLost() { - return valueCase_ == 5; + return valueCase_ == 7; } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; * @return The connectionLost. */ @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost getConnectionLost() { - if (valueCase_ == 5) { - return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) value_; + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost getConnectionLost() { + if (valueCase_ == 7) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) value_; } - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.getDefaultInstance(); + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.getDefaultInstance(); } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; */ @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLostOrBuilder getConnectionLostOrBuilder() { - if (valueCase_ == 5) { - return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) value_; + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLostOrBuilder getConnectionLostOrBuilder() { + if (valueCase_ == 7) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) value_; } - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.getDefaultInstance(); + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.getDefaultInstance(); } - public static final int CHARACTERISTICVALUE_FIELD_NUMBER = 6; + public static final int CHARACTERISTICREADARGUMENTS_FIELD_NUMBER = 8; /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + * @return Whether the characteristicReadArguments field is set. + */ + @java.lang.Override + public boolean hasCharacteristicReadArguments() { + return valueCase_ == 8; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + * @return The characteristicReadArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments getCharacteristicReadArguments() { + if (valueCase_ == 8) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.getDefaultInstance(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArgumentsOrBuilder getCharacteristicReadArgumentsOrBuilder() { + if (valueCase_ == 8) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.getDefaultInstance(); + } + + public static final int CHARACTERISTICWRITEARGUMENTS_FIELD_NUMBER = 9; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + * @return Whether the characteristicWriteArguments field is set. + */ + @java.lang.Override + public boolean hasCharacteristicWriteArguments() { + return valueCase_ == 9; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + * @return The characteristicWriteArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments getCharacteristicWriteArguments() { + if (valueCase_ == 9) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.getDefaultInstance(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArgumentsOrBuilder getCharacteristicWriteArgumentsOrBuilder() { + if (valueCase_ == 9) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.getDefaultInstance(); + } + + public static final int CHARACTERISTICNOTIFYARGUMENTS_FIELD_NUMBER = 10; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + * @return Whether the characteristicNotifyArguments field is set. + */ + @java.lang.Override + public boolean hasCharacteristicNotifyArguments() { + return valueCase_ == 10; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + * @return The characteristicNotifyArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments getCharacteristicNotifyArguments() { + if (valueCase_ == 10) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.getDefaultInstance(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArgumentsOrBuilder getCharacteristicNotifyArgumentsOrBuilder() { + if (valueCase_ == 10) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.getDefaultInstance(); + } + + public static final int CHARACTERISTICVALUE_FIELD_NUMBER = 11; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; * @return Whether the characteristicValue field is set. */ @java.lang.Override public boolean hasCharacteristicValue() { - return valueCase_ == 6; + return valueCase_ == 11; } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; * @return The characteristicValue. */ @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue getCharacteristicValue() { - if (valueCase_ == 6) { + if (valueCase_ == 11) { return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue) value_; } return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.getDefaultInstance(); } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; */ @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValueOrBuilder getCharacteristicValueOrBuilder() { - if (valueCase_ == 6) { + if (valueCase_ == 11) { return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue) value_; } return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.getDefaultInstance(); } + public static final int DESCRIPTORREADARGUMENTS_FIELD_NUMBER = 12; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + * @return Whether the descriptorReadArguments field is set. + */ + @java.lang.Override + public boolean hasDescriptorReadArguments() { + return valueCase_ == 12; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + * @return The descriptorReadArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments getDescriptorReadArguments() { + if (valueCase_ == 12) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.getDefaultInstance(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArgumentsOrBuilder getDescriptorReadArgumentsOrBuilder() { + if (valueCase_ == 12) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.getDefaultInstance(); + } + + public static final int DESCRIPTORWRITEARGUMENTS_FIELD_NUMBER = 13; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + * @return Whether the descriptorWriteArguments field is set. + */ + @java.lang.Override + public boolean hasDescriptorWriteArguments() { + return valueCase_ == 13; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + * @return The descriptorWriteArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments getDescriptorWriteArguments() { + if (valueCase_ == 13) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.getDefaultInstance(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArgumentsOrBuilder getDescriptorWriteArgumentsOrBuilder() { + if (valueCase_ == 13) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.getDefaultInstance(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -656,25 +1238,44 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (category_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.MessageCategory.BLUETOOTH_AVAILABLE.getNumber()) { + if (category_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.MessageCategory.BLUETOOTH_STATE.getNumber()) { output.writeEnum(1, category_); } if (valueCase_ == 2) { - output.writeBool( - 2, (boolean)((java.lang.Boolean) value_)); + output.writeEnum(2, ((java.lang.Integer) value_)); } if (valueCase_ == 3) { - output.writeMessage(3, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery) value_); + output.writeMessage(3, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments) value_); } if (valueCase_ == 4) { - output.writeBool( - 4, (boolean)((java.lang.Boolean) value_)); + output.writeMessage(4, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery) value_); } if (valueCase_ == 5) { - output.writeMessage(5, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) value_); + output.writeMessage(5, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments) value_); } if (valueCase_ == 6) { - output.writeMessage(6, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue) value_); + output.writeMessage(6, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) value_); + } + if (valueCase_ == 7) { + output.writeMessage(7, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) value_); + } + if (valueCase_ == 8) { + output.writeMessage(8, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments) value_); + } + if (valueCase_ == 9) { + output.writeMessage(9, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments) value_); + } + if (valueCase_ == 10) { + output.writeMessage(10, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments) value_); + } + if (valueCase_ == 11) { + output.writeMessage(11, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue) value_); + } + if (valueCase_ == 12) { + output.writeMessage(12, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments) value_); + } + if (valueCase_ == 13) { + output.writeMessage(13, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments) value_); } unknownFields.writeTo(output); } @@ -685,31 +1286,57 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (category_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.MessageCategory.BLUETOOTH_AVAILABLE.getNumber()) { + if (category_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.MessageCategory.BLUETOOTH_STATE.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(1, category_); } if (valueCase_ == 2) { size += com.google.protobuf.CodedOutputStream - .computeBoolSize( - 2, (boolean)((java.lang.Boolean) value_)); + .computeEnumSize(2, ((java.lang.Integer) value_)); } if (valueCase_ == 3) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery) value_); + .computeMessageSize(3, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments) value_); } if (valueCase_ == 4) { size += com.google.protobuf.CodedOutputStream - .computeBoolSize( - 4, (boolean)((java.lang.Boolean) value_)); + .computeMessageSize(4, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery) value_); } if (valueCase_ == 5) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) value_); + .computeMessageSize(5, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments) value_); } if (valueCase_ == 6) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(6, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue) value_); + .computeMessageSize(6, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) value_); + } + if (valueCase_ == 7) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) value_); + } + if (valueCase_ == 8) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(8, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments) value_); + } + if (valueCase_ == 9) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(9, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments) value_); + } + if (valueCase_ == 10) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(10, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments) value_); + } + if (valueCase_ == 11) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(11, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue) value_); + } + if (valueCase_ == 12) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(12, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments) value_); + } + if (valueCase_ == 13) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(13, (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments) value_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -730,25 +1357,53 @@ public final class MessageOuterClass { if (!getValueCase().equals(other.getValueCase())) return false; switch (valueCase_) { case 2: - if (getState() - != other.getState()) return false; + if (getStateValue() + != other.getStateValue()) return false; break; case 3: + if (!getStartDiscoveryArguments() + .equals(other.getStartDiscoveryArguments())) return false; + break; + case 4: if (!getDiscovery() .equals(other.getDiscovery())) return false; break; - case 4: - if (getScanning() - != other.getScanning()) return false; - break; case 5: + if (!getConnectArguments() + .equals(other.getConnectArguments())) return false; + break; + case 6: + if (!getDisconnectArguments() + .equals(other.getDisconnectArguments())) return false; + break; + case 7: if (!getConnectionLost() .equals(other.getConnectionLost())) return false; break; - case 6: + case 8: + if (!getCharacteristicReadArguments() + .equals(other.getCharacteristicReadArguments())) return false; + break; + case 9: + if (!getCharacteristicWriteArguments() + .equals(other.getCharacteristicWriteArguments())) return false; + break; + case 10: + if (!getCharacteristicNotifyArguments() + .equals(other.getCharacteristicNotifyArguments())) return false; + break; + case 11: if (!getCharacteristicValue() .equals(other.getCharacteristicValue())) return false; break; + case 12: + if (!getDescriptorReadArguments() + .equals(other.getDescriptorReadArguments())) return false; + break; + case 13: + if (!getDescriptorWriteArguments() + .equals(other.getDescriptorWriteArguments())) return false; + break; case 0: default: } @@ -768,26 +1423,52 @@ public final class MessageOuterClass { switch (valueCase_) { case 2: hash = (37 * hash) + STATE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getState()); + hash = (53 * hash) + getStateValue(); break; case 3: + hash = (37 * hash) + STARTDISCOVERYARGUMENTS_FIELD_NUMBER; + hash = (53 * hash) + getStartDiscoveryArguments().hashCode(); + break; + case 4: hash = (37 * hash) + DISCOVERY_FIELD_NUMBER; hash = (53 * hash) + getDiscovery().hashCode(); break; - case 4: - hash = (37 * hash) + SCANNING_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getScanning()); - break; case 5: + hash = (37 * hash) + CONNECTARGUMENTS_FIELD_NUMBER; + hash = (53 * hash) + getConnectArguments().hashCode(); + break; + case 6: + hash = (37 * hash) + DISCONNECTARGUMENTS_FIELD_NUMBER; + hash = (53 * hash) + getDisconnectArguments().hashCode(); + break; + case 7: hash = (37 * hash) + CONNECTIONLOST_FIELD_NUMBER; hash = (53 * hash) + getConnectionLost().hashCode(); break; - case 6: + case 8: + hash = (37 * hash) + CHARACTERISTICREADARGUMENTS_FIELD_NUMBER; + hash = (53 * hash) + getCharacteristicReadArguments().hashCode(); + break; + case 9: + hash = (37 * hash) + CHARACTERISTICWRITEARGUMENTS_FIELD_NUMBER; + hash = (53 * hash) + getCharacteristicWriteArguments().hashCode(); + break; + case 10: + hash = (37 * hash) + CHARACTERISTICNOTIFYARGUMENTS_FIELD_NUMBER; + hash = (53 * hash) + getCharacteristicNotifyArguments().hashCode(); + break; + case 11: hash = (37 * hash) + CHARACTERISTICVALUE_FIELD_NUMBER; hash = (53 * hash) + getCharacteristicValue().hashCode(); break; + case 12: + hash = (37 * hash) + DESCRIPTORREADARGUMENTS_FIELD_NUMBER; + hash = (53 * hash) + getDescriptorReadArguments().hashCode(); + break; + case 13: + hash = (37 * hash) + DESCRIPTORWRITEARGUMENTS_FIELD_NUMBER; + hash = (53 * hash) + getDescriptorWriteArguments().hashCode(); + break; case 0: default: } @@ -959,29 +1640,82 @@ public final class MessageOuterClass { result.value_ = value_; } if (valueCase_ == 3) { + if (startDiscoveryArgumentsBuilder_ == null) { + result.value_ = value_; + } else { + result.value_ = startDiscoveryArgumentsBuilder_.build(); + } + } + if (valueCase_ == 4) { if (discoveryBuilder_ == null) { result.value_ = value_; } else { result.value_ = discoveryBuilder_.build(); } } - if (valueCase_ == 4) { - result.value_ = value_; - } if (valueCase_ == 5) { + if (connectArgumentsBuilder_ == null) { + result.value_ = value_; + } else { + result.value_ = connectArgumentsBuilder_.build(); + } + } + if (valueCase_ == 6) { + if (disconnectArgumentsBuilder_ == null) { + result.value_ = value_; + } else { + result.value_ = disconnectArgumentsBuilder_.build(); + } + } + if (valueCase_ == 7) { if (connectionLostBuilder_ == null) { result.value_ = value_; } else { result.value_ = connectionLostBuilder_.build(); } } - if (valueCase_ == 6) { + if (valueCase_ == 8) { + if (characteristicReadArgumentsBuilder_ == null) { + result.value_ = value_; + } else { + result.value_ = characteristicReadArgumentsBuilder_.build(); + } + } + if (valueCase_ == 9) { + if (characteristicWriteArgumentsBuilder_ == null) { + result.value_ = value_; + } else { + result.value_ = characteristicWriteArgumentsBuilder_.build(); + } + } + if (valueCase_ == 10) { + if (characteristicNotifyArgumentsBuilder_ == null) { + result.value_ = value_; + } else { + result.value_ = characteristicNotifyArgumentsBuilder_.build(); + } + } + if (valueCase_ == 11) { if (characteristicValueBuilder_ == null) { result.value_ = value_; } else { result.value_ = characteristicValueBuilder_.build(); } } + if (valueCase_ == 12) { + if (descriptorReadArgumentsBuilder_ == null) { + result.value_ = value_; + } else { + result.value_ = descriptorReadArgumentsBuilder_.build(); + } + } + if (valueCase_ == 13) { + if (descriptorWriteArgumentsBuilder_ == null) { + result.value_ = value_; + } else { + result.value_ = descriptorWriteArgumentsBuilder_.build(); + } + } result.valueCase_ = valueCase_; onBuilt(); return result; @@ -1036,25 +1770,53 @@ public final class MessageOuterClass { } switch (other.getValueCase()) { case STATE: { - setState(other.getState()); + setStateValue(other.getStateValue()); + break; + } + case STARTDISCOVERYARGUMENTS: { + mergeStartDiscoveryArguments(other.getStartDiscoveryArguments()); break; } case DISCOVERY: { mergeDiscovery(other.getDiscovery()); break; } - case SCANNING: { - setScanning(other.getScanning()); + case CONNECTARGUMENTS: { + mergeConnectArguments(other.getConnectArguments()); + break; + } + case DISCONNECTARGUMENTS: { + mergeDisconnectArguments(other.getDisconnectArguments()); break; } case CONNECTIONLOST: { mergeConnectionLost(other.getConnectionLost()); break; } + case CHARACTERISTICREADARGUMENTS: { + mergeCharacteristicReadArguments(other.getCharacteristicReadArguments()); + break; + } + case CHARACTERISTICWRITEARGUMENTS: { + mergeCharacteristicWriteArguments(other.getCharacteristicWriteArguments()); + break; + } + case CHARACTERISTICNOTIFYARGUMENTS: { + mergeCharacteristicNotifyArguments(other.getCharacteristicNotifyArguments()); + break; + } case CHARACTERISTICVALUE: { mergeCharacteristicValue(other.getCharacteristicValue()); break; } + case DESCRIPTORREADARGUMENTS: { + mergeDescriptorReadArguments(other.getDescriptorReadArguments()); + break; + } + case DESCRIPTORWRITEARGUMENTS: { + mergeDescriptorWriteArguments(other.getDescriptorWriteArguments()); + break; + } case VALUE_NOT_SET: { break; } @@ -1158,35 +1920,65 @@ public final class MessageOuterClass { } /** - * bool state = 2; + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; * @return Whether the state field is set. */ + @java.lang.Override public boolean hasState() { return valueCase_ == 2; } /** - * bool state = 2; - * @return The state. + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; + * @return The enum numeric value on the wire for state. */ - public boolean getState() { + @java.lang.Override + public int getStateValue() { if (valueCase_ == 2) { - return (java.lang.Boolean) value_; + return ((java.lang.Integer) value_).intValue(); } - return false; + return 0; } /** - * bool state = 2; - * @param value The state to set. + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; + * @param value The enum numeric value on the wire for state to set. * @return This builder for chaining. */ - public Builder setState(boolean value) { + public Builder setStateValue(int value) { valueCase_ = 2; value_ = value; onChanged(); return this; } /** - * bool state = 2; + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; + * @return The state. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState getState() { + if (valueCase_ == 2) { + @SuppressWarnings("deprecation") + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState result = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState.valueOf( + (java.lang.Integer) value_); + return result == null ? dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState.UNRECOGNIZED : result; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState.UNSUPPORTED; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState value) { + if (value == null) { + throw new NullPointerException(); + } + valueCase_ = 2; + value_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; * @return This builder for chaining. */ public Builder clearState() { @@ -1198,36 +1990,177 @@ public final class MessageOuterClass { return this; } + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArgumentsOrBuilder> startDiscoveryArgumentsBuilder_; + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + * @return Whether the startDiscoveryArguments field is set. + */ + @java.lang.Override + public boolean hasStartDiscoveryArguments() { + return valueCase_ == 3; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + * @return The startDiscoveryArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments getStartDiscoveryArguments() { + if (startDiscoveryArgumentsBuilder_ == null) { + if (valueCase_ == 3) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.getDefaultInstance(); + } else { + if (valueCase_ == 3) { + return startDiscoveryArgumentsBuilder_.getMessage(); + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + */ + public Builder setStartDiscoveryArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments value) { + if (startDiscoveryArgumentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + value_ = value; + onChanged(); + } else { + startDiscoveryArgumentsBuilder_.setMessage(value); + } + valueCase_ = 3; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + */ + public Builder setStartDiscoveryArguments( + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.Builder builderForValue) { + if (startDiscoveryArgumentsBuilder_ == null) { + value_ = builderForValue.build(); + onChanged(); + } else { + startDiscoveryArgumentsBuilder_.setMessage(builderForValue.build()); + } + valueCase_ = 3; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + */ + public Builder mergeStartDiscoveryArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments value) { + if (startDiscoveryArgumentsBuilder_ == null) { + if (valueCase_ == 3 && + value_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.getDefaultInstance()) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.newBuilder((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments) value_) + .mergeFrom(value).buildPartial(); + } else { + value_ = value; + } + onChanged(); + } else { + if (valueCase_ == 3) { + startDiscoveryArgumentsBuilder_.mergeFrom(value); + } + startDiscoveryArgumentsBuilder_.setMessage(value); + } + valueCase_ = 3; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + */ + public Builder clearStartDiscoveryArguments() { + if (startDiscoveryArgumentsBuilder_ == null) { + if (valueCase_ == 3) { + valueCase_ = 0; + value_ = null; + onChanged(); + } + } else { + if (valueCase_ == 3) { + valueCase_ = 0; + value_ = null; + } + startDiscoveryArgumentsBuilder_.clear(); + } + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + */ + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.Builder getStartDiscoveryArgumentsBuilder() { + return getStartDiscoveryArgumentsFieldBuilder().getBuilder(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArgumentsOrBuilder getStartDiscoveryArgumentsOrBuilder() { + if ((valueCase_ == 3) && (startDiscoveryArgumentsBuilder_ != null)) { + return startDiscoveryArgumentsBuilder_.getMessageOrBuilder(); + } else { + if (valueCase_ == 3) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArgumentsOrBuilder> + getStartDiscoveryArgumentsFieldBuilder() { + if (startDiscoveryArgumentsBuilder_ == null) { + if (!(valueCase_ == 3)) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.getDefaultInstance(); + } + startDiscoveryArgumentsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArgumentsOrBuilder>( + (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments) value_, + getParentForChildren(), + isClean()); + value_ = null; + } + valueCase_ = 3; + onChanged();; + return startDiscoveryArgumentsBuilder_; + } + private com.google.protobuf.SingleFieldBuilderV3< dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.DiscoveryOrBuilder> discoveryBuilder_; /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; * @return Whether the discovery field is set. */ @java.lang.Override public boolean hasDiscovery() { - return valueCase_ == 3; + return valueCase_ == 4; } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; * @return The discovery. */ @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery getDiscovery() { if (discoveryBuilder_ == null) { - if (valueCase_ == 3) { + if (valueCase_ == 4) { return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery) value_; } return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.getDefaultInstance(); } else { - if (valueCase_ == 3) { + if (valueCase_ == 4) { return discoveryBuilder_.getMessage(); } return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.getDefaultInstance(); } } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; */ public Builder setDiscovery(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery value) { if (discoveryBuilder_ == null) { @@ -1239,11 +2172,11 @@ public final class MessageOuterClass { } else { discoveryBuilder_.setMessage(value); } - valueCase_ = 3; + valueCase_ = 4; return this; } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; */ public Builder setDiscovery( dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.Builder builderForValue) { @@ -1253,15 +2186,15 @@ public final class MessageOuterClass { } else { discoveryBuilder_.setMessage(builderForValue.build()); } - valueCase_ = 3; + valueCase_ = 4; return this; } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; */ public Builder mergeDiscovery(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery value) { if (discoveryBuilder_ == null) { - if (valueCase_ == 3 && + if (valueCase_ == 4 && value_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.getDefaultInstance()) { value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.newBuilder((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery) value_) .mergeFrom(value).buildPartial(); @@ -1270,26 +2203,26 @@ public final class MessageOuterClass { } onChanged(); } else { - if (valueCase_ == 3) { + if (valueCase_ == 4) { discoveryBuilder_.mergeFrom(value); } discoveryBuilder_.setMessage(value); } - valueCase_ = 3; + valueCase_ = 4; return this; } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; */ public Builder clearDiscovery() { if (discoveryBuilder_ == null) { - if (valueCase_ == 3) { + if (valueCase_ == 4) { valueCase_ = 0; value_ = null; onChanged(); } } else { - if (valueCase_ == 3) { + if (valueCase_ == 4) { valueCase_ = 0; value_ = null; } @@ -1298,33 +2231,33 @@ public final class MessageOuterClass { return this; } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; */ public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.Builder getDiscoveryBuilder() { return getDiscoveryFieldBuilder().getBuilder(); } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; */ @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.DiscoveryOrBuilder getDiscoveryOrBuilder() { - if ((valueCase_ == 3) && (discoveryBuilder_ != null)) { + if ((valueCase_ == 4) && (discoveryBuilder_ != null)) { return discoveryBuilder_.getMessageOrBuilder(); } else { - if (valueCase_ == 3) { + if (valueCase_ == 4) { return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery) value_; } return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.getDefaultInstance(); } } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; */ private com.google.protobuf.SingleFieldBuilderV3< dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.DiscoveryOrBuilder> getDiscoveryFieldBuilder() { if (discoveryBuilder_ == null) { - if (!(valueCase_ == 3)) { + if (!(valueCase_ == 4)) { value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.getDefaultInstance(); } discoveryBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< @@ -1334,118 +2267,77 @@ public final class MessageOuterClass { isClean()); value_ = null; } - valueCase_ = 3; + valueCase_ = 4; onChanged();; return discoveryBuilder_; } - /** - * bool scanning = 4; - * @return Whether the scanning field is set. - */ - public boolean hasScanning() { - return valueCase_ == 4; - } - /** - * bool scanning = 4; - * @return The scanning. - */ - public boolean getScanning() { - if (valueCase_ == 4) { - return (java.lang.Boolean) value_; - } - return false; - } - /** - * bool scanning = 4; - * @param value The scanning to set. - * @return This builder for chaining. - */ - public Builder setScanning(boolean value) { - valueCase_ = 4; - value_ = value; - onChanged(); - return this; - } - /** - * bool scanning = 4; - * @return This builder for chaining. - */ - public Builder clearScanning() { - if (valueCase_ == 4) { - valueCase_ = 0; - value_ = null; - onChanged(); - } - return this; - } - private com.google.protobuf.SingleFieldBuilderV3< - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLostOrBuilder> connectionLostBuilder_; + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArgumentsOrBuilder> connectArgumentsBuilder_; /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; - * @return Whether the connectionLost field is set. + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; + * @return Whether the connectArguments field is set. */ @java.lang.Override - public boolean hasConnectionLost() { + public boolean hasConnectArguments() { return valueCase_ == 5; } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; - * @return The connectionLost. + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; + * @return The connectArguments. */ @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost getConnectionLost() { - if (connectionLostBuilder_ == null) { + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments getConnectArguments() { + if (connectArgumentsBuilder_ == null) { if (valueCase_ == 5) { - return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) value_; + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments) value_; } - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.getDefaultInstance(); + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.getDefaultInstance(); } else { if (valueCase_ == 5) { - return connectionLostBuilder_.getMessage(); + return connectArgumentsBuilder_.getMessage(); } - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.getDefaultInstance(); + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.getDefaultInstance(); } } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; */ - public Builder setConnectionLost(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost value) { - if (connectionLostBuilder_ == null) { + public Builder setConnectArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments value) { + if (connectArgumentsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } value_ = value; onChanged(); } else { - connectionLostBuilder_.setMessage(value); + connectArgumentsBuilder_.setMessage(value); } valueCase_ = 5; return this; } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; */ - public Builder setConnectionLost( - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.Builder builderForValue) { - if (connectionLostBuilder_ == null) { + public Builder setConnectArguments( + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.Builder builderForValue) { + if (connectArgumentsBuilder_ == null) { value_ = builderForValue.build(); onChanged(); } else { - connectionLostBuilder_.setMessage(builderForValue.build()); + connectArgumentsBuilder_.setMessage(builderForValue.build()); } valueCase_ = 5; return this; } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; */ - public Builder mergeConnectionLost(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost value) { - if (connectionLostBuilder_ == null) { + public Builder mergeConnectArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments value) { + if (connectArgumentsBuilder_ == null) { if (valueCase_ == 5 && - value_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.getDefaultInstance()) { - value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.newBuilder((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) value_) + value_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.getDefaultInstance()) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.newBuilder((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments) value_) .mergeFrom(value).buildPartial(); } else { value_ = value; @@ -1453,18 +2345,18 @@ public final class MessageOuterClass { onChanged(); } else { if (valueCase_ == 5) { - connectionLostBuilder_.mergeFrom(value); + connectArgumentsBuilder_.mergeFrom(value); } - connectionLostBuilder_.setMessage(value); + connectArgumentsBuilder_.setMessage(value); } valueCase_ = 5; return this; } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; */ - public Builder clearConnectionLost() { - if (connectionLostBuilder_ == null) { + public Builder clearConnectArguments() { + if (connectArgumentsBuilder_ == null) { if (valueCase_ == 5) { valueCase_ = 0; value_ = null; @@ -1475,82 +2367,787 @@ public final class MessageOuterClass { valueCase_ = 0; value_ = null; } - connectionLostBuilder_.clear(); + connectArgumentsBuilder_.clear(); } return this; } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; */ - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.Builder getConnectionLostBuilder() { - return getConnectionLostFieldBuilder().getBuilder(); + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.Builder getConnectArgumentsBuilder() { + return getConnectArgumentsFieldBuilder().getBuilder(); } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; */ @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLostOrBuilder getConnectionLostOrBuilder() { - if ((valueCase_ == 5) && (connectionLostBuilder_ != null)) { - return connectionLostBuilder_.getMessageOrBuilder(); + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArgumentsOrBuilder getConnectArgumentsOrBuilder() { + if ((valueCase_ == 5) && (connectArgumentsBuilder_ != null)) { + return connectArgumentsBuilder_.getMessageOrBuilder(); } else { if (valueCase_ == 5) { - return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) value_; + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments) value_; } - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.getDefaultInstance(); + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.getDefaultInstance(); } } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; */ private com.google.protobuf.SingleFieldBuilderV3< - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLostOrBuilder> - getConnectionLostFieldBuilder() { - if (connectionLostBuilder_ == null) { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArgumentsOrBuilder> + getConnectArgumentsFieldBuilder() { + if (connectArgumentsBuilder_ == null) { if (!(valueCase_ == 5)) { - value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.getDefaultInstance(); + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.getDefaultInstance(); } - connectionLostBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLostOrBuilder>( - (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) value_, + connectArgumentsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArgumentsOrBuilder>( + (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments) value_, getParentForChildren(), isClean()); value_ = null; } valueCase_ = 5; onChanged();; + return connectArgumentsBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArgumentsOrBuilder> disconnectArgumentsBuilder_; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + * @return Whether the disconnectArguments field is set. + */ + @java.lang.Override + public boolean hasDisconnectArguments() { + return valueCase_ == 6; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + * @return The disconnectArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments getDisconnectArguments() { + if (disconnectArgumentsBuilder_ == null) { + if (valueCase_ == 6) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.getDefaultInstance(); + } else { + if (valueCase_ == 6) { + return disconnectArgumentsBuilder_.getMessage(); + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + */ + public Builder setDisconnectArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments value) { + if (disconnectArgumentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + value_ = value; + onChanged(); + } else { + disconnectArgumentsBuilder_.setMessage(value); + } + valueCase_ = 6; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + */ + public Builder setDisconnectArguments( + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.Builder builderForValue) { + if (disconnectArgumentsBuilder_ == null) { + value_ = builderForValue.build(); + onChanged(); + } else { + disconnectArgumentsBuilder_.setMessage(builderForValue.build()); + } + valueCase_ = 6; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + */ + public Builder mergeDisconnectArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments value) { + if (disconnectArgumentsBuilder_ == null) { + if (valueCase_ == 6 && + value_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.getDefaultInstance()) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.newBuilder((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) value_) + .mergeFrom(value).buildPartial(); + } else { + value_ = value; + } + onChanged(); + } else { + if (valueCase_ == 6) { + disconnectArgumentsBuilder_.mergeFrom(value); + } + disconnectArgumentsBuilder_.setMessage(value); + } + valueCase_ = 6; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + */ + public Builder clearDisconnectArguments() { + if (disconnectArgumentsBuilder_ == null) { + if (valueCase_ == 6) { + valueCase_ = 0; + value_ = null; + onChanged(); + } + } else { + if (valueCase_ == 6) { + valueCase_ = 0; + value_ = null; + } + disconnectArgumentsBuilder_.clear(); + } + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + */ + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.Builder getDisconnectArgumentsBuilder() { + return getDisconnectArgumentsFieldBuilder().getBuilder(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArgumentsOrBuilder getDisconnectArgumentsOrBuilder() { + if ((valueCase_ == 6) && (disconnectArgumentsBuilder_ != null)) { + return disconnectArgumentsBuilder_.getMessageOrBuilder(); + } else { + if (valueCase_ == 6) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + */ + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArgumentsOrBuilder> + getDisconnectArgumentsFieldBuilder() { + if (disconnectArgumentsBuilder_ == null) { + if (!(valueCase_ == 6)) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.getDefaultInstance(); + } + disconnectArgumentsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArgumentsOrBuilder>( + (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) value_, + getParentForChildren(), + isClean()); + value_ = null; + } + valueCase_ = 6; + onChanged();; + return disconnectArgumentsBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLostOrBuilder> connectionLostBuilder_; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; + * @return Whether the connectionLost field is set. + */ + @java.lang.Override + public boolean hasConnectionLost() { + return valueCase_ == 7; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; + * @return The connectionLost. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost getConnectionLost() { + if (connectionLostBuilder_ == null) { + if (valueCase_ == 7) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.getDefaultInstance(); + } else { + if (valueCase_ == 7) { + return connectionLostBuilder_.getMessage(); + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; + */ + public Builder setConnectionLost(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost value) { + if (connectionLostBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + value_ = value; + onChanged(); + } else { + connectionLostBuilder_.setMessage(value); + } + valueCase_ = 7; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; + */ + public Builder setConnectionLost( + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.Builder builderForValue) { + if (connectionLostBuilder_ == null) { + value_ = builderForValue.build(); + onChanged(); + } else { + connectionLostBuilder_.setMessage(builderForValue.build()); + } + valueCase_ = 7; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; + */ + public Builder mergeConnectionLost(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost value) { + if (connectionLostBuilder_ == null) { + if (valueCase_ == 7 && + value_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.getDefaultInstance()) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.newBuilder((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) value_) + .mergeFrom(value).buildPartial(); + } else { + value_ = value; + } + onChanged(); + } else { + if (valueCase_ == 7) { + connectionLostBuilder_.mergeFrom(value); + } + connectionLostBuilder_.setMessage(value); + } + valueCase_ = 7; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; + */ + public Builder clearConnectionLost() { + if (connectionLostBuilder_ == null) { + if (valueCase_ == 7) { + valueCase_ = 0; + value_ = null; + onChanged(); + } + } else { + if (valueCase_ == 7) { + valueCase_ = 0; + value_ = null; + } + connectionLostBuilder_.clear(); + } + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; + */ + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.Builder getConnectionLostBuilder() { + return getConnectionLostFieldBuilder().getBuilder(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLostOrBuilder getConnectionLostOrBuilder() { + if ((valueCase_ == 7) && (connectionLostBuilder_ != null)) { + return connectionLostBuilder_.getMessageOrBuilder(); + } else { + if (valueCase_ == 7) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; + */ + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLostOrBuilder> + getConnectionLostFieldBuilder() { + if (connectionLostBuilder_ == null) { + if (!(valueCase_ == 7)) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.getDefaultInstance(); + } + connectionLostBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLostOrBuilder>( + (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) value_, + getParentForChildren(), + isClean()); + value_ = null; + } + valueCase_ = 7; + onChanged();; return connectionLostBuilder_; } + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArgumentsOrBuilder> characteristicReadArgumentsBuilder_; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + * @return Whether the characteristicReadArguments field is set. + */ + @java.lang.Override + public boolean hasCharacteristicReadArguments() { + return valueCase_ == 8; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + * @return The characteristicReadArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments getCharacteristicReadArguments() { + if (characteristicReadArgumentsBuilder_ == null) { + if (valueCase_ == 8) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.getDefaultInstance(); + } else { + if (valueCase_ == 8) { + return characteristicReadArgumentsBuilder_.getMessage(); + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + */ + public Builder setCharacteristicReadArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments value) { + if (characteristicReadArgumentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + value_ = value; + onChanged(); + } else { + characteristicReadArgumentsBuilder_.setMessage(value); + } + valueCase_ = 8; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + */ + public Builder setCharacteristicReadArguments( + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.Builder builderForValue) { + if (characteristicReadArgumentsBuilder_ == null) { + value_ = builderForValue.build(); + onChanged(); + } else { + characteristicReadArgumentsBuilder_.setMessage(builderForValue.build()); + } + valueCase_ = 8; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + */ + public Builder mergeCharacteristicReadArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments value) { + if (characteristicReadArgumentsBuilder_ == null) { + if (valueCase_ == 8 && + value_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.getDefaultInstance()) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.newBuilder((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments) value_) + .mergeFrom(value).buildPartial(); + } else { + value_ = value; + } + onChanged(); + } else { + if (valueCase_ == 8) { + characteristicReadArgumentsBuilder_.mergeFrom(value); + } + characteristicReadArgumentsBuilder_.setMessage(value); + } + valueCase_ = 8; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + */ + public Builder clearCharacteristicReadArguments() { + if (characteristicReadArgumentsBuilder_ == null) { + if (valueCase_ == 8) { + valueCase_ = 0; + value_ = null; + onChanged(); + } + } else { + if (valueCase_ == 8) { + valueCase_ = 0; + value_ = null; + } + characteristicReadArgumentsBuilder_.clear(); + } + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + */ + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.Builder getCharacteristicReadArgumentsBuilder() { + return getCharacteristicReadArgumentsFieldBuilder().getBuilder(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArgumentsOrBuilder getCharacteristicReadArgumentsOrBuilder() { + if ((valueCase_ == 8) && (characteristicReadArgumentsBuilder_ != null)) { + return characteristicReadArgumentsBuilder_.getMessageOrBuilder(); + } else { + if (valueCase_ == 8) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + */ + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArgumentsOrBuilder> + getCharacteristicReadArgumentsFieldBuilder() { + if (characteristicReadArgumentsBuilder_ == null) { + if (!(valueCase_ == 8)) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.getDefaultInstance(); + } + characteristicReadArgumentsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArgumentsOrBuilder>( + (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments) value_, + getParentForChildren(), + isClean()); + value_ = null; + } + valueCase_ = 8; + onChanged();; + return characteristicReadArgumentsBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArgumentsOrBuilder> characteristicWriteArgumentsBuilder_; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + * @return Whether the characteristicWriteArguments field is set. + */ + @java.lang.Override + public boolean hasCharacteristicWriteArguments() { + return valueCase_ == 9; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + * @return The characteristicWriteArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments getCharacteristicWriteArguments() { + if (characteristicWriteArgumentsBuilder_ == null) { + if (valueCase_ == 9) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.getDefaultInstance(); + } else { + if (valueCase_ == 9) { + return characteristicWriteArgumentsBuilder_.getMessage(); + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + */ + public Builder setCharacteristicWriteArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments value) { + if (characteristicWriteArgumentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + value_ = value; + onChanged(); + } else { + characteristicWriteArgumentsBuilder_.setMessage(value); + } + valueCase_ = 9; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + */ + public Builder setCharacteristicWriteArguments( + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.Builder builderForValue) { + if (characteristicWriteArgumentsBuilder_ == null) { + value_ = builderForValue.build(); + onChanged(); + } else { + characteristicWriteArgumentsBuilder_.setMessage(builderForValue.build()); + } + valueCase_ = 9; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + */ + public Builder mergeCharacteristicWriteArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments value) { + if (characteristicWriteArgumentsBuilder_ == null) { + if (valueCase_ == 9 && + value_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.getDefaultInstance()) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.newBuilder((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments) value_) + .mergeFrom(value).buildPartial(); + } else { + value_ = value; + } + onChanged(); + } else { + if (valueCase_ == 9) { + characteristicWriteArgumentsBuilder_.mergeFrom(value); + } + characteristicWriteArgumentsBuilder_.setMessage(value); + } + valueCase_ = 9; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + */ + public Builder clearCharacteristicWriteArguments() { + if (characteristicWriteArgumentsBuilder_ == null) { + if (valueCase_ == 9) { + valueCase_ = 0; + value_ = null; + onChanged(); + } + } else { + if (valueCase_ == 9) { + valueCase_ = 0; + value_ = null; + } + characteristicWriteArgumentsBuilder_.clear(); + } + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + */ + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.Builder getCharacteristicWriteArgumentsBuilder() { + return getCharacteristicWriteArgumentsFieldBuilder().getBuilder(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArgumentsOrBuilder getCharacteristicWriteArgumentsOrBuilder() { + if ((valueCase_ == 9) && (characteristicWriteArgumentsBuilder_ != null)) { + return characteristicWriteArgumentsBuilder_.getMessageOrBuilder(); + } else { + if (valueCase_ == 9) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + */ + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArgumentsOrBuilder> + getCharacteristicWriteArgumentsFieldBuilder() { + if (characteristicWriteArgumentsBuilder_ == null) { + if (!(valueCase_ == 9)) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.getDefaultInstance(); + } + characteristicWriteArgumentsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArgumentsOrBuilder>( + (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments) value_, + getParentForChildren(), + isClean()); + value_ = null; + } + valueCase_ = 9; + onChanged();; + return characteristicWriteArgumentsBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArgumentsOrBuilder> characteristicNotifyArgumentsBuilder_; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + * @return Whether the characteristicNotifyArguments field is set. + */ + @java.lang.Override + public boolean hasCharacteristicNotifyArguments() { + return valueCase_ == 10; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + * @return The characteristicNotifyArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments getCharacteristicNotifyArguments() { + if (characteristicNotifyArgumentsBuilder_ == null) { + if (valueCase_ == 10) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.getDefaultInstance(); + } else { + if (valueCase_ == 10) { + return characteristicNotifyArgumentsBuilder_.getMessage(); + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + */ + public Builder setCharacteristicNotifyArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments value) { + if (characteristicNotifyArgumentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + value_ = value; + onChanged(); + } else { + characteristicNotifyArgumentsBuilder_.setMessage(value); + } + valueCase_ = 10; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + */ + public Builder setCharacteristicNotifyArguments( + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.Builder builderForValue) { + if (characteristicNotifyArgumentsBuilder_ == null) { + value_ = builderForValue.build(); + onChanged(); + } else { + characteristicNotifyArgumentsBuilder_.setMessage(builderForValue.build()); + } + valueCase_ = 10; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + */ + public Builder mergeCharacteristicNotifyArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments value) { + if (characteristicNotifyArgumentsBuilder_ == null) { + if (valueCase_ == 10 && + value_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.getDefaultInstance()) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.newBuilder((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments) value_) + .mergeFrom(value).buildPartial(); + } else { + value_ = value; + } + onChanged(); + } else { + if (valueCase_ == 10) { + characteristicNotifyArgumentsBuilder_.mergeFrom(value); + } + characteristicNotifyArgumentsBuilder_.setMessage(value); + } + valueCase_ = 10; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + */ + public Builder clearCharacteristicNotifyArguments() { + if (characteristicNotifyArgumentsBuilder_ == null) { + if (valueCase_ == 10) { + valueCase_ = 0; + value_ = null; + onChanged(); + } + } else { + if (valueCase_ == 10) { + valueCase_ = 0; + value_ = null; + } + characteristicNotifyArgumentsBuilder_.clear(); + } + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + */ + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.Builder getCharacteristicNotifyArgumentsBuilder() { + return getCharacteristicNotifyArgumentsFieldBuilder().getBuilder(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArgumentsOrBuilder getCharacteristicNotifyArgumentsOrBuilder() { + if ((valueCase_ == 10) && (characteristicNotifyArgumentsBuilder_ != null)) { + return characteristicNotifyArgumentsBuilder_.getMessageOrBuilder(); + } else { + if (valueCase_ == 10) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + */ + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArgumentsOrBuilder> + getCharacteristicNotifyArgumentsFieldBuilder() { + if (characteristicNotifyArgumentsBuilder_ == null) { + if (!(valueCase_ == 10)) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.getDefaultInstance(); + } + characteristicNotifyArgumentsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArgumentsOrBuilder>( + (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments) value_, + getParentForChildren(), + isClean()); + value_ = null; + } + valueCase_ = 10; + onChanged();; + return characteristicNotifyArgumentsBuilder_; + } + private com.google.protobuf.SingleFieldBuilderV3< dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValueOrBuilder> characteristicValueBuilder_; /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; * @return Whether the characteristicValue field is set. */ @java.lang.Override public boolean hasCharacteristicValue() { - return valueCase_ == 6; + return valueCase_ == 11; } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; * @return The characteristicValue. */ @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue getCharacteristicValue() { if (characteristicValueBuilder_ == null) { - if (valueCase_ == 6) { + if (valueCase_ == 11) { return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue) value_; } return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.getDefaultInstance(); } else { - if (valueCase_ == 6) { + if (valueCase_ == 11) { return characteristicValueBuilder_.getMessage(); } return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.getDefaultInstance(); } } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; */ public Builder setCharacteristicValue(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue value) { if (characteristicValueBuilder_ == null) { @@ -1562,11 +3159,11 @@ public final class MessageOuterClass { } else { characteristicValueBuilder_.setMessage(value); } - valueCase_ = 6; + valueCase_ = 11; return this; } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; */ public Builder setCharacteristicValue( dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.Builder builderForValue) { @@ -1576,15 +3173,15 @@ public final class MessageOuterClass { } else { characteristicValueBuilder_.setMessage(builderForValue.build()); } - valueCase_ = 6; + valueCase_ = 11; return this; } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; */ public Builder mergeCharacteristicValue(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue value) { if (characteristicValueBuilder_ == null) { - if (valueCase_ == 6 && + if (valueCase_ == 11 && value_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.getDefaultInstance()) { value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.newBuilder((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue) value_) .mergeFrom(value).buildPartial(); @@ -1593,26 +3190,26 @@ public final class MessageOuterClass { } onChanged(); } else { - if (valueCase_ == 6) { + if (valueCase_ == 11) { characteristicValueBuilder_.mergeFrom(value); } characteristicValueBuilder_.setMessage(value); } - valueCase_ = 6; + valueCase_ = 11; return this; } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; */ public Builder clearCharacteristicValue() { if (characteristicValueBuilder_ == null) { - if (valueCase_ == 6) { + if (valueCase_ == 11) { valueCase_ = 0; value_ = null; onChanged(); } } else { - if (valueCase_ == 6) { + if (valueCase_ == 11) { valueCase_ = 0; value_ = null; } @@ -1621,33 +3218,33 @@ public final class MessageOuterClass { return this; } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; */ public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.Builder getCharacteristicValueBuilder() { return getCharacteristicValueFieldBuilder().getBuilder(); } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; */ @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValueOrBuilder getCharacteristicValueOrBuilder() { - if ((valueCase_ == 6) && (characteristicValueBuilder_ != null)) { + if ((valueCase_ == 11) && (characteristicValueBuilder_ != null)) { return characteristicValueBuilder_.getMessageOrBuilder(); } else { - if (valueCase_ == 6) { + if (valueCase_ == 11) { return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue) value_; } return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.getDefaultInstance(); } } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; */ private com.google.protobuf.SingleFieldBuilderV3< dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValueOrBuilder> getCharacteristicValueFieldBuilder() { if (characteristicValueBuilder_ == null) { - if (!(valueCase_ == 6)) { + if (!(valueCase_ == 11)) { value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.getDefaultInstance(); } characteristicValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< @@ -1657,10 +3254,292 @@ public final class MessageOuterClass { isClean()); value_ = null; } - valueCase_ = 6; + valueCase_ = 11; onChanged();; return characteristicValueBuilder_; } + + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArgumentsOrBuilder> descriptorReadArgumentsBuilder_; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + * @return Whether the descriptorReadArguments field is set. + */ + @java.lang.Override + public boolean hasDescriptorReadArguments() { + return valueCase_ == 12; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + * @return The descriptorReadArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments getDescriptorReadArguments() { + if (descriptorReadArgumentsBuilder_ == null) { + if (valueCase_ == 12) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.getDefaultInstance(); + } else { + if (valueCase_ == 12) { + return descriptorReadArgumentsBuilder_.getMessage(); + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + */ + public Builder setDescriptorReadArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments value) { + if (descriptorReadArgumentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + value_ = value; + onChanged(); + } else { + descriptorReadArgumentsBuilder_.setMessage(value); + } + valueCase_ = 12; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + */ + public Builder setDescriptorReadArguments( + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.Builder builderForValue) { + if (descriptorReadArgumentsBuilder_ == null) { + value_ = builderForValue.build(); + onChanged(); + } else { + descriptorReadArgumentsBuilder_.setMessage(builderForValue.build()); + } + valueCase_ = 12; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + */ + public Builder mergeDescriptorReadArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments value) { + if (descriptorReadArgumentsBuilder_ == null) { + if (valueCase_ == 12 && + value_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.getDefaultInstance()) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.newBuilder((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments) value_) + .mergeFrom(value).buildPartial(); + } else { + value_ = value; + } + onChanged(); + } else { + if (valueCase_ == 12) { + descriptorReadArgumentsBuilder_.mergeFrom(value); + } + descriptorReadArgumentsBuilder_.setMessage(value); + } + valueCase_ = 12; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + */ + public Builder clearDescriptorReadArguments() { + if (descriptorReadArgumentsBuilder_ == null) { + if (valueCase_ == 12) { + valueCase_ = 0; + value_ = null; + onChanged(); + } + } else { + if (valueCase_ == 12) { + valueCase_ = 0; + value_ = null; + } + descriptorReadArgumentsBuilder_.clear(); + } + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + */ + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.Builder getDescriptorReadArgumentsBuilder() { + return getDescriptorReadArgumentsFieldBuilder().getBuilder(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArgumentsOrBuilder getDescriptorReadArgumentsOrBuilder() { + if ((valueCase_ == 12) && (descriptorReadArgumentsBuilder_ != null)) { + return descriptorReadArgumentsBuilder_.getMessageOrBuilder(); + } else { + if (valueCase_ == 12) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + */ + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArgumentsOrBuilder> + getDescriptorReadArgumentsFieldBuilder() { + if (descriptorReadArgumentsBuilder_ == null) { + if (!(valueCase_ == 12)) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.getDefaultInstance(); + } + descriptorReadArgumentsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArgumentsOrBuilder>( + (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments) value_, + getParentForChildren(), + isClean()); + value_ = null; + } + valueCase_ = 12; + onChanged();; + return descriptorReadArgumentsBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArgumentsOrBuilder> descriptorWriteArgumentsBuilder_; + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + * @return Whether the descriptorWriteArguments field is set. + */ + @java.lang.Override + public boolean hasDescriptorWriteArguments() { + return valueCase_ == 13; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + * @return The descriptorWriteArguments. + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments getDescriptorWriteArguments() { + if (descriptorWriteArgumentsBuilder_ == null) { + if (valueCase_ == 13) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.getDefaultInstance(); + } else { + if (valueCase_ == 13) { + return descriptorWriteArgumentsBuilder_.getMessage(); + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + */ + public Builder setDescriptorWriteArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments value) { + if (descriptorWriteArgumentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + value_ = value; + onChanged(); + } else { + descriptorWriteArgumentsBuilder_.setMessage(value); + } + valueCase_ = 13; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + */ + public Builder setDescriptorWriteArguments( + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.Builder builderForValue) { + if (descriptorWriteArgumentsBuilder_ == null) { + value_ = builderForValue.build(); + onChanged(); + } else { + descriptorWriteArgumentsBuilder_.setMessage(builderForValue.build()); + } + valueCase_ = 13; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + */ + public Builder mergeDescriptorWriteArguments(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments value) { + if (descriptorWriteArgumentsBuilder_ == null) { + if (valueCase_ == 13 && + value_ != dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.getDefaultInstance()) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.newBuilder((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments) value_) + .mergeFrom(value).buildPartial(); + } else { + value_ = value; + } + onChanged(); + } else { + if (valueCase_ == 13) { + descriptorWriteArgumentsBuilder_.mergeFrom(value); + } + descriptorWriteArgumentsBuilder_.setMessage(value); + } + valueCase_ = 13; + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + */ + public Builder clearDescriptorWriteArguments() { + if (descriptorWriteArgumentsBuilder_ == null) { + if (valueCase_ == 13) { + valueCase_ = 0; + value_ = null; + onChanged(); + } + } else { + if (valueCase_ == 13) { + valueCase_ = 0; + value_ = null; + } + descriptorWriteArgumentsBuilder_.clear(); + } + return this; + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + */ + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.Builder getDescriptorWriteArgumentsBuilder() { + return getDescriptorWriteArgumentsFieldBuilder().getBuilder(); + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArgumentsOrBuilder getDescriptorWriteArgumentsOrBuilder() { + if ((valueCase_ == 13) && (descriptorWriteArgumentsBuilder_ != null)) { + return descriptorWriteArgumentsBuilder_.getMessageOrBuilder(); + } else { + if (valueCase_ == 13) { + return (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments) value_; + } + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.getDefaultInstance(); + } + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + */ + private com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArgumentsOrBuilder> + getDescriptorWriteArgumentsFieldBuilder() { + if (descriptorWriteArgumentsBuilder_ == null) { + if (!(valueCase_ == 13)) { + value_ = dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.getDefaultInstance(); + } + descriptorWriteArgumentsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArgumentsOrBuilder>( + (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments) value_, + getParentForChildren(), + isClean()); + value_ = null; + } + valueCase_ = 13; + onChanged();; + return descriptorWriteArgumentsBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -2357,16 +4236,16 @@ public final class MessageOuterClass { com.google.protobuf.MessageOrBuilder { /** - * string address = 1; - * @return The address. + * string uuid = 1; + * @return The uuid. */ - java.lang.String getAddress(); + java.lang.String getUuid(); /** - * string address = 1; - * @return The bytes for address. + * string uuid = 1; + * @return The bytes for uuid. */ com.google.protobuf.ByteString - getAddressBytes(); + getUuidBytes(); /** * sint32 rssi = 2; @@ -2379,6 +4258,12 @@ public final class MessageOuterClass { * @return The advertisements. */ com.google.protobuf.ByteString getAdvertisements(); + + /** + * bool connectable = 4; + * @return The connectable. + */ + boolean getConnectable(); } /** * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.Discovery} @@ -2393,7 +4278,7 @@ public final class MessageOuterClass { super(builder); } private Discovery() { - address_ = ""; + uuid_ = ""; advertisements_ = com.google.protobuf.ByteString.EMPTY; } @@ -2430,7 +4315,7 @@ public final class MessageOuterClass { case 10: { java.lang.String s = input.readStringRequireUtf8(); - address_ = s; + uuid_ = s; break; } case 16: { @@ -2443,6 +4328,11 @@ public final class MessageOuterClass { advertisements_ = input.readBytes(); break; } + case 32: { + + connectable_ = input.readBool(); + break; + } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -2475,38 +4365,38 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.Builder.class); } - public static final int ADDRESS_FIELD_NUMBER = 1; - private volatile java.lang.Object address_; + public static final int UUID_FIELD_NUMBER = 1; + private volatile java.lang.Object uuid_; /** - * string address = 1; - * @return The address. + * string uuid = 1; + * @return The uuid. */ @java.lang.Override - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getUuid() { + java.lang.Object ref = uuid_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + uuid_ = s; return s; } } /** - * string address = 1; - * @return The bytes for address. + * string uuid = 1; + * @return The bytes for uuid. */ @java.lang.Override public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getUuidBytes() { + java.lang.Object ref = uuid_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + uuid_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -2535,6 +4425,17 @@ public final class MessageOuterClass { return advertisements_; } + public static final int CONNECTABLE_FIELD_NUMBER = 4; + private boolean connectable_; + /** + * bool connectable = 4; + * @return The connectable. + */ + @java.lang.Override + public boolean getConnectable() { + return connectable_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -2549,8 +4450,8 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getAddressBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, address_); + if (!getUuidBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uuid_); } if (rssi_ != 0) { output.writeSInt32(2, rssi_); @@ -2558,6 +4459,9 @@ public final class MessageOuterClass { if (!advertisements_.isEmpty()) { output.writeBytes(3, advertisements_); } + if (connectable_ != false) { + output.writeBool(4, connectable_); + } unknownFields.writeTo(output); } @@ -2567,8 +4471,8 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (!getAddressBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, address_); + if (!getUuidBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uuid_); } if (rssi_ != 0) { size += com.google.protobuf.CodedOutputStream @@ -2578,6 +4482,10 @@ public final class MessageOuterClass { size += com.google.protobuf.CodedOutputStream .computeBytesSize(3, advertisements_); } + if (connectable_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(4, connectable_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -2593,12 +4501,14 @@ public final class MessageOuterClass { } dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery) obj; - if (!getAddress() - .equals(other.getAddress())) return false; + if (!getUuid() + .equals(other.getUuid())) return false; if (getRssi() != other.getRssi()) return false; if (!getAdvertisements() .equals(other.getAdvertisements())) return false; + if (getConnectable() + != other.getConnectable()) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -2610,12 +4520,15 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ADDRESS_FIELD_NUMBER; - hash = (53 * hash) + getAddress().hashCode(); + hash = (37 * hash) + UUID_FIELD_NUMBER; + hash = (53 * hash) + getUuid().hashCode(); hash = (37 * hash) + RSSI_FIELD_NUMBER; hash = (53 * hash) + getRssi(); hash = (37 * hash) + ADVERTISEMENTS_FIELD_NUMBER; hash = (53 * hash) + getAdvertisements().hashCode(); + hash = (37 * hash) + CONNECTABLE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getConnectable()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -2749,12 +4662,14 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - address_ = ""; + uuid_ = ""; rssi_ = 0; advertisements_ = com.google.protobuf.ByteString.EMPTY; + connectable_ = false; + return this; } @@ -2781,9 +4696,10 @@ public final class MessageOuterClass { @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery buildPartial() { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery(this); - result.address_ = address_; + result.uuid_ = uuid_; result.rssi_ = rssi_; result.advertisements_ = advertisements_; + result.connectable_ = connectable_; onBuilt(); return result; } @@ -2832,8 +4748,8 @@ public final class MessageOuterClass { public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery other) { if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery.getDefaultInstance()) return this; - if (!other.getAddress().isEmpty()) { - address_ = other.address_; + if (!other.getUuid().isEmpty()) { + uuid_ = other.uuid_; onChanged(); } if (other.getRssi() != 0) { @@ -2842,6 +4758,9 @@ public final class MessageOuterClass { if (other.getAdvertisements() != com.google.protobuf.ByteString.EMPTY) { setAdvertisements(other.getAdvertisements()); } + if (other.getConnectable() != false) { + setConnectable(other.getConnectable()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -2871,78 +4790,78 @@ public final class MessageOuterClass { return this; } - private java.lang.Object address_ = ""; + private java.lang.Object uuid_ = ""; /** - * string address = 1; - * @return The address. + * string uuid = 1; + * @return The uuid. */ - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getUuid() { + java.lang.Object ref = uuid_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + uuid_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string address = 1; - * @return The bytes for address. + * string uuid = 1; + * @return The bytes for uuid. */ public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getUuidBytes() { + java.lang.Object ref = uuid_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + uuid_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string address = 1; - * @param value The address to set. + * string uuid = 1; + * @param value The uuid to set. * @return This builder for chaining. */ - public Builder setAddress( + public Builder setUuid( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - address_ = value; + uuid_ = value; onChanged(); return this; } /** - * string address = 1; + * string uuid = 1; * @return This builder for chaining. */ - public Builder clearAddress() { + public Builder clearUuid() { - address_ = getDefaultInstance().getAddress(); + uuid_ = getDefaultInstance().getUuid(); onChanged(); return this; } /** - * string address = 1; - * @param value The bytes for address to set. + * string uuid = 1; + * @param value The bytes for uuid to set. * @return This builder for chaining. */ - public Builder setAddressBytes( + public Builder setUuidBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - address_ = value; + uuid_ = value; onChanged(); return this; } @@ -3011,6 +4930,37 @@ public final class MessageOuterClass { onChanged(); return this; } + + private boolean connectable_ ; + /** + * bool connectable = 4; + * @return The connectable. + */ + @java.lang.Override + public boolean getConnectable() { + return connectable_; + } + /** + * bool connectable = 4; + * @param value The connectable to set. + * @return This builder for chaining. + */ + public Builder setConnectable(boolean value) { + + connectable_ = value; + onChanged(); + return this; + } + /** + * bool connectable = 4; + * @return This builder for chaining. + */ + public Builder clearConnectable() { + + connectable_ = false; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -3069,16 +5019,16 @@ public final class MessageOuterClass { com.google.protobuf.MessageOrBuilder { /** - * string address = 1; - * @return The address. + * string uuid = 1; + * @return The uuid. */ - java.lang.String getAddress(); + java.lang.String getUuid(); /** - * string address = 1; - * @return The bytes for address. + * string uuid = 1; + * @return The bytes for uuid. */ com.google.protobuf.ByteString - getAddressBytes(); + getUuidBytes(); } /** * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.ConnectArguments} @@ -3093,7 +5043,7 @@ public final class MessageOuterClass { super(builder); } private ConnectArguments() { - address_ = ""; + uuid_ = ""; } @java.lang.Override @@ -3129,7 +5079,7 @@ public final class MessageOuterClass { case 10: { java.lang.String s = input.readStringRequireUtf8(); - address_ = s; + uuid_ = s; break; } default: { @@ -3164,38 +5114,38 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.Builder.class); } - public static final int ADDRESS_FIELD_NUMBER = 1; - private volatile java.lang.Object address_; + public static final int UUID_FIELD_NUMBER = 1; + private volatile java.lang.Object uuid_; /** - * string address = 1; - * @return The address. + * string uuid = 1; + * @return The uuid. */ @java.lang.Override - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getUuid() { + java.lang.Object ref = uuid_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + uuid_ = s; return s; } } /** - * string address = 1; - * @return The bytes for address. + * string uuid = 1; + * @return The bytes for uuid. */ @java.lang.Override public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getUuidBytes() { + java.lang.Object ref = uuid_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + uuid_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -3216,8 +5166,8 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getAddressBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, address_); + if (!getUuidBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uuid_); } unknownFields.writeTo(output); } @@ -3228,8 +5178,8 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (!getAddressBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, address_); + if (!getUuidBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uuid_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -3246,8 +5196,8 @@ public final class MessageOuterClass { } dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments) obj; - if (!getAddress() - .equals(other.getAddress())) return false; + if (!getUuid() + .equals(other.getUuid())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -3259,8 +5209,8 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ADDRESS_FIELD_NUMBER; - hash = (53 * hash) + getAddress().hashCode(); + hash = (37 * hash) + UUID_FIELD_NUMBER; + hash = (53 * hash) + getUuid().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -3394,7 +5344,7 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - address_ = ""; + uuid_ = ""; return this; } @@ -3422,7 +5372,7 @@ public final class MessageOuterClass { @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments buildPartial() { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments(this); - result.address_ = address_; + result.uuid_ = uuid_; onBuilt(); return result; } @@ -3471,8 +5421,8 @@ public final class MessageOuterClass { public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments other) { if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments.getDefaultInstance()) return this; - if (!other.getAddress().isEmpty()) { - address_ = other.address_; + if (!other.getUuid().isEmpty()) { + uuid_ = other.uuid_; onChanged(); } this.mergeUnknownFields(other.unknownFields); @@ -3504,78 +5454,78 @@ public final class MessageOuterClass { return this; } - private java.lang.Object address_ = ""; + private java.lang.Object uuid_ = ""; /** - * string address = 1; - * @return The address. + * string uuid = 1; + * @return The uuid. */ - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getUuid() { + java.lang.Object ref = uuid_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + uuid_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string address = 1; - * @return The bytes for address. + * string uuid = 1; + * @return The bytes for uuid. */ public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getUuidBytes() { + java.lang.Object ref = uuid_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + uuid_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string address = 1; - * @param value The address to set. + * string uuid = 1; + * @param value The uuid to set. * @return This builder for chaining. */ - public Builder setAddress( + public Builder setUuid( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - address_ = value; + uuid_ = value; onChanged(); return this; } /** - * string address = 1; + * string uuid = 1; * @return This builder for chaining. */ - public Builder clearAddress() { + public Builder clearUuid() { - address_ = getDefaultInstance().getAddress(); + uuid_ = getDefaultInstance().getUuid(); onChanged(); return this; } /** - * string address = 1; - * @param value The bytes for address to set. + * string uuid = 1; + * @param value The bytes for uuid to set. * @return This builder for chaining. */ - public Builder setAddressBytes( + public Builder setUuidBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - address_ = value; + uuid_ = value; onChanged(); return this; } @@ -3637,16 +5587,22 @@ public final class MessageOuterClass { com.google.protobuf.MessageOrBuilder { /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ - int getId(); + java.lang.String getKey(); + /** + * string key = 1; + * @return The bytes for key. + */ + com.google.protobuf.ByteString + getKeyBytes(); /** - * int32 mtu = 2; - * @return The mtu. + * int32 maximumWriteLength = 2; + * @return The maximumWriteLength. */ - int getMtu(); + int getMaximumWriteLength(); /** * repeated .dev.yanshouwang.bluetooth_low_energy.GattService services = 3; @@ -3685,6 +5641,7 @@ public final class MessageOuterClass { super(builder); } private GATT() { + key_ = ""; services_ = java.util.Collections.emptyList(); } @@ -3719,14 +5676,15 @@ public final class MessageOuterClass { case 0: done = true; break; - case 8: { + case 10: { + java.lang.String s = input.readStringRequireUtf8(); - id_ = input.readInt32(); + key_ = s; break; } case 16: { - mtu_ = input.readInt32(); + maximumWriteLength_ = input.readInt32(); break; } case 26: { @@ -3773,26 +5731,53 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GATT.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GATT.Builder.class); } - public static final int ID_FIELD_NUMBER = 1; - private int id_; + public static final int KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object key_; /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ @java.lang.Override - public int getId() { - return id_; + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } + } + /** + * string key = 1; + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } - public static final int MTU_FIELD_NUMBER = 2; - private int mtu_; + public static final int MAXIMUMWRITELENGTH_FIELD_NUMBER = 2; + private int maximumWriteLength_; /** - * int32 mtu = 2; - * @return The mtu. + * int32 maximumWriteLength = 2; + * @return The maximumWriteLength. */ @java.lang.Override - public int getMtu() { - return mtu_; + public int getMaximumWriteLength() { + return maximumWriteLength_; } public static final int SERVICES_FIELD_NUMBER = 3; @@ -3849,11 +5834,11 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (id_ != 0) { - output.writeInt32(1, id_); + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); } - if (mtu_ != 0) { - output.writeInt32(2, mtu_); + if (maximumWriteLength_ != 0) { + output.writeInt32(2, maximumWriteLength_); } for (int i = 0; i < services_.size(); i++) { output.writeMessage(3, services_.get(i)); @@ -3867,13 +5852,12 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (id_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1, id_); + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); } - if (mtu_ != 0) { + if (maximumWriteLength_ != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, mtu_); + .computeInt32Size(2, maximumWriteLength_); } for (int i = 0; i < services_.size(); i++) { size += com.google.protobuf.CodedOutputStream @@ -3894,10 +5878,10 @@ public final class MessageOuterClass { } dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GATT other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GATT) obj; - if (getId() - != other.getId()) return false; - if (getMtu() - != other.getMtu()) return false; + if (!getKey() + .equals(other.getKey())) return false; + if (getMaximumWriteLength() + != other.getMaximumWriteLength()) return false; if (!getServicesList() .equals(other.getServicesList())) return false; if (!unknownFields.equals(other.unknownFields)) return false; @@ -3911,10 +5895,10 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); - hash = (37 * hash) + MTU_FIELD_NUMBER; - hash = (53 * hash) + getMtu(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); + hash = (37 * hash) + MAXIMUMWRITELENGTH_FIELD_NUMBER; + hash = (53 * hash) + getMaximumWriteLength(); if (getServicesCount() > 0) { hash = (37 * hash) + SERVICES_FIELD_NUMBER; hash = (53 * hash) + getServicesList().hashCode(); @@ -4053,9 +6037,9 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - id_ = 0; + key_ = ""; - mtu_ = 0; + maximumWriteLength_ = 0; if (servicesBuilder_ == null) { services_ = java.util.Collections.emptyList(); @@ -4090,8 +6074,8 @@ public final class MessageOuterClass { public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GATT buildPartial() { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GATT result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GATT(this); int from_bitField0_ = bitField0_; - result.id_ = id_; - result.mtu_ = mtu_; + result.key_ = key_; + result.maximumWriteLength_ = maximumWriteLength_; if (servicesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { services_ = java.util.Collections.unmodifiableList(services_); @@ -4149,11 +6133,12 @@ public final class MessageOuterClass { public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GATT other) { if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GATT.getDefaultInstance()) return this; - if (other.getId() != 0) { - setId(other.getId()); + if (!other.getKey().isEmpty()) { + key_ = other.key_; + onChanged(); } - if (other.getMtu() != 0) { - setMtu(other.getMtu()); + if (other.getMaximumWriteLength() != 0) { + setMaximumWriteLength(other.getMaximumWriteLength()); } if (servicesBuilder_ == null) { if (!other.services_.isEmpty()) { @@ -4211,64 +6196,109 @@ public final class MessageOuterClass { } private int bitField0_; - private int id_ ; + private java.lang.Object key_ = ""; /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ - @java.lang.Override - public int getId() { - return id_; + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** - * int32 id = 1; - * @param value The id to set. + * string key = 1; + * @return The bytes for key. + */ + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string key = 1; + * @param value The key to set. * @return This builder for chaining. */ - public Builder setId(int value) { - - id_ = value; + public Builder setKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + key_ = value; onChanged(); return this; } /** - * int32 id = 1; + * string key = 1; * @return This builder for chaining. */ - public Builder clearId() { + public Builder clearKey() { - id_ = 0; + key_ = getDefaultInstance().getKey(); + onChanged(); + return this; + } + /** + * string key = 1; + * @param value The bytes for key to set. + * @return This builder for chaining. + */ + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + key_ = value; onChanged(); return this; } - private int mtu_ ; + private int maximumWriteLength_ ; /** - * int32 mtu = 2; - * @return The mtu. + * int32 maximumWriteLength = 2; + * @return The maximumWriteLength. */ @java.lang.Override - public int getMtu() { - return mtu_; + public int getMaximumWriteLength() { + return maximumWriteLength_; } /** - * int32 mtu = 2; - * @param value The mtu to set. + * int32 maximumWriteLength = 2; + * @param value The maximumWriteLength to set. * @return This builder for chaining. */ - public Builder setMtu(int value) { + public Builder setMaximumWriteLength(int value) { - mtu_ = value; + maximumWriteLength_ = value; onChanged(); return this; } /** - * int32 mtu = 2; + * int32 maximumWriteLength = 2; * @return This builder for chaining. */ - public Builder clearMtu() { + public Builder clearMaximumWriteLength() { - mtu_ = 0; + maximumWriteLength_ = 0; onChanged(); return this; } @@ -4565,653 +6595,21 @@ public final class MessageOuterClass { } - public interface GattDisconnectArgumentsOrBuilder extends - // @@protoc_insertion_point(interface_extends:dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments) - com.google.protobuf.MessageOrBuilder { - - /** - * string address = 1; - * @return The address. - */ - java.lang.String getAddress(); - /** - * string address = 1; - * @return The bytes for address. - */ - com.google.protobuf.ByteString - getAddressBytes(); - - /** - * int32 id = 2; - * @return The id. - */ - int getId(); - } - /** - * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments} - */ - public static final class GattDisconnectArguments extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments) - GattDisconnectArgumentsOrBuilder { - private static final long serialVersionUID = 0L; - // Use GattDisconnectArguments.newBuilder() to construct. - private GattDisconnectArguments(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private GattDisconnectArguments() { - address_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new GattDisconnectArguments(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private GattDisconnectArguments( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - java.lang.String s = input.readStringRequireUtf8(); - - address_ = s; - break; - } - case 16: { - - id_ = input.readInt32(); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_fieldAccessorTable - .ensureFieldAccessorsInitialized( - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.Builder.class); - } - - public static final int ADDRESS_FIELD_NUMBER = 1; - private volatile java.lang.Object address_; - /** - * string address = 1; - * @return The address. - */ - @java.lang.Override - public java.lang.String getAddress() { - java.lang.Object ref = address_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - address_ = s; - return s; - } - } - /** - * string address = 1; - * @return The bytes for address. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - address_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int ID_FIELD_NUMBER = 2; - private int id_; - /** - * int32 id = 2; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!getAddressBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, address_); - } - if (id_ != 0) { - output.writeInt32(2, id_); - } - unknownFields.writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!getAddressBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, address_); - } - if (id_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, id_); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments)) { - return super.equals(obj); - } - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) obj; - - if (!getAddress() - .equals(other.getAddress())) return false; - if (getId() - != other.getId()) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ADDRESS_FIELD_NUMBER; - hash = (53 * hash) + getAddress().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments) - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArgumentsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_fieldAccessorTable - .ensureFieldAccessorsInitialized( - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.Builder.class); - } - - // Construct using dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - address_ = ""; - - id_ = 0; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_descriptor; - } - - @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments getDefaultInstanceForType() { - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.getDefaultInstance(); - } - - @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments build() { - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments buildPartial() { - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments(this); - result.address_ = address_; - result.id_ = id_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) { - return mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments other) { - if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.getDefaultInstance()) return this; - if (!other.getAddress().isEmpty()) { - address_ = other.address_; - onChanged(); - } - if (other.getId() != 0) { - setId(other.getId()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private java.lang.Object address_ = ""; - /** - * string address = 1; - * @return The address. - */ - public java.lang.String getAddress() { - java.lang.Object ref = address_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - address_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string address = 1; - * @return The bytes for address. - */ - public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - address_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string address = 1; - * @param value The address to set. - * @return This builder for chaining. - */ - public Builder setAddress( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - address_ = value; - onChanged(); - return this; - } - /** - * string address = 1; - * @return This builder for chaining. - */ - public Builder clearAddress() { - - address_ = getDefaultInstance().getAddress(); - onChanged(); - return this; - } - /** - * string address = 1; - * @param value The bytes for address to set. - * @return This builder for chaining. - */ - public Builder setAddressBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - address_ = value; - onChanged(); - return this; - } - - private int id_ ; - /** - * int32 id = 2; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - /** - * int32 id = 2; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId(int value) { - - id_ = value; - onChanged(); - return this; - } - /** - * int32 id = 2; - * @return This builder for chaining. - */ - public Builder clearId() { - - id_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments) - } - - // @@protoc_insertion_point(class_scope:dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments) - private static final dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments(); - } - - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public GattDisconnectArguments parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new GattDisconnectArguments(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - public interface GattServiceOrBuilder extends // @@protoc_insertion_point(interface_extends:dev.yanshouwang.bluetooth_low_energy.GattService) com.google.protobuf.MessageOrBuilder { /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ - int getId(); + java.lang.String getKey(); + /** + * string key = 1; + * @return The bytes for key. + */ + com.google.protobuf.ByteString + getKeyBytes(); /** * string uuid = 2; @@ -5262,6 +6660,7 @@ public final class MessageOuterClass { super(builder); } private GattService() { + key_ = ""; uuid_ = ""; characteristics_ = java.util.Collections.emptyList(); } @@ -5297,9 +6696,10 @@ public final class MessageOuterClass { case 0: done = true; break; - case 8: { + case 10: { + java.lang.String s = input.readStringRequireUtf8(); - id_ = input.readInt32(); + key_ = s; break; } case 18: { @@ -5352,15 +6752,42 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattService.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattService.Builder.class); } - public static final int ID_FIELD_NUMBER = 1; - private int id_; + public static final int KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object key_; /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ @java.lang.Override - public int getId() { - return id_; + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } + } + /** + * string key = 1; + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } public static final int UUID_FIELD_NUMBER = 2; @@ -5455,8 +6882,8 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (id_ != 0) { - output.writeInt32(1, id_); + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); } if (!getUuidBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, uuid_); @@ -5473,9 +6900,8 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (id_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1, id_); + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); } if (!getUuidBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, uuid_); @@ -5499,8 +6925,8 @@ public final class MessageOuterClass { } dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattService other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattService) obj; - if (getId() - != other.getId()) return false; + if (!getKey() + .equals(other.getKey())) return false; if (!getUuid() .equals(other.getUuid())) return false; if (!getCharacteristicsList() @@ -5516,8 +6942,8 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); hash = (37 * hash) + UUID_FIELD_NUMBER; hash = (53 * hash) + getUuid().hashCode(); if (getCharacteristicsCount() > 0) { @@ -5658,7 +7084,7 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - id_ = 0; + key_ = ""; uuid_ = ""; @@ -5695,7 +7121,7 @@ public final class MessageOuterClass { public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattService buildPartial() { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattService result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattService(this); int from_bitField0_ = bitField0_; - result.id_ = id_; + result.key_ = key_; result.uuid_ = uuid_; if (characteristicsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { @@ -5754,8 +7180,9 @@ public final class MessageOuterClass { public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattService other) { if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattService.getDefaultInstance()) return this; - if (other.getId() != 0) { - setId(other.getId()); + if (!other.getKey().isEmpty()) { + key_ = other.key_; + onChanged(); } if (!other.getUuid().isEmpty()) { uuid_ = other.uuid_; @@ -5817,33 +7244,78 @@ public final class MessageOuterClass { } private int bitField0_; - private int id_ ; + private java.lang.Object key_ = ""; /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ - @java.lang.Override - public int getId() { - return id_; + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** - * int32 id = 1; - * @param value The id to set. + * string key = 1; + * @return The bytes for key. + */ + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string key = 1; + * @param value The key to set. * @return This builder for chaining. */ - public Builder setId(int value) { - - id_ = value; + public Builder setKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + key_ = value; onChanged(); return this; } /** - * int32 id = 1; + * string key = 1; * @return This builder for chaining. */ - public Builder clearId() { + public Builder clearKey() { - id_ = 0; + key_ = getDefaultInstance().getKey(); + onChanged(); + return this; + } + /** + * string key = 1; + * @param value The bytes for key to set. + * @return This builder for chaining. + */ + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + key_ = value; onChanged(); return this; } @@ -6221,10 +7693,16 @@ public final class MessageOuterClass { com.google.protobuf.MessageOrBuilder { /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ - int getId(); + java.lang.String getKey(); + /** + * string key = 1; + * @return The bytes for key. + */ + com.google.protobuf.ByteString + getKeyBytes(); /** * string uuid = 2; @@ -6239,52 +7717,52 @@ public final class MessageOuterClass { getUuidBytes(); /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - */ - java.util.List - getDescriptorsList(); - /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - */ - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor getDescriptors(int index); - /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - */ - int getDescriptorsCount(); - /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - */ - java.util.List - getDescriptorsOrBuilderList(); - /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - */ - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorOrBuilder getDescriptorsOrBuilder( - int index); - - /** - * bool canRead = 4; + * bool canRead = 3; * @return The canRead. */ boolean getCanRead(); /** - * bool canWrite = 5; + * bool canWrite = 4; * @return The canWrite. */ boolean getCanWrite(); /** - * bool canWriteWithoutResponse = 6; + * bool canWriteWithoutResponse = 5; * @return The canWriteWithoutResponse. */ boolean getCanWriteWithoutResponse(); /** - * bool canNotify = 7; + * bool canNotify = 6; * @return The canNotify. */ boolean getCanNotify(); + + /** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + */ + java.util.List + getDescriptorsList(); + /** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor getDescriptors(int index); + /** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + */ + int getDescriptorsCount(); + /** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + */ + java.util.List + getDescriptorsOrBuilderList(); + /** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + */ + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorOrBuilder getDescriptorsOrBuilder( + int index); } /** * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.GattCharacteristic} @@ -6299,6 +7777,7 @@ public final class MessageOuterClass { super(builder); } private GattCharacteristic() { + key_ = ""; uuid_ = ""; descriptors_ = java.util.Collections.emptyList(); } @@ -6334,9 +7813,10 @@ public final class MessageOuterClass { case 0: done = true; break; - case 8: { + case 10: { + java.lang.String s = input.readStringRequireUtf8(); - id_ = input.readInt32(); + key_ = s; break; } case 18: { @@ -6345,7 +7825,27 @@ public final class MessageOuterClass { uuid_ = s; break; } - case 26: { + case 24: { + + canRead_ = input.readBool(); + break; + } + case 32: { + + canWrite_ = input.readBool(); + break; + } + case 40: { + + canWriteWithoutResponse_ = input.readBool(); + break; + } + case 48: { + + canNotify_ = input.readBool(); + break; + } + case 58: { if (!((mutable_bitField0_ & 0x00000001) != 0)) { descriptors_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000001; @@ -6354,26 +7854,6 @@ public final class MessageOuterClass { input.readMessage(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.parser(), extensionRegistry)); break; } - case 32: { - - canRead_ = input.readBool(); - break; - } - case 40: { - - canWrite_ = input.readBool(); - break; - } - case 48: { - - canWriteWithoutResponse_ = input.readBool(); - break; - } - case 56: { - - canNotify_ = input.readBool(); - break; - } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -6409,15 +7889,42 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristic.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristic.Builder.class); } - public static final int ID_FIELD_NUMBER = 1; - private int id_; + public static final int KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object key_; /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ @java.lang.Override - public int getId() { - return id_; + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } + } + /** + * string key = 1; + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } public static final int UUID_FIELD_NUMBER = 2; @@ -6458,50 +7965,10 @@ public final class MessageOuterClass { } } - public static final int DESCRIPTORS_FIELD_NUMBER = 3; - private java.util.List descriptors_; - /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - */ - @java.lang.Override - public java.util.List getDescriptorsList() { - return descriptors_; - } - /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - */ - @java.lang.Override - public java.util.List - getDescriptorsOrBuilderList() { - return descriptors_; - } - /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - */ - @java.lang.Override - public int getDescriptorsCount() { - return descriptors_.size(); - } - /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - */ - @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor getDescriptors(int index) { - return descriptors_.get(index); - } - /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - */ - @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorOrBuilder getDescriptorsOrBuilder( - int index) { - return descriptors_.get(index); - } - - public static final int CANREAD_FIELD_NUMBER = 4; + public static final int CANREAD_FIELD_NUMBER = 3; private boolean canRead_; /** - * bool canRead = 4; + * bool canRead = 3; * @return The canRead. */ @java.lang.Override @@ -6509,10 +7976,10 @@ public final class MessageOuterClass { return canRead_; } - public static final int CANWRITE_FIELD_NUMBER = 5; + public static final int CANWRITE_FIELD_NUMBER = 4; private boolean canWrite_; /** - * bool canWrite = 5; + * bool canWrite = 4; * @return The canWrite. */ @java.lang.Override @@ -6520,10 +7987,10 @@ public final class MessageOuterClass { return canWrite_; } - public static final int CANWRITEWITHOUTRESPONSE_FIELD_NUMBER = 6; + public static final int CANWRITEWITHOUTRESPONSE_FIELD_NUMBER = 5; private boolean canWriteWithoutResponse_; /** - * bool canWriteWithoutResponse = 6; + * bool canWriteWithoutResponse = 5; * @return The canWriteWithoutResponse. */ @java.lang.Override @@ -6531,10 +7998,10 @@ public final class MessageOuterClass { return canWriteWithoutResponse_; } - public static final int CANNOTIFY_FIELD_NUMBER = 7; + public static final int CANNOTIFY_FIELD_NUMBER = 6; private boolean canNotify_; /** - * bool canNotify = 7; + * bool canNotify = 6; * @return The canNotify. */ @java.lang.Override @@ -6542,6 +8009,46 @@ public final class MessageOuterClass { return canNotify_; } + public static final int DESCRIPTORS_FIELD_NUMBER = 7; + private java.util.List descriptors_; + /** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + */ + @java.lang.Override + public java.util.List getDescriptorsList() { + return descriptors_; + } + /** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + */ + @java.lang.Override + public java.util.List + getDescriptorsOrBuilderList() { + return descriptors_; + } + /** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + */ + @java.lang.Override + public int getDescriptorsCount() { + return descriptors_.size(); + } + /** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor getDescriptors(int index) { + return descriptors_.get(index); + } + /** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + */ + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorOrBuilder getDescriptorsOrBuilder( + int index) { + return descriptors_.get(index); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -6556,26 +8063,26 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (id_ != 0) { - output.writeInt32(1, id_); + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); } if (!getUuidBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, uuid_); } - for (int i = 0; i < descriptors_.size(); i++) { - output.writeMessage(3, descriptors_.get(i)); - } if (canRead_ != false) { - output.writeBool(4, canRead_); + output.writeBool(3, canRead_); } if (canWrite_ != false) { - output.writeBool(5, canWrite_); + output.writeBool(4, canWrite_); } if (canWriteWithoutResponse_ != false) { - output.writeBool(6, canWriteWithoutResponse_); + output.writeBool(5, canWriteWithoutResponse_); } if (canNotify_ != false) { - output.writeBool(7, canNotify_); + output.writeBool(6, canNotify_); + } + for (int i = 0; i < descriptors_.size(); i++) { + output.writeMessage(7, descriptors_.get(i)); } unknownFields.writeTo(output); } @@ -6586,32 +8093,31 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (id_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1, id_); + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); } if (!getUuidBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, uuid_); } - for (int i = 0; i < descriptors_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, descriptors_.get(i)); - } if (canRead_ != false) { size += com.google.protobuf.CodedOutputStream - .computeBoolSize(4, canRead_); + .computeBoolSize(3, canRead_); } if (canWrite_ != false) { size += com.google.protobuf.CodedOutputStream - .computeBoolSize(5, canWrite_); + .computeBoolSize(4, canWrite_); } if (canWriteWithoutResponse_ != false) { size += com.google.protobuf.CodedOutputStream - .computeBoolSize(6, canWriteWithoutResponse_); + .computeBoolSize(5, canWriteWithoutResponse_); } if (canNotify_ != false) { size += com.google.protobuf.CodedOutputStream - .computeBoolSize(7, canNotify_); + .computeBoolSize(6, canNotify_); + } + for (int i = 0; i < descriptors_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, descriptors_.get(i)); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -6628,12 +8134,10 @@ public final class MessageOuterClass { } dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristic other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristic) obj; - if (getId() - != other.getId()) return false; + if (!getKey() + .equals(other.getKey())) return false; if (!getUuid() .equals(other.getUuid())) return false; - if (!getDescriptorsList() - .equals(other.getDescriptorsList())) return false; if (getCanRead() != other.getCanRead()) return false; if (getCanWrite() @@ -6642,6 +8146,8 @@ public final class MessageOuterClass { != other.getCanWriteWithoutResponse()) return false; if (getCanNotify() != other.getCanNotify()) return false; + if (!getDescriptorsList() + .equals(other.getDescriptorsList())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -6653,14 +8159,10 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); hash = (37 * hash) + UUID_FIELD_NUMBER; hash = (53 * hash) + getUuid().hashCode(); - if (getDescriptorsCount() > 0) { - hash = (37 * hash) + DESCRIPTORS_FIELD_NUMBER; - hash = (53 * hash) + getDescriptorsList().hashCode(); - } hash = (37 * hash) + CANREAD_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getCanRead()); @@ -6673,6 +8175,10 @@ public final class MessageOuterClass { hash = (37 * hash) + CANNOTIFY_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getCanNotify()); + if (getDescriptorsCount() > 0) { + hash = (37 * hash) + DESCRIPTORS_FIELD_NUMBER; + hash = (53 * hash) + getDescriptorsList().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -6807,16 +8313,10 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - id_ = 0; + key_ = ""; uuid_ = ""; - if (descriptorsBuilder_ == null) { - descriptors_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - descriptorsBuilder_.clear(); - } canRead_ = false; canWrite_ = false; @@ -6825,6 +8325,12 @@ public final class MessageOuterClass { canNotify_ = false; + if (descriptorsBuilder_ == null) { + descriptors_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + descriptorsBuilder_.clear(); + } return this; } @@ -6852,8 +8358,12 @@ public final class MessageOuterClass { public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristic buildPartial() { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristic result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristic(this); int from_bitField0_ = bitField0_; - result.id_ = id_; + result.key_ = key_; result.uuid_ = uuid_; + result.canRead_ = canRead_; + result.canWrite_ = canWrite_; + result.canWriteWithoutResponse_ = canWriteWithoutResponse_; + result.canNotify_ = canNotify_; if (descriptorsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { descriptors_ = java.util.Collections.unmodifiableList(descriptors_); @@ -6863,10 +8373,6 @@ public final class MessageOuterClass { } else { result.descriptors_ = descriptorsBuilder_.build(); } - result.canRead_ = canRead_; - result.canWrite_ = canWrite_; - result.canWriteWithoutResponse_ = canWriteWithoutResponse_; - result.canNotify_ = canNotify_; onBuilt(); return result; } @@ -6915,13 +8421,26 @@ public final class MessageOuterClass { public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristic other) { if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristic.getDefaultInstance()) return this; - if (other.getId() != 0) { - setId(other.getId()); + if (!other.getKey().isEmpty()) { + key_ = other.key_; + onChanged(); } if (!other.getUuid().isEmpty()) { uuid_ = other.uuid_; onChanged(); } + if (other.getCanRead() != false) { + setCanRead(other.getCanRead()); + } + if (other.getCanWrite() != false) { + setCanWrite(other.getCanWrite()); + } + if (other.getCanWriteWithoutResponse() != false) { + setCanWriteWithoutResponse(other.getCanWriteWithoutResponse()); + } + if (other.getCanNotify() != false) { + setCanNotify(other.getCanNotify()); + } if (descriptorsBuilder_ == null) { if (!other.descriptors_.isEmpty()) { if (descriptors_.isEmpty()) { @@ -6948,18 +8467,6 @@ public final class MessageOuterClass { } } } - if (other.getCanRead() != false) { - setCanRead(other.getCanRead()); - } - if (other.getCanWrite() != false) { - setCanWrite(other.getCanWrite()); - } - if (other.getCanWriteWithoutResponse() != false) { - setCanWriteWithoutResponse(other.getCanWriteWithoutResponse()); - } - if (other.getCanNotify() != false) { - setCanNotify(other.getCanNotify()); - } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -6990,33 +8497,78 @@ public final class MessageOuterClass { } private int bitField0_; - private int id_ ; + private java.lang.Object key_ = ""; /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ - @java.lang.Override - public int getId() { - return id_; + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** - * int32 id = 1; - * @param value The id to set. + * string key = 1; + * @return The bytes for key. + */ + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string key = 1; + * @param value The key to set. * @return This builder for chaining. */ - public Builder setId(int value) { - - id_ = value; + public Builder setKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + key_ = value; onChanged(); return this; } /** - * int32 id = 1; + * string key = 1; * @return This builder for chaining. */ - public Builder clearId() { + public Builder clearKey() { - id_ = 0; + key_ = getDefaultInstance().getKey(); + onChanged(); + return this; + } + /** + * string key = 1; + * @param value The bytes for key to set. + * @return This builder for chaining. + */ + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + key_ = value; onChanged(); return this; } @@ -7097,6 +8649,130 @@ public final class MessageOuterClass { return this; } + private boolean canRead_ ; + /** + * bool canRead = 3; + * @return The canRead. + */ + @java.lang.Override + public boolean getCanRead() { + return canRead_; + } + /** + * bool canRead = 3; + * @param value The canRead to set. + * @return This builder for chaining. + */ + public Builder setCanRead(boolean value) { + + canRead_ = value; + onChanged(); + return this; + } + /** + * bool canRead = 3; + * @return This builder for chaining. + */ + public Builder clearCanRead() { + + canRead_ = false; + onChanged(); + return this; + } + + private boolean canWrite_ ; + /** + * bool canWrite = 4; + * @return The canWrite. + */ + @java.lang.Override + public boolean getCanWrite() { + return canWrite_; + } + /** + * bool canWrite = 4; + * @param value The canWrite to set. + * @return This builder for chaining. + */ + public Builder setCanWrite(boolean value) { + + canWrite_ = value; + onChanged(); + return this; + } + /** + * bool canWrite = 4; + * @return This builder for chaining. + */ + public Builder clearCanWrite() { + + canWrite_ = false; + onChanged(); + return this; + } + + private boolean canWriteWithoutResponse_ ; + /** + * bool canWriteWithoutResponse = 5; + * @return The canWriteWithoutResponse. + */ + @java.lang.Override + public boolean getCanWriteWithoutResponse() { + return canWriteWithoutResponse_; + } + /** + * bool canWriteWithoutResponse = 5; + * @param value The canWriteWithoutResponse to set. + * @return This builder for chaining. + */ + public Builder setCanWriteWithoutResponse(boolean value) { + + canWriteWithoutResponse_ = value; + onChanged(); + return this; + } + /** + * bool canWriteWithoutResponse = 5; + * @return This builder for chaining. + */ + public Builder clearCanWriteWithoutResponse() { + + canWriteWithoutResponse_ = false; + onChanged(); + return this; + } + + private boolean canNotify_ ; + /** + * bool canNotify = 6; + * @return The canNotify. + */ + @java.lang.Override + public boolean getCanNotify() { + return canNotify_; + } + /** + * bool canNotify = 6; + * @param value The canNotify to set. + * @return This builder for chaining. + */ + public Builder setCanNotify(boolean value) { + + canNotify_ = value; + onChanged(); + return this; + } + /** + * bool canNotify = 6; + * @return This builder for chaining. + */ + public Builder clearCanNotify() { + + canNotify_ = false; + onChanged(); + return this; + } + private java.util.List descriptors_ = java.util.Collections.emptyList(); private void ensureDescriptorsIsMutable() { @@ -7110,7 +8786,7 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.Builder, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorOrBuilder> descriptorsBuilder_; /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public java.util.List getDescriptorsList() { if (descriptorsBuilder_ == null) { @@ -7120,7 +8796,7 @@ public final class MessageOuterClass { } } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public int getDescriptorsCount() { if (descriptorsBuilder_ == null) { @@ -7130,7 +8806,7 @@ public final class MessageOuterClass { } } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor getDescriptors(int index) { if (descriptorsBuilder_ == null) { @@ -7140,7 +8816,7 @@ public final class MessageOuterClass { } } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public Builder setDescriptors( int index, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor value) { @@ -7157,7 +8833,7 @@ public final class MessageOuterClass { return this; } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public Builder setDescriptors( int index, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.Builder builderForValue) { @@ -7171,7 +8847,7 @@ public final class MessageOuterClass { return this; } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public Builder addDescriptors(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor value) { if (descriptorsBuilder_ == null) { @@ -7187,7 +8863,7 @@ public final class MessageOuterClass { return this; } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public Builder addDescriptors( int index, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor value) { @@ -7204,7 +8880,7 @@ public final class MessageOuterClass { return this; } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public Builder addDescriptors( dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.Builder builderForValue) { @@ -7218,7 +8894,7 @@ public final class MessageOuterClass { return this; } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public Builder addDescriptors( int index, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.Builder builderForValue) { @@ -7232,7 +8908,7 @@ public final class MessageOuterClass { return this; } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public Builder addAllDescriptors( java.lang.Iterable values) { @@ -7247,7 +8923,7 @@ public final class MessageOuterClass { return this; } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public Builder clearDescriptors() { if (descriptorsBuilder_ == null) { @@ -7260,7 +8936,7 @@ public final class MessageOuterClass { return this; } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public Builder removeDescriptors(int index) { if (descriptorsBuilder_ == null) { @@ -7273,14 +8949,14 @@ public final class MessageOuterClass { return this; } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.Builder getDescriptorsBuilder( int index) { return getDescriptorsFieldBuilder().getBuilder(index); } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorOrBuilder getDescriptorsOrBuilder( int index) { @@ -7290,7 +8966,7 @@ public final class MessageOuterClass { } } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public java.util.List getDescriptorsOrBuilderList() { @@ -7301,14 +8977,14 @@ public final class MessageOuterClass { } } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.Builder addDescriptorsBuilder() { return getDescriptorsFieldBuilder().addBuilder( dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.getDefaultInstance()); } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.Builder addDescriptorsBuilder( int index) { @@ -7316,7 +8992,7 @@ public final class MessageOuterClass { index, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.getDefaultInstance()); } /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; */ public java.util.List getDescriptorsBuilderList() { @@ -7336,130 +9012,6 @@ public final class MessageOuterClass { } return descriptorsBuilder_; } - - private boolean canRead_ ; - /** - * bool canRead = 4; - * @return The canRead. - */ - @java.lang.Override - public boolean getCanRead() { - return canRead_; - } - /** - * bool canRead = 4; - * @param value The canRead to set. - * @return This builder for chaining. - */ - public Builder setCanRead(boolean value) { - - canRead_ = value; - onChanged(); - return this; - } - /** - * bool canRead = 4; - * @return This builder for chaining. - */ - public Builder clearCanRead() { - - canRead_ = false; - onChanged(); - return this; - } - - private boolean canWrite_ ; - /** - * bool canWrite = 5; - * @return The canWrite. - */ - @java.lang.Override - public boolean getCanWrite() { - return canWrite_; - } - /** - * bool canWrite = 5; - * @param value The canWrite to set. - * @return This builder for chaining. - */ - public Builder setCanWrite(boolean value) { - - canWrite_ = value; - onChanged(); - return this; - } - /** - * bool canWrite = 5; - * @return This builder for chaining. - */ - public Builder clearCanWrite() { - - canWrite_ = false; - onChanged(); - return this; - } - - private boolean canWriteWithoutResponse_ ; - /** - * bool canWriteWithoutResponse = 6; - * @return The canWriteWithoutResponse. - */ - @java.lang.Override - public boolean getCanWriteWithoutResponse() { - return canWriteWithoutResponse_; - } - /** - * bool canWriteWithoutResponse = 6; - * @param value The canWriteWithoutResponse to set. - * @return This builder for chaining. - */ - public Builder setCanWriteWithoutResponse(boolean value) { - - canWriteWithoutResponse_ = value; - onChanged(); - return this; - } - /** - * bool canWriteWithoutResponse = 6; - * @return This builder for chaining. - */ - public Builder clearCanWriteWithoutResponse() { - - canWriteWithoutResponse_ = false; - onChanged(); - return this; - } - - private boolean canNotify_ ; - /** - * bool canNotify = 7; - * @return The canNotify. - */ - @java.lang.Override - public boolean getCanNotify() { - return canNotify_; - } - /** - * bool canNotify = 7; - * @param value The canNotify to set. - * @return This builder for chaining. - */ - public Builder setCanNotify(boolean value) { - - canNotify_ = value; - onChanged(); - return this; - } - /** - * bool canNotify = 7; - * @return This builder for chaining. - */ - public Builder clearCanNotify() { - - canNotify_ = false; - onChanged(); - return this; - } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -7518,10 +9070,16 @@ public final class MessageOuterClass { com.google.protobuf.MessageOrBuilder { /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ - int getId(); + java.lang.String getKey(); + /** + * string key = 1; + * @return The bytes for key. + */ + com.google.protobuf.ByteString + getKeyBytes(); /** * string uuid = 2; @@ -7548,6 +9106,7 @@ public final class MessageOuterClass { super(builder); } private GattDescriptor() { + key_ = ""; uuid_ = ""; } @@ -7581,9 +9140,10 @@ public final class MessageOuterClass { case 0: done = true; break; - case 8: { + case 10: { + java.lang.String s = input.readStringRequireUtf8(); - id_ = input.readInt32(); + key_ = s; break; } case 18: { @@ -7624,15 +9184,42 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.Builder.class); } - public static final int ID_FIELD_NUMBER = 1; - private int id_; + public static final int KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object key_; /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ @java.lang.Override - public int getId() { - return id_; + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } + } + /** + * string key = 1; + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } public static final int UUID_FIELD_NUMBER = 2; @@ -7687,8 +9274,8 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (id_ != 0) { - output.writeInt32(1, id_); + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); } if (!getUuidBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, uuid_); @@ -7702,9 +9289,8 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (id_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1, id_); + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); } if (!getUuidBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, uuid_); @@ -7724,8 +9310,8 @@ public final class MessageOuterClass { } dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor) obj; - if (getId() - != other.getId()) return false; + if (!getKey() + .equals(other.getKey())) return false; if (!getUuid() .equals(other.getUuid())) return false; if (!unknownFields.equals(other.unknownFields)) return false; @@ -7739,8 +9325,8 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); hash = (37 * hash) + UUID_FIELD_NUMBER; hash = (53 * hash) + getUuid().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); @@ -7876,7 +9462,7 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - id_ = 0; + key_ = ""; uuid_ = ""; @@ -7906,7 +9492,7 @@ public final class MessageOuterClass { @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor buildPartial() { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor(this); - result.id_ = id_; + result.key_ = key_; result.uuid_ = uuid_; onBuilt(); return result; @@ -7956,8 +9542,9 @@ public final class MessageOuterClass { public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor other) { if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor.getDefaultInstance()) return this; - if (other.getId() != 0) { - setId(other.getId()); + if (!other.getKey().isEmpty()) { + key_ = other.key_; + onChanged(); } if (!other.getUuid().isEmpty()) { uuid_ = other.uuid_; @@ -7992,33 +9579,78 @@ public final class MessageOuterClass { return this; } - private int id_ ; + private java.lang.Object key_ = ""; /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ - @java.lang.Override - public int getId() { - return id_; + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** - * int32 id = 1; - * @param value The id to set. + * string key = 1; + * @return The bytes for key. + */ + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string key = 1; + * @param value The key to set. * @return This builder for chaining. */ - public Builder setId(int value) { - - id_ = value; + public Builder setKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + key_ = value; onChanged(); return this; } /** - * int32 id = 1; + * string key = 1; * @return This builder for chaining. */ - public Builder clearId() { + public Builder clearKey() { - id_ = 0; + key_ = getDefaultInstance().getKey(); + onChanged(); + return this; + } + /** + * string key = 1; + * @param value The bytes for key to set. + * @return This builder for chaining. + */ + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + key_ = value; onChanged(); return this; } @@ -8151,42 +9783,43 @@ public final class MessageOuterClass { } - public interface ConnectionLostOrBuilder extends - // @@protoc_insertion_point(interface_extends:dev.yanshouwang.bluetooth_low_energy.ConnectionLost) + public interface GattDisconnectArgumentsOrBuilder extends + // @@protoc_insertion_point(interface_extends:dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments) com.google.protobuf.MessageOrBuilder { /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ - int getId(); - + java.lang.String getKey(); /** - * int32 error_code = 2; - * @return The errorCode. + * string key = 1; + * @return The bytes for key. */ - int getErrorCode(); + com.google.protobuf.ByteString + getKeyBytes(); } /** - * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.ConnectionLost} + * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments} */ - public static final class ConnectionLost extends + public static final class GattDisconnectArguments extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:dev.yanshouwang.bluetooth_low_energy.ConnectionLost) - ConnectionLostOrBuilder { + // @@protoc_insertion_point(message_implements:dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments) + GattDisconnectArgumentsOrBuilder { private static final long serialVersionUID = 0L; - // Use ConnectionLost.newBuilder() to construct. - private ConnectionLost(com.google.protobuf.GeneratedMessageV3.Builder builder) { + // Use GattDisconnectArguments.newBuilder() to construct. + private GattDisconnectArguments(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private ConnectionLost() { + private GattDisconnectArguments() { + key_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { - return new ConnectionLost(); + return new GattDisconnectArguments(); } @java.lang.Override @@ -8194,7 +9827,7 @@ public final class MessageOuterClass { getUnknownFields() { return this.unknownFields; } - private ConnectionLost( + private GattDisconnectArguments( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { @@ -8212,14 +9845,10 @@ public final class MessageOuterClass { case 0: done = true; break; - case 8: { + case 10: { + java.lang.String s = input.readStringRequireUtf8(); - id_ = input.readInt32(); - break; - } - case 16: { - - errorCode_ = input.readInt32(); + key_ = s; break; } default: { @@ -8243,37 +9872,53 @@ public final class MessageOuterClass { } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectionLost_descriptor; + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectionLost_fieldAccessorTable + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_fieldAccessorTable .ensureFieldAccessorsInitialized( - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.Builder.class); + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.Builder.class); } - public static final int ID_FIELD_NUMBER = 1; - private int id_; + public static final int KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object key_; /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ @java.lang.Override - public int getId() { - return id_; + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } } - - public static final int ERROR_CODE_FIELD_NUMBER = 2; - private int errorCode_; /** - * int32 error_code = 2; - * @return The errorCode. + * string key = 1; + * @return The bytes for key. */ @java.lang.Override - public int getErrorCode() { - return errorCode_; + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } private byte memoizedIsInitialized = -1; @@ -8290,11 +9935,8 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (id_ != 0) { - output.writeInt32(1, id_); - } - if (errorCode_ != 0) { - output.writeInt32(2, errorCode_); + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); } unknownFields.writeTo(output); } @@ -8305,13 +9947,8 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (id_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1, id_); - } - if (errorCode_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, errorCode_); + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -8323,15 +9960,13 @@ public final class MessageOuterClass { if (obj == this) { return true; } - if (!(obj instanceof dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost)) { + if (!(obj instanceof dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments)) { return super.equals(obj); } - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) obj; + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) obj; - if (getId() - != other.getId()) return false; - if (getErrorCode() - != other.getErrorCode()) return false; + if (!getKey() + .equals(other.getKey())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -8343,78 +9978,76 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); - hash = (37 * hash) + ERROR_CODE_FIELD_NUMBER; - hash = (53 * hash) + getErrorCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parseFrom( + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parseFrom( + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parseFrom( + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parseFrom( + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parseFrom(byte[] data) + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parseFrom( + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parseFrom(java.io.InputStream input) + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parseFrom( + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parseDelimitedFrom(java.io.InputStream input) + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parseDelimitedFrom( + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parseFrom( + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parseFrom( + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -8427,7 +10060,7 @@ public final class MessageOuterClass { public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost prototype) { + public static Builder newBuilder(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override @@ -8443,26 +10076,26 @@ public final class MessageOuterClass { return builder; } /** - * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.ConnectionLost} + * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:dev.yanshouwang.bluetooth_low_energy.ConnectionLost) - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLostOrBuilder { + // @@protoc_insertion_point(builder_implements:dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments) + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArgumentsOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectionLost_descriptor; + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectionLost_fieldAccessorTable + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_fieldAccessorTable .ensureFieldAccessorsInitialized( - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.Builder.class); + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.Builder.class); } - // Construct using dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.newBuilder() + // Construct using dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -8480,9 +10113,7 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - id_ = 0; - - errorCode_ = 0; + key_ = ""; return this; } @@ -8490,17 +10121,17 @@ public final class MessageOuterClass { @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectionLost_descriptor; + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_descriptor; } @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost getDefaultInstanceForType() { - return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.getDefaultInstance(); + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments getDefaultInstanceForType() { + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.getDefaultInstance(); } @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost build() { - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost result = buildPartial(); + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments build() { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -8508,10 +10139,9 @@ public final class MessageOuterClass { } @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost buildPartial() { - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost(this); - result.id_ = id_; - result.errorCode_ = errorCode_; + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments buildPartial() { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments(this); + result.key_ = key_; onBuilt(); return result; } @@ -8550,21 +10180,19 @@ public final class MessageOuterClass { } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) { - return mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost)other); + if (other instanceof dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) { + return mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost other) { - if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.getDefaultInstance()) return this; - if (other.getId() != 0) { - setId(other.getId()); - } - if (other.getErrorCode() != 0) { - setErrorCode(other.getErrorCode()); + public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments other) { + if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments.getDefaultInstance()) return this; + if (!other.getKey().isEmpty()) { + key_ = other.key_; + onChanged(); } this.mergeUnknownFields(other.unknownFields); onChanged(); @@ -8581,11 +10209,11 @@ public final class MessageOuterClass { com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost parsedMessage = null; + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost) e.getUnfinishedMessage(); + parsedMessage = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -8595,64 +10223,78 @@ public final class MessageOuterClass { return this; } - private int id_ ; + private java.lang.Object key_ = ""; /** - * int32 id = 1; - * @return The id. + * string key = 1; + * @return The key. */ - @java.lang.Override - public int getId() { - return id_; + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** - * int32 id = 1; - * @param value The id to set. + * string key = 1; + * @return The bytes for key. + */ + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string key = 1; + * @param value The key to set. * @return This builder for chaining. */ - public Builder setId(int value) { - - id_ = value; + public Builder setKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + key_ = value; onChanged(); return this; } /** - * int32 id = 1; + * string key = 1; * @return This builder for chaining. */ - public Builder clearId() { + public Builder clearKey() { - id_ = 0; - onChanged(); - return this; - } - - private int errorCode_ ; - /** - * int32 error_code = 2; - * @return The errorCode. - */ - @java.lang.Override - public int getErrorCode() { - return errorCode_; - } - /** - * int32 error_code = 2; - * @param value The errorCode to set. - * @return This builder for chaining. - */ - public Builder setErrorCode(int value) { - - errorCode_ = value; + key_ = getDefaultInstance().getKey(); onChanged(); return this; } /** - * int32 error_code = 2; + * string key = 1; + * @param value The bytes for key to set. * @return This builder for chaining. */ - public Builder clearErrorCode() { + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); - errorCode_ = 0; + key_ = value; onChanged(); return this; } @@ -8669,41 +10311,759 @@ public final class MessageOuterClass { } - // @@protoc_insertion_point(builder_scope:dev.yanshouwang.bluetooth_low_energy.ConnectionLost) + // @@protoc_insertion_point(builder_scope:dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments) } - // @@protoc_insertion_point(class_scope:dev.yanshouwang.bluetooth_low_energy.ConnectionLost) - private static final dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments) + private static final dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost(); + DEFAULT_INSTANCE = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments(); } - public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost getDefaultInstance() { + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override - public ConnectionLost parsePartialFrom( + public GattDisconnectArguments parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConnectionLost(input, extensionRegistry); + return new GattDisconnectArguments(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser getParserForType() { + public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override - public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost getDefaultInstanceForType() { + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface GattConnectionLostOrBuilder extends + // @@protoc_insertion_point(interface_extends:dev.yanshouwang.bluetooth_low_energy.GattConnectionLost) + com.google.protobuf.MessageOrBuilder { + + /** + * string key = 1; + * @return The key. + */ + java.lang.String getKey(); + /** + * string key = 1; + * @return The bytes for key. + */ + com.google.protobuf.ByteString + getKeyBytes(); + + /** + * string error = 2; + * @return The error. + */ + java.lang.String getError(); + /** + * string error = 2; + * @return The bytes for error. + */ + com.google.protobuf.ByteString + getErrorBytes(); + } + /** + * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.GattConnectionLost} + */ + public static final class GattConnectionLost extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:dev.yanshouwang.bluetooth_low_energy.GattConnectionLost) + GattConnectionLostOrBuilder { + private static final long serialVersionUID = 0L; + // Use GattConnectionLost.newBuilder() to construct. + private GattConnectionLost(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GattConnectionLost() { + key_ = ""; + error_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GattConnectionLost(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GattConnectionLost( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + key_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + error_ = s; + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattConnectionLost_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattConnectionLost_fieldAccessorTable + .ensureFieldAccessorsInitialized( + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.Builder.class); + } + + public static final int KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object key_; + /** + * string key = 1; + * @return The key. + */ + @java.lang.Override + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } + } + /** + * string key = 1; + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ERROR_FIELD_NUMBER = 2; + private volatile java.lang.Object error_; + /** + * string error = 2; + * @return The error. + */ + @java.lang.Override + public java.lang.String getError() { + java.lang.Object ref = error_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + error_ = s; + return s; + } + } + /** + * string error = 2; + * @return The bytes for error. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getErrorBytes() { + java.lang.Object ref = error_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + error_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); + } + if (!getErrorBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, error_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); + } + if (!getErrorBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, error_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost)) { + return super.equals(obj); + } + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) obj; + + if (!getKey() + .equals(other.getKey())) return false; + if (!getError() + .equals(other.getError())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); + hash = (37 * hash) + ERROR_FIELD_NUMBER; + hash = (53 * hash) + getError().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.GattConnectionLost} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:dev.yanshouwang.bluetooth_low_energy.GattConnectionLost) + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLostOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattConnectionLost_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattConnectionLost_fieldAccessorTable + .ensureFieldAccessorsInitialized( + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.Builder.class); + } + + // Construct using dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + key_ = ""; + + error_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.internal_static_dev_yanshouwang_bluetooth_low_energy_GattConnectionLost_descriptor; + } + + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost getDefaultInstanceForType() { + return dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.getDefaultInstance(); + } + + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost build() { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost buildPartial() { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost(this); + result.key_ = key_; + result.error_ = error_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) { + return mergeFrom((dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost other) { + if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.getDefaultInstance()) return this; + if (!other.getKey().isEmpty()) { + key_ = other.key_; + onChanged(); + } + if (!other.getError().isEmpty()) { + error_ = other.error_; + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object key_ = ""; + /** + * string key = 1; + * @return The key. + */ + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string key = 1; + * @return The bytes for key. + */ + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string key = 1; + * @param value The key to set. + * @return This builder for chaining. + */ + public Builder setKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + key_ = value; + onChanged(); + return this; + } + /** + * string key = 1; + * @return This builder for chaining. + */ + public Builder clearKey() { + + key_ = getDefaultInstance().getKey(); + onChanged(); + return this; + } + /** + * string key = 1; + * @param value The bytes for key to set. + * @return This builder for chaining. + */ + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + key_ = value; + onChanged(); + return this; + } + + private java.lang.Object error_ = ""; + /** + * string error = 2; + * @return The error. + */ + public java.lang.String getError() { + java.lang.Object ref = error_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + error_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string error = 2; + * @return The bytes for error. + */ + public com.google.protobuf.ByteString + getErrorBytes() { + java.lang.Object ref = error_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + error_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string error = 2; + * @param value The error to set. + * @return This builder for chaining. + */ + public Builder setError( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + error_ = value; + onChanged(); + return this; + } + /** + * string error = 2; + * @return This builder for chaining. + */ + public Builder clearError() { + + error_ = getDefaultInstance().getError(); + onChanged(); + return this; + } + /** + * string error = 2; + * @param value The bytes for error to set. + * @return This builder for chaining. + */ + public Builder setErrorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + error_ = value; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:dev.yanshouwang.bluetooth_low_energy.GattConnectionLost) + } + + // @@protoc_insertion_point(class_scope:dev.yanshouwang.bluetooth_low_energy.GattConnectionLost) + private static final dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost(); + } + + public static dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GattConnectionLost parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GattConnectionLost(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -8714,46 +11074,40 @@ public final class MessageOuterClass { com.google.protobuf.MessageOrBuilder { /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ - java.lang.String getAddress(); + java.lang.String getGattKey(); /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ com.google.protobuf.ByteString - getAddressBytes(); + getGattKeyBytes(); /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ - java.lang.String getServiceUuid(); + java.lang.String getServiceKey(); /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ com.google.protobuf.ByteString - getServiceUuidBytes(); + getServiceKeyBytes(); /** - * string uuid = 3; - * @return The uuid. + * string key = 3; + * @return The key. */ - java.lang.String getUuid(); + java.lang.String getKey(); /** - * string uuid = 3; - * @return The bytes for uuid. + * string key = 3; + * @return The bytes for key. */ com.google.protobuf.ByteString - getUuidBytes(); - - /** - * int32 id = 4; - * @return The id. - */ - int getId(); + getKeyBytes(); } /** * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments} @@ -8768,9 +11122,9 @@ public final class MessageOuterClass { super(builder); } private GattCharacteristicReadArguments() { - address_ = ""; - serviceUuid_ = ""; - uuid_ = ""; + gattKey_ = ""; + serviceKey_ = ""; + key_ = ""; } @java.lang.Override @@ -8806,24 +11160,19 @@ public final class MessageOuterClass { case 10: { java.lang.String s = input.readStringRequireUtf8(); - address_ = s; + gattKey_ = s; break; } case 18: { java.lang.String s = input.readStringRequireUtf8(); - serviceUuid_ = s; + serviceKey_ = s; break; } case 26: { java.lang.String s = input.readStringRequireUtf8(); - uuid_ = s; - break; - } - case 32: { - - id_ = input.readInt32(); + key_ = s; break; } default: { @@ -8858,131 +11207,120 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.Builder.class); } - public static final int ADDRESS_FIELD_NUMBER = 1; - private volatile java.lang.Object address_; + public static final int GATT_KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object gattKey_; /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ @java.lang.Override - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getGattKey() { + java.lang.Object ref = gattKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + gattKey_ = s; return s; } } /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ @java.lang.Override public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getGattKeyBytes() { + java.lang.Object ref = gattKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + gattKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int SERVICE_UUID_FIELD_NUMBER = 2; - private volatile java.lang.Object serviceUuid_; + public static final int SERVICE_KEY_FIELD_NUMBER = 2; + private volatile java.lang.Object serviceKey_; /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ @java.lang.Override - public java.lang.String getServiceUuid() { - java.lang.Object ref = serviceUuid_; + public java.lang.String getServiceKey() { + java.lang.Object ref = serviceKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - serviceUuid_ = s; + serviceKey_ = s; return s; } } /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ @java.lang.Override public com.google.protobuf.ByteString - getServiceUuidBytes() { - java.lang.Object ref = serviceUuid_; + getServiceKeyBytes() { + java.lang.Object ref = serviceKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - serviceUuid_ = b; + serviceKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int UUID_FIELD_NUMBER = 3; - private volatile java.lang.Object uuid_; + public static final int KEY_FIELD_NUMBER = 3; + private volatile java.lang.Object key_; /** - * string uuid = 3; - * @return The uuid. + * string key = 3; + * @return The key. */ @java.lang.Override - public java.lang.String getUuid() { - java.lang.Object ref = uuid_; + public java.lang.String getKey() { + java.lang.Object ref = key_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - uuid_ = s; + key_ = s; return s; } } /** - * string uuid = 3; - * @return The bytes for uuid. + * string key = 3; + * @return The bytes for key. */ @java.lang.Override public com.google.protobuf.ByteString - getUuidBytes() { - java.lang.Object ref = uuid_; + getKeyBytes() { + java.lang.Object ref = key_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - uuid_ = b; + key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int ID_FIELD_NUMBER = 4; - private int id_; - /** - * int32 id = 4; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -8997,17 +11335,14 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getAddressBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, address_); + if (!getGattKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, gattKey_); } - if (!getServiceUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serviceUuid_); + if (!getServiceKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serviceKey_); } - if (!getUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, uuid_); - } - if (id_ != 0) { - output.writeInt32(4, id_); + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, key_); } unknownFields.writeTo(output); } @@ -9018,18 +11353,14 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (!getAddressBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, address_); + if (!getGattKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, gattKey_); } - if (!getServiceUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serviceUuid_); + if (!getServiceKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serviceKey_); } - if (!getUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, uuid_); - } - if (id_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(4, id_); + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, key_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -9046,14 +11377,12 @@ public final class MessageOuterClass { } dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments) obj; - if (!getAddress() - .equals(other.getAddress())) return false; - if (!getServiceUuid() - .equals(other.getServiceUuid())) return false; - if (!getUuid() - .equals(other.getUuid())) return false; - if (getId() - != other.getId()) return false; + if (!getGattKey() + .equals(other.getGattKey())) return false; + if (!getServiceKey() + .equals(other.getServiceKey())) return false; + if (!getKey() + .equals(other.getKey())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -9065,14 +11394,12 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ADDRESS_FIELD_NUMBER; - hash = (53 * hash) + getAddress().hashCode(); - hash = (37 * hash) + SERVICE_UUID_FIELD_NUMBER; - hash = (53 * hash) + getServiceUuid().hashCode(); - hash = (37 * hash) + UUID_FIELD_NUMBER; - hash = (53 * hash) + getUuid().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); + hash = (37 * hash) + GATT_KEY_FIELD_NUMBER; + hash = (53 * hash) + getGattKey().hashCode(); + hash = (37 * hash) + SERVICE_KEY_FIELD_NUMBER; + hash = (53 * hash) + getServiceKey().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -9206,13 +11533,11 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - address_ = ""; + gattKey_ = ""; - serviceUuid_ = ""; + serviceKey_ = ""; - uuid_ = ""; - - id_ = 0; + key_ = ""; return this; } @@ -9240,10 +11565,9 @@ public final class MessageOuterClass { @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments buildPartial() { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments(this); - result.address_ = address_; - result.serviceUuid_ = serviceUuid_; - result.uuid_ = uuid_; - result.id_ = id_; + result.gattKey_ = gattKey_; + result.serviceKey_ = serviceKey_; + result.key_ = key_; onBuilt(); return result; } @@ -9292,21 +11616,18 @@ public final class MessageOuterClass { public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments other) { if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments.getDefaultInstance()) return this; - if (!other.getAddress().isEmpty()) { - address_ = other.address_; + if (!other.getGattKey().isEmpty()) { + gattKey_ = other.gattKey_; onChanged(); } - if (!other.getServiceUuid().isEmpty()) { - serviceUuid_ = other.serviceUuid_; + if (!other.getServiceKey().isEmpty()) { + serviceKey_ = other.serviceKey_; onChanged(); } - if (!other.getUuid().isEmpty()) { - uuid_ = other.uuid_; + if (!other.getKey().isEmpty()) { + key_ = other.key_; onChanged(); } - if (other.getId() != 0) { - setId(other.getId()); - } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -9336,261 +11657,230 @@ public final class MessageOuterClass { return this; } - private java.lang.Object address_ = ""; + private java.lang.Object gattKey_ = ""; /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getGattKey() { + java.lang.Object ref = gattKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + gattKey_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getGattKeyBytes() { + java.lang.Object ref = gattKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + gattKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string address = 1; - * @param value The address to set. + * string gatt_key = 1; + * @param value The gattKey to set. * @return This builder for chaining. */ - public Builder setAddress( + public Builder setGattKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - address_ = value; + gattKey_ = value; onChanged(); return this; } /** - * string address = 1; + * string gatt_key = 1; * @return This builder for chaining. */ - public Builder clearAddress() { + public Builder clearGattKey() { - address_ = getDefaultInstance().getAddress(); + gattKey_ = getDefaultInstance().getGattKey(); onChanged(); return this; } /** - * string address = 1; - * @param value The bytes for address to set. + * string gatt_key = 1; + * @param value The bytes for gattKey to set. * @return This builder for chaining. */ - public Builder setAddressBytes( + public Builder setGattKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - address_ = value; + gattKey_ = value; onChanged(); return this; } - private java.lang.Object serviceUuid_ = ""; + private java.lang.Object serviceKey_ = ""; /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ - public java.lang.String getServiceUuid() { - java.lang.Object ref = serviceUuid_; + public java.lang.String getServiceKey() { + java.lang.Object ref = serviceKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - serviceUuid_ = s; + serviceKey_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ public com.google.protobuf.ByteString - getServiceUuidBytes() { - java.lang.Object ref = serviceUuid_; + getServiceKeyBytes() { + java.lang.Object ref = serviceKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - serviceUuid_ = b; + serviceKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string service_uuid = 2; - * @param value The serviceUuid to set. + * string service_key = 2; + * @param value The serviceKey to set. * @return This builder for chaining. */ - public Builder setServiceUuid( + public Builder setServiceKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - serviceUuid_ = value; + serviceKey_ = value; onChanged(); return this; } /** - * string service_uuid = 2; + * string service_key = 2; * @return This builder for chaining. */ - public Builder clearServiceUuid() { + public Builder clearServiceKey() { - serviceUuid_ = getDefaultInstance().getServiceUuid(); + serviceKey_ = getDefaultInstance().getServiceKey(); onChanged(); return this; } /** - * string service_uuid = 2; - * @param value The bytes for serviceUuid to set. + * string service_key = 2; + * @param value The bytes for serviceKey to set. * @return This builder for chaining. */ - public Builder setServiceUuidBytes( + public Builder setServiceKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - serviceUuid_ = value; + serviceKey_ = value; onChanged(); return this; } - private java.lang.Object uuid_ = ""; + private java.lang.Object key_ = ""; /** - * string uuid = 3; - * @return The uuid. + * string key = 3; + * @return The key. */ - public java.lang.String getUuid() { - java.lang.Object ref = uuid_; + public java.lang.String getKey() { + java.lang.Object ref = key_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - uuid_ = s; + key_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string uuid = 3; - * @return The bytes for uuid. + * string key = 3; + * @return The bytes for key. */ public com.google.protobuf.ByteString - getUuidBytes() { - java.lang.Object ref = uuid_; + getKeyBytes() { + java.lang.Object ref = key_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - uuid_ = b; + key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string uuid = 3; - * @param value The uuid to set. + * string key = 3; + * @param value The key to set. * @return This builder for chaining. */ - public Builder setUuid( + public Builder setKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - uuid_ = value; + key_ = value; onChanged(); return this; } /** - * string uuid = 3; + * string key = 3; * @return This builder for chaining. */ - public Builder clearUuid() { + public Builder clearKey() { - uuid_ = getDefaultInstance().getUuid(); + key_ = getDefaultInstance().getKey(); onChanged(); return this; } /** - * string uuid = 3; - * @param value The bytes for uuid to set. + * string key = 3; + * @param value The bytes for key to set. * @return This builder for chaining. */ - public Builder setUuidBytes( + public Builder setKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - uuid_ = value; - onChanged(); - return this; - } - - private int id_ ; - /** - * int32 id = 4; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - /** - * int32 id = 4; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId(int value) { - - id_ = value; - onChanged(); - return this; - } - /** - * int32 id = 4; - * @return This builder for chaining. - */ - public Builder clearId() { - - id_ = 0; + key_ = value; onChanged(); return this; } @@ -9652,55 +11942,49 @@ public final class MessageOuterClass { com.google.protobuf.MessageOrBuilder { /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ - java.lang.String getAddress(); + java.lang.String getGattKey(); /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ com.google.protobuf.ByteString - getAddressBytes(); + getGattKeyBytes(); /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ - java.lang.String getServiceUuid(); + java.lang.String getServiceKey(); /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ com.google.protobuf.ByteString - getServiceUuidBytes(); + getServiceKeyBytes(); /** - * string uuid = 3; - * @return The uuid. + * string key = 3; + * @return The key. */ - java.lang.String getUuid(); + java.lang.String getKey(); /** - * string uuid = 3; - * @return The bytes for uuid. + * string key = 3; + * @return The bytes for key. */ com.google.protobuf.ByteString - getUuidBytes(); + getKeyBytes(); /** - * int32 id = 4; - * @return The id. - */ - int getId(); - - /** - * bytes value = 5; + * bytes value = 4; * @return The value. */ com.google.protobuf.ByteString getValue(); /** - * bool withoutResponse = 6; + * bool withoutResponse = 5; * @return The withoutResponse. */ boolean getWithoutResponse(); @@ -9718,9 +12002,9 @@ public final class MessageOuterClass { super(builder); } private GattCharacteristicWriteArguments() { - address_ = ""; - serviceUuid_ = ""; - uuid_ = ""; + gattKey_ = ""; + serviceKey_ = ""; + key_ = ""; value_ = com.google.protobuf.ByteString.EMPTY; } @@ -9757,32 +12041,27 @@ public final class MessageOuterClass { case 10: { java.lang.String s = input.readStringRequireUtf8(); - address_ = s; + gattKey_ = s; break; } case 18: { java.lang.String s = input.readStringRequireUtf8(); - serviceUuid_ = s; + serviceKey_ = s; break; } case 26: { java.lang.String s = input.readStringRequireUtf8(); - uuid_ = s; + key_ = s; break; } - case 32: { - - id_ = input.readInt32(); - break; - } - case 42: { + case 34: { value_ = input.readBytes(); break; } - case 48: { + case 40: { withoutResponse_ = input.readBool(); break; @@ -9819,135 +12098,124 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.Builder.class); } - public static final int ADDRESS_FIELD_NUMBER = 1; - private volatile java.lang.Object address_; + public static final int GATT_KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object gattKey_; /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ @java.lang.Override - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getGattKey() { + java.lang.Object ref = gattKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + gattKey_ = s; return s; } } /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ @java.lang.Override public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getGattKeyBytes() { + java.lang.Object ref = gattKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + gattKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int SERVICE_UUID_FIELD_NUMBER = 2; - private volatile java.lang.Object serviceUuid_; + public static final int SERVICE_KEY_FIELD_NUMBER = 2; + private volatile java.lang.Object serviceKey_; /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ @java.lang.Override - public java.lang.String getServiceUuid() { - java.lang.Object ref = serviceUuid_; + public java.lang.String getServiceKey() { + java.lang.Object ref = serviceKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - serviceUuid_ = s; + serviceKey_ = s; return s; } } /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ @java.lang.Override public com.google.protobuf.ByteString - getServiceUuidBytes() { - java.lang.Object ref = serviceUuid_; + getServiceKeyBytes() { + java.lang.Object ref = serviceKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - serviceUuid_ = b; + serviceKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int UUID_FIELD_NUMBER = 3; - private volatile java.lang.Object uuid_; + public static final int KEY_FIELD_NUMBER = 3; + private volatile java.lang.Object key_; /** - * string uuid = 3; - * @return The uuid. + * string key = 3; + * @return The key. */ @java.lang.Override - public java.lang.String getUuid() { - java.lang.Object ref = uuid_; + public java.lang.String getKey() { + java.lang.Object ref = key_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - uuid_ = s; + key_ = s; return s; } } /** - * string uuid = 3; - * @return The bytes for uuid. + * string key = 3; + * @return The bytes for key. */ @java.lang.Override public com.google.protobuf.ByteString - getUuidBytes() { - java.lang.Object ref = uuid_; + getKeyBytes() { + java.lang.Object ref = key_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - uuid_ = b; + key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int ID_FIELD_NUMBER = 4; - private int id_; - /** - * int32 id = 4; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - - public static final int VALUE_FIELD_NUMBER = 5; + public static final int VALUE_FIELD_NUMBER = 4; private com.google.protobuf.ByteString value_; /** - * bytes value = 5; + * bytes value = 4; * @return The value. */ @java.lang.Override @@ -9955,10 +12223,10 @@ public final class MessageOuterClass { return value_; } - public static final int WITHOUTRESPONSE_FIELD_NUMBER = 6; + public static final int WITHOUTRESPONSE_FIELD_NUMBER = 5; private boolean withoutResponse_; /** - * bool withoutResponse = 6; + * bool withoutResponse = 5; * @return The withoutResponse. */ @java.lang.Override @@ -9980,23 +12248,20 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getAddressBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, address_); + if (!getGattKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, gattKey_); } - if (!getServiceUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serviceUuid_); + if (!getServiceKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serviceKey_); } - if (!getUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, uuid_); - } - if (id_ != 0) { - output.writeInt32(4, id_); + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, key_); } if (!value_.isEmpty()) { - output.writeBytes(5, value_); + output.writeBytes(4, value_); } if (withoutResponse_ != false) { - output.writeBool(6, withoutResponse_); + output.writeBool(5, withoutResponse_); } unknownFields.writeTo(output); } @@ -10007,26 +12272,22 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (!getAddressBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, address_); + if (!getGattKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, gattKey_); } - if (!getServiceUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serviceUuid_); + if (!getServiceKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serviceKey_); } - if (!getUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, uuid_); - } - if (id_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(4, id_); + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, key_); } if (!value_.isEmpty()) { size += com.google.protobuf.CodedOutputStream - .computeBytesSize(5, value_); + .computeBytesSize(4, value_); } if (withoutResponse_ != false) { size += com.google.protobuf.CodedOutputStream - .computeBoolSize(6, withoutResponse_); + .computeBoolSize(5, withoutResponse_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -10043,14 +12304,12 @@ public final class MessageOuterClass { } dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments) obj; - if (!getAddress() - .equals(other.getAddress())) return false; - if (!getServiceUuid() - .equals(other.getServiceUuid())) return false; - if (!getUuid() - .equals(other.getUuid())) return false; - if (getId() - != other.getId()) return false; + if (!getGattKey() + .equals(other.getGattKey())) return false; + if (!getServiceKey() + .equals(other.getServiceKey())) return false; + if (!getKey() + .equals(other.getKey())) return false; if (!getValue() .equals(other.getValue())) return false; if (getWithoutResponse() @@ -10066,14 +12325,12 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ADDRESS_FIELD_NUMBER; - hash = (53 * hash) + getAddress().hashCode(); - hash = (37 * hash) + SERVICE_UUID_FIELD_NUMBER; - hash = (53 * hash) + getServiceUuid().hashCode(); - hash = (37 * hash) + UUID_FIELD_NUMBER; - hash = (53 * hash) + getUuid().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); + hash = (37 * hash) + GATT_KEY_FIELD_NUMBER; + hash = (53 * hash) + getGattKey().hashCode(); + hash = (37 * hash) + SERVICE_KEY_FIELD_NUMBER; + hash = (53 * hash) + getServiceKey().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); hash = (37 * hash) + VALUE_FIELD_NUMBER; hash = (53 * hash) + getValue().hashCode(); hash = (37 * hash) + WITHOUTRESPONSE_FIELD_NUMBER; @@ -10212,13 +12469,11 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - address_ = ""; + gattKey_ = ""; - serviceUuid_ = ""; + serviceKey_ = ""; - uuid_ = ""; - - id_ = 0; + key_ = ""; value_ = com.google.protobuf.ByteString.EMPTY; @@ -10250,10 +12505,9 @@ public final class MessageOuterClass { @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments buildPartial() { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments(this); - result.address_ = address_; - result.serviceUuid_ = serviceUuid_; - result.uuid_ = uuid_; - result.id_ = id_; + result.gattKey_ = gattKey_; + result.serviceKey_ = serviceKey_; + result.key_ = key_; result.value_ = value_; result.withoutResponse_ = withoutResponse_; onBuilt(); @@ -10304,21 +12558,18 @@ public final class MessageOuterClass { public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments other) { if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments.getDefaultInstance()) return this; - if (!other.getAddress().isEmpty()) { - address_ = other.address_; + if (!other.getGattKey().isEmpty()) { + gattKey_ = other.gattKey_; onChanged(); } - if (!other.getServiceUuid().isEmpty()) { - serviceUuid_ = other.serviceUuid_; + if (!other.getServiceKey().isEmpty()) { + serviceKey_ = other.serviceKey_; onChanged(); } - if (!other.getUuid().isEmpty()) { - uuid_ = other.uuid_; + if (!other.getKey().isEmpty()) { + key_ = other.key_; onChanged(); } - if (other.getId() != 0) { - setId(other.getId()); - } if (other.getValue() != com.google.protobuf.ByteString.EMPTY) { setValue(other.getValue()); } @@ -10354,268 +12605,237 @@ public final class MessageOuterClass { return this; } - private java.lang.Object address_ = ""; + private java.lang.Object gattKey_ = ""; /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getGattKey() { + java.lang.Object ref = gattKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + gattKey_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getGattKeyBytes() { + java.lang.Object ref = gattKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + gattKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string address = 1; - * @param value The address to set. + * string gatt_key = 1; + * @param value The gattKey to set. * @return This builder for chaining. */ - public Builder setAddress( + public Builder setGattKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - address_ = value; + gattKey_ = value; onChanged(); return this; } /** - * string address = 1; + * string gatt_key = 1; * @return This builder for chaining. */ - public Builder clearAddress() { + public Builder clearGattKey() { - address_ = getDefaultInstance().getAddress(); + gattKey_ = getDefaultInstance().getGattKey(); onChanged(); return this; } /** - * string address = 1; - * @param value The bytes for address to set. + * string gatt_key = 1; + * @param value The bytes for gattKey to set. * @return This builder for chaining. */ - public Builder setAddressBytes( + public Builder setGattKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - address_ = value; + gattKey_ = value; onChanged(); return this; } - private java.lang.Object serviceUuid_ = ""; + private java.lang.Object serviceKey_ = ""; /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ - public java.lang.String getServiceUuid() { - java.lang.Object ref = serviceUuid_; + public java.lang.String getServiceKey() { + java.lang.Object ref = serviceKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - serviceUuid_ = s; + serviceKey_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ public com.google.protobuf.ByteString - getServiceUuidBytes() { - java.lang.Object ref = serviceUuid_; + getServiceKeyBytes() { + java.lang.Object ref = serviceKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - serviceUuid_ = b; + serviceKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string service_uuid = 2; - * @param value The serviceUuid to set. + * string service_key = 2; + * @param value The serviceKey to set. * @return This builder for chaining. */ - public Builder setServiceUuid( + public Builder setServiceKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - serviceUuid_ = value; + serviceKey_ = value; onChanged(); return this; } /** - * string service_uuid = 2; + * string service_key = 2; * @return This builder for chaining. */ - public Builder clearServiceUuid() { + public Builder clearServiceKey() { - serviceUuid_ = getDefaultInstance().getServiceUuid(); + serviceKey_ = getDefaultInstance().getServiceKey(); onChanged(); return this; } /** - * string service_uuid = 2; - * @param value The bytes for serviceUuid to set. + * string service_key = 2; + * @param value The bytes for serviceKey to set. * @return This builder for chaining. */ - public Builder setServiceUuidBytes( + public Builder setServiceKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - serviceUuid_ = value; + serviceKey_ = value; onChanged(); return this; } - private java.lang.Object uuid_ = ""; + private java.lang.Object key_ = ""; /** - * string uuid = 3; - * @return The uuid. + * string key = 3; + * @return The key. */ - public java.lang.String getUuid() { - java.lang.Object ref = uuid_; + public java.lang.String getKey() { + java.lang.Object ref = key_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - uuid_ = s; + key_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string uuid = 3; - * @return The bytes for uuid. + * string key = 3; + * @return The bytes for key. */ public com.google.protobuf.ByteString - getUuidBytes() { - java.lang.Object ref = uuid_; + getKeyBytes() { + java.lang.Object ref = key_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - uuid_ = b; + key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string uuid = 3; - * @param value The uuid to set. + * string key = 3; + * @param value The key to set. * @return This builder for chaining. */ - public Builder setUuid( + public Builder setKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - uuid_ = value; + key_ = value; onChanged(); return this; } /** - * string uuid = 3; + * string key = 3; * @return This builder for chaining. */ - public Builder clearUuid() { + public Builder clearKey() { - uuid_ = getDefaultInstance().getUuid(); + key_ = getDefaultInstance().getKey(); onChanged(); return this; } /** - * string uuid = 3; - * @param value The bytes for uuid to set. + * string key = 3; + * @param value The bytes for key to set. * @return This builder for chaining. */ - public Builder setUuidBytes( + public Builder setKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - uuid_ = value; - onChanged(); - return this; - } - - private int id_ ; - /** - * int32 id = 4; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - /** - * int32 id = 4; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId(int value) { - - id_ = value; - onChanged(); - return this; - } - /** - * int32 id = 4; - * @return This builder for chaining. - */ - public Builder clearId() { - - id_ = 0; + key_ = value; onChanged(); return this; } private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY; /** - * bytes value = 5; + * bytes value = 4; * @return The value. */ @java.lang.Override @@ -10623,7 +12843,7 @@ public final class MessageOuterClass { return value_; } /** - * bytes value = 5; + * bytes value = 4; * @param value The value to set. * @return This builder for chaining. */ @@ -10637,7 +12857,7 @@ public final class MessageOuterClass { return this; } /** - * bytes value = 5; + * bytes value = 4; * @return This builder for chaining. */ public Builder clearValue() { @@ -10649,7 +12869,7 @@ public final class MessageOuterClass { private boolean withoutResponse_ ; /** - * bool withoutResponse = 6; + * bool withoutResponse = 5; * @return The withoutResponse. */ @java.lang.Override @@ -10657,7 +12877,7 @@ public final class MessageOuterClass { return withoutResponse_; } /** - * bool withoutResponse = 6; + * bool withoutResponse = 5; * @param value The withoutResponse to set. * @return This builder for chaining. */ @@ -10668,7 +12888,7 @@ public final class MessageOuterClass { return this; } /** - * bool withoutResponse = 6; + * bool withoutResponse = 5; * @return This builder for chaining. */ public Builder clearWithoutResponse() { @@ -10735,49 +12955,43 @@ public final class MessageOuterClass { com.google.protobuf.MessageOrBuilder { /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ - java.lang.String getAddress(); + java.lang.String getGattKey(); /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ com.google.protobuf.ByteString - getAddressBytes(); + getGattKeyBytes(); /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ - java.lang.String getServiceUuid(); + java.lang.String getServiceKey(); /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ com.google.protobuf.ByteString - getServiceUuidBytes(); + getServiceKeyBytes(); /** - * string uuid = 3; - * @return The uuid. + * string key = 3; + * @return The key. */ - java.lang.String getUuid(); + java.lang.String getKey(); /** - * string uuid = 3; - * @return The bytes for uuid. + * string key = 3; + * @return The bytes for key. */ com.google.protobuf.ByteString - getUuidBytes(); + getKeyBytes(); /** - * int32 id = 4; - * @return The id. - */ - int getId(); - - /** - * bool state = 5; + * bool state = 4; * @return The state. */ boolean getState(); @@ -10795,9 +13009,9 @@ public final class MessageOuterClass { super(builder); } private GattCharacteristicNotifyArguments() { - address_ = ""; - serviceUuid_ = ""; - uuid_ = ""; + gattKey_ = ""; + serviceKey_ = ""; + key_ = ""; } @java.lang.Override @@ -10833,28 +13047,23 @@ public final class MessageOuterClass { case 10: { java.lang.String s = input.readStringRequireUtf8(); - address_ = s; + gattKey_ = s; break; } case 18: { java.lang.String s = input.readStringRequireUtf8(); - serviceUuid_ = s; + serviceKey_ = s; break; } case 26: { java.lang.String s = input.readStringRequireUtf8(); - uuid_ = s; + key_ = s; break; } case 32: { - id_ = input.readInt32(); - break; - } - case 40: { - state_ = input.readBool(); break; } @@ -10890,135 +13099,124 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.Builder.class); } - public static final int ADDRESS_FIELD_NUMBER = 1; - private volatile java.lang.Object address_; + public static final int GATT_KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object gattKey_; /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ @java.lang.Override - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getGattKey() { + java.lang.Object ref = gattKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + gattKey_ = s; return s; } } /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ @java.lang.Override public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getGattKeyBytes() { + java.lang.Object ref = gattKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + gattKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int SERVICE_UUID_FIELD_NUMBER = 2; - private volatile java.lang.Object serviceUuid_; + public static final int SERVICE_KEY_FIELD_NUMBER = 2; + private volatile java.lang.Object serviceKey_; /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ @java.lang.Override - public java.lang.String getServiceUuid() { - java.lang.Object ref = serviceUuid_; + public java.lang.String getServiceKey() { + java.lang.Object ref = serviceKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - serviceUuid_ = s; + serviceKey_ = s; return s; } } /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ @java.lang.Override public com.google.protobuf.ByteString - getServiceUuidBytes() { - java.lang.Object ref = serviceUuid_; + getServiceKeyBytes() { + java.lang.Object ref = serviceKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - serviceUuid_ = b; + serviceKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int UUID_FIELD_NUMBER = 3; - private volatile java.lang.Object uuid_; + public static final int KEY_FIELD_NUMBER = 3; + private volatile java.lang.Object key_; /** - * string uuid = 3; - * @return The uuid. + * string key = 3; + * @return The key. */ @java.lang.Override - public java.lang.String getUuid() { - java.lang.Object ref = uuid_; + public java.lang.String getKey() { + java.lang.Object ref = key_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - uuid_ = s; + key_ = s; return s; } } /** - * string uuid = 3; - * @return The bytes for uuid. + * string key = 3; + * @return The bytes for key. */ @java.lang.Override public com.google.protobuf.ByteString - getUuidBytes() { - java.lang.Object ref = uuid_; + getKeyBytes() { + java.lang.Object ref = key_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - uuid_ = b; + key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int ID_FIELD_NUMBER = 4; - private int id_; - /** - * int32 id = 4; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - - public static final int STATE_FIELD_NUMBER = 5; + public static final int STATE_FIELD_NUMBER = 4; private boolean state_; /** - * bool state = 5; + * bool state = 4; * @return The state. */ @java.lang.Override @@ -11040,20 +13238,17 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getAddressBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, address_); + if (!getGattKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, gattKey_); } - if (!getServiceUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serviceUuid_); + if (!getServiceKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serviceKey_); } - if (!getUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, uuid_); - } - if (id_ != 0) { - output.writeInt32(4, id_); + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, key_); } if (state_ != false) { - output.writeBool(5, state_); + output.writeBool(4, state_); } unknownFields.writeTo(output); } @@ -11064,22 +13259,18 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (!getAddressBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, address_); + if (!getGattKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, gattKey_); } - if (!getServiceUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serviceUuid_); + if (!getServiceKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serviceKey_); } - if (!getUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, uuid_); - } - if (id_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(4, id_); + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, key_); } if (state_ != false) { size += com.google.protobuf.CodedOutputStream - .computeBoolSize(5, state_); + .computeBoolSize(4, state_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -11096,14 +13287,12 @@ public final class MessageOuterClass { } dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments) obj; - if (!getAddress() - .equals(other.getAddress())) return false; - if (!getServiceUuid() - .equals(other.getServiceUuid())) return false; - if (!getUuid() - .equals(other.getUuid())) return false; - if (getId() - != other.getId()) return false; + if (!getGattKey() + .equals(other.getGattKey())) return false; + if (!getServiceKey() + .equals(other.getServiceKey())) return false; + if (!getKey() + .equals(other.getKey())) return false; if (getState() != other.getState()) return false; if (!unknownFields.equals(other.unknownFields)) return false; @@ -11117,14 +13306,12 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ADDRESS_FIELD_NUMBER; - hash = (53 * hash) + getAddress().hashCode(); - hash = (37 * hash) + SERVICE_UUID_FIELD_NUMBER; - hash = (53 * hash) + getServiceUuid().hashCode(); - hash = (37 * hash) + UUID_FIELD_NUMBER; - hash = (53 * hash) + getUuid().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); + hash = (37 * hash) + GATT_KEY_FIELD_NUMBER; + hash = (53 * hash) + getGattKey().hashCode(); + hash = (37 * hash) + SERVICE_KEY_FIELD_NUMBER; + hash = (53 * hash) + getServiceKey().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); hash = (37 * hash) + STATE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getState()); @@ -11261,13 +13448,11 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - address_ = ""; + gattKey_ = ""; - serviceUuid_ = ""; + serviceKey_ = ""; - uuid_ = ""; - - id_ = 0; + key_ = ""; state_ = false; @@ -11297,10 +13482,9 @@ public final class MessageOuterClass { @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments buildPartial() { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments(this); - result.address_ = address_; - result.serviceUuid_ = serviceUuid_; - result.uuid_ = uuid_; - result.id_ = id_; + result.gattKey_ = gattKey_; + result.serviceKey_ = serviceKey_; + result.key_ = key_; result.state_ = state_; onBuilt(); return result; @@ -11350,21 +13534,18 @@ public final class MessageOuterClass { public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments other) { if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments.getDefaultInstance()) return this; - if (!other.getAddress().isEmpty()) { - address_ = other.address_; + if (!other.getGattKey().isEmpty()) { + gattKey_ = other.gattKey_; onChanged(); } - if (!other.getServiceUuid().isEmpty()) { - serviceUuid_ = other.serviceUuid_; + if (!other.getServiceKey().isEmpty()) { + serviceKey_ = other.serviceKey_; onChanged(); } - if (!other.getUuid().isEmpty()) { - uuid_ = other.uuid_; + if (!other.getKey().isEmpty()) { + key_ = other.key_; onChanged(); } - if (other.getId() != 0) { - setId(other.getId()); - } if (other.getState() != false) { setState(other.getState()); } @@ -11397,268 +13578,237 @@ public final class MessageOuterClass { return this; } - private java.lang.Object address_ = ""; + private java.lang.Object gattKey_ = ""; /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getGattKey() { + java.lang.Object ref = gattKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + gattKey_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getGattKeyBytes() { + java.lang.Object ref = gattKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + gattKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string address = 1; - * @param value The address to set. + * string gatt_key = 1; + * @param value The gattKey to set. * @return This builder for chaining. */ - public Builder setAddress( + public Builder setGattKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - address_ = value; + gattKey_ = value; onChanged(); return this; } /** - * string address = 1; + * string gatt_key = 1; * @return This builder for chaining. */ - public Builder clearAddress() { + public Builder clearGattKey() { - address_ = getDefaultInstance().getAddress(); + gattKey_ = getDefaultInstance().getGattKey(); onChanged(); return this; } /** - * string address = 1; - * @param value The bytes for address to set. + * string gatt_key = 1; + * @param value The bytes for gattKey to set. * @return This builder for chaining. */ - public Builder setAddressBytes( + public Builder setGattKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - address_ = value; + gattKey_ = value; onChanged(); return this; } - private java.lang.Object serviceUuid_ = ""; + private java.lang.Object serviceKey_ = ""; /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ - public java.lang.String getServiceUuid() { - java.lang.Object ref = serviceUuid_; + public java.lang.String getServiceKey() { + java.lang.Object ref = serviceKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - serviceUuid_ = s; + serviceKey_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ public com.google.protobuf.ByteString - getServiceUuidBytes() { - java.lang.Object ref = serviceUuid_; + getServiceKeyBytes() { + java.lang.Object ref = serviceKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - serviceUuid_ = b; + serviceKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string service_uuid = 2; - * @param value The serviceUuid to set. + * string service_key = 2; + * @param value The serviceKey to set. * @return This builder for chaining. */ - public Builder setServiceUuid( + public Builder setServiceKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - serviceUuid_ = value; + serviceKey_ = value; onChanged(); return this; } /** - * string service_uuid = 2; + * string service_key = 2; * @return This builder for chaining. */ - public Builder clearServiceUuid() { + public Builder clearServiceKey() { - serviceUuid_ = getDefaultInstance().getServiceUuid(); + serviceKey_ = getDefaultInstance().getServiceKey(); onChanged(); return this; } /** - * string service_uuid = 2; - * @param value The bytes for serviceUuid to set. + * string service_key = 2; + * @param value The bytes for serviceKey to set. * @return This builder for chaining. */ - public Builder setServiceUuidBytes( + public Builder setServiceKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - serviceUuid_ = value; + serviceKey_ = value; onChanged(); return this; } - private java.lang.Object uuid_ = ""; + private java.lang.Object key_ = ""; /** - * string uuid = 3; - * @return The uuid. + * string key = 3; + * @return The key. */ - public java.lang.String getUuid() { - java.lang.Object ref = uuid_; + public java.lang.String getKey() { + java.lang.Object ref = key_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - uuid_ = s; + key_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string uuid = 3; - * @return The bytes for uuid. + * string key = 3; + * @return The bytes for key. */ public com.google.protobuf.ByteString - getUuidBytes() { - java.lang.Object ref = uuid_; + getKeyBytes() { + java.lang.Object ref = key_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - uuid_ = b; + key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string uuid = 3; - * @param value The uuid to set. + * string key = 3; + * @param value The key to set. * @return This builder for chaining. */ - public Builder setUuid( + public Builder setKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - uuid_ = value; + key_ = value; onChanged(); return this; } /** - * string uuid = 3; + * string key = 3; * @return This builder for chaining. */ - public Builder clearUuid() { + public Builder clearKey() { - uuid_ = getDefaultInstance().getUuid(); + key_ = getDefaultInstance().getKey(); onChanged(); return this; } /** - * string uuid = 3; - * @param value The bytes for uuid to set. + * string key = 3; + * @param value The bytes for key to set. * @return This builder for chaining. */ - public Builder setUuidBytes( + public Builder setKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - uuid_ = value; - onChanged(); - return this; - } - - private int id_ ; - /** - * int32 id = 4; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - /** - * int32 id = 4; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId(int value) { - - id_ = value; - onChanged(); - return this; - } - /** - * int32 id = 4; - * @return This builder for chaining. - */ - public Builder clearId() { - - id_ = 0; + key_ = value; onChanged(); return this; } private boolean state_ ; /** - * bool state = 5; + * bool state = 4; * @return The state. */ @java.lang.Override @@ -11666,7 +13816,7 @@ public final class MessageOuterClass { return state_; } /** - * bool state = 5; + * bool state = 4; * @param value The state to set. * @return This builder for chaining. */ @@ -11677,7 +13827,7 @@ public final class MessageOuterClass { return this; } /** - * bool state = 5; + * bool state = 4; * @return This builder for chaining. */ public Builder clearState() { @@ -11744,10 +13894,40 @@ public final class MessageOuterClass { com.google.protobuf.MessageOrBuilder { /** - * int32 id = 3; - * @return The id. + * string gatt_key = 1; + * @return The gattKey. */ - int getId(); + java.lang.String getGattKey(); + /** + * string gatt_key = 1; + * @return The bytes for gattKey. + */ + com.google.protobuf.ByteString + getGattKeyBytes(); + + /** + * string service_key = 2; + * @return The serviceKey. + */ + java.lang.String getServiceKey(); + /** + * string service_key = 2; + * @return The bytes for serviceKey. + */ + com.google.protobuf.ByteString + getServiceKeyBytes(); + + /** + * string key = 3; + * @return The key. + */ + java.lang.String getKey(); + /** + * string key = 3; + * @return The bytes for key. + */ + com.google.protobuf.ByteString + getKeyBytes(); /** * bytes value = 4; @@ -11768,6 +13948,9 @@ public final class MessageOuterClass { super(builder); } private GattCharacteristicValue() { + gattKey_ = ""; + serviceKey_ = ""; + key_ = ""; value_ = com.google.protobuf.ByteString.EMPTY; } @@ -11801,9 +13984,22 @@ public final class MessageOuterClass { case 0: done = true; break; - case 24: { + case 10: { + java.lang.String s = input.readStringRequireUtf8(); - id_ = input.readInt32(); + gattKey_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + serviceKey_ = s; + break; + } + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + + key_ = s; break; } case 34: { @@ -11843,15 +14039,118 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.Builder.class); } - public static final int ID_FIELD_NUMBER = 3; - private int id_; + public static final int GATT_KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object gattKey_; /** - * int32 id = 3; - * @return The id. + * string gatt_key = 1; + * @return The gattKey. */ @java.lang.Override - public int getId() { - return id_; + public java.lang.String getGattKey() { + java.lang.Object ref = gattKey_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + gattKey_ = s; + return s; + } + } + /** + * string gatt_key = 1; + * @return The bytes for gattKey. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getGattKeyBytes() { + java.lang.Object ref = gattKey_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + gattKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SERVICE_KEY_FIELD_NUMBER = 2; + private volatile java.lang.Object serviceKey_; + /** + * string service_key = 2; + * @return The serviceKey. + */ + @java.lang.Override + public java.lang.String getServiceKey() { + java.lang.Object ref = serviceKey_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + serviceKey_ = s; + return s; + } + } + /** + * string service_key = 2; + * @return The bytes for serviceKey. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getServiceKeyBytes() { + java.lang.Object ref = serviceKey_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + serviceKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int KEY_FIELD_NUMBER = 3; + private volatile java.lang.Object key_; + /** + * string key = 3; + * @return The key. + */ + @java.lang.Override + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } + } + /** + * string key = 3; + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } public static final int VALUE_FIELD_NUMBER = 4; @@ -11879,8 +14178,14 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (id_ != 0) { - output.writeInt32(3, id_); + if (!getGattKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, gattKey_); + } + if (!getServiceKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serviceKey_); + } + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, key_); } if (!value_.isEmpty()) { output.writeBytes(4, value_); @@ -11894,9 +14199,14 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (id_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(3, id_); + if (!getGattKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, gattKey_); + } + if (!getServiceKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serviceKey_); + } + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, key_); } if (!value_.isEmpty()) { size += com.google.protobuf.CodedOutputStream @@ -11917,8 +14227,12 @@ public final class MessageOuterClass { } dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue) obj; - if (getId() - != other.getId()) return false; + if (!getGattKey() + .equals(other.getGattKey())) return false; + if (!getServiceKey() + .equals(other.getServiceKey())) return false; + if (!getKey() + .equals(other.getKey())) return false; if (!getValue() .equals(other.getValue())) return false; if (!unknownFields.equals(other.unknownFields)) return false; @@ -11932,8 +14246,12 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); + hash = (37 * hash) + GATT_KEY_FIELD_NUMBER; + hash = (53 * hash) + getGattKey().hashCode(); + hash = (37 * hash) + SERVICE_KEY_FIELD_NUMBER; + hash = (53 * hash) + getServiceKey().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); hash = (37 * hash) + VALUE_FIELD_NUMBER; hash = (53 * hash) + getValue().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); @@ -12069,7 +14387,11 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - id_ = 0; + gattKey_ = ""; + + serviceKey_ = ""; + + key_ = ""; value_ = com.google.protobuf.ByteString.EMPTY; @@ -12099,7 +14421,9 @@ public final class MessageOuterClass { @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue buildPartial() { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue(this); - result.id_ = id_; + result.gattKey_ = gattKey_; + result.serviceKey_ = serviceKey_; + result.key_ = key_; result.value_ = value_; onBuilt(); return result; @@ -12149,8 +14473,17 @@ public final class MessageOuterClass { public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue other) { if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue.getDefaultInstance()) return this; - if (other.getId() != 0) { - setId(other.getId()); + if (!other.getGattKey().isEmpty()) { + gattKey_ = other.gattKey_; + onChanged(); + } + if (!other.getServiceKey().isEmpty()) { + serviceKey_ = other.serviceKey_; + onChanged(); + } + if (!other.getKey().isEmpty()) { + key_ = other.key_; + onChanged(); } if (other.getValue() != com.google.protobuf.ByteString.EMPTY) { setValue(other.getValue()); @@ -12184,33 +14517,230 @@ public final class MessageOuterClass { return this; } - private int id_ ; + private java.lang.Object gattKey_ = ""; /** - * int32 id = 3; - * @return The id. + * string gatt_key = 1; + * @return The gattKey. */ - @java.lang.Override - public int getId() { - return id_; + public java.lang.String getGattKey() { + java.lang.Object ref = gattKey_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + gattKey_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** - * int32 id = 3; - * @param value The id to set. + * string gatt_key = 1; + * @return The bytes for gattKey. + */ + public com.google.protobuf.ByteString + getGattKeyBytes() { + java.lang.Object ref = gattKey_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + gattKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string gatt_key = 1; + * @param value The gattKey to set. * @return This builder for chaining. */ - public Builder setId(int value) { - - id_ = value; + public Builder setGattKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + gattKey_ = value; onChanged(); return this; } /** - * int32 id = 3; + * string gatt_key = 1; * @return This builder for chaining. */ - public Builder clearId() { + public Builder clearGattKey() { - id_ = 0; + gattKey_ = getDefaultInstance().getGattKey(); + onChanged(); + return this; + } + /** + * string gatt_key = 1; + * @param value The bytes for gattKey to set. + * @return This builder for chaining. + */ + public Builder setGattKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + gattKey_ = value; + onChanged(); + return this; + } + + private java.lang.Object serviceKey_ = ""; + /** + * string service_key = 2; + * @return The serviceKey. + */ + public java.lang.String getServiceKey() { + java.lang.Object ref = serviceKey_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + serviceKey_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string service_key = 2; + * @return The bytes for serviceKey. + */ + public com.google.protobuf.ByteString + getServiceKeyBytes() { + java.lang.Object ref = serviceKey_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + serviceKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string service_key = 2; + * @param value The serviceKey to set. + * @return This builder for chaining. + */ + public Builder setServiceKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + serviceKey_ = value; + onChanged(); + return this; + } + /** + * string service_key = 2; + * @return This builder for chaining. + */ + public Builder clearServiceKey() { + + serviceKey_ = getDefaultInstance().getServiceKey(); + onChanged(); + return this; + } + /** + * string service_key = 2; + * @param value The bytes for serviceKey to set. + * @return This builder for chaining. + */ + public Builder setServiceKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + serviceKey_ = value; + onChanged(); + return this; + } + + private java.lang.Object key_ = ""; + /** + * string key = 3; + * @return The key. + */ + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string key = 3; + * @return The bytes for key. + */ + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string key = 3; + * @param value The key to set. + * @return This builder for chaining. + */ + public Builder setKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + key_ = value; + onChanged(); + return this; + } + /** + * string key = 3; + * @return This builder for chaining. + */ + public Builder clearKey() { + + key_ = getDefaultInstance().getKey(); + onChanged(); + return this; + } + /** + * string key = 3; + * @param value The bytes for key to set. + * @return This builder for chaining. + */ + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + key_ = value; onChanged(); return this; } @@ -12306,58 +14836,52 @@ public final class MessageOuterClass { com.google.protobuf.MessageOrBuilder { /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ - java.lang.String getAddress(); + java.lang.String getGattKey(); /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ com.google.protobuf.ByteString - getAddressBytes(); + getGattKeyBytes(); /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ - java.lang.String getServiceUuid(); + java.lang.String getServiceKey(); /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ com.google.protobuf.ByteString - getServiceUuidBytes(); + getServiceKeyBytes(); /** - * string characteristic_uuid = 3; - * @return The characteristicUuid. + * string characteristic_key = 3; + * @return The characteristicKey. */ - java.lang.String getCharacteristicUuid(); + java.lang.String getCharacteristicKey(); /** - * string characteristic_uuid = 3; - * @return The bytes for characteristicUuid. + * string characteristic_key = 3; + * @return The bytes for characteristicKey. */ com.google.protobuf.ByteString - getCharacteristicUuidBytes(); + getCharacteristicKeyBytes(); /** - * string uuid = 4; - * @return The uuid. + * string key = 4; + * @return The key. */ - java.lang.String getUuid(); + java.lang.String getKey(); /** - * string uuid = 4; - * @return The bytes for uuid. + * string key = 4; + * @return The bytes for key. */ com.google.protobuf.ByteString - getUuidBytes(); - - /** - * int32 id = 5; - * @return The id. - */ - int getId(); + getKeyBytes(); } /** * Protobuf type {@code dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments} @@ -12372,10 +14896,10 @@ public final class MessageOuterClass { super(builder); } private GattDescriptorReadArguments() { - address_ = ""; - serviceUuid_ = ""; - characteristicUuid_ = ""; - uuid_ = ""; + gattKey_ = ""; + serviceKey_ = ""; + characteristicKey_ = ""; + key_ = ""; } @java.lang.Override @@ -12411,30 +14935,25 @@ public final class MessageOuterClass { case 10: { java.lang.String s = input.readStringRequireUtf8(); - address_ = s; + gattKey_ = s; break; } case 18: { java.lang.String s = input.readStringRequireUtf8(); - serviceUuid_ = s; + serviceKey_ = s; break; } case 26: { java.lang.String s = input.readStringRequireUtf8(); - characteristicUuid_ = s; + characteristicKey_ = s; break; } case 34: { java.lang.String s = input.readStringRequireUtf8(); - uuid_ = s; - break; - } - case 40: { - - id_ = input.readInt32(); + key_ = s; break; } default: { @@ -12469,169 +14988,158 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.Builder.class); } - public static final int ADDRESS_FIELD_NUMBER = 1; - private volatile java.lang.Object address_; + public static final int GATT_KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object gattKey_; /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ @java.lang.Override - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getGattKey() { + java.lang.Object ref = gattKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + gattKey_ = s; return s; } } /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ @java.lang.Override public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getGattKeyBytes() { + java.lang.Object ref = gattKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + gattKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int SERVICE_UUID_FIELD_NUMBER = 2; - private volatile java.lang.Object serviceUuid_; + public static final int SERVICE_KEY_FIELD_NUMBER = 2; + private volatile java.lang.Object serviceKey_; /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ @java.lang.Override - public java.lang.String getServiceUuid() { - java.lang.Object ref = serviceUuid_; + public java.lang.String getServiceKey() { + java.lang.Object ref = serviceKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - serviceUuid_ = s; + serviceKey_ = s; return s; } } /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ @java.lang.Override public com.google.protobuf.ByteString - getServiceUuidBytes() { - java.lang.Object ref = serviceUuid_; + getServiceKeyBytes() { + java.lang.Object ref = serviceKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - serviceUuid_ = b; + serviceKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int CHARACTERISTIC_UUID_FIELD_NUMBER = 3; - private volatile java.lang.Object characteristicUuid_; + public static final int CHARACTERISTIC_KEY_FIELD_NUMBER = 3; + private volatile java.lang.Object characteristicKey_; /** - * string characteristic_uuid = 3; - * @return The characteristicUuid. + * string characteristic_key = 3; + * @return The characteristicKey. */ @java.lang.Override - public java.lang.String getCharacteristicUuid() { - java.lang.Object ref = characteristicUuid_; + public java.lang.String getCharacteristicKey() { + java.lang.Object ref = characteristicKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - characteristicUuid_ = s; + characteristicKey_ = s; return s; } } /** - * string characteristic_uuid = 3; - * @return The bytes for characteristicUuid. + * string characteristic_key = 3; + * @return The bytes for characteristicKey. */ @java.lang.Override public com.google.protobuf.ByteString - getCharacteristicUuidBytes() { - java.lang.Object ref = characteristicUuid_; + getCharacteristicKeyBytes() { + java.lang.Object ref = characteristicKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - characteristicUuid_ = b; + characteristicKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int UUID_FIELD_NUMBER = 4; - private volatile java.lang.Object uuid_; + public static final int KEY_FIELD_NUMBER = 4; + private volatile java.lang.Object key_; /** - * string uuid = 4; - * @return The uuid. + * string key = 4; + * @return The key. */ @java.lang.Override - public java.lang.String getUuid() { - java.lang.Object ref = uuid_; + public java.lang.String getKey() { + java.lang.Object ref = key_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - uuid_ = s; + key_ = s; return s; } } /** - * string uuid = 4; - * @return The bytes for uuid. + * string key = 4; + * @return The bytes for key. */ @java.lang.Override public com.google.protobuf.ByteString - getUuidBytes() { - java.lang.Object ref = uuid_; + getKeyBytes() { + java.lang.Object ref = key_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - uuid_ = b; + key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int ID_FIELD_NUMBER = 5; - private int id_; - /** - * int32 id = 5; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -12646,20 +15154,17 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getAddressBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, address_); + if (!getGattKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, gattKey_); } - if (!getServiceUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serviceUuid_); + if (!getServiceKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serviceKey_); } - if (!getCharacteristicUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, characteristicUuid_); + if (!getCharacteristicKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, characteristicKey_); } - if (!getUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, uuid_); - } - if (id_ != 0) { - output.writeInt32(5, id_); + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, key_); } unknownFields.writeTo(output); } @@ -12670,21 +15175,17 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (!getAddressBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, address_); + if (!getGattKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, gattKey_); } - if (!getServiceUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serviceUuid_); + if (!getServiceKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serviceKey_); } - if (!getCharacteristicUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, characteristicUuid_); + if (!getCharacteristicKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, characteristicKey_); } - if (!getUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, uuid_); - } - if (id_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(5, id_); + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, key_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -12701,16 +15202,14 @@ public final class MessageOuterClass { } dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments) obj; - if (!getAddress() - .equals(other.getAddress())) return false; - if (!getServiceUuid() - .equals(other.getServiceUuid())) return false; - if (!getCharacteristicUuid() - .equals(other.getCharacteristicUuid())) return false; - if (!getUuid() - .equals(other.getUuid())) return false; - if (getId() - != other.getId()) return false; + if (!getGattKey() + .equals(other.getGattKey())) return false; + if (!getServiceKey() + .equals(other.getServiceKey())) return false; + if (!getCharacteristicKey() + .equals(other.getCharacteristicKey())) return false; + if (!getKey() + .equals(other.getKey())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -12722,16 +15221,14 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ADDRESS_FIELD_NUMBER; - hash = (53 * hash) + getAddress().hashCode(); - hash = (37 * hash) + SERVICE_UUID_FIELD_NUMBER; - hash = (53 * hash) + getServiceUuid().hashCode(); - hash = (37 * hash) + CHARACTERISTIC_UUID_FIELD_NUMBER; - hash = (53 * hash) + getCharacteristicUuid().hashCode(); - hash = (37 * hash) + UUID_FIELD_NUMBER; - hash = (53 * hash) + getUuid().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); + hash = (37 * hash) + GATT_KEY_FIELD_NUMBER; + hash = (53 * hash) + getGattKey().hashCode(); + hash = (37 * hash) + SERVICE_KEY_FIELD_NUMBER; + hash = (53 * hash) + getServiceKey().hashCode(); + hash = (37 * hash) + CHARACTERISTIC_KEY_FIELD_NUMBER; + hash = (53 * hash) + getCharacteristicKey().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -12865,15 +15362,13 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - address_ = ""; + gattKey_ = ""; - serviceUuid_ = ""; + serviceKey_ = ""; - characteristicUuid_ = ""; + characteristicKey_ = ""; - uuid_ = ""; - - id_ = 0; + key_ = ""; return this; } @@ -12901,11 +15396,10 @@ public final class MessageOuterClass { @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments buildPartial() { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments(this); - result.address_ = address_; - result.serviceUuid_ = serviceUuid_; - result.characteristicUuid_ = characteristicUuid_; - result.uuid_ = uuid_; - result.id_ = id_; + result.gattKey_ = gattKey_; + result.serviceKey_ = serviceKey_; + result.characteristicKey_ = characteristicKey_; + result.key_ = key_; onBuilt(); return result; } @@ -12954,25 +15448,22 @@ public final class MessageOuterClass { public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments other) { if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments.getDefaultInstance()) return this; - if (!other.getAddress().isEmpty()) { - address_ = other.address_; + if (!other.getGattKey().isEmpty()) { + gattKey_ = other.gattKey_; onChanged(); } - if (!other.getServiceUuid().isEmpty()) { - serviceUuid_ = other.serviceUuid_; + if (!other.getServiceKey().isEmpty()) { + serviceKey_ = other.serviceKey_; onChanged(); } - if (!other.getCharacteristicUuid().isEmpty()) { - characteristicUuid_ = other.characteristicUuid_; + if (!other.getCharacteristicKey().isEmpty()) { + characteristicKey_ = other.characteristicKey_; onChanged(); } - if (!other.getUuid().isEmpty()) { - uuid_ = other.uuid_; + if (!other.getKey().isEmpty()) { + key_ = other.key_; onChanged(); } - if (other.getId() != 0) { - setId(other.getId()); - } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -13002,337 +15493,306 @@ public final class MessageOuterClass { return this; } - private java.lang.Object address_ = ""; + private java.lang.Object gattKey_ = ""; /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getGattKey() { + java.lang.Object ref = gattKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + gattKey_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getGattKeyBytes() { + java.lang.Object ref = gattKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + gattKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string address = 1; - * @param value The address to set. + * string gatt_key = 1; + * @param value The gattKey to set. * @return This builder for chaining. */ - public Builder setAddress( + public Builder setGattKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - address_ = value; + gattKey_ = value; onChanged(); return this; } /** - * string address = 1; + * string gatt_key = 1; * @return This builder for chaining. */ - public Builder clearAddress() { + public Builder clearGattKey() { - address_ = getDefaultInstance().getAddress(); + gattKey_ = getDefaultInstance().getGattKey(); onChanged(); return this; } /** - * string address = 1; - * @param value The bytes for address to set. + * string gatt_key = 1; + * @param value The bytes for gattKey to set. * @return This builder for chaining. */ - public Builder setAddressBytes( + public Builder setGattKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - address_ = value; + gattKey_ = value; onChanged(); return this; } - private java.lang.Object serviceUuid_ = ""; + private java.lang.Object serviceKey_ = ""; /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ - public java.lang.String getServiceUuid() { - java.lang.Object ref = serviceUuid_; + public java.lang.String getServiceKey() { + java.lang.Object ref = serviceKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - serviceUuid_ = s; + serviceKey_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ public com.google.protobuf.ByteString - getServiceUuidBytes() { - java.lang.Object ref = serviceUuid_; + getServiceKeyBytes() { + java.lang.Object ref = serviceKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - serviceUuid_ = b; + serviceKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string service_uuid = 2; - * @param value The serviceUuid to set. + * string service_key = 2; + * @param value The serviceKey to set. * @return This builder for chaining. */ - public Builder setServiceUuid( + public Builder setServiceKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - serviceUuid_ = value; + serviceKey_ = value; onChanged(); return this; } /** - * string service_uuid = 2; + * string service_key = 2; * @return This builder for chaining. */ - public Builder clearServiceUuid() { + public Builder clearServiceKey() { - serviceUuid_ = getDefaultInstance().getServiceUuid(); + serviceKey_ = getDefaultInstance().getServiceKey(); onChanged(); return this; } /** - * string service_uuid = 2; - * @param value The bytes for serviceUuid to set. + * string service_key = 2; + * @param value The bytes for serviceKey to set. * @return This builder for chaining. */ - public Builder setServiceUuidBytes( + public Builder setServiceKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - serviceUuid_ = value; + serviceKey_ = value; onChanged(); return this; } - private java.lang.Object characteristicUuid_ = ""; + private java.lang.Object characteristicKey_ = ""; /** - * string characteristic_uuid = 3; - * @return The characteristicUuid. + * string characteristic_key = 3; + * @return The characteristicKey. */ - public java.lang.String getCharacteristicUuid() { - java.lang.Object ref = characteristicUuid_; + public java.lang.String getCharacteristicKey() { + java.lang.Object ref = characteristicKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - characteristicUuid_ = s; + characteristicKey_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string characteristic_uuid = 3; - * @return The bytes for characteristicUuid. + * string characteristic_key = 3; + * @return The bytes for characteristicKey. */ public com.google.protobuf.ByteString - getCharacteristicUuidBytes() { - java.lang.Object ref = characteristicUuid_; + getCharacteristicKeyBytes() { + java.lang.Object ref = characteristicKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - characteristicUuid_ = b; + characteristicKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string characteristic_uuid = 3; - * @param value The characteristicUuid to set. + * string characteristic_key = 3; + * @param value The characteristicKey to set. * @return This builder for chaining. */ - public Builder setCharacteristicUuid( + public Builder setCharacteristicKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - characteristicUuid_ = value; + characteristicKey_ = value; onChanged(); return this; } /** - * string characteristic_uuid = 3; + * string characteristic_key = 3; * @return This builder for chaining. */ - public Builder clearCharacteristicUuid() { + public Builder clearCharacteristicKey() { - characteristicUuid_ = getDefaultInstance().getCharacteristicUuid(); + characteristicKey_ = getDefaultInstance().getCharacteristicKey(); onChanged(); return this; } /** - * string characteristic_uuid = 3; - * @param value The bytes for characteristicUuid to set. + * string characteristic_key = 3; + * @param value The bytes for characteristicKey to set. * @return This builder for chaining. */ - public Builder setCharacteristicUuidBytes( + public Builder setCharacteristicKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - characteristicUuid_ = value; + characteristicKey_ = value; onChanged(); return this; } - private java.lang.Object uuid_ = ""; + private java.lang.Object key_ = ""; /** - * string uuid = 4; - * @return The uuid. + * string key = 4; + * @return The key. */ - public java.lang.String getUuid() { - java.lang.Object ref = uuid_; + public java.lang.String getKey() { + java.lang.Object ref = key_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - uuid_ = s; + key_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string uuid = 4; - * @return The bytes for uuid. + * string key = 4; + * @return The bytes for key. */ public com.google.protobuf.ByteString - getUuidBytes() { - java.lang.Object ref = uuid_; + getKeyBytes() { + java.lang.Object ref = key_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - uuid_ = b; + key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string uuid = 4; - * @param value The uuid to set. + * string key = 4; + * @param value The key to set. * @return This builder for chaining. */ - public Builder setUuid( + public Builder setKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - uuid_ = value; + key_ = value; onChanged(); return this; } /** - * string uuid = 4; + * string key = 4; * @return This builder for chaining. */ - public Builder clearUuid() { + public Builder clearKey() { - uuid_ = getDefaultInstance().getUuid(); + key_ = getDefaultInstance().getKey(); onChanged(); return this; } /** - * string uuid = 4; - * @param value The bytes for uuid to set. + * string key = 4; + * @param value The bytes for key to set. * @return This builder for chaining. */ - public Builder setUuidBytes( + public Builder setKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - uuid_ = value; - onChanged(); - return this; - } - - private int id_ ; - /** - * int32 id = 5; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - /** - * int32 id = 5; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId(int value) { - - id_ = value; - onChanged(); - return this; - } - /** - * int32 id = 5; - * @return This builder for chaining. - */ - public Builder clearId() { - - id_ = 0; + key_ = value; onChanged(); return this; } @@ -13394,61 +15854,55 @@ public final class MessageOuterClass { com.google.protobuf.MessageOrBuilder { /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ - java.lang.String getAddress(); + java.lang.String getGattKey(); /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ com.google.protobuf.ByteString - getAddressBytes(); + getGattKeyBytes(); /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ - java.lang.String getServiceUuid(); + java.lang.String getServiceKey(); /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ com.google.protobuf.ByteString - getServiceUuidBytes(); + getServiceKeyBytes(); /** - * string characteristic_uuid = 3; - * @return The characteristicUuid. + * string characteristic_key = 3; + * @return The characteristicKey. */ - java.lang.String getCharacteristicUuid(); + java.lang.String getCharacteristicKey(); /** - * string characteristic_uuid = 3; - * @return The bytes for characteristicUuid. + * string characteristic_key = 3; + * @return The bytes for characteristicKey. */ com.google.protobuf.ByteString - getCharacteristicUuidBytes(); + getCharacteristicKeyBytes(); /** - * string uuid = 4; - * @return The uuid. + * string key = 4; + * @return The key. */ - java.lang.String getUuid(); + java.lang.String getKey(); /** - * string uuid = 4; - * @return The bytes for uuid. + * string key = 4; + * @return The bytes for key. */ com.google.protobuf.ByteString - getUuidBytes(); + getKeyBytes(); /** - * int32 id = 5; - * @return The id. - */ - int getId(); - - /** - * bytes value = 6; + * bytes value = 5; * @return The value. */ com.google.protobuf.ByteString getValue(); @@ -13466,10 +15920,10 @@ public final class MessageOuterClass { super(builder); } private GattDescriptorWriteArguments() { - address_ = ""; - serviceUuid_ = ""; - characteristicUuid_ = ""; - uuid_ = ""; + gattKey_ = ""; + serviceKey_ = ""; + characteristicKey_ = ""; + key_ = ""; value_ = com.google.protobuf.ByteString.EMPTY; } @@ -13506,33 +15960,28 @@ public final class MessageOuterClass { case 10: { java.lang.String s = input.readStringRequireUtf8(); - address_ = s; + gattKey_ = s; break; } case 18: { java.lang.String s = input.readStringRequireUtf8(); - serviceUuid_ = s; + serviceKey_ = s; break; } case 26: { java.lang.String s = input.readStringRequireUtf8(); - characteristicUuid_ = s; + characteristicKey_ = s; break; } case 34: { java.lang.String s = input.readStringRequireUtf8(); - uuid_ = s; + key_ = s; break; } - case 40: { - - id_ = input.readInt32(); - break; - } - case 50: { + case 42: { value_ = input.readBytes(); break; @@ -13569,173 +16018,162 @@ public final class MessageOuterClass { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.class, dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.Builder.class); } - public static final int ADDRESS_FIELD_NUMBER = 1; - private volatile java.lang.Object address_; + public static final int GATT_KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object gattKey_; /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ @java.lang.Override - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getGattKey() { + java.lang.Object ref = gattKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + gattKey_ = s; return s; } } /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ @java.lang.Override public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getGattKeyBytes() { + java.lang.Object ref = gattKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + gattKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int SERVICE_UUID_FIELD_NUMBER = 2; - private volatile java.lang.Object serviceUuid_; + public static final int SERVICE_KEY_FIELD_NUMBER = 2; + private volatile java.lang.Object serviceKey_; /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ @java.lang.Override - public java.lang.String getServiceUuid() { - java.lang.Object ref = serviceUuid_; + public java.lang.String getServiceKey() { + java.lang.Object ref = serviceKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - serviceUuid_ = s; + serviceKey_ = s; return s; } } /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ @java.lang.Override public com.google.protobuf.ByteString - getServiceUuidBytes() { - java.lang.Object ref = serviceUuid_; + getServiceKeyBytes() { + java.lang.Object ref = serviceKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - serviceUuid_ = b; + serviceKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int CHARACTERISTIC_UUID_FIELD_NUMBER = 3; - private volatile java.lang.Object characteristicUuid_; + public static final int CHARACTERISTIC_KEY_FIELD_NUMBER = 3; + private volatile java.lang.Object characteristicKey_; /** - * string characteristic_uuid = 3; - * @return The characteristicUuid. + * string characteristic_key = 3; + * @return The characteristicKey. */ @java.lang.Override - public java.lang.String getCharacteristicUuid() { - java.lang.Object ref = characteristicUuid_; + public java.lang.String getCharacteristicKey() { + java.lang.Object ref = characteristicKey_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - characteristicUuid_ = s; + characteristicKey_ = s; return s; } } /** - * string characteristic_uuid = 3; - * @return The bytes for characteristicUuid. + * string characteristic_key = 3; + * @return The bytes for characteristicKey. */ @java.lang.Override public com.google.protobuf.ByteString - getCharacteristicUuidBytes() { - java.lang.Object ref = characteristicUuid_; + getCharacteristicKeyBytes() { + java.lang.Object ref = characteristicKey_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - characteristicUuid_ = b; + characteristicKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int UUID_FIELD_NUMBER = 4; - private volatile java.lang.Object uuid_; + public static final int KEY_FIELD_NUMBER = 4; + private volatile java.lang.Object key_; /** - * string uuid = 4; - * @return The uuid. + * string key = 4; + * @return The key. */ @java.lang.Override - public java.lang.String getUuid() { - java.lang.Object ref = uuid_; + public java.lang.String getKey() { + java.lang.Object ref = key_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - uuid_ = s; + key_ = s; return s; } } /** - * string uuid = 4; - * @return The bytes for uuid. + * string key = 4; + * @return The bytes for key. */ @java.lang.Override public com.google.protobuf.ByteString - getUuidBytes() { - java.lang.Object ref = uuid_; + getKeyBytes() { + java.lang.Object ref = key_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - uuid_ = b; + key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int ID_FIELD_NUMBER = 5; - private int id_; - /** - * int32 id = 5; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - - public static final int VALUE_FIELD_NUMBER = 6; + public static final int VALUE_FIELD_NUMBER = 5; private com.google.protobuf.ByteString value_; /** - * bytes value = 6; + * bytes value = 5; * @return The value. */ @java.lang.Override @@ -13757,23 +16195,20 @@ public final class MessageOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getAddressBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, address_); + if (!getGattKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, gattKey_); } - if (!getServiceUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serviceUuid_); + if (!getServiceKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serviceKey_); } - if (!getCharacteristicUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, characteristicUuid_); + if (!getCharacteristicKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, characteristicKey_); } - if (!getUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, uuid_); - } - if (id_ != 0) { - output.writeInt32(5, id_); + if (!getKeyBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, key_); } if (!value_.isEmpty()) { - output.writeBytes(6, value_); + output.writeBytes(5, value_); } unknownFields.writeTo(output); } @@ -13784,25 +16219,21 @@ public final class MessageOuterClass { if (size != -1) return size; size = 0; - if (!getAddressBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, address_); + if (!getGattKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, gattKey_); } - if (!getServiceUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serviceUuid_); + if (!getServiceKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serviceKey_); } - if (!getCharacteristicUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, characteristicUuid_); + if (!getCharacteristicKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, characteristicKey_); } - if (!getUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, uuid_); - } - if (id_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(5, id_); + if (!getKeyBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, key_); } if (!value_.isEmpty()) { size += com.google.protobuf.CodedOutputStream - .computeBytesSize(6, value_); + .computeBytesSize(5, value_); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -13819,16 +16250,14 @@ public final class MessageOuterClass { } dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments other = (dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments) obj; - if (!getAddress() - .equals(other.getAddress())) return false; - if (!getServiceUuid() - .equals(other.getServiceUuid())) return false; - if (!getCharacteristicUuid() - .equals(other.getCharacteristicUuid())) return false; - if (!getUuid() - .equals(other.getUuid())) return false; - if (getId() - != other.getId()) return false; + if (!getGattKey() + .equals(other.getGattKey())) return false; + if (!getServiceKey() + .equals(other.getServiceKey())) return false; + if (!getCharacteristicKey() + .equals(other.getCharacteristicKey())) return false; + if (!getKey() + .equals(other.getKey())) return false; if (!getValue() .equals(other.getValue())) return false; if (!unknownFields.equals(other.unknownFields)) return false; @@ -13842,16 +16271,14 @@ public final class MessageOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ADDRESS_FIELD_NUMBER; - hash = (53 * hash) + getAddress().hashCode(); - hash = (37 * hash) + SERVICE_UUID_FIELD_NUMBER; - hash = (53 * hash) + getServiceUuid().hashCode(); - hash = (37 * hash) + CHARACTERISTIC_UUID_FIELD_NUMBER; - hash = (53 * hash) + getCharacteristicUuid().hashCode(); - hash = (37 * hash) + UUID_FIELD_NUMBER; - hash = (53 * hash) + getUuid().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); + hash = (37 * hash) + GATT_KEY_FIELD_NUMBER; + hash = (53 * hash) + getGattKey().hashCode(); + hash = (37 * hash) + SERVICE_KEY_FIELD_NUMBER; + hash = (53 * hash) + getServiceKey().hashCode(); + hash = (37 * hash) + CHARACTERISTIC_KEY_FIELD_NUMBER; + hash = (53 * hash) + getCharacteristicKey().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); hash = (37 * hash) + VALUE_FIELD_NUMBER; hash = (53 * hash) + getValue().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); @@ -13987,15 +16414,13 @@ public final class MessageOuterClass { @java.lang.Override public Builder clear() { super.clear(); - address_ = ""; + gattKey_ = ""; - serviceUuid_ = ""; + serviceKey_ = ""; - characteristicUuid_ = ""; + characteristicKey_ = ""; - uuid_ = ""; - - id_ = 0; + key_ = ""; value_ = com.google.protobuf.ByteString.EMPTY; @@ -14025,11 +16450,10 @@ public final class MessageOuterClass { @java.lang.Override public dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments buildPartial() { dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments result = new dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments(this); - result.address_ = address_; - result.serviceUuid_ = serviceUuid_; - result.characteristicUuid_ = characteristicUuid_; - result.uuid_ = uuid_; - result.id_ = id_; + result.gattKey_ = gattKey_; + result.serviceKey_ = serviceKey_; + result.characteristicKey_ = characteristicKey_; + result.key_ = key_; result.value_ = value_; onBuilt(); return result; @@ -14079,25 +16503,22 @@ public final class MessageOuterClass { public Builder mergeFrom(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments other) { if (other == dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments.getDefaultInstance()) return this; - if (!other.getAddress().isEmpty()) { - address_ = other.address_; + if (!other.getGattKey().isEmpty()) { + gattKey_ = other.gattKey_; onChanged(); } - if (!other.getServiceUuid().isEmpty()) { - serviceUuid_ = other.serviceUuid_; + if (!other.getServiceKey().isEmpty()) { + serviceKey_ = other.serviceKey_; onChanged(); } - if (!other.getCharacteristicUuid().isEmpty()) { - characteristicUuid_ = other.characteristicUuid_; + if (!other.getCharacteristicKey().isEmpty()) { + characteristicKey_ = other.characteristicKey_; onChanged(); } - if (!other.getUuid().isEmpty()) { - uuid_ = other.uuid_; + if (!other.getKey().isEmpty()) { + key_ = other.key_; onChanged(); } - if (other.getId() != 0) { - setId(other.getId()); - } if (other.getValue() != com.google.protobuf.ByteString.EMPTY) { setValue(other.getValue()); } @@ -14130,344 +16551,313 @@ public final class MessageOuterClass { return this; } - private java.lang.Object address_ = ""; + private java.lang.Object gattKey_ = ""; /** - * string address = 1; - * @return The address. + * string gatt_key = 1; + * @return The gattKey. */ - public java.lang.String getAddress() { - java.lang.Object ref = address_; + public java.lang.String getGattKey() { + java.lang.Object ref = gattKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - address_ = s; + gattKey_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string address = 1; - * @return The bytes for address. + * string gatt_key = 1; + * @return The bytes for gattKey. */ public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; + getGattKeyBytes() { + java.lang.Object ref = gattKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - address_ = b; + gattKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string address = 1; - * @param value The address to set. + * string gatt_key = 1; + * @param value The gattKey to set. * @return This builder for chaining. */ - public Builder setAddress( + public Builder setGattKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - address_ = value; + gattKey_ = value; onChanged(); return this; } /** - * string address = 1; + * string gatt_key = 1; * @return This builder for chaining. */ - public Builder clearAddress() { + public Builder clearGattKey() { - address_ = getDefaultInstance().getAddress(); + gattKey_ = getDefaultInstance().getGattKey(); onChanged(); return this; } /** - * string address = 1; - * @param value The bytes for address to set. + * string gatt_key = 1; + * @param value The bytes for gattKey to set. * @return This builder for chaining. */ - public Builder setAddressBytes( + public Builder setGattKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - address_ = value; + gattKey_ = value; onChanged(); return this; } - private java.lang.Object serviceUuid_ = ""; + private java.lang.Object serviceKey_ = ""; /** - * string service_uuid = 2; - * @return The serviceUuid. + * string service_key = 2; + * @return The serviceKey. */ - public java.lang.String getServiceUuid() { - java.lang.Object ref = serviceUuid_; + public java.lang.String getServiceKey() { + java.lang.Object ref = serviceKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - serviceUuid_ = s; + serviceKey_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string service_uuid = 2; - * @return The bytes for serviceUuid. + * string service_key = 2; + * @return The bytes for serviceKey. */ public com.google.protobuf.ByteString - getServiceUuidBytes() { - java.lang.Object ref = serviceUuid_; + getServiceKeyBytes() { + java.lang.Object ref = serviceKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - serviceUuid_ = b; + serviceKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string service_uuid = 2; - * @param value The serviceUuid to set. + * string service_key = 2; + * @param value The serviceKey to set. * @return This builder for chaining. */ - public Builder setServiceUuid( + public Builder setServiceKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - serviceUuid_ = value; + serviceKey_ = value; onChanged(); return this; } /** - * string service_uuid = 2; + * string service_key = 2; * @return This builder for chaining. */ - public Builder clearServiceUuid() { + public Builder clearServiceKey() { - serviceUuid_ = getDefaultInstance().getServiceUuid(); + serviceKey_ = getDefaultInstance().getServiceKey(); onChanged(); return this; } /** - * string service_uuid = 2; - * @param value The bytes for serviceUuid to set. + * string service_key = 2; + * @param value The bytes for serviceKey to set. * @return This builder for chaining. */ - public Builder setServiceUuidBytes( + public Builder setServiceKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - serviceUuid_ = value; + serviceKey_ = value; onChanged(); return this; } - private java.lang.Object characteristicUuid_ = ""; + private java.lang.Object characteristicKey_ = ""; /** - * string characteristic_uuid = 3; - * @return The characteristicUuid. + * string characteristic_key = 3; + * @return The characteristicKey. */ - public java.lang.String getCharacteristicUuid() { - java.lang.Object ref = characteristicUuid_; + public java.lang.String getCharacteristicKey() { + java.lang.Object ref = characteristicKey_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - characteristicUuid_ = s; + characteristicKey_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string characteristic_uuid = 3; - * @return The bytes for characteristicUuid. + * string characteristic_key = 3; + * @return The bytes for characteristicKey. */ public com.google.protobuf.ByteString - getCharacteristicUuidBytes() { - java.lang.Object ref = characteristicUuid_; + getCharacteristicKeyBytes() { + java.lang.Object ref = characteristicKey_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - characteristicUuid_ = b; + characteristicKey_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string characteristic_uuid = 3; - * @param value The characteristicUuid to set. + * string characteristic_key = 3; + * @param value The characteristicKey to set. * @return This builder for chaining. */ - public Builder setCharacteristicUuid( + public Builder setCharacteristicKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - characteristicUuid_ = value; + characteristicKey_ = value; onChanged(); return this; } /** - * string characteristic_uuid = 3; + * string characteristic_key = 3; * @return This builder for chaining. */ - public Builder clearCharacteristicUuid() { + public Builder clearCharacteristicKey() { - characteristicUuid_ = getDefaultInstance().getCharacteristicUuid(); + characteristicKey_ = getDefaultInstance().getCharacteristicKey(); onChanged(); return this; } /** - * string characteristic_uuid = 3; - * @param value The bytes for characteristicUuid to set. + * string characteristic_key = 3; + * @param value The bytes for characteristicKey to set. * @return This builder for chaining. */ - public Builder setCharacteristicUuidBytes( + public Builder setCharacteristicKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - characteristicUuid_ = value; + characteristicKey_ = value; onChanged(); return this; } - private java.lang.Object uuid_ = ""; + private java.lang.Object key_ = ""; /** - * string uuid = 4; - * @return The uuid. + * string key = 4; + * @return The key. */ - public java.lang.String getUuid() { - java.lang.Object ref = uuid_; + public java.lang.String getKey() { + java.lang.Object ref = key_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - uuid_ = s; + key_ = s; return s; } else { return (java.lang.String) ref; } } /** - * string uuid = 4; - * @return The bytes for uuid. + * string key = 4; + * @return The bytes for key. */ public com.google.protobuf.ByteString - getUuidBytes() { - java.lang.Object ref = uuid_; + getKeyBytes() { + java.lang.Object ref = key_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - uuid_ = b; + key_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** - * string uuid = 4; - * @param value The uuid to set. + * string key = 4; + * @param value The key to set. * @return This builder for chaining. */ - public Builder setUuid( + public Builder setKey( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - uuid_ = value; + key_ = value; onChanged(); return this; } /** - * string uuid = 4; + * string key = 4; * @return This builder for chaining. */ - public Builder clearUuid() { + public Builder clearKey() { - uuid_ = getDefaultInstance().getUuid(); + key_ = getDefaultInstance().getKey(); onChanged(); return this; } /** - * string uuid = 4; - * @param value The bytes for uuid to set. + * string key = 4; + * @param value The bytes for key to set. * @return This builder for chaining. */ - public Builder setUuidBytes( + public Builder setKeyBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - uuid_ = value; - onChanged(); - return this; - } - - private int id_ ; - /** - * int32 id = 5; - * @return The id. - */ - @java.lang.Override - public int getId() { - return id_; - } - /** - * int32 id = 5; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId(int value) { - - id_ = value; - onChanged(); - return this; - } - /** - * int32 id = 5; - * @return This builder for chaining. - */ - public Builder clearId() { - - id_ = 0; + key_ = value; onChanged(); return this; } private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY; /** - * bytes value = 6; + * bytes value = 5; * @return The value. */ @java.lang.Override @@ -14475,7 +16865,7 @@ public final class MessageOuterClass { return value_; } /** - * bytes value = 6; + * bytes value = 5; * @param value The value to set. * @return This builder for chaining. */ @@ -14489,7 +16879,7 @@ public final class MessageOuterClass { return this; } /** - * bytes value = 6; + * bytes value = 5; * @return This builder for chaining. */ public Builder clearValue() { @@ -14576,11 +16966,6 @@ public final class MessageOuterClass { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_dev_yanshouwang_bluetooth_low_energy_GATT_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_dev_yanshouwang_bluetooth_low_energy_GattService_descriptor; private static final @@ -14597,10 +16982,15 @@ public final class MessageOuterClass { com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_dev_yanshouwang_bluetooth_low_energy_GattDescriptor_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectionLost_descriptor; + internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectionLost_fieldAccessorTable; + internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_dev_yanshouwang_bluetooth_low_energy_GattConnectionLost_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_dev_yanshouwang_bluetooth_low_energy_GattConnectionLost_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicReadArguments_descriptor; private static final @@ -14641,61 +17031,83 @@ public final class MessageOuterClass { static { java.lang.String[] descriptorData = { "\n\rmessage.proto\022$dev.yanshouwang.bluetoo" + - "th_low_energy\"\364\002\n\007Message\022G\n\010category\030\001 " + + "th_low_energy\"\314\t\n\007Message\022G\n\010category\030\001 " + "\001(\01625.dev.yanshouwang.bluetooth_low_ener" + - "gy.MessageCategory\022\017\n\005state\030\002 \001(\010H\000\022D\n\td" + - "iscovery\030\003 \001(\0132/.dev.yanshouwang.bluetoo" + - "th_low_energy.DiscoveryH\000\022\022\n\010scanning\030\004 " + - "\001(\010H\000\022N\n\016connectionLost\030\005 \001(\01324.dev.yans" + - "houwang.bluetooth_low_energy.ConnectionL" + - "ostH\000\022\\\n\023characteristicValue\030\006 \001(\0132=.dev" + + "gy.MessageCategory\022E\n\005state\030\002 \001(\01624.dev." + + "yanshouwang.bluetooth_low_energy.Bluetoo" + + "thStateH\000\022`\n\027startDiscoveryArguments\030\003 \001" + + "(\0132=.dev.yanshouwang.bluetooth_low_energ" + + "y.StartDiscoveryArgumentsH\000\022D\n\tdiscovery" + + "\030\004 \001(\0132/.dev.yanshouwang.bluetooth_low_e" + + "nergy.DiscoveryH\000\022R\n\020connectArguments\030\005 " + + "\001(\01326.dev.yanshouwang.bluetooth_low_ener" + + "gy.ConnectArgumentsH\000\022\\\n\023disconnectArgum" + + "ents\030\006 \001(\0132=.dev.yanshouwang.bluetooth_l" + + "ow_energy.GattDisconnectArgumentsH\000\022R\n\016c" + + "onnectionLost\030\007 \001(\01328.dev.yanshouwang.bl" + + "uetooth_low_energy.GattConnectionLostH\000\022" + + "l\n\033characteristicReadArguments\030\010 \001(\0132E.d" + + "ev.yanshouwang.bluetooth_low_energy.Gatt" + + "CharacteristicReadArgumentsH\000\022n\n\034charact" + + "eristicWriteArguments\030\t \001(\0132F.dev.yansho" + + "uwang.bluetooth_low_energy.GattCharacter" + + "isticWriteArgumentsH\000\022p\n\035characteristicN" + + "otifyArguments\030\n \001(\0132G.dev.yanshouwang.b" + + "luetooth_low_energy.GattCharacteristicNo" + + "tifyArgumentsH\000\022\\\n\023characteristicValue\030\013" + + " \001(\0132=.dev.yanshouwang.bluetooth_low_ene" + + "rgy.GattCharacteristicValueH\000\022d\n\027descrip" + + "torReadArguments\030\014 \001(\0132A.dev.yanshouwang" + + ".bluetooth_low_energy.GattDescriptorRead" + + "ArgumentsH\000\022f\n\030descriptorWriteArguments\030" + + "\r \001(\0132B.dev.yanshouwang.bluetooth_low_en" + + "ergy.GattDescriptorWriteArgumentsH\000B\007\n\005v" + + "alue\"+\n\027StartDiscoveryArguments\022\020\n\010servi" + + "ces\030\001 \003(\t\"T\n\tDiscovery\022\014\n\004uuid\030\001 \001(\t\022\014\n\004" + + "rssi\030\002 \001(\021\022\026\n\016advertisements\030\003 \001(\014\022\023\n\013co" + + "nnectable\030\004 \001(\010\" \n\020ConnectArguments\022\014\n\004u" + + "uid\030\001 \001(\t\"t\n\004GATT\022\013\n\003key\030\001 \001(\t\022\032\n\022maximu" + + "mWriteLength\030\002 \001(\005\022C\n\010services\030\003 \003(\01321.d" + + "ev.yanshouwang.bluetooth_low_energy.Gatt" + + "Service\"{\n\013GattService\022\013\n\003key\030\001 \001(\t\022\014\n\004u" + + "uid\030\002 \001(\t\022Q\n\017characteristics\030\003 \003(\01328.dev" + ".yanshouwang.bluetooth_low_energy.GattCh" + - "aracteristicValueH\000B\007\n\005value\"+\n\027StartDis" + - "coveryArguments\022\020\n\010services\030\001 \003(\t\"B\n\tDis" + - "covery\022\017\n\007address\030\001 \001(\t\022\014\n\004rssi\030\002 \001(\021\022\026\n" + - "\016advertisements\030\003 \001(\014\"#\n\020ConnectArgument" + - "s\022\017\n\007address\030\001 \001(\t\"d\n\004GATT\022\n\n\002id\030\001 \001(\005\022\013" + - "\n\003mtu\030\002 \001(\005\022C\n\010services\030\003 \003(\01321.dev.yans" + - "houwang.bluetooth_low_energy.GattService" + - "\"6\n\027GattDisconnectArguments\022\017\n\007address\030\001" + - " \001(\t\022\n\n\002id\030\002 \001(\005\"z\n\013GattService\022\n\n\002id\030\001 " + - "\001(\005\022\014\n\004uuid\030\002 \001(\t\022Q\n\017characteristics\030\003 \003" + - "(\01328.dev.yanshouwang.bluetooth_low_energ" + - "y.GattCharacteristic\"\320\001\n\022GattCharacteris" + - "tic\022\n\n\002id\030\001 \001(\005\022\014\n\004uuid\030\002 \001(\t\022I\n\013descrip" + - "tors\030\003 \003(\01324.dev.yanshouwang.bluetooth_l" + - "ow_energy.GattDescriptor\022\017\n\007canRead\030\004 \001(" + - "\010\022\020\n\010canWrite\030\005 \001(\010\022\037\n\027canWriteWithoutRe" + - "sponse\030\006 \001(\010\022\021\n\tcanNotify\030\007 \001(\010\"*\n\016GattD" + - "escriptor\022\n\n\002id\030\001 \001(\005\022\014\n\004uuid\030\002 \001(\t\"0\n\016C" + - "onnectionLost\022\n\n\002id\030\001 \001(\005\022\022\n\nerror_code\030" + - "\002 \001(\005\"b\n\037GattCharacteristicReadArguments" + - "\022\017\n\007address\030\001 \001(\t\022\024\n\014service_uuid\030\002 \001(\t\022" + - "\014\n\004uuid\030\003 \001(\t\022\n\n\002id\030\004 \001(\005\"\213\001\n GattCharac" + - "teristicWriteArguments\022\017\n\007address\030\001 \001(\t\022" + - "\024\n\014service_uuid\030\002 \001(\t\022\014\n\004uuid\030\003 \001(\t\022\n\n\002i" + - "d\030\004 \001(\005\022\r\n\005value\030\005 \001(\014\022\027\n\017withoutRespons" + - "e\030\006 \001(\010\"s\n!GattCharacteristicNotifyArgum" + - "ents\022\017\n\007address\030\001 \001(\t\022\024\n\014service_uuid\030\002 " + - "\001(\t\022\014\n\004uuid\030\003 \001(\t\022\n\n\002id\030\004 \001(\005\022\r\n\005state\030\005" + - " \001(\010\"4\n\027GattCharacteristicValue\022\n\n\002id\030\003 " + - "\001(\005\022\r\n\005value\030\004 \001(\014\"{\n\033GattDescriptorRead" + - "Arguments\022\017\n\007address\030\001 \001(\t\022\024\n\014service_uu" + - "id\030\002 \001(\t\022\033\n\023characteristic_uuid\030\003 \001(\t\022\014\n" + - "\004uuid\030\004 \001(\t\022\n\n\002id\030\005 \001(\005\"\213\001\n\034GattDescript" + - "orWriteArguments\022\017\n\007address\030\001 \001(\t\022\024\n\014ser" + - "vice_uuid\030\002 \001(\t\022\033\n\023characteristic_uuid\030\003" + - " \001(\t\022\014\n\004uuid\030\004 \001(\t\022\n\n\002id\030\005 \001(\005\022\r\n\005value\030" + - "\006 \001(\014*\346\002\n\017MessageCategory\022\027\n\023BLUETOOTH_A" + - "VAILABLE\020\000\022\023\n\017BLUETOOTH_STATE\020\001\022\033\n\027CENTR" + - "AL_START_DISCOVERY\020\002\022\032\n\026CENTRAL_STOP_DIS" + - "COVERY\020\003\022\026\n\022CENTRAL_DISCOVERED\020\004\022\023\n\017CENT" + - "RAL_CONNECT\020\005\022\023\n\017GATT_DISCONNECT\020\006\022\030\n\024GA" + - "TT_CONNECTION_LOST\020\007\022\034\n\030GATT_CHARACTERIS" + - "TIC_READ\020\010\022\035\n\031GATT_CHARACTERISTIC_WRITE\020" + - "\t\022\036\n\032GATT_CHARACTERISTIC_NOTIFY\020\n\022\030\n\024GAT" + - "T_DESCRIPTOR_READ\020\013\022\031\n\025GATT_DESCRIPTOR_W" + - "RITE\020\014b\006proto3" + "aracteristic\"\321\001\n\022GattCharacteristic\022\013\n\003k" + + "ey\030\001 \001(\t\022\014\n\004uuid\030\002 \001(\t\022\017\n\007canRead\030\003 \001(\010\022" + + "\020\n\010canWrite\030\004 \001(\010\022\037\n\027canWriteWithoutResp" + + "onse\030\005 \001(\010\022\021\n\tcanNotify\030\006 \001(\010\022I\n\013descrip" + + "tors\030\007 \003(\01324.dev.yanshouwang.bluetooth_l" + + "ow_energy.GattDescriptor\"+\n\016GattDescript" + + "or\022\013\n\003key\030\001 \001(\t\022\014\n\004uuid\030\002 \001(\t\"&\n\027GattDis" + + "connectArguments\022\013\n\003key\030\001 \001(\t\"0\n\022GattCon" + + "nectionLost\022\013\n\003key\030\001 \001(\t\022\r\n\005error\030\002 \001(\t\"" + + "U\n\037GattCharacteristicReadArguments\022\020\n\010ga" + + "tt_key\030\001 \001(\t\022\023\n\013service_key\030\002 \001(\t\022\013\n\003key" + + "\030\003 \001(\t\"~\n GattCharacteristicWriteArgumen" + + "ts\022\020\n\010gatt_key\030\001 \001(\t\022\023\n\013service_key\030\002 \001(" + + "\t\022\013\n\003key\030\003 \001(\t\022\r\n\005value\030\004 \001(\014\022\027\n\017without" + + "Response\030\005 \001(\010\"f\n!GattCharacteristicNoti" + + "fyArguments\022\020\n\010gatt_key\030\001 \001(\t\022\023\n\013service" + + "_key\030\002 \001(\t\022\013\n\003key\030\003 \001(\t\022\r\n\005state\030\004 \001(\010\"\\" + + "\n\027GattCharacteristicValue\022\020\n\010gatt_key\030\001 " + + "\001(\t\022\023\n\013service_key\030\002 \001(\t\022\013\n\003key\030\003 \001(\t\022\r\n" + + "\005value\030\004 \001(\014\"m\n\033GattDescriptorReadArgume" + + "nts\022\020\n\010gatt_key\030\001 \001(\t\022\023\n\013service_key\030\002 \001" + + "(\t\022\032\n\022characteristic_key\030\003 \001(\t\022\013\n\003key\030\004 " + + "\001(\t\"}\n\034GattDescriptorWriteArguments\022\020\n\010g" + + "att_key\030\001 \001(\t\022\023\n\013service_key\030\002 \001(\t\022\032\n\022ch" + + "aracteristic_key\030\003 \001(\t\022\013\n\003key\030\004 \001(\t\022\r\n\005v" + + "alue\030\005 \001(\014*\315\002\n\017MessageCategory\022\023\n\017BLUETO" + + "OTH_STATE\020\000\022\033\n\027CENTRAL_START_DISCOVERY\020\001" + + "\022\032\n\026CENTRAL_STOP_DISCOVERY\020\002\022\026\n\022CENTRAL_" + + "DISCOVERED\020\003\022\023\n\017CENTRAL_CONNECT\020\004\022\023\n\017GAT" + + "T_DISCONNECT\020\005\022\030\n\024GATT_CONNECTION_LOST\020\006" + + "\022\034\n\030GATT_CHARACTERISTIC_READ\020\007\022\035\n\031GATT_C" + + "HARACTERISTIC_WRITE\020\010\022\036\n\032GATT_CHARACTERI" + + "STIC_NOTIFY\020\t\022\030\n\024GATT_DESCRIPTOR_READ\020\n\022" + + "\031\n\025GATT_DESCRIPTOR_WRITE\020\013*B\n\016BluetoothS" + + "tate\022\017\n\013UNSUPPORTED\020\000\022\017\n\013POWERED_OFF\020\001\022\016" + + "\n\nPOWERED_ON\020\002b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -14706,7 +17118,7 @@ public final class MessageOuterClass { internal_static_dev_yanshouwang_bluetooth_low_energy_Message_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_Message_descriptor, - new java.lang.String[] { "Category", "State", "Discovery", "Scanning", "ConnectionLost", "CharacteristicValue", "Value", }); + new java.lang.String[] { "Category", "State", "StartDiscoveryArguments", "Discovery", "ConnectArguments", "DisconnectArguments", "ConnectionLost", "CharacteristicReadArguments", "CharacteristicWriteArguments", "CharacteristicNotifyArguments", "CharacteristicValue", "DescriptorReadArguments", "DescriptorWriteArguments", "Value", }); internal_static_dev_yanshouwang_bluetooth_low_energy_StartDiscoveryArguments_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_dev_yanshouwang_bluetooth_low_energy_StartDiscoveryArguments_fieldAccessorTable = new @@ -14718,85 +17130,85 @@ public final class MessageOuterClass { internal_static_dev_yanshouwang_bluetooth_low_energy_Discovery_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_Discovery_descriptor, - new java.lang.String[] { "Address", "Rssi", "Advertisements", }); + new java.lang.String[] { "Uuid", "Rssi", "Advertisements", "Connectable", }); internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectArguments_descriptor = getDescriptor().getMessageTypes().get(3); internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectArguments_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectArguments_descriptor, - new java.lang.String[] { "Address", }); + new java.lang.String[] { "Uuid", }); internal_static_dev_yanshouwang_bluetooth_low_energy_GATT_descriptor = getDescriptor().getMessageTypes().get(4); internal_static_dev_yanshouwang_bluetooth_low_energy_GATT_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_GATT_descriptor, - new java.lang.String[] { "Id", "Mtu", "Services", }); - internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_descriptor = - getDescriptor().getMessageTypes().get(5); - internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_descriptor, - new java.lang.String[] { "Address", "Id", }); + new java.lang.String[] { "Key", "MaximumWriteLength", "Services", }); internal_static_dev_yanshouwang_bluetooth_low_energy_GattService_descriptor = - getDescriptor().getMessageTypes().get(6); + getDescriptor().getMessageTypes().get(5); internal_static_dev_yanshouwang_bluetooth_low_energy_GattService_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_GattService_descriptor, - new java.lang.String[] { "Id", "Uuid", "Characteristics", }); + new java.lang.String[] { "Key", "Uuid", "Characteristics", }); internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristic_descriptor = - getDescriptor().getMessageTypes().get(7); + getDescriptor().getMessageTypes().get(6); internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristic_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristic_descriptor, - new java.lang.String[] { "Id", "Uuid", "Descriptors", "CanRead", "CanWrite", "CanWriteWithoutResponse", "CanNotify", }); + new java.lang.String[] { "Key", "Uuid", "CanRead", "CanWrite", "CanWriteWithoutResponse", "CanNotify", "Descriptors", }); internal_static_dev_yanshouwang_bluetooth_low_energy_GattDescriptor_descriptor = - getDescriptor().getMessageTypes().get(8); + getDescriptor().getMessageTypes().get(7); internal_static_dev_yanshouwang_bluetooth_low_energy_GattDescriptor_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_GattDescriptor_descriptor, - new java.lang.String[] { "Id", "Uuid", }); - internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectionLost_descriptor = - getDescriptor().getMessageTypes().get(9); - internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectionLost_fieldAccessorTable = new + new java.lang.String[] { "Key", "Uuid", }); + internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_descriptor = + getDescriptor().getMessageTypes().get(8); + internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_dev_yanshouwang_bluetooth_low_energy_ConnectionLost_descriptor, - new java.lang.String[] { "Id", "ErrorCode", }); + internal_static_dev_yanshouwang_bluetooth_low_energy_GattDisconnectArguments_descriptor, + new java.lang.String[] { "Key", }); + internal_static_dev_yanshouwang_bluetooth_low_energy_GattConnectionLost_descriptor = + getDescriptor().getMessageTypes().get(9); + internal_static_dev_yanshouwang_bluetooth_low_energy_GattConnectionLost_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_dev_yanshouwang_bluetooth_low_energy_GattConnectionLost_descriptor, + new java.lang.String[] { "Key", "Error", }); internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicReadArguments_descriptor = getDescriptor().getMessageTypes().get(10); internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicReadArguments_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicReadArguments_descriptor, - new java.lang.String[] { "Address", "ServiceUuid", "Uuid", "Id", }); + new java.lang.String[] { "GattKey", "ServiceKey", "Key", }); internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicWriteArguments_descriptor = getDescriptor().getMessageTypes().get(11); internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicWriteArguments_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicWriteArguments_descriptor, - new java.lang.String[] { "Address", "ServiceUuid", "Uuid", "Id", "Value", "WithoutResponse", }); + new java.lang.String[] { "GattKey", "ServiceKey", "Key", "Value", "WithoutResponse", }); internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicNotifyArguments_descriptor = getDescriptor().getMessageTypes().get(12); internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicNotifyArguments_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicNotifyArguments_descriptor, - new java.lang.String[] { "Address", "ServiceUuid", "Uuid", "Id", "State", }); + new java.lang.String[] { "GattKey", "ServiceKey", "Key", "State", }); internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicValue_descriptor = getDescriptor().getMessageTypes().get(13); internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicValue_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_GattCharacteristicValue_descriptor, - new java.lang.String[] { "Id", "Value", }); + new java.lang.String[] { "GattKey", "ServiceKey", "Key", "Value", }); internal_static_dev_yanshouwang_bluetooth_low_energy_GattDescriptorReadArguments_descriptor = getDescriptor().getMessageTypes().get(14); internal_static_dev_yanshouwang_bluetooth_low_energy_GattDescriptorReadArguments_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_GattDescriptorReadArguments_descriptor, - new java.lang.String[] { "Address", "ServiceUuid", "CharacteristicUuid", "Uuid", "Id", }); + new java.lang.String[] { "GattKey", "ServiceKey", "CharacteristicKey", "Key", }); internal_static_dev_yanshouwang_bluetooth_low_energy_GattDescriptorWriteArguments_descriptor = getDescriptor().getMessageTypes().get(15); internal_static_dev_yanshouwang_bluetooth_low_energy_GattDescriptorWriteArguments_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_dev_yanshouwang_bluetooth_low_energy_GattDescriptorWriteArguments_descriptor, - new java.lang.String[] { "Address", "ServiceUuid", "CharacteristicUuid", "Uuid", "Id", "Value", }); + new java.lang.String[] { "GattKey", "ServiceKey", "CharacteristicKey", "Key", "Value", }); } // @@protoc_insertion_point(outer_class_scope) diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/BluetoothLowEnergyPlugin.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/BluetoothLowEnergyPlugin.kt index 3f1c82c..5336529 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/BluetoothLowEnergyPlugin.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/BluetoothLowEnergyPlugin.kt @@ -42,16 +42,6 @@ class BluetoothLowEnergyPlugin : FlutterPlugin, MethodCallHandler, StreamHandler private const val CLIENT_CHARACTERISTIC_CONFIG = "00002902-0000-1000-8000-00805f9b34fb" private const val BLUETOOTH_ADAPTER_STATE_UNKNOWN = -1 private const val NO_ERROR = 0 - private const val INVALID_REQUEST = 1 - private const val REQUEST_PERMISSION_FAILED = 2 - private const val REQUEST_MTU_FAILED = 3 - private const val DISCOVER_SERVICES_FAILED = 4 - private const val READ_CHARACTERISTIC_FAILED = 5 - private const val WRITE_CHARACTERISTIC_FAILED = 6 - private const val NOTIFY_CHARACTERISTIC_FAILED = 7 - private const val READ_DESCRIPTOR_FAILED = 8 - private const val WRITE_DESCRIPTOR_FAILED = 9 - private const val BLUETOOTH_ADAPTER_CLOSED = 10 private const val REQUEST_CODE = 443 } @@ -60,28 +50,32 @@ class BluetoothLowEnergyPlugin : FlutterPlugin, MethodCallHandler, StreamHandler private lateinit var context: Context private var binding: ActivityPluginBinding? = null - private var sink: EventSink? = null + private var events: EventSink? = null private val bluetoothAvailable by lazy { context.packageManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE) } private val bluetoothManager by lazy { context.getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager } private val bluetoothAdapter by lazy { bluetoothManager.adapter } private val handler by lazy { Handler(context.mainLooper) } + private val bluetoothState: BluetoothState + get() { + return if (bluetoothAvailable) bluetoothAdapter.state.messageState + else BluetoothState.UNSUPPORTED + } + private val bluetoothStateReceiver by lazy { object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { - val oldState = intent!!.getIntExtra(BluetoothAdapter.EXTRA_PREVIOUS_STATE, BLUETOOTH_ADAPTER_STATE_UNKNOWN).opened - val newState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BLUETOOTH_ADAPTER_STATE_UNKNOWN).opened - // TODO: clear status when bluetooth closed. + val oldState = intent!!.getIntExtra(BluetoothAdapter.EXTRA_PREVIOUS_STATE, BLUETOOTH_ADAPTER_STATE_UNKNOWN).messageState + val newState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BLUETOOTH_ADAPTER_STATE_UNKNOWN).messageState if (newState == oldState) return - val closed = !newState - if (closed && scanning) scanning = false + if (newState != BluetoothState.POWERED_ON && scanning) scanning = false val event = Message.newBuilder() .setCategory(BLUETOOTH_STATE) .setState(newState) .build() .toByteArray() - sink?.success(event) + events?.success(event) } } } @@ -93,6 +87,7 @@ class BluetoothLowEnergyPlugin : FlutterPlugin, MethodCallHandler, StreamHandler private var scanCode = NO_ERROR private var scanning = false + private val scanCallback by lazy { object : ScanCallback() { override fun onScanFailed(errorCode: Int) { @@ -103,122 +98,129 @@ class BluetoothLowEnergyPlugin : FlutterPlugin, MethodCallHandler, StreamHandler override fun onScanResult(callbackType: Int, result: ScanResult?) { super.onScanResult(callbackType, result) if (result == null) return - val address = result.device.address - val rssi = result.rssi val record = result.scanRecord val advertisements = if (record == null) ByteString.EMPTY else ByteString.copyFrom(record.bytes) + // TODO: We can't get connectable value before Android 8.0, here we just return true + // remove this useless code after the minSdkVersion set to 26 or later. + val connectable = + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) result.isConnectable + else true val builder = Discovery.newBuilder() - .setAddress(address) - .setRssi(rssi) + .setUuid(result.device.uuid) + .setRssi(result.rssi) .setAdvertisements(advertisements) + .setConnectable(connectable) val discovery = builder.build() val event = Message.newBuilder() .setCategory(CENTRAL_DISCOVERED) .setDiscovery(discovery) .build() .toByteArray() - sink?.success(event) + events?.success(event) } override fun onBatchScanResults(results: MutableList?) { super.onBatchScanResults(results) if (results == null) return for (result in results) { - val address = result.device.address - val rssi = result.rssi val record = result.scanRecord val advertisements = if (record == null) ByteString.EMPTY else ByteString.copyFrom(record.bytes) + // TODO: We can't get connectable value before Android 8.0, here we just return true + // remove this useless code after the minSdkVersion set to 26 or later. + val connectable = + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) result.isConnectable + else true val builder = Discovery.newBuilder() - .setAddress(address) - .setRssi(rssi) + .setUuid(result.device.uuid) + .setRssi(result.rssi) .setAdvertisements(advertisements) + .setConnectable(connectable) val discovery = builder.build() val event = Message.newBuilder() .setCategory(CENTRAL_DISCOVERED) .setDiscovery(discovery) .build() .toByteArray() - sink?.success(event) + events?.success(event) } } } } - private val gatts by lazy { mutableMapOf() } - private val connects by lazy { mutableMapOf() } - private val mtus by lazy { mutableMapOf() } - private val disconnects by lazy { mutableMapOf() } - private val characteristicReads by lazy { mutableMapOf() } - private val characteristicWrites by lazy { mutableMapOf() } - private val descriptorReads by lazy { mutableMapOf() } - private val descriptorWrites by lazy { mutableMapOf() } + private val nativeGATTs by lazy { mutableMapOf() } + + private val connects by lazy { mutableMapOf() } + private val maximumWriteLengths by lazy { mutableMapOf() } + private val disconnects by lazy { mutableMapOf() } + private val characteristicReads by lazy { mutableMapOf() } + private val characteristicWrites by lazy { mutableMapOf() } + private val descriptorReads by lazy { mutableMapOf() } + private val descriptorWrites by lazy { mutableMapOf() } + private val bluetoothGattCallback by lazy { object : BluetoothGattCallback() { override fun onConnectionStateChange(gatt: BluetoothGatt?, status: Int, newState: Int) { super.onConnectionStateChange(gatt, status, newState) - val address = gatt!!.device.address when (status) { BluetoothGatt.GATT_SUCCESS -> { when (newState) { BluetoothProfile.STATE_DISCONNECTED -> { // Maybe disconnect succeed, connect failed, or connection lost when an adaptor closed event triggered. - gatts.remove(address)!!.close() - val disconnect = disconnects.remove(address) - if (disconnect != null) handler.post { disconnect.success() } + gatt!!.close() + val connect = connects.remove(gatt) + if (connect != null) handler.post { connect.error("GATT error with status: $status.", null, null) } else { - val connect = connects.remove(address) - if (connect != null) handler.post { connect.error(BLUETOOTH_ADAPTER_CLOSED) } + val nativeGATT = nativeGATTs.entries.first { entry -> entry.value.value === gatt } + nativeGATTs.remove(nativeGATT.key) + val disconnect = disconnects.remove(gatt) + if (disconnect != null) handler.post { disconnect.success() } else { - val id = gatt.hashCode() - val connectionLost = ConnectionLost.newBuilder() - .setId(id) - .setErrorCode(BLUETOOTH_ADAPTER_CLOSED) + val connectionLost = GattConnectionLost.newBuilder() + .setKey(nativeGATT.key) + .setError("GATT error with status: $status") .build() val event = Message.newBuilder() .setCategory(GATT_CONNECTION_LOST) .setConnectionLost(connectionLost) .build() .toByteArray() - handler.post { sink?.success(event) } + handler.post { events?.success(event) } } } } BluetoothProfile.STATE_CONNECTED -> { // Must be connect succeed. - val requested = gatt.requestMtu(512) - if (!requested) { - gatts.remove(address)!!.close() - val connect = connects.remove(address)!! - handler.post { connect.error(REQUEST_MTU_FAILED) } - } + val requested = gatt!!.requestMtu(512) + if (!requested) gatt.disconnect() } else -> throw NotImplementedError() // should never be called. } } else -> { - // Maybe connect failed, disconnect failed or connection lost when an adaptor closed event triggered. - gatts.remove(address)!!.close() - val connect = connects.remove(address) - if (connect != null) handler.post { connect.error(status) } + // Maybe connect failed, disconnect failed or connection lost. + gatt!!.close() + val connect = connects.remove(gatt) + if (connect != null) handler.post { connect.error("GATT error with status: $status", null, null) } else { - val disconnect = disconnects.remove(address) - if (disconnect != null) handler.post { disconnect.error(status) } + val nativeGATT = nativeGATTs.entries.first { entry -> entry.value.value === gatt } + nativeGATTs.remove(nativeGATT.key) + val disconnect = disconnects.remove(gatt) + if (disconnect != null) handler.post { disconnect.error("GATT error with status: $status", null, null) } else { - val id = gatt.hashCode() - val connectionLost = ConnectionLost.newBuilder() - .setId(id) - .setErrorCode(status) + val connectionLost = GattConnectionLost.newBuilder() + .setKey(nativeGATT.key) + .setError("GATT error with status: $status") .build() val event = Message.newBuilder() .setCategory(GATT_CONNECTION_LOST) .setConnectionLost(connectionLost) .build() .toByteArray() - handler.post { sink?.success(event) } + handler.post { events?.success(event) } } } } @@ -227,107 +229,118 @@ class BluetoothLowEnergyPlugin : FlutterPlugin, MethodCallHandler, StreamHandler override fun onMtuChanged(gatt: BluetoothGatt?, mtu: Int, status: Int) { super.onMtuChanged(gatt, mtu, status) - val address = gatt!!.device.address - val code = when (status) { + when (status) { BluetoothGatt.GATT_SUCCESS -> { - val discovered = gatt.discoverServices() - if (discovered) { - mtus[address] = mtu - NO_ERROR - } else DISCOVER_SERVICES_FAILED + val discovered = gatt!!.discoverServices() + if (discovered) maximumWriteLengths[gatt] = mtu - 3 + else gatt.disconnect() } - else -> status - } - if (code != NO_ERROR) { - gatts.remove(address)!!.close() - val connect = connects.remove(address)!! - handler.post { connect.error(code) } + else -> gatt!!.disconnect() } } override fun onServicesDiscovered(gatt: BluetoothGatt?, status: Int) { super.onServicesDiscovered(gatt, status) - val address = gatt!!.device.address - val connect = connects.remove(address)!! - val mtu = mtus.remove(address)!! + val maximumWriteLength = maximumWriteLengths.remove(gatt)!! when (status) { BluetoothGatt.GATT_SUCCESS -> { - val id = gatt.hashCode() - val services = gatt.services.map { service -> - val serviceId = service.hashCode() - val serviceUUID = service.uuid.toString() - val characteristics = service.characteristics.map { characteristic -> - val characteristicId = characteristic.hashCode() - val characteristicUUID = characteristic.uuid.toString() - val properties = characteristic.properties - val canRead = properties and BluetoothGattCharacteristic.PROPERTY_READ != 0 - val canWrite = properties and BluetoothGattCharacteristic.PROPERTY_WRITE != 0 - val canWriteWithoutResponse = properties and BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE != 0 - val canNotify = properties and BluetoothGattCharacteristic.PROPERTY_NOTIFY != 0 - val descriptors = characteristic.descriptors.map { descriptor -> - val descriptorId = descriptor.hashCode() + val nativeServices = mutableMapOf() + val messageServices = mutableListOf() + for (service in gatt!!.services) { + val nativeCharacteristics = mutableMapOf() + val messageCharacteristics = mutableListOf() + for (characteristic in service.characteristics) { + val nativeDescriptors = mutableMapOf() + val messageDescriptors = mutableListOf() + for (descriptor in characteristic.descriptors) { + // Add native descriptor. + val nativeDescriptor = NativeGattDescriptor(descriptor) + nativeDescriptors[nativeDescriptor.key] = nativeDescriptor + // Add message descriptor. val descriptorUUID = descriptor.uuid.toString() - GattDescriptor.newBuilder() - .setId(descriptorId) + val messageDescriptor = GattDescriptor.newBuilder() + .setKey(nativeDescriptor.key) .setUuid(descriptorUUID) .build() + messageDescriptors.add(messageDescriptor) } - GattCharacteristic.newBuilder() - .setId(characteristicId) + // Add native characteristic. + val nativeCharacteristic = NativeGattCharacteristic(characteristic, nativeDescriptors) + nativeCharacteristics[nativeCharacteristic.key] = nativeCharacteristic + // Add message characteristic. + val characteristicUUID = characteristic.uuid.toString() + val canRead = characteristic.properties and BluetoothGattCharacteristic.PROPERTY_READ != 0 + val canWrite = characteristic.properties and BluetoothGattCharacteristic.PROPERTY_WRITE != 0 + val canWriteWithoutResponse = characteristic.properties and BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE != 0 + val canNotify = characteristic.properties and BluetoothGattCharacteristic.PROPERTY_NOTIFY != 0 + val messageCharacteristic = GattCharacteristic.newBuilder() + .setKey(nativeCharacteristic.key) .setUuid(characteristicUUID) .setCanRead(canRead) .setCanWrite(canWrite) .setCanWriteWithoutResponse(canWriteWithoutResponse) .setCanNotify(canNotify) - .addAllDescriptors(descriptors) + .addAllDescriptors(messageDescriptors) .build() + messageCharacteristics.add(messageCharacteristic) } - GattService.newBuilder() - .setId(serviceId) + // Add native service. + val nativeService = NativeGattService(service, nativeCharacteristics) + nativeServices[nativeService.key] = nativeService + // Add message service. + val serviceUUID = service.uuid.toString() + val messageService = GattService.newBuilder() + .setKey(nativeService.key) .setUuid(serviceUUID) - .addAllCharacteristics(characteristics).build() + .addAllCharacteristics(messageCharacteristics) + .build() + messageServices.add(messageService) } + // Add native gatt. + val nativeGATT = NativeGATT(gatt, nativeServices) + nativeGATTs[nativeGATT.key] = nativeGATT + // Add message gatt. val reply = GATT.newBuilder() - .setId(id) - .setMtu(mtu) - .addAllServices(services) + .setKey(nativeGATT.key) + .setMaximumWriteLength(maximumWriteLength) + .addAllServices(messageServices) .build() .toByteArray() + val connect = connects.remove(gatt)!! handler.post { connect.success(reply) } } - else -> { - gatts.remove(address)!!.close() - handler.post { connect.error(status) } - } + else -> gatt!!.disconnect() } } override fun onCharacteristicRead(gatt: BluetoothGatt?, characteristic: BluetoothGattCharacteristic?, status: Int) { super.onCharacteristicRead(gatt, characteristic, status) - val key = characteristic!!.hashCode() - val read = characteristicReads.remove(key)!! + val read = characteristicReads.remove(characteristic)!! when (status) { - BluetoothGatt.GATT_SUCCESS -> handler.post { read.success(characteristic.value) } - else -> handler.post { read.error(status) } + BluetoothGatt.GATT_SUCCESS -> handler.post { read.success(characteristic!!.value) } + else -> handler.post { read.error("GATT error with status: $status", null, null) } } } override fun onCharacteristicWrite(gatt: BluetoothGatt?, characteristic: BluetoothGattCharacteristic?, status: Int) { super.onCharacteristicWrite(gatt, characteristic, status) - val key = characteristic!!.hashCode() - val write = characteristicWrites.remove(key)!! + val write = characteristicWrites.remove(characteristic)!! when (status) { BluetoothGatt.GATT_SUCCESS -> handler.post { write.success() } - else -> handler.post { write.error(status) } + else -> handler.post { write.error("GATT error with status: $status", null, null) } } } override fun onCharacteristicChanged(gatt: BluetoothGatt?, characteristic: BluetoothGattCharacteristic?) { super.onCharacteristicChanged(gatt, characteristic) - val id = characteristic!!.hashCode() - val value = ByteString.copyFrom(characteristic.value) + val nativeGATT = nativeGATTs.values.first { entry -> entry.value === gatt } + val nativeService = nativeGATT.services.values.first { entry -> entry.value === characteristic!!.service } + val nativeCharacteristic = nativeService.characteristics.values.first { entry -> entry.value === characteristic } + val value = ByteString.copyFrom(characteristic!!.value) val characteristicValue = GattCharacteristicValue.newBuilder() - .setId(id) + .setGattKey(nativeGATT.key) + .setServiceKey(nativeService.key) + .setKey(nativeCharacteristic.key) .setValue(value) .build() val event = Message.newBuilder() @@ -335,26 +348,24 @@ class BluetoothLowEnergyPlugin : FlutterPlugin, MethodCallHandler, StreamHandler .setCharacteristicValue(characteristicValue) .build() .toByteArray() - handler.post { sink?.success(event) } + handler.post { events?.success(event) } } override fun onDescriptorRead(gatt: BluetoothGatt?, descriptor: BluetoothGattDescriptor?, status: Int) { super.onDescriptorRead(gatt, descriptor, status) - val key = descriptor!!.hashCode() - val read = descriptorReads.remove(key)!! + val read = descriptorReads.remove(descriptor)!! when (status) { - BluetoothGatt.GATT_SUCCESS -> handler.post { read.success(descriptor.value) } - else -> handler.post { read.error(status) } + BluetoothGatt.GATT_SUCCESS -> handler.post { read.success(descriptor!!.value) } + else -> handler.post { read.error("GATT error with status: $status", null, null) } } } override fun onDescriptorWrite(gatt: BluetoothGatt?, descriptor: BluetoothGattDescriptor?, status: Int) { super.onDescriptorWrite(gatt, descriptor, status) - val key = descriptor!!.hashCode() - val write = descriptorWrites.remove(key)!! + val write = descriptorWrites.remove(descriptor)!! when (status) { BluetoothGatt.GATT_SUCCESS -> handler.post { write.success() } - else -> handler.post { write.error(status) } + else -> handler.post { write.error("GATT error with status: $status", null, null) } } } } @@ -400,8 +411,7 @@ class BluetoothLowEnergyPlugin : FlutterPlugin, MethodCallHandler, StreamHandler override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) { // Clear connections. - for (gatt in gatts.values) gatt.close() - gatts.clear() + for (nativeGATT in nativeGATTs.values) nativeGATT.value.disconnect() // Stop scan. if (scanning) stopScan() // Unregister bluetooth adapter state receiver. @@ -411,37 +421,30 @@ class BluetoothLowEnergyPlugin : FlutterPlugin, MethodCallHandler, StreamHandler } override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) { - val category = call.category - if (category != BLUETOOTH_AVAILABLE && category != BLUETOOTH_STATE && !bluetoothAdapter.state.opened) result.error(BLUETOOTH_ADAPTER_CLOSED) - else when (category) { - BLUETOOTH_AVAILABLE -> result.success(bluetoothAvailable) - BLUETOOTH_STATE -> result.success(bluetoothAdapter.state.opened) + val data = call.arguments() + val command = Message.parseFrom(data) + when (command.category!!) { + BLUETOOTH_STATE -> result.success(bluetoothState.number) CENTRAL_START_DISCOVERY -> { + val startDiscovery = Runnable { + val services = command.startDiscoveryArguments.servicesList + val startScanHandler: StartScanHandler = { code -> + when (code) { + NO_ERROR -> result.success() + else -> result.error("Discovery start failed with code: $code", null, null) + } + } + startScan(services, startScanHandler) + } when { - requestPermissionsHandler != null -> result.error(INVALID_REQUEST) + hasPermission -> startDiscovery.run() else -> { - val startDiscovery = Runnable { - val data = call.arguments() - val arguments = StartDiscoveryArguments.parseFrom(data) - val startScanHandler: StartScanHandler = { code -> - when (code) { - NO_ERROR -> result.success() - else -> result.error(code) - } - } - startScan(arguments.servicesList, startScanHandler) - } - when { - hasPermission -> startDiscovery.run() - else -> { - requestPermissionsHandler = { granted -> - if (granted) startDiscovery.run() - else result.error(REQUEST_PERMISSION_FAILED) - } - val permissions = arrayOf(Manifest.permission.ACCESS_FINE_LOCATION) - ActivityCompat.requestPermissions(binding!!.activity, permissions, REQUEST_CODE) - } + requestPermissionsHandler = { granted -> + if (granted) startDiscovery.run() + else result.error("Discovery start failed because `ACCESS_FINE_LOCATION` was denied by user.", null, null) } + val permissions = arrayOf(Manifest.permission.ACCESS_FINE_LOCATION) + ActivityCompat.requestPermissions(binding!!.activity, permissions, REQUEST_CODE) } } } @@ -449,176 +452,92 @@ class BluetoothLowEnergyPlugin : FlutterPlugin, MethodCallHandler, StreamHandler stopScan() result.success() } - CENTRAL_DISCOVERED -> result.notImplemented() CENTRAL_CONNECT -> { - val data = call.arguments() - val arguments = ConnectArguments.parseFrom(data) - val address = arguments.address - val connect = connects[address] - var gatt = gatts[address] - if (connect != null || gatt != null) { - result.error(INVALID_REQUEST) - } else { - val device = bluetoothAdapter.getRemoteDevice(address) - gatt = when { - // Use TRANSPORT_LE to avoid none flag device on Android 23 or later. - Build.VERSION.SDK_INT >= Build.VERSION_CODES.M -> device.connectGatt(context, false, bluetoothGattCallback, BluetoothDevice.TRANSPORT_LE) - else -> device.connectGatt(context, false, bluetoothGattCallback) - } - connects[address] = result - gatts[address] = gatt + val device = bluetoothAdapter.getRemoteDevice(command.connectArguments.uuid.address) + val gatt = when { + // Use TRANSPORT_LE to avoid none flag device on Android 23 or later. + Build.VERSION.SDK_INT >= Build.VERSION_CODES.M -> device.connectGatt(context, false, bluetoothGattCallback, BluetoothDevice.TRANSPORT_LE) + else -> device.connectGatt(context, false, bluetoothGattCallback) } + connects[gatt] = result } GATT_DISCONNECT -> { - val data = call.arguments() - val arguments = GattDisconnectArguments.parseFrom(data) - val address = arguments.address - val disconnect = disconnects[address] - val gatt = gatts[address] - if (disconnect != null || gatt == null || gatt.hashCode() != arguments.id) { - result.error(INVALID_REQUEST) - } else { - disconnects[address] = result - gatt.disconnect() - } + val nativeGATT = nativeGATTs[command.disconnectArguments.key]!! + disconnects[nativeGATT.value] = result + nativeGATT.value.disconnect() } - GATT_CONNECTION_LOST -> result.notImplemented() GATT_CHARACTERISTIC_READ -> { - val data = call.arguments() - val arguments = GattCharacteristicReadArguments.parseFrom(data) - val gatt = gatts[arguments.address] - if (gatt == null) result.error(INVALID_REQUEST) - else { - val serviceUUID = UUID.fromString(arguments.serviceUuid) - val service = gatt.getService(serviceUUID) - val uuid = UUID.fromString(arguments.uuid) - val characteristic = service.getCharacteristic(uuid) - val id = characteristic.hashCode() - val characteristicRead = characteristicReads[id] - if (characteristicRead != null || id != arguments.id) result.error(INVALID_REQUEST) - else { - val failed = !gatt.readCharacteristic(characteristic) - if (failed) result.error(READ_CHARACTERISTIC_FAILED) - else characteristicReads[id] = result - } - } + val nativeGATT = nativeGATTs[command.characteristicReadArguments.gattKey]!! + val nativeService = nativeGATT.services[command.characteristicReadArguments.serviceKey]!! + val nativeCharacteristic = nativeService.characteristics[command.characteristicReadArguments.key]!! + val read = nativeGATT.value.readCharacteristic(nativeCharacteristic.value) + if (read) characteristicReads[nativeCharacteristic.value] = result + else result.error("Characteristic read failed.", null, null) } GATT_CHARACTERISTIC_WRITE -> { - val data = call.arguments() - val arguments = GattCharacteristicWriteArguments.parseFrom(data) - val gatt = gatts[arguments.address] - if (gatt == null) result.error(INVALID_REQUEST) - else { - val serviceUUID = UUID.fromString(arguments.serviceUuid) - val service = gatt.getService(serviceUUID) - val uuid = UUID.fromString(arguments.uuid) - val characteristic = service.getCharacteristic(uuid) - val id = characteristic.hashCode() - val characteristicWrite = characteristicWrites[id] - if (characteristicWrite != null || id != arguments.id) result.error(INVALID_REQUEST) - else { - characteristic.value = arguments.value.toByteArray() - characteristic.writeType = - if (arguments.withoutResponse) BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE - else BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT - val failed = !gatt.writeCharacteristic(characteristic) - if (failed) result.error(WRITE_CHARACTERISTIC_FAILED) - else characteristicWrites[id] = result - } - } + val nativeGATT = nativeGATTs[command.characteristicWriteArguments.gattKey]!! + val nativeService = nativeGATT.services[command.characteristicWriteArguments.serviceKey]!! + val nativeCharacteristic = nativeService.characteristics[command.characteristicWriteArguments.key]!! + nativeCharacteristic.value.writeType = + if (command.characteristicWriteArguments.withoutResponse) BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE + else BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT + nativeCharacteristic.value.value = command.characteristicWriteArguments.value.toByteArray() + val written = nativeGATT.value.writeCharacteristic(nativeCharacteristic.value) + if (written) characteristicWrites[nativeCharacteristic.value] = result + else result.error("Characteristic write failed.", null, null) } GATT_CHARACTERISTIC_NOTIFY -> { - val data = call.arguments() - val arguments = GattCharacteristicNotifyArguments.parseFrom(data) - val gatt = gatts[arguments.address] - if (gatt == null) result.error(INVALID_REQUEST) - else { - val serviceUUID = UUID.fromString(arguments.serviceUuid) - val service = gatt.getService(serviceUUID) - val uuid = UUID.fromString(arguments.uuid) - val characteristic = service.getCharacteristic(uuid) - val id = characteristic.hashCode() - val descriptorUUID = UUID.fromString(CLIENT_CHARACTERISTIC_CONFIG) - val descriptor = characteristic.getDescriptor(descriptorUUID) - val descriptorId = descriptor.hashCode() - val descriptorWrite = descriptorWrites[descriptorId] - if (descriptorWrite != null || id != arguments.id) result.error(INVALID_REQUEST) - else { - var failed = !gatt.setCharacteristicNotification(characteristic, arguments.state) - if (failed) result.error(NOTIFY_CHARACTERISTIC_FAILED) - else { - descriptor.value = - if (arguments.state) BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE - else BluetoothGattDescriptor.DISABLE_NOTIFICATION_VALUE - failed = !gatt.writeDescriptor(descriptor) - if (failed) result.error(WRITE_DESCRIPTOR_FAILED) - else descriptorWrites[descriptorId] = result - } - } - } + val nativeGATT = nativeGATTs[command.characteristicNotifyArguments.gattKey]!! + val nativeService = nativeGATT.services[command.characteristicNotifyArguments.serviceKey]!! + val nativeCharacteristic = nativeService.characteristics[command.characteristicNotifyArguments.key]!! + val descriptorUUID = UUID.fromString(CLIENT_CHARACTERISTIC_CONFIG) + val descriptor = nativeCharacteristic.value.getDescriptor(descriptorUUID) + val notified = nativeGATT.value.setCharacteristicNotification(nativeCharacteristic.value, command.characteristicNotifyArguments.state) + if (notified) { + descriptor.value = + if (command.characteristicNotifyArguments.state) BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE + else BluetoothGattDescriptor.DISABLE_NOTIFICATION_VALUE + val written = nativeGATT.value.writeDescriptor(descriptor) + if (written) descriptorWrites[descriptor] = result + else result.error("Client characteristic config descriptor write failed.", null, null) + } else result.error("Characteristic Notify failed.", null, null) } GATT_DESCRIPTOR_READ -> { - val data = call.arguments() - val arguments = GattDescriptorReadArguments.parseFrom(data) - val gatt = gatts[arguments.address] - if (gatt == null) result.error(INVALID_REQUEST) - else { - val serviceUUID = UUID.fromString(arguments.serviceUuid) - val service = gatt.getService(serviceUUID) - val characteristicUUID = UUID.fromString(arguments.characteristicUuid) - val characteristic = service.getCharacteristic(characteristicUUID) - val uuid = UUID.fromString(arguments.uuid) - val descriptor = characteristic.getDescriptor(uuid) - val id = descriptor.hashCode() - val descriptorRead = descriptorReads[id] - if (descriptorRead != null || id != arguments.id) result.error(INVALID_REQUEST) - else { - val failed = !gatt.readDescriptor(descriptor) - if (failed) result.error(READ_DESCRIPTOR_FAILED) - else descriptorReads[id] = result - } - } + val nativeGATT = nativeGATTs[command.descriptorReadArguments.gattKey]!! + val nativeService = nativeGATT.services[command.descriptorReadArguments.serviceKey]!! + val nativeCharacteristic = nativeService.characteristics[command.descriptorReadArguments.characteristicKey]!! + val nativeDescriptor = nativeCharacteristic.descriptors[command.descriptorReadArguments.key]!! + val read = nativeGATT.value.readDescriptor(nativeDescriptor.value) + if (read) descriptorReads[nativeDescriptor.value] = result + else result.error("Descriptor read failed.", null, null) } GATT_DESCRIPTOR_WRITE -> { - val data = call.arguments() - val arguments = GattDescriptorWriteArguments.parseFrom(data) - val gatt = gatts[arguments.address] - if (gatt == null) result.error(INVALID_REQUEST) - else { - val serviceUUID = UUID.fromString(arguments.serviceUuid) - val service = gatt.getService(serviceUUID) - val characteristicUUID = UUID.fromString(arguments.characteristicUuid) - val characteristic = service.getCharacteristic(characteristicUUID) - val uuid = UUID.fromString(arguments.uuid) - val descriptor = characteristic.getDescriptor(uuid) - val id = descriptor.hashCode() - val descriptorWrite = descriptorWrites[id] - if (descriptorWrite != null || id != arguments.id) result.error(INVALID_REQUEST) - else { - val failed = !gatt.writeDescriptor(descriptor) - if (failed) result.error(WRITE_DESCRIPTOR_FAILED) - else descriptorWrites[id] = result - } - } + val nativeGATT = nativeGATTs[command.descriptorWriteArguments.gattKey]!! + val nativeService = nativeGATT.services[command.descriptorWriteArguments.serviceKey]!! + val nativeCharacteristic = nativeService.characteristics[command.descriptorWriteArguments.characteristicKey]!! + val nativeDescriptor = nativeCharacteristic.descriptors[command.descriptorWriteArguments.key]!! + nativeDescriptor.value.value = command.descriptorWriteArguments.value.toByteArray() + val written = nativeGATT.value.writeDescriptor(nativeDescriptor.value) + if (written) descriptorWrites[nativeDescriptor.value] = result + else result.error("Descriptor write failed.", null, null) } - UNRECOGNIZED -> result.notImplemented() + else -> result.notImplemented() } } - override fun onListen(arguments: Any?, sink: EventSink?) { + override fun onListen(arguments: Any?, events: EventSink?) { Log.d(TAG, "onListen") - this.sink = sink + this.events = events } override fun onCancel(arguments: Any?) { Log.d(TAG, "onCancel") // This must be a hot reload for now, clear all status here. // Clear connections. - for (gatt in gatts.values) gatt.close() - gatts.clear() + for (nativeGATT in nativeGATTs.values) nativeGATT.value.disconnect() // Stop scan. if (scanning) stopScan() - sink = null + events = null } override fun onAttachedToActivity(binding: ActivityPluginBinding) { @@ -639,11 +558,7 @@ class BluetoothLowEnergyPlugin : FlutterPlugin, MethodCallHandler, StreamHandler onDetachedFromActivity() } - override fun onRequestPermissionsResult( - requestCode: Int, - permissions: Array?, - grantResults: IntArray? - ): Boolean { + override fun onRequestPermissionsResult(requestCode: Int, permissions: Array?, grantResults: IntArray?): Boolean { return when { requestCode != REQUEST_CODE || requestPermissionsHandler == null -> false else -> { @@ -657,25 +572,28 @@ class BluetoothLowEnergyPlugin : FlutterPlugin, MethodCallHandler, StreamHandler } } +val Any.TAG: String + get() = this::class.java.simpleName + fun Result.success() { success(null) } -fun Result.error(code: Int, message: String? = null, details: String? = null) { - error("$code", message, details) -} - -val Any.TAG: String - get() = this::class.java.simpleName - -val MethodCall.category: MessageCategory - get() = valueOf(method) - -val Int.opened: Boolean +val Int.messageState: BluetoothState get() = when (this) { - BluetoothAdapter.STATE_OFF -> false - BluetoothAdapter.STATE_TURNING_ON -> false - BluetoothAdapter.STATE_ON -> true - BluetoothAdapter.STATE_TURNING_OFF -> true - else -> false - } \ No newline at end of file + BluetoothAdapter.STATE_OFF -> BluetoothState.POWERED_OFF + BluetoothAdapter.STATE_TURNING_ON -> BluetoothState.POWERED_OFF + BluetoothAdapter.STATE_ON -> BluetoothState.POWERED_ON + BluetoothAdapter.STATE_TURNING_OFF -> BluetoothState.POWERED_ON + else -> BluetoothState.UNRECOGNIZED + } + +val BluetoothDevice.uuid: String + get() { + val node = address.filter { char -> char != ':' }.lowercase() + // We don't known the timestamp of the bluetooth device, use nil UUID as prefix. + return "00000000-0000-0000-0000-$node" + } + +val String.address: String + get() = takeLast(12).chunked(2).joinToString(":").uppercase() \ No newline at end of file diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/ConnectArgumentsKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/ConnectArgumentsKt.kt index d02940c..7df12e8 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/ConnectArgumentsKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/ConnectArgumentsKt.kt @@ -23,20 +23,20 @@ object ConnectArgumentsKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments = _builder.build() /** - * string address = 1; + * string uuid = 1; */ - var address: kotlin.String - @JvmName("getAddress") - get() = _builder.getAddress() - @JvmName("setAddress") + var uuid: kotlin.String + @JvmName("getUuid") + get() = _builder.getUuid() + @JvmName("setUuid") set(value) { - _builder.setAddress(value) + _builder.setUuid(value) } /** - * string address = 1; + * string uuid = 1; */ - fun clearAddress() { - _builder.clearAddress() + fun clearUuid() { + _builder.clearUuid() } } } diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/ConnectionLostKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/ConnectionLostKt.kt deleted file mode 100644 index 255af82..0000000 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/ConnectionLostKt.kt +++ /dev/null @@ -1,62 +0,0 @@ -//Generated by the protocol buffer compiler. DO NOT EDIT! -// source: message.proto - -package dev.yanshouwang.bluetooth_low_energy; - -@kotlin.jvm.JvmSynthetic -inline fun connectionLost(block: dev.yanshouwang.bluetooth_low_energy.ConnectionLostKt.Dsl.() -> Unit): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost = - dev.yanshouwang.bluetooth_low_energy.ConnectionLostKt.Dsl._create(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.newBuilder()).apply { block() }._build() -object ConnectionLostKt { - @kotlin.OptIn(com.google.protobuf.kotlin.OnlyForUseByGeneratedProtoCode::class) - @com.google.protobuf.kotlin.ProtoDslMarker - class Dsl private constructor( - @kotlin.jvm.JvmField private val _builder: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.Builder - ) { - companion object { - @kotlin.jvm.JvmSynthetic - @kotlin.PublishedApi - internal fun _create(builder: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.Builder): Dsl = Dsl(builder) - } - - @kotlin.jvm.JvmSynthetic - @kotlin.PublishedApi - internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost = _builder.build() - - /** - * int32 id = 1; - */ - var id: kotlin.Int - @JvmName("getId") - get() = _builder.getId() - @JvmName("setId") - set(value) { - _builder.setId(value) - } - /** - * int32 id = 1; - */ - fun clearId() { - _builder.clearId() - } - - /** - * int32 error_code = 2; - */ - var errorCode: kotlin.Int - @JvmName("getErrorCode") - get() = _builder.getErrorCode() - @JvmName("setErrorCode") - set(value) { - _builder.setErrorCode(value) - } - /** - * int32 error_code = 2; - */ - fun clearErrorCode() { - _builder.clearErrorCode() - } - } -} -@kotlin.jvm.JvmSynthetic -inline fun dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost.copy(block: dev.yanshouwang.bluetooth_low_energy.ConnectionLostKt.Dsl.() -> Unit): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost = - dev.yanshouwang.bluetooth_low_energy.ConnectionLostKt.Dsl._create(this.toBuilder()).apply { block() }._build() diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/DiscoveryKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/DiscoveryKt.kt index 81d2e74..f9af228 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/DiscoveryKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/DiscoveryKt.kt @@ -23,20 +23,20 @@ object DiscoveryKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery = _builder.build() /** - * string address = 1; + * string uuid = 1; */ - var address: kotlin.String - @JvmName("getAddress") - get() = _builder.getAddress() - @JvmName("setAddress") + var uuid: kotlin.String + @JvmName("getUuid") + get() = _builder.getUuid() + @JvmName("setUuid") set(value) { - _builder.setAddress(value) + _builder.setUuid(value) } /** - * string address = 1; + * string uuid = 1; */ - fun clearAddress() { - _builder.clearAddress() + fun clearUuid() { + _builder.clearUuid() } /** @@ -72,6 +72,23 @@ object DiscoveryKt { fun clearAdvertisements() { _builder.clearAdvertisements() } + + /** + * bool connectable = 4; + */ + var connectable: kotlin.Boolean + @JvmName("getConnectable") + get() = _builder.getConnectable() + @JvmName("setConnectable") + set(value) { + _builder.setConnectable(value) + } + /** + * bool connectable = 4; + */ + fun clearConnectable() { + _builder.clearConnectable() + } } } @kotlin.jvm.JvmSynthetic diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GATTKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GATTKt.kt index 56f17f3..841ec41 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GATTKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GATTKt.kt @@ -23,37 +23,37 @@ object GATTKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GATT = _builder.build() /** - * int32 id = 1; + * string key = 1; */ - var id: kotlin.Int - @JvmName("getId") - get() = _builder.getId() - @JvmName("setId") + var key: kotlin.String + @JvmName("getKey") + get() = _builder.getKey() + @JvmName("setKey") set(value) { - _builder.setId(value) + _builder.setKey(value) } /** - * int32 id = 1; + * string key = 1; */ - fun clearId() { - _builder.clearId() + fun clearKey() { + _builder.clearKey() } /** - * int32 mtu = 2; + * int32 maximumWriteLength = 2; */ - var mtu: kotlin.Int - @JvmName("getMtu") - get() = _builder.getMtu() - @JvmName("setMtu") + var maximumWriteLength: kotlin.Int + @JvmName("getMaximumWriteLength") + get() = _builder.getMaximumWriteLength() + @JvmName("setMaximumWriteLength") set(value) { - _builder.setMtu(value) + _builder.setMaximumWriteLength(value) } /** - * int32 mtu = 2; + * int32 maximumWriteLength = 2; */ - fun clearMtu() { - _builder.clearMtu() + fun clearMaximumWriteLength() { + _builder.clearMaximumWriteLength() } /** diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicKt.kt index abfe23e..eee62f4 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicKt.kt @@ -23,20 +23,20 @@ object GattCharacteristicKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristic = _builder.build() /** - * int32 id = 1; + * string key = 1; */ - var id: kotlin.Int - @JvmName("getId") - get() = _builder.getId() - @JvmName("setId") + var key: kotlin.String + @JvmName("getKey") + get() = _builder.getKey() + @JvmName("setKey") set(value) { - _builder.setId(value) + _builder.setKey(value) } /** - * int32 id = 1; + * string key = 1; */ - fun clearId() { - _builder.clearId() + fun clearKey() { + _builder.clearKey() } /** @@ -57,70 +57,7 @@ object GattCharacteristicKt { } /** - * An uninstantiable, behaviorless type to represent the field in - * generics. - */ - @kotlin.OptIn(com.google.protobuf.kotlin.OnlyForUseByGeneratedProtoCode::class) - class DescriptorsProxy private constructor() : com.google.protobuf.kotlin.DslProxy() - /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - */ - val descriptors: com.google.protobuf.kotlin.DslList - @kotlin.jvm.JvmSynthetic - get() = com.google.protobuf.kotlin.DslList( - _builder.getDescriptorsList() - ) - /** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - * @param value The descriptors to add. - */ - @kotlin.jvm.JvmSynthetic - @kotlin.jvm.JvmName("addDescriptors") - fun com.google.protobuf.kotlin.DslList.add(value: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor) { - _builder.addDescriptors(value) - }/** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - * @param value The descriptors to add. - */ - @kotlin.jvm.JvmSynthetic - @kotlin.jvm.JvmName("plusAssignDescriptors") - inline operator fun com.google.protobuf.kotlin.DslList.plusAssign(value: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor) { - add(value) - }/** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - * @param values The descriptors to add. - */ - @kotlin.jvm.JvmSynthetic - @kotlin.jvm.JvmName("addAllDescriptors") - fun com.google.protobuf.kotlin.DslList.addAll(values: kotlin.collections.Iterable) { - _builder.addAllDescriptors(values) - }/** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - * @param values The descriptors to add. - */ - @kotlin.jvm.JvmSynthetic - @kotlin.jvm.JvmName("plusAssignAllDescriptors") - inline operator fun com.google.protobuf.kotlin.DslList.plusAssign(values: kotlin.collections.Iterable) { - addAll(values) - }/** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - * @param index The index to set the value at. - * @param value The descriptors to set. - */ - @kotlin.jvm.JvmSynthetic - @kotlin.jvm.JvmName("setDescriptors") - operator fun com.google.protobuf.kotlin.DslList.set(index: kotlin.Int, value: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor) { - _builder.setDescriptors(index, value) - }/** - * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 3; - */ - @kotlin.jvm.JvmSynthetic - @kotlin.jvm.JvmName("clearDescriptors") - fun com.google.protobuf.kotlin.DslList.clear() { - _builder.clearDescriptors() - } - /** - * bool canRead = 4; + * bool canRead = 3; */ var canRead: kotlin.Boolean @JvmName("getCanRead") @@ -130,14 +67,14 @@ object GattCharacteristicKt { _builder.setCanRead(value) } /** - * bool canRead = 4; + * bool canRead = 3; */ fun clearCanRead() { _builder.clearCanRead() } /** - * bool canWrite = 5; + * bool canWrite = 4; */ var canWrite: kotlin.Boolean @JvmName("getCanWrite") @@ -147,14 +84,14 @@ object GattCharacteristicKt { _builder.setCanWrite(value) } /** - * bool canWrite = 5; + * bool canWrite = 4; */ fun clearCanWrite() { _builder.clearCanWrite() } /** - * bool canWriteWithoutResponse = 6; + * bool canWriteWithoutResponse = 5; */ var canWriteWithoutResponse: kotlin.Boolean @JvmName("getCanWriteWithoutResponse") @@ -164,14 +101,14 @@ object GattCharacteristicKt { _builder.setCanWriteWithoutResponse(value) } /** - * bool canWriteWithoutResponse = 6; + * bool canWriteWithoutResponse = 5; */ fun clearCanWriteWithoutResponse() { _builder.clearCanWriteWithoutResponse() } /** - * bool canNotify = 7; + * bool canNotify = 6; */ var canNotify: kotlin.Boolean @JvmName("getCanNotify") @@ -181,12 +118,75 @@ object GattCharacteristicKt { _builder.setCanNotify(value) } /** - * bool canNotify = 7; + * bool canNotify = 6; */ fun clearCanNotify() { _builder.clearCanNotify() } - } + + /** + * An uninstantiable, behaviorless type to represent the field in + * generics. + */ + @kotlin.OptIn(com.google.protobuf.kotlin.OnlyForUseByGeneratedProtoCode::class) + class DescriptorsProxy private constructor() : com.google.protobuf.kotlin.DslProxy() + /** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + */ + val descriptors: com.google.protobuf.kotlin.DslList + @kotlin.jvm.JvmSynthetic + get() = com.google.protobuf.kotlin.DslList( + _builder.getDescriptorsList() + ) + /** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + * @param value The descriptors to add. + */ + @kotlin.jvm.JvmSynthetic + @kotlin.jvm.JvmName("addDescriptors") + fun com.google.protobuf.kotlin.DslList.add(value: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor) { + _builder.addDescriptors(value) + }/** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + * @param value The descriptors to add. + */ + @kotlin.jvm.JvmSynthetic + @kotlin.jvm.JvmName("plusAssignDescriptors") + inline operator fun com.google.protobuf.kotlin.DslList.plusAssign(value: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor) { + add(value) + }/** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + * @param values The descriptors to add. + */ + @kotlin.jvm.JvmSynthetic + @kotlin.jvm.JvmName("addAllDescriptors") + fun com.google.protobuf.kotlin.DslList.addAll(values: kotlin.collections.Iterable) { + _builder.addAllDescriptors(values) + }/** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + * @param values The descriptors to add. + */ + @kotlin.jvm.JvmSynthetic + @kotlin.jvm.JvmName("plusAssignAllDescriptors") + inline operator fun com.google.protobuf.kotlin.DslList.plusAssign(values: kotlin.collections.Iterable) { + addAll(values) + }/** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + * @param index The index to set the value at. + * @param value The descriptors to set. + */ + @kotlin.jvm.JvmSynthetic + @kotlin.jvm.JvmName("setDescriptors") + operator fun com.google.protobuf.kotlin.DslList.set(index: kotlin.Int, value: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor) { + _builder.setDescriptors(index, value) + }/** + * repeated .dev.yanshouwang.bluetooth_low_energy.GattDescriptor descriptors = 7; + */ + @kotlin.jvm.JvmSynthetic + @kotlin.jvm.JvmName("clearDescriptors") + fun com.google.protobuf.kotlin.DslList.clear() { + _builder.clearDescriptors() + }} } @kotlin.jvm.JvmSynthetic inline fun dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristic.copy(block: dev.yanshouwang.bluetooth_low_energy.GattCharacteristicKt.Dsl.() -> Unit): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristic = diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicNotifyArgumentsKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicNotifyArgumentsKt.kt index b68b8a0..a62cbd7 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicNotifyArgumentsKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicNotifyArgumentsKt.kt @@ -23,75 +23,58 @@ object GattCharacteristicNotifyArgumentsKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments = _builder.build() /** - * string address = 1; + * string gatt_key = 1; */ - var address: kotlin.String - @JvmName("getAddress") - get() = _builder.getAddress() - @JvmName("setAddress") + var gattKey: kotlin.String + @JvmName("getGattKey") + get() = _builder.getGattKey() + @JvmName("setGattKey") set(value) { - _builder.setAddress(value) + _builder.setGattKey(value) } /** - * string address = 1; + * string gatt_key = 1; */ - fun clearAddress() { - _builder.clearAddress() + fun clearGattKey() { + _builder.clearGattKey() } /** - * string service_uuid = 2; + * string service_key = 2; */ - var serviceUuid: kotlin.String - @JvmName("getServiceUuid") - get() = _builder.getServiceUuid() - @JvmName("setServiceUuid") + var serviceKey: kotlin.String + @JvmName("getServiceKey") + get() = _builder.getServiceKey() + @JvmName("setServiceKey") set(value) { - _builder.setServiceUuid(value) + _builder.setServiceKey(value) } /** - * string service_uuid = 2; + * string service_key = 2; */ - fun clearServiceUuid() { - _builder.clearServiceUuid() + fun clearServiceKey() { + _builder.clearServiceKey() } /** - * string uuid = 3; + * string key = 3; */ - var uuid: kotlin.String - @JvmName("getUuid") - get() = _builder.getUuid() - @JvmName("setUuid") + var key: kotlin.String + @JvmName("getKey") + get() = _builder.getKey() + @JvmName("setKey") set(value) { - _builder.setUuid(value) + _builder.setKey(value) } /** - * string uuid = 3; + * string key = 3; */ - fun clearUuid() { - _builder.clearUuid() + fun clearKey() { + _builder.clearKey() } /** - * int32 id = 4; - */ - var id: kotlin.Int - @JvmName("getId") - get() = _builder.getId() - @JvmName("setId") - set(value) { - _builder.setId(value) - } - /** - * int32 id = 4; - */ - fun clearId() { - _builder.clearId() - } - - /** - * bool state = 5; + * bool state = 4; */ var state: kotlin.Boolean @JvmName("getState") @@ -101,7 +84,7 @@ object GattCharacteristicNotifyArgumentsKt { _builder.setState(value) } /** - * bool state = 5; + * bool state = 4; */ fun clearState() { _builder.clearState() diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicReadArgumentsKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicReadArgumentsKt.kt index 652f4a0..c0a8bd5 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicReadArgumentsKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicReadArgumentsKt.kt @@ -23,71 +23,54 @@ object GattCharacteristicReadArgumentsKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments = _builder.build() /** - * string address = 1; + * string gatt_key = 1; */ - var address: kotlin.String - @JvmName("getAddress") - get() = _builder.getAddress() - @JvmName("setAddress") + var gattKey: kotlin.String + @JvmName("getGattKey") + get() = _builder.getGattKey() + @JvmName("setGattKey") set(value) { - _builder.setAddress(value) + _builder.setGattKey(value) } /** - * string address = 1; + * string gatt_key = 1; */ - fun clearAddress() { - _builder.clearAddress() + fun clearGattKey() { + _builder.clearGattKey() } /** - * string service_uuid = 2; + * string service_key = 2; */ - var serviceUuid: kotlin.String - @JvmName("getServiceUuid") - get() = _builder.getServiceUuid() - @JvmName("setServiceUuid") + var serviceKey: kotlin.String + @JvmName("getServiceKey") + get() = _builder.getServiceKey() + @JvmName("setServiceKey") set(value) { - _builder.setServiceUuid(value) + _builder.setServiceKey(value) } /** - * string service_uuid = 2; + * string service_key = 2; */ - fun clearServiceUuid() { - _builder.clearServiceUuid() + fun clearServiceKey() { + _builder.clearServiceKey() } /** - * string uuid = 3; + * string key = 3; */ - var uuid: kotlin.String - @JvmName("getUuid") - get() = _builder.getUuid() - @JvmName("setUuid") + var key: kotlin.String + @JvmName("getKey") + get() = _builder.getKey() + @JvmName("setKey") set(value) { - _builder.setUuid(value) + _builder.setKey(value) } /** - * string uuid = 3; + * string key = 3; */ - fun clearUuid() { - _builder.clearUuid() - } - - /** - * int32 id = 4; - */ - var id: kotlin.Int - @JvmName("getId") - get() = _builder.getId() - @JvmName("setId") - set(value) { - _builder.setId(value) - } - /** - * int32 id = 4; - */ - fun clearId() { - _builder.clearId() + fun clearKey() { + _builder.clearKey() } } } diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicValueKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicValueKt.kt index 83b4e30..0ceb9d9 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicValueKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicValueKt.kt @@ -23,20 +23,54 @@ object GattCharacteristicValueKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue = _builder.build() /** - * int32 id = 3; + * string gatt_key = 1; */ - var id: kotlin.Int - @JvmName("getId") - get() = _builder.getId() - @JvmName("setId") + var gattKey: kotlin.String + @JvmName("getGattKey") + get() = _builder.getGattKey() + @JvmName("setGattKey") set(value) { - _builder.setId(value) + _builder.setGattKey(value) } /** - * int32 id = 3; + * string gatt_key = 1; */ - fun clearId() { - _builder.clearId() + fun clearGattKey() { + _builder.clearGattKey() + } + + /** + * string service_key = 2; + */ + var serviceKey: kotlin.String + @JvmName("getServiceKey") + get() = _builder.getServiceKey() + @JvmName("setServiceKey") + set(value) { + _builder.setServiceKey(value) + } + /** + * string service_key = 2; + */ + fun clearServiceKey() { + _builder.clearServiceKey() + } + + /** + * string key = 3; + */ + var key: kotlin.String + @JvmName("getKey") + get() = _builder.getKey() + @JvmName("setKey") + set(value) { + _builder.setKey(value) + } + /** + * string key = 3; + */ + fun clearKey() { + _builder.clearKey() } /** diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicWriteArgumentsKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicWriteArgumentsKt.kt index 71b747c..75ce09a 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicWriteArgumentsKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattCharacteristicWriteArgumentsKt.kt @@ -23,75 +23,58 @@ object GattCharacteristicWriteArgumentsKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments = _builder.build() /** - * string address = 1; + * string gatt_key = 1; */ - var address: kotlin.String - @JvmName("getAddress") - get() = _builder.getAddress() - @JvmName("setAddress") + var gattKey: kotlin.String + @JvmName("getGattKey") + get() = _builder.getGattKey() + @JvmName("setGattKey") set(value) { - _builder.setAddress(value) + _builder.setGattKey(value) } /** - * string address = 1; + * string gatt_key = 1; */ - fun clearAddress() { - _builder.clearAddress() + fun clearGattKey() { + _builder.clearGattKey() } /** - * string service_uuid = 2; + * string service_key = 2; */ - var serviceUuid: kotlin.String - @JvmName("getServiceUuid") - get() = _builder.getServiceUuid() - @JvmName("setServiceUuid") + var serviceKey: kotlin.String + @JvmName("getServiceKey") + get() = _builder.getServiceKey() + @JvmName("setServiceKey") set(value) { - _builder.setServiceUuid(value) + _builder.setServiceKey(value) } /** - * string service_uuid = 2; + * string service_key = 2; */ - fun clearServiceUuid() { - _builder.clearServiceUuid() + fun clearServiceKey() { + _builder.clearServiceKey() } /** - * string uuid = 3; + * string key = 3; */ - var uuid: kotlin.String - @JvmName("getUuid") - get() = _builder.getUuid() - @JvmName("setUuid") + var key: kotlin.String + @JvmName("getKey") + get() = _builder.getKey() + @JvmName("setKey") set(value) { - _builder.setUuid(value) + _builder.setKey(value) } /** - * string uuid = 3; + * string key = 3; */ - fun clearUuid() { - _builder.clearUuid() + fun clearKey() { + _builder.clearKey() } /** - * int32 id = 4; - */ - var id: kotlin.Int - @JvmName("getId") - get() = _builder.getId() - @JvmName("setId") - set(value) { - _builder.setId(value) - } - /** - * int32 id = 4; - */ - fun clearId() { - _builder.clearId() - } - - /** - * bytes value = 5; + * bytes value = 4; */ var value: com.google.protobuf.ByteString @JvmName("getValue") @@ -101,14 +84,14 @@ object GattCharacteristicWriteArgumentsKt { _builder.setValue(value) } /** - * bytes value = 5; + * bytes value = 4; */ fun clearValue() { _builder.clearValue() } /** - * bool withoutResponse = 6; + * bool withoutResponse = 5; */ var withoutResponse: kotlin.Boolean @JvmName("getWithoutResponse") @@ -118,7 +101,7 @@ object GattCharacteristicWriteArgumentsKt { _builder.setWithoutResponse(value) } /** - * bool withoutResponse = 6; + * bool withoutResponse = 5; */ fun clearWithoutResponse() { _builder.clearWithoutResponse() diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattConnectionLostKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattConnectionLostKt.kt new file mode 100644 index 0000000..c111533 --- /dev/null +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattConnectionLostKt.kt @@ -0,0 +1,62 @@ +//Generated by the protocol buffer compiler. DO NOT EDIT! +// source: message.proto + +package dev.yanshouwang.bluetooth_low_energy; + +@kotlin.jvm.JvmSynthetic +inline fun gattConnectionLost(block: dev.yanshouwang.bluetooth_low_energy.GattConnectionLostKt.Dsl.() -> Unit): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost = + dev.yanshouwang.bluetooth_low_energy.GattConnectionLostKt.Dsl._create(dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.newBuilder()).apply { block() }._build() +object GattConnectionLostKt { + @kotlin.OptIn(com.google.protobuf.kotlin.OnlyForUseByGeneratedProtoCode::class) + @com.google.protobuf.kotlin.ProtoDslMarker + class Dsl private constructor( + @kotlin.jvm.JvmField private val _builder: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.Builder + ) { + companion object { + @kotlin.jvm.JvmSynthetic + @kotlin.PublishedApi + internal fun _create(builder: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.Builder): Dsl = Dsl(builder) + } + + @kotlin.jvm.JvmSynthetic + @kotlin.PublishedApi + internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost = _builder.build() + + /** + * string key = 1; + */ + var key: kotlin.String + @JvmName("getKey") + get() = _builder.getKey() + @JvmName("setKey") + set(value) { + _builder.setKey(value) + } + /** + * string key = 1; + */ + fun clearKey() { + _builder.clearKey() + } + + /** + * string error = 2; + */ + var error: kotlin.String + @JvmName("getError") + get() = _builder.getError() + @JvmName("setError") + set(value) { + _builder.setError(value) + } + /** + * string error = 2; + */ + fun clearError() { + _builder.clearError() + } + } +} +@kotlin.jvm.JvmSynthetic +inline fun dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost.copy(block: dev.yanshouwang.bluetooth_low_energy.GattConnectionLostKt.Dsl.() -> Unit): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost = + dev.yanshouwang.bluetooth_low_energy.GattConnectionLostKt.Dsl._create(this.toBuilder()).apply { block() }._build() diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDescriptorKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDescriptorKt.kt index 9c163ef..fae54b1 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDescriptorKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDescriptorKt.kt @@ -23,20 +23,20 @@ object GattDescriptorKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptor = _builder.build() /** - * int32 id = 1; + * string key = 1; */ - var id: kotlin.Int - @JvmName("getId") - get() = _builder.getId() - @JvmName("setId") + var key: kotlin.String + @JvmName("getKey") + get() = _builder.getKey() + @JvmName("setKey") set(value) { - _builder.setId(value) + _builder.setKey(value) } /** - * int32 id = 1; + * string key = 1; */ - fun clearId() { - _builder.clearId() + fun clearKey() { + _builder.clearKey() } /** diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDescriptorReadArgumentsKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDescriptorReadArgumentsKt.kt index c104d4e..26a97e0 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDescriptorReadArgumentsKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDescriptorReadArgumentsKt.kt @@ -23,88 +23,71 @@ object GattDescriptorReadArgumentsKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments = _builder.build() /** - * string address = 1; + * string gatt_key = 1; */ - var address: kotlin.String - @JvmName("getAddress") - get() = _builder.getAddress() - @JvmName("setAddress") + var gattKey: kotlin.String + @JvmName("getGattKey") + get() = _builder.getGattKey() + @JvmName("setGattKey") set(value) { - _builder.setAddress(value) + _builder.setGattKey(value) } /** - * string address = 1; + * string gatt_key = 1; */ - fun clearAddress() { - _builder.clearAddress() + fun clearGattKey() { + _builder.clearGattKey() } /** - * string service_uuid = 2; + * string service_key = 2; */ - var serviceUuid: kotlin.String - @JvmName("getServiceUuid") - get() = _builder.getServiceUuid() - @JvmName("setServiceUuid") + var serviceKey: kotlin.String + @JvmName("getServiceKey") + get() = _builder.getServiceKey() + @JvmName("setServiceKey") set(value) { - _builder.setServiceUuid(value) + _builder.setServiceKey(value) } /** - * string service_uuid = 2; + * string service_key = 2; */ - fun clearServiceUuid() { - _builder.clearServiceUuid() + fun clearServiceKey() { + _builder.clearServiceKey() } /** - * string characteristic_uuid = 3; + * string characteristic_key = 3; */ - var characteristicUuid: kotlin.String - @JvmName("getCharacteristicUuid") - get() = _builder.getCharacteristicUuid() - @JvmName("setCharacteristicUuid") + var characteristicKey: kotlin.String + @JvmName("getCharacteristicKey") + get() = _builder.getCharacteristicKey() + @JvmName("setCharacteristicKey") set(value) { - _builder.setCharacteristicUuid(value) + _builder.setCharacteristicKey(value) } /** - * string characteristic_uuid = 3; + * string characteristic_key = 3; */ - fun clearCharacteristicUuid() { - _builder.clearCharacteristicUuid() + fun clearCharacteristicKey() { + _builder.clearCharacteristicKey() } /** - * string uuid = 4; + * string key = 4; */ - var uuid: kotlin.String - @JvmName("getUuid") - get() = _builder.getUuid() - @JvmName("setUuid") + var key: kotlin.String + @JvmName("getKey") + get() = _builder.getKey() + @JvmName("setKey") set(value) { - _builder.setUuid(value) + _builder.setKey(value) } /** - * string uuid = 4; + * string key = 4; */ - fun clearUuid() { - _builder.clearUuid() - } - - /** - * int32 id = 5; - */ - var id: kotlin.Int - @JvmName("getId") - get() = _builder.getId() - @JvmName("setId") - set(value) { - _builder.setId(value) - } - /** - * int32 id = 5; - */ - fun clearId() { - _builder.clearId() + fun clearKey() { + _builder.clearKey() } } } diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDescriptorWriteArgumentsKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDescriptorWriteArgumentsKt.kt index 49dcdcf..c1a5ab3 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDescriptorWriteArgumentsKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDescriptorWriteArgumentsKt.kt @@ -23,92 +23,75 @@ object GattDescriptorWriteArgumentsKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments = _builder.build() /** - * string address = 1; + * string gatt_key = 1; */ - var address: kotlin.String - @JvmName("getAddress") - get() = _builder.getAddress() - @JvmName("setAddress") + var gattKey: kotlin.String + @JvmName("getGattKey") + get() = _builder.getGattKey() + @JvmName("setGattKey") set(value) { - _builder.setAddress(value) + _builder.setGattKey(value) } /** - * string address = 1; + * string gatt_key = 1; */ - fun clearAddress() { - _builder.clearAddress() + fun clearGattKey() { + _builder.clearGattKey() } /** - * string service_uuid = 2; + * string service_key = 2; */ - var serviceUuid: kotlin.String - @JvmName("getServiceUuid") - get() = _builder.getServiceUuid() - @JvmName("setServiceUuid") + var serviceKey: kotlin.String + @JvmName("getServiceKey") + get() = _builder.getServiceKey() + @JvmName("setServiceKey") set(value) { - _builder.setServiceUuid(value) + _builder.setServiceKey(value) } /** - * string service_uuid = 2; + * string service_key = 2; */ - fun clearServiceUuid() { - _builder.clearServiceUuid() + fun clearServiceKey() { + _builder.clearServiceKey() } /** - * string characteristic_uuid = 3; + * string characteristic_key = 3; */ - var characteristicUuid: kotlin.String - @JvmName("getCharacteristicUuid") - get() = _builder.getCharacteristicUuid() - @JvmName("setCharacteristicUuid") + var characteristicKey: kotlin.String + @JvmName("getCharacteristicKey") + get() = _builder.getCharacteristicKey() + @JvmName("setCharacteristicKey") set(value) { - _builder.setCharacteristicUuid(value) + _builder.setCharacteristicKey(value) } /** - * string characteristic_uuid = 3; + * string characteristic_key = 3; */ - fun clearCharacteristicUuid() { - _builder.clearCharacteristicUuid() + fun clearCharacteristicKey() { + _builder.clearCharacteristicKey() } /** - * string uuid = 4; + * string key = 4; */ - var uuid: kotlin.String - @JvmName("getUuid") - get() = _builder.getUuid() - @JvmName("setUuid") + var key: kotlin.String + @JvmName("getKey") + get() = _builder.getKey() + @JvmName("setKey") set(value) { - _builder.setUuid(value) + _builder.setKey(value) } /** - * string uuid = 4; + * string key = 4; */ - fun clearUuid() { - _builder.clearUuid() + fun clearKey() { + _builder.clearKey() } /** - * int32 id = 5; - */ - var id: kotlin.Int - @JvmName("getId") - get() = _builder.getId() - @JvmName("setId") - set(value) { - _builder.setId(value) - } - /** - * int32 id = 5; - */ - fun clearId() { - _builder.clearId() - } - - /** - * bytes value = 6; + * bytes value = 5; */ var value: com.google.protobuf.ByteString @JvmName("getValue") @@ -118,7 +101,7 @@ object GattDescriptorWriteArgumentsKt { _builder.setValue(value) } /** - * bytes value = 6; + * bytes value = 5; */ fun clearValue() { _builder.clearValue() diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDisconnectArgumentsKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDisconnectArgumentsKt.kt index ccf3590..43c104e 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDisconnectArgumentsKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattDisconnectArgumentsKt.kt @@ -23,37 +23,20 @@ object GattDisconnectArgumentsKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments = _builder.build() /** - * string address = 1; + * string key = 1; */ - var address: kotlin.String - @JvmName("getAddress") - get() = _builder.getAddress() - @JvmName("setAddress") + var key: kotlin.String + @JvmName("getKey") + get() = _builder.getKey() + @JvmName("setKey") set(value) { - _builder.setAddress(value) + _builder.setKey(value) } /** - * string address = 1; + * string key = 1; */ - fun clearAddress() { - _builder.clearAddress() - } - - /** - * int32 id = 2; - */ - var id: kotlin.Int - @JvmName("getId") - get() = _builder.getId() - @JvmName("setId") - set(value) { - _builder.setId(value) - } - /** - * int32 id = 2; - */ - fun clearId() { - _builder.clearId() + fun clearKey() { + _builder.clearKey() } } } diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattServiceKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattServiceKt.kt index c42f1d0..6509c37 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattServiceKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/GattServiceKt.kt @@ -23,20 +23,20 @@ object GattServiceKt { internal fun _build(): dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattService = _builder.build() /** - * int32 id = 1; + * string key = 1; */ - var id: kotlin.Int - @JvmName("getId") - get() = _builder.getId() - @JvmName("setId") + var key: kotlin.String + @JvmName("getKey") + get() = _builder.getKey() + @JvmName("setKey") set(value) { - _builder.setId(value) + _builder.setKey(value) } /** - * int32 id = 1; + * string key = 1; */ - fun clearId() { - _builder.clearId() + fun clearKey() { + _builder.clearKey() } /** diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/MessageKt.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/MessageKt.kt index 726c05d..80c44d0 100644 --- a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/MessageKt.kt +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/MessageKt.kt @@ -40,9 +40,9 @@ object MessageKt { } /** - * bool state = 2; + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; */ - var state: kotlin.Boolean + var state: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.BluetoothState @JvmName("getState") get() = _builder.getState() @JvmName("setState") @@ -50,13 +50,13 @@ object MessageKt { _builder.setState(value) } /** - * bool state = 2; + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; */ fun clearState() { _builder.clearState() } /** - * bool state = 2; + * .dev.yanshouwang.bluetooth_low_energy.BluetoothState state = 2; * @return Whether the state field is set. */ fun hasState(): kotlin.Boolean { @@ -64,7 +64,31 @@ object MessageKt { } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + */ + var startDiscoveryArguments: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.StartDiscoveryArguments + @JvmName("getStartDiscoveryArguments") + get() = _builder.getStartDiscoveryArguments() + @JvmName("setStartDiscoveryArguments") + set(value) { + _builder.setStartDiscoveryArguments(value) + } + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + */ + fun clearStartDiscoveryArguments() { + _builder.clearStartDiscoveryArguments() + } + /** + * .dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments startDiscoveryArguments = 3; + * @return Whether the startDiscoveryArguments field is set. + */ + fun hasStartDiscoveryArguments(): kotlin.Boolean { + return _builder.hasStartDiscoveryArguments() + } + + /** + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; */ var discovery: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Discovery @JvmName("getDiscovery") @@ -74,13 +98,13 @@ object MessageKt { _builder.setDiscovery(value) } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; */ fun clearDiscovery() { _builder.clearDiscovery() } /** - * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 3; + * .dev.yanshouwang.bluetooth_low_energy.Discovery discovery = 4; * @return Whether the discovery field is set. */ fun hasDiscovery(): kotlin.Boolean { @@ -88,33 +112,57 @@ object MessageKt { } /** - * bool scanning = 4; + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; */ - var scanning: kotlin.Boolean - @JvmName("getScanning") - get() = _builder.getScanning() - @JvmName("setScanning") + var connectArguments: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectArguments + @JvmName("getConnectArguments") + get() = _builder.getConnectArguments() + @JvmName("setConnectArguments") set(value) { - _builder.setScanning(value) + _builder.setConnectArguments(value) } /** - * bool scanning = 4; + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; */ - fun clearScanning() { - _builder.clearScanning() + fun clearConnectArguments() { + _builder.clearConnectArguments() } /** - * bool scanning = 4; - * @return Whether the scanning field is set. + * .dev.yanshouwang.bluetooth_low_energy.ConnectArguments connectArguments = 5; + * @return Whether the connectArguments field is set. */ - fun hasScanning(): kotlin.Boolean { - return _builder.hasScanning() + fun hasConnectArguments(): kotlin.Boolean { + return _builder.hasConnectArguments() } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; */ - var connectionLost: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.ConnectionLost + var disconnectArguments: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDisconnectArguments + @JvmName("getDisconnectArguments") + get() = _builder.getDisconnectArguments() + @JvmName("setDisconnectArguments") + set(value) { + _builder.setDisconnectArguments(value) + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + */ + fun clearDisconnectArguments() { + _builder.clearDisconnectArguments() + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments disconnectArguments = 6; + * @return Whether the disconnectArguments field is set. + */ + fun hasDisconnectArguments(): kotlin.Boolean { + return _builder.hasDisconnectArguments() + } + + /** + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; + */ + var connectionLost: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattConnectionLost @JvmName("getConnectionLost") get() = _builder.getConnectionLost() @JvmName("setConnectionLost") @@ -122,13 +170,13 @@ object MessageKt { _builder.setConnectionLost(value) } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; */ fun clearConnectionLost() { _builder.clearConnectionLost() } /** - * .dev.yanshouwang.bluetooth_low_energy.ConnectionLost connectionLost = 5; + * .dev.yanshouwang.bluetooth_low_energy.GattConnectionLost connectionLost = 7; * @return Whether the connectionLost field is set. */ fun hasConnectionLost(): kotlin.Boolean { @@ -136,7 +184,79 @@ object MessageKt { } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + */ + var characteristicReadArguments: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicReadArguments + @JvmName("getCharacteristicReadArguments") + get() = _builder.getCharacteristicReadArguments() + @JvmName("setCharacteristicReadArguments") + set(value) { + _builder.setCharacteristicReadArguments(value) + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + */ + fun clearCharacteristicReadArguments() { + _builder.clearCharacteristicReadArguments() + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments characteristicReadArguments = 8; + * @return Whether the characteristicReadArguments field is set. + */ + fun hasCharacteristicReadArguments(): kotlin.Boolean { + return _builder.hasCharacteristicReadArguments() + } + + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + */ + var characteristicWriteArguments: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicWriteArguments + @JvmName("getCharacteristicWriteArguments") + get() = _builder.getCharacteristicWriteArguments() + @JvmName("setCharacteristicWriteArguments") + set(value) { + _builder.setCharacteristicWriteArguments(value) + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + */ + fun clearCharacteristicWriteArguments() { + _builder.clearCharacteristicWriteArguments() + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments characteristicWriteArguments = 9; + * @return Whether the characteristicWriteArguments field is set. + */ + fun hasCharacteristicWriteArguments(): kotlin.Boolean { + return _builder.hasCharacteristicWriteArguments() + } + + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + */ + var characteristicNotifyArguments: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicNotifyArguments + @JvmName("getCharacteristicNotifyArguments") + get() = _builder.getCharacteristicNotifyArguments() + @JvmName("setCharacteristicNotifyArguments") + set(value) { + _builder.setCharacteristicNotifyArguments(value) + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + */ + fun clearCharacteristicNotifyArguments() { + _builder.clearCharacteristicNotifyArguments() + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + * @return Whether the characteristicNotifyArguments field is set. + */ + fun hasCharacteristicNotifyArguments(): kotlin.Boolean { + return _builder.hasCharacteristicNotifyArguments() + } + + /** + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; */ var characteristicValue: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattCharacteristicValue @JvmName("getCharacteristicValue") @@ -146,18 +266,66 @@ object MessageKt { _builder.setCharacteristicValue(value) } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; */ fun clearCharacteristicValue() { _builder.clearCharacteristicValue() } /** - * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 6; + * .dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue characteristicValue = 11; * @return Whether the characteristicValue field is set. */ fun hasCharacteristicValue(): kotlin.Boolean { return _builder.hasCharacteristicValue() } + + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + */ + var descriptorReadArguments: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorReadArguments + @JvmName("getDescriptorReadArguments") + get() = _builder.getDescriptorReadArguments() + @JvmName("setDescriptorReadArguments") + set(value) { + _builder.setDescriptorReadArguments(value) + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + */ + fun clearDescriptorReadArguments() { + _builder.clearDescriptorReadArguments() + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments descriptorReadArguments = 12; + * @return Whether the descriptorReadArguments field is set. + */ + fun hasDescriptorReadArguments(): kotlin.Boolean { + return _builder.hasDescriptorReadArguments() + } + + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + */ + var descriptorWriteArguments: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.GattDescriptorWriteArguments + @JvmName("getDescriptorWriteArguments") + get() = _builder.getDescriptorWriteArguments() + @JvmName("setDescriptorWriteArguments") + set(value) { + _builder.setDescriptorWriteArguments(value) + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + */ + fun clearDescriptorWriteArguments() { + _builder.clearDescriptorWriteArguments() + } + /** + * .dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments descriptorWriteArguments = 13; + * @return Whether the descriptorWriteArguments field is set. + */ + fun hasDescriptorWriteArguments(): kotlin.Boolean { + return _builder.hasDescriptorWriteArguments() + } val valueCase: dev.yanshouwang.bluetooth_low_energy.MessageOuterClass.Message.ValueCase @JvmName("getValueCase") get() = _builder.getValueCase() diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGATT.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGATT.kt new file mode 100644 index 0000000..56c9f97 --- /dev/null +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGATT.kt @@ -0,0 +1,5 @@ +package dev.yanshouwang.bluetooth_low_energy + +import android.bluetooth.BluetoothGatt + +class NativeGATT(value: BluetoothGatt, val services: Map) : NativeValue(value) \ No newline at end of file diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGattCharacteristic.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGattCharacteristic.kt new file mode 100644 index 0000000..ab69048 --- /dev/null +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGattCharacteristic.kt @@ -0,0 +1,5 @@ +package dev.yanshouwang.bluetooth_low_energy + +import android.bluetooth.BluetoothGattCharacteristic + +class NativeGattCharacteristic(value: BluetoothGattCharacteristic, val descriptors: Map) : NativeValue(value) \ No newline at end of file diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGattDescriptor.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGattDescriptor.kt new file mode 100644 index 0000000..1246c32 --- /dev/null +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGattDescriptor.kt @@ -0,0 +1,5 @@ +package dev.yanshouwang.bluetooth_low_energy + +import android.bluetooth.BluetoothGattDescriptor + +class NativeGattDescriptor(value: BluetoothGattDescriptor) : NativeValue(value) \ No newline at end of file diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGattService.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGattService.kt new file mode 100644 index 0000000..1d53d2f --- /dev/null +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeGattService.kt @@ -0,0 +1,5 @@ +package dev.yanshouwang.bluetooth_low_energy + +import android.bluetooth.BluetoothGattService + +class NativeGattService(value: BluetoothGattService, val characteristics: Map) : NativeValue(value) \ No newline at end of file diff --git a/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeValue.kt b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeValue.kt new file mode 100644 index 0000000..95242d3 --- /dev/null +++ b/android/src/main/kotlin/dev/yanshouwang/bluetooth_low_energy/NativeValue.kt @@ -0,0 +1,7 @@ +package dev.yanshouwang.bluetooth_low_energy + +import java.util.* + +open class NativeValue(val value: T) { + public val key = UUID.randomUUID().toString() +} \ No newline at end of file diff --git a/example/android/build.gradle b/example/android/build.gradle index 24b07e1..6641fad 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '1.5.20' + ext.kotlin_version = '1.5.21' repositories { google() mavenCentral() diff --git a/example/ios/Flutter/Debug.xcconfig b/example/ios/Flutter/Debug.xcconfig index 592ceee..ec97fc6 100644 --- a/example/ios/Flutter/Debug.xcconfig +++ b/example/ios/Flutter/Debug.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/example/ios/Flutter/Release.xcconfig b/example/ios/Flutter/Release.xcconfig index 592ceee..c4855bf 100644 --- a/example/ios/Flutter/Release.xcconfig +++ b/example/ios/Flutter/Release.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/example/ios/Podfile b/example/ios/Podfile new file mode 100644 index 0000000..252d9ec --- /dev/null +++ b/example/ios/Podfile @@ -0,0 +1,41 @@ +# Uncomment this line to define a global platform for your project +platform :ios, '9.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock new file mode 100644 index 0000000..a7649c2 --- /dev/null +++ b/example/ios/Podfile.lock @@ -0,0 +1,29 @@ +PODS: + - bluetooth_low_energy (0.0.1): + - Flutter + - SwiftProtobuf (~> 1.0) + - Flutter (1.0.0) + - SwiftProtobuf (1.17.0) + +DEPENDENCIES: + - bluetooth_low_energy (from `.symlinks/plugins/bluetooth_low_energy/ios`) + - Flutter (from `Flutter`) + +SPEC REPOS: + trunk: + - SwiftProtobuf + +EXTERNAL SOURCES: + bluetooth_low_energy: + :path: ".symlinks/plugins/bluetooth_low_energy/ios" + Flutter: + :path: Flutter + +SPEC CHECKSUMS: + bluetooth_low_energy: 9222b99f977897165e6ffaece386bd289ac8c1fb + Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c + SwiftProtobuf: 9c85136c6ba74b0a1b84279dbf0f6db8efb714e0 + +PODFILE CHECKSUM: a75497545d4391e2d394c3668e20cfb1c2bbd4aa + +COCOAPODS: 1.10.1 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index f13fb93..5d44cb7 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 51; objects = { /* Begin PBXBuildFile section */ @@ -13,6 +13,7 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + EA280E36114EEC52A66510AF /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F6363DB0F6B8F760A0B70E6 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -29,8 +30,10 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 1173070BE6CFE927D74C0736 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 2F6363DB0F6B8F760A0B70E6 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -42,6 +45,8 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9E8C4C982EC9200D28D9557C /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + FA6DAFE6FDB9F8D1C4A8AEF3 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -49,6 +54,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + EA280E36114EEC52A66510AF /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -72,6 +78,8 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, + A19CF493038BEE74587FB0E8 /* Pods */, + 990CDB7BA621E0B7AFA0C6BE /* Frameworks */, ); sourceTree = ""; }; @@ -98,6 +106,24 @@ path = Runner; sourceTree = ""; }; + 990CDB7BA621E0B7AFA0C6BE /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2F6363DB0F6B8F760A0B70E6 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + A19CF493038BEE74587FB0E8 /* Pods */ = { + isa = PBXGroup; + children = ( + FA6DAFE6FDB9F8D1C4A8AEF3 /* Pods-Runner.debug.xcconfig */, + 1173070BE6CFE927D74C0736 /* Pods-Runner.release.xcconfig */, + 9E8C4C982EC9200D28D9557C /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -105,12 +131,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + 4DEF012D22BCBC3AF731DE9C /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + EDB3731BEABF1E16CE6A52EB /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -183,6 +211,28 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; + 4DEF012D22BCBC3AF731DE9C /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -197,6 +247,23 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; + EDB3731BEABF1E16CE6A52EB /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -288,9 +355,13 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = JJSB6LL9HD; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = dev.yanshouwang.bluetoothLowEnergyExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -399,7 +470,8 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -412,9 +484,13 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = JJSB6LL9HD; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = dev.yanshouwang.bluetoothLowEnergyExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -431,9 +507,13 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = JJSB6LL9HD; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = dev.yanshouwang.bluetoothLowEnergyExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; diff --git a/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/example/ios/Runner.xcworkspace/contents.xcworkspacedata index 1d526a1..21a3cc1 100644 --- a/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,7 @@ + + diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist index 0d5e3fe..d1e0108 100644 --- a/example/ios/Runner/Info.plist +++ b/example/ios/Runner/Info.plist @@ -22,6 +22,8 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + NSBluetoothAlwaysUsageDescription + We need to use your bluetooth to communicate with other BLE devices. UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/example/lib/main.dart b/example/lib/main.dart index 45e15c0..adcb0e9 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -27,24 +27,33 @@ class HomeView extends StatefulWidget { } class _HomeViewState extends State with WidgetsBindingObserver { + final ValueNotifier state; final ValueNotifier discovering; - final ValueNotifier> discoveries; - late StreamSubscription stateSubscription; + final ValueNotifier> discoveries; + late StreamSubscription stateSubscription; late StreamSubscription discoverySubscription; _HomeViewState() - : discovering = ValueNotifier(false), + : state = ValueNotifier(false), + discovering = ValueNotifier(false), discoveries = ValueNotifier({}); @override void initState() { super.initState(); WidgetsBinding.instance!.addObserver(this); + setup(); + } + + void setup() async { + final state = await central.state; + this.state.value = state == BluetoothState.poweredOn; stateSubscription = central.stateChanged.listen( (state) { + this.state.value = state == BluetoothState.poweredOn; final invisible = !ModalRoute.of(context)!.isCurrent; if (invisible) return; - if (state) { + if (this.state.value) { startDiscovery(); } else { discovering.value = false; @@ -53,11 +62,13 @@ class _HomeViewState extends State with WidgetsBindingObserver { ); discoverySubscription = central.discovered.listen( (discovery) { - discoveries.value[discovery.address] = discovery; + discoveries.value[discovery.uuid] = discovery; discoveries.value = {...discoveries.value}; }, ); - startDiscovery(); + if (this.state.value) { + startDiscovery(); + } } @override @@ -88,13 +99,13 @@ class _HomeViewState extends State with WidgetsBindingObserver { } void startDiscovery() async { - if (discovering.value || !await central.state) return; + if (discovering.value || !state.value) return; await central.startDiscovery(); discovering.value = true; } void stopDiscovery() async { - if (!discovering.value || !await central.state) return; + if (!discovering.value || !state.value) return; await central.stopDiscovery(); discoveries.value = {}; discovering.value = false; @@ -113,7 +124,7 @@ class _HomeViewState extends State with WidgetsBindingObserver { stopDiscovery(); await Navigator.of(context).pushNamed( 'gatt', - arguments: discovery.address, + arguments: discovery.uuid, ); startDiscovery(); } @@ -121,16 +132,10 @@ class _HomeViewState extends State with WidgetsBindingObserver { extension on _HomeViewState { Widget get bodyView { - return FutureBuilder( - future: central.state, - builder: (context, snapshot) => snapshot.hasData - ? StreamBuilder( - stream: central.stateChanged, - initialData: snapshot.data, - builder: (context, snapshot) => - snapshot.data! ? discoveriesView : closedView, - ) - : closedView, + return ValueListenableBuilder( + valueListenable: state, + builder: (context, bool state, child) => + state ? discoveriesView : closedView, ); } @@ -145,14 +150,14 @@ extension on _HomeViewState { onRefresh: () async => discoveries.value = {}, child: ValueListenableBuilder( valueListenable: discoveries, - builder: (context, Map discoveries, child) { + builder: (context, Map discoveries, child) { return ListView.builder( padding: EdgeInsets.all(6.0), itemCount: discoveries.length, itemBuilder: (context, i) { final discovery = discoveries.values.elementAt(i); return Card( - color: Colors.amber, + color: discovery.connectable ? Colors.amber : Colors.grey, clipBehavior: Clip.antiAlias, shape: BeveledRectangleBorder( borderRadius: BorderRadius.only( @@ -160,24 +165,39 @@ extension on _HomeViewState { bottomLeft: Radius.circular(12.0)), ), margin: EdgeInsets.all(6.0), - key: Key(discovery.address.name), + key: Key(discovery.uuid.name), child: InkWell( splashColor: Colors.purple, - onTap: () => showGattView(discovery), + onTap: discovery.connectable + ? () => showGattView(discovery) + : null, onLongPress: () => showAdvertisements(discovery), child: Container( height: 100.0, + padding: EdgeInsets.all(12.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ - Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text(discovery.name ?? 'NaN'), - Text(discovery.address.name), - ], + Expanded( + flex: 3, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(discovery.name ?? 'NaN'), + Text( + discovery.uuid.name, + softWrap: true, + ), + ], + ), + ), + Expanded( + flex: 1, + child: Text( + discovery.rssi.toString(), + textAlign: TextAlign.center, + ), ), - Text(discovery.rssi.toString()), ], ), ), @@ -265,7 +285,7 @@ class _GattViewState extends State { final ValueNotifier> notifies; final ValueNotifier> logs; - late MAC address; + late UUID uuid; _GattViewState() : state = ValueNotifier(ConnectionState.disconnected), @@ -282,10 +302,10 @@ class _GattViewState extends State { @override Widget build(BuildContext context) { - address = ModalRoute.of(context)!.settings.arguments as MAC; + uuid = ModalRoute.of(context)!.settings.arguments as UUID; return Scaffold( appBar: AppBar( - title: Text('$address'), + title: Text(uuid.name), actions: [ changeStateView, ], @@ -336,7 +356,7 @@ class _GattViewState extends State { void connect() async { try { state.value = ConnectionState.connecting; - gatt = await central.connect(address); + gatt = await central.connect(uuid); state.value = ConnectionState.connected; connectionLostSubscription = gatt!.connectionLost.listen( (errorCode) async { @@ -547,6 +567,7 @@ extension on _GattViewState { final controllerView = TextField( controller: writeController, decoration: InputDecoration( + hintText: 'MTU: ${gatt!.maximumWriteLength}', suffixIcon: IconButton( onPressed: canWrite ? () { diff --git a/example/pubspec.lock b/example/pubspec.lock index f98b2d2..f9ad8e8 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -5,7 +5,7 @@ packages: dependency: transitive description: name: async - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.6.1" bluetooth_low_energy: @@ -14,68 +14,68 @@ packages: path: ".." relative: true source: path - version: "0.0.2" + version: "0.1.0" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" characters: dependency: transitive description: name: characters - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" charcode: dependency: transitive description: name: charcode - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" clock: dependency: transitive description: name: clock - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" collection: dependency: transitive description: name: collection - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.15.0" convert: dependency: "direct main" description: name: convert - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.3" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" fixnum: dependency: transitive description: name: fixnum - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.0" flutter: @@ -87,7 +87,7 @@ packages: dependency: "direct main" description: name: flutter_simple_treeview - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.0-nullsafety.1" flutter_test: @@ -99,35 +99,35 @@ packages: dependency: transitive description: name: matcher - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.12.10" meta: dependency: transitive description: name: meta - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.0" path: dependency: transitive description: name: path - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.8.0" pedantic: dependency: "direct dev" description: name: pedantic - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "1.11.0" + version: "1.11.1" protobuf: dependency: transitive description: name: protobuf - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" sky_engine: @@ -139,56 +139,56 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.8.1" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" test_api: dependency: transitive description: name: test_api - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.3.0" typed_data: dependency: transitive description: name: typed_data - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.0" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" sdks: diff --git a/ios/Classes/NativeGATT.swift b/ios/Classes/NativeGATT.swift new file mode 100644 index 0000000..4d1fc81 --- /dev/null +++ b/ios/Classes/NativeGATT.swift @@ -0,0 +1,18 @@ +// +// NativeGATT.swift +// bluetooth_low_energy +// +// Created by 闫守旺 on 2021/7/15. +// + +import Foundation +import CoreBluetooth + +class NativeGATT: NativeValue { + let services: [String: NativeGattService] + + init(_ value: CBPeripheral, _ services: [String: NativeGattService]) { + self.services = services + super.init(value) + } +} diff --git a/ios/Classes/NativeGattCharacteristic.swift b/ios/Classes/NativeGattCharacteristic.swift new file mode 100644 index 0000000..588f542 --- /dev/null +++ b/ios/Classes/NativeGattCharacteristic.swift @@ -0,0 +1,18 @@ +// +// NativeGattCharacteristic.swift +// bluetooth_low_energy +// +// Created by 闫守旺 on 2021/7/15. +// + +import Foundation +import CoreBluetooth + +class NativeGattCharacteristic: NativeValue { + let descriptors: [String: NativeGattDescriptor] + + init(_ value: CBCharacteristic, _ descriptors: [String: NativeGattDescriptor]) { + self.descriptors = descriptors + super.init(value) + } +} diff --git a/ios/Classes/NativeGattDescriptor.swift b/ios/Classes/NativeGattDescriptor.swift new file mode 100644 index 0000000..cd45090 --- /dev/null +++ b/ios/Classes/NativeGattDescriptor.swift @@ -0,0 +1,12 @@ +// +// NativeGattDescriptor.swift +// bluetooth_low_energy +// +// Created by 闫守旺 on 2021/7/15. +// + +import Foundation +import CoreBluetooth + +class NativeGattDescriptor: NativeValue { +} diff --git a/ios/Classes/NativeGattService.swift b/ios/Classes/NativeGattService.swift new file mode 100644 index 0000000..63d15d8 --- /dev/null +++ b/ios/Classes/NativeGattService.swift @@ -0,0 +1,18 @@ +// +// NativeGattService.swift +// bluetooth_low_energy +// +// Created by 闫守旺 on 2021/7/15. +// + +import Foundation +import CoreBluetooth + +class NativeGattService: NativeValue { + let characteristics: [String: NativeGattCharacteristic] + + init(_ value: CBService, _ characteristics: [String: NativeGattCharacteristic]) { + self.characteristics = characteristics + super.init(value) + } +} diff --git a/ios/Classes/NativeValue.swift b/ios/Classes/NativeValue.swift new file mode 100644 index 0000000..f391beb --- /dev/null +++ b/ios/Classes/NativeValue.swift @@ -0,0 +1,17 @@ +// +// NativeValue.swift +// bluetooth_low_energy +// +// Created by 闫守旺 on 2021/7/15. +// + +import Foundation + +class NativeValue { + let key = UUID().uuidString + let value: T + + init(_ value: T) { + self.value = value + } +} diff --git a/ios/Classes/SwiftBluetoothLowEnergyPlugin.swift b/ios/Classes/SwiftBluetoothLowEnergyPlugin.swift index f2c9e9b..51a1faf 100644 --- a/ios/Classes/SwiftBluetoothLowEnergyPlugin.swift +++ b/ios/Classes/SwiftBluetoothLowEnergyPlugin.swift @@ -1,14 +1,512 @@ import Flutter import UIKit +import CoreBluetooth -public class SwiftBluetoothLowEnergyPlugin: NSObject, FlutterPlugin { - public static func register(with registrar: FlutterPluginRegistrar) { - let channel = FlutterMethodChannel(name: "bluetooth_low_energy", binaryMessenger: registrar.messenger()) - let instance = SwiftBluetoothLowEnergyPlugin() - registrar.addMethodCallDelegate(instance, channel: channel) - } +let NAMESAPCE = "yanshouwang.dev/bluetooth_low_energy" - public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) { - result("iOS " + UIDevice.current.systemVersion) - } +typealias MessageCategory = Dev_Yanshouwang_BluetoothLowEnergy_MessageCategory +typealias Message = Dev_Yanshouwang_BluetoothLowEnergy_Message +typealias BluetoothState = Dev_Yanshouwang_BluetoothLowEnergy_BluetoothState +typealias StartDiscoveryArguments = Dev_Yanshouwang_BluetoothLowEnergy_StartDiscoveryArguments +typealias Discovery = Dev_Yanshouwang_BluetoothLowEnergy_Discovery +typealias GATT = Dev_Yanshouwang_BluetoothLowEnergy_GATT +typealias GattService = Dev_Yanshouwang_BluetoothLowEnergy_GattService +typealias GattCharacteristic = Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristic +typealias GattDescriptor = Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptor +typealias GattConnectionLost = Dev_Yanshouwang_BluetoothLowEnergy_GattConnectionLost +typealias GattCharacteristicValue = Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicValue + +public class SwiftBluetoothLowEnergyPlugin: NSObject, FlutterPlugin, FlutterStreamHandler, CBCentralManagerDelegate, CBPeripheralDelegate { + let SHORTENED_LOCAL_NAME_TYPE = 0x08 + let COMPLETE_LOCAL_NAME_TYPE: UInt8 = 0x09 + let MANUFACTURER_SPECIFIC_DATA_TYPE: UInt8 = 0xff + let SERVICE_DATA_16BIT_TYPE: UInt8 = 0x16 + let SERVICE_DATA_32BIT_TYPE: UInt8 = 0x20 + let SERVICE_DATA_128BIT_TYPE: UInt8 = 0x21 + let INCOMPLETE_SERVICE_UUIDS_16BIT_TYPE: UInt8 = 0x02 + let INCOMPLETE_SERVICE_UUIDS_32BIT_TYPE: UInt8 = 0x04 + let INCOMPLETE_SERVICE_UUIDS_128BIT_TYPE: UInt8 = 0x06 + let COMPLETE_SERVICE_UUIDS_16BIT_TYPE: UInt8 = 0x03 + let COMPLETE_SERVICE_UUIDS_32BIT_TYPE: UInt8 = 0x05 + let COMPLETE_SERVICE_UUIDS_128BIT_TYPE: UInt8 = 0x07 + let SOLICITTED_SERVICE_UUIDS_16BIT_TYPE: UInt8 = 0x14 + let SOLICITTED_SERVICE_UUIDS_32BIT_TYPE: UInt8 = 0x1f + let SOLICITTED_SERVICE_UUIDS_128BIT_TYPE: UInt8 = 0x15 + let TX_POWER_LEVEL_TYPE: UInt8 = 0x0a + + var events: FlutterEventSink? = nil + + var central: CBCentralManager! + var oldState: BluetoothState? = nil + + public override init() { + super.init() + central = CBCentralManager(delegate: self, queue: nil) + } + + lazy var nativeGATTs = [String: NativeGATT]() + + lazy var connects = [CBPeripheral: FlutterResult]() + lazy var disconnects = [CBPeripheral: FlutterResult]() + lazy var characteristicReads = [CBCharacteristic: FlutterResult]() + lazy var characteristicWrites = [CBCharacteristic: FlutterResult]() + lazy var characteristicNotifies = [CBCharacteristic: FlutterResult]() + lazy var descriptorReads = [CBDescriptor: FlutterResult]() + lazy var descriptorWrites = [CBDescriptor: FlutterResult]() + + public static func register(with registrar: FlutterPluginRegistrar) { + debugPrint("SwiftBluetoothLowEnergyPlugin: register") + let instance = SwiftBluetoothLowEnergyPlugin() + let messenger = registrar.messenger() + let method = FlutterMethodChannel(name: "\(NAMESAPCE)/method", binaryMessenger: messenger) + registrar.addMethodCallDelegate(instance, channel: method) + let event = FlutterEventChannel(name: "\(NAMESAPCE)/event", binaryMessenger: messenger) + event.setStreamHandler(instance) + } + + public func detachFromEngine(for registrar: FlutterPluginRegistrar) { + debugPrint("SwiftBluetoothLowEnergyPlugin: detachFromEngine") + // Clear connections. + for nativeGATT in nativeGATTs.values { + central.cancelPeripheralConnection(nativeGATT.value) + } + // Stop scan. + if central.isScanning { + central.stopScan() + } + } + + public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) { + let arguments = call.arguments as! FlutterStandardTypedData + let command = try! Message(serializedData: arguments.data) + switch command.category { + case .bluetoothState: + result(central.messageState.rawValue) + case .centralStartDiscovery: + let withServices = command.startDiscoveryArguments.services.map { CBUUID(string: $0) } + let options = [CBCentralManagerScanOptionAllowDuplicatesKey: true] + central.scanForPeripherals(withServices: withServices, options: options) + result(nil) + case .centralStopDiscovery: + central.stopScan() + result(nil) + case .centralConnect: + let uuid = UUID(uuidString: command.connectArguments.uuid)! + let peripheral = central.retrievePeripherals(withIdentifiers: [uuid]).first! + connects[peripheral] = result + central.connect(peripheral, options: nil) + case .gattDisconnect: + let nativeGATT = nativeGATTs[command.disconnectArguments.key]! + disconnects[nativeGATT.value] = result + central.cancelPeripheralConnection(nativeGATT.value) + case .gattCharacteristicRead: + let nativeGATT = nativeGATTs[command.characteristicReadArguments.gattKey]! + let nativeService = nativeGATT.services[command.characteristicReadArguments.serviceKey]! + let nativeCharacteristic = nativeService.characteristics[command.characteristicReadArguments.key]! + characteristicReads[nativeCharacteristic.value] = result + nativeGATT.value.readValue(for: nativeCharacteristic.value) + case .gattCharacteristicWrite: + let nativeGATT = nativeGATTs[command.characteristicWriteArguments.gattKey]! + let nativeService = nativeGATT.services[command.characteristicWriteArguments.serviceKey]! + let nativeCharacteristic = nativeService.characteristics[command.characteristicWriteArguments.key]! + let value = command.characteristicWriteArguments.value + let type: CBCharacteristicWriteType = command.characteristicWriteArguments.withoutResponse ? .withoutResponse : .withResponse + characteristicWrites[nativeCharacteristic.value] = result + nativeGATT.value.writeValue(value, for: nativeCharacteristic.value, type: type) + break + case .gattCharacteristicNotify: + let nativeGATT = nativeGATTs[command.characteristicNotifyArguments.gattKey]! + let nativeService = nativeGATT.services[command.characteristicNotifyArguments.serviceKey]! + let nativeCharacteristic = nativeService.characteristics[command.characteristicNotifyArguments.key]! + let state = command.characteristicNotifyArguments.state + characteristicNotifies[nativeCharacteristic.value] = result + nativeGATT.value.setNotifyValue(state, for: nativeCharacteristic.value) + break + case .gattDescriptorRead: + let nativeGATT = nativeGATTs[command.descriptorReadArguments.gattKey]! + let nativeService = nativeGATT.services[command.descriptorReadArguments.serviceKey]! + let nativeCharacteristic = nativeService.characteristics[command.descriptorReadArguments.characteristicKey]! + let nativeDescriptor = nativeCharacteristic.descriptors[command.descriptorReadArguments.key]! + descriptorReads[nativeDescriptor.value] = result + nativeGATT.value.readValue(for: nativeDescriptor.value) + break + case .gattDescriptorWrite: + let nativeGATT = nativeGATTs[command.descriptorReadArguments.gattKey]! + let nativeService = nativeGATT.services[command.descriptorReadArguments.serviceKey]! + let nativeCharacteristic = nativeService.characteristics[command.descriptorReadArguments.characteristicKey]! + let nativeDescriptor = nativeCharacteristic.descriptors[command.descriptorReadArguments.key]! + let value = command.descriptorWriteArguments.value + descriptorWrites[nativeDescriptor.value] = result + nativeGATT.value.writeValue(value, for: nativeDescriptor.value) + break + default: + result(FlutterMethodNotImplemented) + } + } + + public func onListen(withArguments arguments: Any?, eventSink events: @escaping FlutterEventSink) -> FlutterError? { + debugPrint("SwiftBluetoothLowEnergyPlugin: onListen") + self.events = events + return nil + } + + public func onCancel(withArguments arguments: Any?) -> FlutterError? { + debugPrint("SwiftBluetoothLowEnergyPlugin: onCancel") + // This must be a hot reload for now, clear all status here. + // Clear connections. + for nativeGATT in nativeGATTs.values { + central.cancelPeripheralConnection(nativeGATT.value) + } + // Stop scan. + if central.isScanning { + central.stopScan() + } + events = nil + return nil + } + + public func centralManagerDidUpdateState(_ central: CBCentralManager) { + let newState = central.messageState + if newState == oldState { + return + } else if oldState == nil { + oldState = newState + } else { + oldState = newState + let event = try! Message.with { + $0.category = .bluetoothState + $0.state = newState + }.serializedData() + events?(event) + // Send connection lost event and remove all nativeGATTs after central closed, same behaior with Android. + if newState != .poweredOn { + for nativeGATT in nativeGATTs { + let connectionLost = GattConnectionLost.with { + $0.key = nativeGATT.key + $0.error = "Central closed." + } + let event = try! Message.with { + $0.category = .gattConnectionLost + $0.connectionLost = connectionLost + }.serializedData() + events?(event) + } + nativeGATTs.removeAll() + } + } + } + + public func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) { + // Can't analyze complete raw advertisements on iOS. + var advertisements = Data() + for key in advertisementData.keys { + switch key { + case CBAdvertisementDataLocalNameKey: + let name = advertisementData[key] as! String + let data = name.data(using: .utf8)! + let length = UInt8(data.count) + 1 + advertisements.append(length) + // TODO: We don't know is this a SHORTENED_LOCAL_NAME or COMPLETE_LOCAL_NAME + // Just use COMPLETE_LOCAL_NAME as type + advertisements.append(COMPLETE_LOCAL_NAME_TYPE) + advertisements.append(data) + break + case CBAdvertisementDataManufacturerDataKey: + let data = advertisementData[key] as! Data + let length = UInt8(data.count) + 1 + advertisements.append(length) + advertisements.append(MANUFACTURER_SPECIFIC_DATA_TYPE) + advertisements.append(data) + break + case CBAdvertisementDataServiceDataKey: + let serviceData = advertisementData[key] as! [CBUUID: Data] + var data = Data() + for item in serviceData { + data.append(item.key.data) + data.append(item.value) + } + let length = UInt8(data.count) + 1 + advertisements.append(length) + // TODO: Need to know the real SERVICE_DATA_TYPE + advertisements.append(SERVICE_DATA_128BIT_TYPE) + advertisements.append(data) + break + case CBAdvertisementDataServiceUUIDsKey: + let serviceUUIDs = advertisementData[key] as! [CBUUID] + var data = Data() + for serviceUUID in serviceUUIDs { + data.append(serviceUUID.data) + } + let length = UInt8(data.count) + 1 + advertisements.append(length) + // TODO: Need to know the real SERVICE_UUIDS_TYPE + advertisements.append(COMPLETE_SERVICE_UUIDS_128BIT_TYPE) + advertisements.append(data) + break + case CBAdvertisementDataOverflowServiceUUIDsKey: + // TODO: What is an OVERFLOW_SERVICE_UUIDS_TYPE? + // Maybe INCOMPLETE_SERVICE_UUIDS? + break + case CBAdvertisementDataTxPowerLevelKey: + let txPowerLevel = advertisementData[key] as! UInt8 + advertisements.append(2) + advertisements.append(TX_POWER_LEVEL_TYPE) + advertisements.append(txPowerLevel) + break + case CBAdvertisementDataIsConnectable: + break + case CBAdvertisementDataSolicitedServiceUUIDsKey: + let serviceUUIDs = advertisementData[key] as! [CBUUID] + var data = Data() + for serviceUUID in serviceUUIDs { + data.append(serviceUUID.data) + } + let length = UInt8(data.count) + 1 + advertisements.append(length) + // TODO: Need to know the real SOLICITED_SERVICE_UUIDS_TYPE + advertisements.append(SOLICITTED_SERVICE_UUIDS_128BIT_TYPE) + advertisements.append(data) + break + default: + break + } + } + let connectable = advertisementData[CBAdvertisementDataIsConnectable] as? Bool ?? false + let discovery = Discovery.with { + $0.uuid = peripheral.identifier.uuidString + $0.rssi = RSSI.int32Value + $0.advertisements = advertisements + $0.connectable = connectable + } + let event = try! Message.with { + $0.category = .centralDiscovered + $0.discovery = discovery + }.serializedData() + events?(event) + } + + public func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) { + peripheral.delegate = self + peripheral.discoverServices(nil) + } + + public func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) { + let connect = connects.removeValue(forKey: peripheral)! + let error = FlutterError(code: error!.localizedDescription, message: nil, details: nil) + connect(error) + } + + public func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) { + if connects.keys.contains(peripheral) { + let connect = connects.removeValue(forKey: peripheral)! + let error = FlutterError(code: "GATT disconnected.", message: nil, details: nil) + connect(error) + } else { + let nativeGATT = nativeGATTs.first(where: { $1.value === peripheral })! + nativeGATTs.removeValue(forKey: nativeGATT.key) + if disconnects.keys.contains(peripheral) { + let disconnect = disconnects.removeValue(forKey: peripheral)! + disconnect(nil) + } else { + let connectionLost = GattConnectionLost.with { + $0.key = nativeGATT.key + $0.error = error!.localizedDescription + } + let event = try! Message.with { + $0.category = MessageCategory.gattConnectionLost + $0.connectionLost = connectionLost + }.serializedData() + events?(event) + } + } + } + + public func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?) { + if error == nil { + let service = peripheral.services?.first(where: { $0.characteristics == nil }) + peripheral.discoverCharacteristics(nil, for: service!) + } else { + central.cancelPeripheralConnection(peripheral) + } + } + + public func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) { + if error == nil { + let characteristic = service.characteristics?.first(where: { $0.descriptors == nil }) + if characteristic != nil { + peripheral.discoverDescriptors(for: characteristic!) + } + } else { + central.cancelPeripheralConnection(peripheral) + } + } + + public func peripheral(_ peripheral: CBPeripheral, didDiscoverDescriptorsFor characteristic: CBCharacteristic, error: Error?) { + if error == nil { + let nextCharacteristic = characteristic.service.characteristics?.first(where: { $0.descriptors == nil }) + if nextCharacteristic == nil { + let nextService = peripheral.services?.first(where: { $0.characteristics == nil }) + if nextService == nil { + var nativeServices = [String: NativeGattService]() + var messageServices = [GattService]() + for service in peripheral.services! { + var nativeCharacteristics = [String: NativeGattCharacteristic]() + var messageCharacteristics = [GattCharacteristic]() + for characteristic in service.characteristics! { + var nativeDescriptors = [String: NativeGattDescriptor]() + var messageDescriptors = [GattDescriptor]() + for descriptor in characteristic.descriptors! { + // Add native descriptor. + let nativeDescriptor = NativeGattDescriptor(descriptor) + nativeDescriptors[nativeDescriptor.key] = nativeDescriptor + // Add message descriptor. + let messageDescriptor = GattDescriptor.with { + $0.key = nativeDescriptor.key + $0.uuid = descriptor.uuid.uuidString + } + messageDescriptors.append(messageDescriptor) + } + // Add native characteristic. + let nativeCharacteristic = NativeGattCharacteristic(characteristic, nativeDescriptors) + nativeCharacteristics[nativeCharacteristic.key] = nativeCharacteristic + // Add message characteristic. + let messageCharacteristic = GattCharacteristic.with { + $0.key = nativeCharacteristic.key + $0.uuid = characteristic.uuid.uuidString + $0.canRead = characteristic.properties.contains(.read) + $0.canWrite = characteristic.properties.contains(.write) + $0.canWriteWithoutResponse = characteristic.properties.contains(.writeWithoutResponse) + $0.canNotify = characteristic.properties.contains(.notify) + $0.descriptors = messageDescriptors + } + messageCharacteristics.append(messageCharacteristic) + } + // Add native service. + let nativeService = NativeGattService(service, nativeCharacteristics) + nativeServices[nativeService.key] = nativeService + // Add message service. + let messageService = GattService.with { + $0.key = nativeService.key + $0.uuid = service.uuid.uuidString + $0.characteristics = messageCharacteristics + } + messageServices.append(messageService) + } + // Add native gatt. + let nativeGATT = NativeGATT(peripheral, nativeServices) + nativeGATTs[nativeGATT.key] = nativeGATT + // Add message gatt. + let reply = try! GATT.with { + $0.key = nativeGATT.key + $0.maximumWriteLength = peripheral.maximumWriteLength + $0.services = messageServices + }.serializedData() + let connect = connects.removeValue(forKey: peripheral)! + connect(reply) + } else { + peripheral.discoverCharacteristics(nil, for: nextService!) + } + } else { + peripheral.discoverDescriptors(for: nextCharacteristic!) + } + } else { + central.cancelPeripheralConnection(peripheral) + } + } + + public func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { + let read = characteristicReads.removeValue(forKey: characteristic) + if read == nil { + let nativeGATT = nativeGATTs.values.first(where: { $0.value === peripheral })! + let nativeService = nativeGATT.services.values.first(where: { $0.value === characteristic.service })! + let nativeCharacteristic = nativeService.characteristics.values.first(where: { $0.value === characteristic })! + let characteristicValue = GattCharacteristicValue.with { + $0.gattKey = nativeGATT.key + $0.serviceKey = nativeService.key + $0.key = nativeCharacteristic.key + $0.value = characteristic.value! + } + let event = try! Message.with { + $0.category = .gattCharacteristicNotify + $0.characteristicValue = characteristicValue + }.serializedData() + events?(event) + } else if error == nil { + read!(characteristic.value!) + } else { + let error = FlutterError(code: error!.localizedDescription, message: nil, details: nil) + read!(error) + } + } + + public func peripheral(_ peripheral: CBPeripheral, didWriteValueFor characteristic: CBCharacteristic, error: Error?) { + let write = characteristicWrites.removeValue(forKey: characteristic)! + if error == nil { + write(nil) + } else { + let error = FlutterError(code: error!.localizedDescription, message: nil, details: nil) + write(error) + } + } + + public func peripheral(_ peripheral: CBPeripheral, didUpdateNotificationStateFor characteristic: CBCharacteristic, error: Error?) { + let notify = characteristicNotifies[characteristic]! + if error == nil { + notify(nil) + } else { + let error = FlutterError(code: error!.localizedDescription, message: nil, details: nil) + notify(error) + } + } + + public func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor descriptor: CBDescriptor, error: Error?) { + let read = descriptorReads[descriptor]! + if error == nil { + read(descriptor.value!) + } else { + let error = FlutterError(code: error!.localizedDescription, message: nil, details: nil) + read(error) + } + } + + public func peripheral(_ peripheral: CBPeripheral, didWriteValueFor descriptor: CBDescriptor, error: Error?) { + let write = descriptorWrites[descriptor]! + if error == nil { + write(nil) + } else { + let error = FlutterError(code: error!.localizedDescription, message: nil, details: nil) + write(error) + } + } +} + +extension CBCentralManager { + var messageState: BluetoothState { + switch state { + case .unknown: + return .unsupported + case .resetting: + return .unsupported + case .unsupported: + return .unsupported + case .unauthorized: + return .unsupported + case .poweredOff: + return .poweredOff + case .poweredOn: + return .poweredOn + default: + return .UNRECOGNIZED(-1) + } + } +} + +extension CBPeripheral { + var maximumWriteLength: Int32 { + let maximumWriteLengthWithResponse = maximumWriteValueLength(for: .withResponse) + let maximumWriteLengthWithoutResponse = maximumWriteValueLength(for: .withoutResponse) + // TODO: Is this two length the same value? + let maximumWriteLength = min(maximumWriteLengthWithResponse, maximumWriteLengthWithoutResponse) + return Int32(maximumWriteLength) + } } diff --git a/ios/Classes/message.pb.swift b/ios/Classes/message.pb.swift new file mode 100644 index 0000000..689fd83 --- /dev/null +++ b/ios/Classes/message.pb.swift @@ -0,0 +1,1540 @@ +// DO NOT EDIT. +// swift-format-ignore-file +// +// Generated by the Swift generator plugin for the protocol buffer compiler. +// Source: message.proto +// +// For information on using the generated types, please see the documentation: +// https://github.com/apple/swift-protobuf/ + +import Foundation +import SwiftProtobuf + +// If the compiler emits an error on this type, it is because this file +// was generated by a version of the `protoc` Swift plug-in that is +// incompatible with the version of SwiftProtobuf to which you are linking. +// Please ensure that you are building against the same version of the API +// that was used to generate this file. +fileprivate struct _GeneratedWithProtocGenSwiftVersion: SwiftProtobuf.ProtobufAPIVersionCheck { + struct _2: SwiftProtobuf.ProtobufAPIVersion_2 {} + typealias Version = _2 +} + +enum Dev_Yanshouwang_BluetoothLowEnergy_MessageCategory: SwiftProtobuf.Enum { + typealias RawValue = Int + case bluetoothState // = 0 + case centralStartDiscovery // = 1 + case centralStopDiscovery // = 2 + case centralDiscovered // = 3 + case centralConnect // = 4 + case gattDisconnect // = 5 + case gattConnectionLost // = 6 + case gattCharacteristicRead // = 7 + case gattCharacteristicWrite // = 8 + case gattCharacteristicNotify // = 9 + case gattDescriptorRead // = 10 + case gattDescriptorWrite // = 11 + case UNRECOGNIZED(Int) + + init() { + self = .bluetoothState + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .bluetoothState + case 1: self = .centralStartDiscovery + case 2: self = .centralStopDiscovery + case 3: self = .centralDiscovered + case 4: self = .centralConnect + case 5: self = .gattDisconnect + case 6: self = .gattConnectionLost + case 7: self = .gattCharacteristicRead + case 8: self = .gattCharacteristicWrite + case 9: self = .gattCharacteristicNotify + case 10: self = .gattDescriptorRead + case 11: self = .gattDescriptorWrite + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .bluetoothState: return 0 + case .centralStartDiscovery: return 1 + case .centralStopDiscovery: return 2 + case .centralDiscovered: return 3 + case .centralConnect: return 4 + case .gattDisconnect: return 5 + case .gattConnectionLost: return 6 + case .gattCharacteristicRead: return 7 + case .gattCharacteristicWrite: return 8 + case .gattCharacteristicNotify: return 9 + case .gattDescriptorRead: return 10 + case .gattDescriptorWrite: return 11 + case .UNRECOGNIZED(let i): return i + } + } + +} + +#if swift(>=4.2) + +extension Dev_Yanshouwang_BluetoothLowEnergy_MessageCategory: CaseIterable { + // The compiler won't synthesize support with the UNRECOGNIZED case. + static var allCases: [Dev_Yanshouwang_BluetoothLowEnergy_MessageCategory] = [ + .bluetoothState, + .centralStartDiscovery, + .centralStopDiscovery, + .centralDiscovered, + .centralConnect, + .gattDisconnect, + .gattConnectionLost, + .gattCharacteristicRead, + .gattCharacteristicWrite, + .gattCharacteristicNotify, + .gattDescriptorRead, + .gattDescriptorWrite, + ] +} + +#endif // swift(>=4.2) + +enum Dev_Yanshouwang_BluetoothLowEnergy_BluetoothState: SwiftProtobuf.Enum { + typealias RawValue = Int + case unsupported // = 0 + case poweredOff // = 1 + case poweredOn // = 2 + case UNRECOGNIZED(Int) + + init() { + self = .unsupported + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .unsupported + case 1: self = .poweredOff + case 2: self = .poweredOn + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .unsupported: return 0 + case .poweredOff: return 1 + case .poweredOn: return 2 + case .UNRECOGNIZED(let i): return i + } + } + +} + +#if swift(>=4.2) + +extension Dev_Yanshouwang_BluetoothLowEnergy_BluetoothState: CaseIterable { + // The compiler won't synthesize support with the UNRECOGNIZED case. + static var allCases: [Dev_Yanshouwang_BluetoothLowEnergy_BluetoothState] = [ + .unsupported, + .poweredOff, + .poweredOn, + ] +} + +#endif // swift(>=4.2) + +struct Dev_Yanshouwang_BluetoothLowEnergy_Message { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var category: Dev_Yanshouwang_BluetoothLowEnergy_MessageCategory = .bluetoothState + + var value: Dev_Yanshouwang_BluetoothLowEnergy_Message.OneOf_Value? = nil + + var state: Dev_Yanshouwang_BluetoothLowEnergy_BluetoothState { + get { + if case .state(let v)? = value {return v} + return .unsupported + } + set {value = .state(newValue)} + } + + var startDiscoveryArguments: Dev_Yanshouwang_BluetoothLowEnergy_StartDiscoveryArguments { + get { + if case .startDiscoveryArguments(let v)? = value {return v} + return Dev_Yanshouwang_BluetoothLowEnergy_StartDiscoveryArguments() + } + set {value = .startDiscoveryArguments(newValue)} + } + + var discovery: Dev_Yanshouwang_BluetoothLowEnergy_Discovery { + get { + if case .discovery(let v)? = value {return v} + return Dev_Yanshouwang_BluetoothLowEnergy_Discovery() + } + set {value = .discovery(newValue)} + } + + var connectArguments: Dev_Yanshouwang_BluetoothLowEnergy_ConnectArguments { + get { + if case .connectArguments(let v)? = value {return v} + return Dev_Yanshouwang_BluetoothLowEnergy_ConnectArguments() + } + set {value = .connectArguments(newValue)} + } + + var disconnectArguments: Dev_Yanshouwang_BluetoothLowEnergy_GattDisconnectArguments { + get { + if case .disconnectArguments(let v)? = value {return v} + return Dev_Yanshouwang_BluetoothLowEnergy_GattDisconnectArguments() + } + set {value = .disconnectArguments(newValue)} + } + + var connectionLost: Dev_Yanshouwang_BluetoothLowEnergy_GattConnectionLost { + get { + if case .connectionLost(let v)? = value {return v} + return Dev_Yanshouwang_BluetoothLowEnergy_GattConnectionLost() + } + set {value = .connectionLost(newValue)} + } + + var characteristicReadArguments: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicReadArguments { + get { + if case .characteristicReadArguments(let v)? = value {return v} + return Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicReadArguments() + } + set {value = .characteristicReadArguments(newValue)} + } + + var characteristicWriteArguments: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicWriteArguments { + get { + if case .characteristicWriteArguments(let v)? = value {return v} + return Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicWriteArguments() + } + set {value = .characteristicWriteArguments(newValue)} + } + + var characteristicNotifyArguments: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicNotifyArguments { + get { + if case .characteristicNotifyArguments(let v)? = value {return v} + return Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicNotifyArguments() + } + set {value = .characteristicNotifyArguments(newValue)} + } + + var characteristicValue: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicValue { + get { + if case .characteristicValue(let v)? = value {return v} + return Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicValue() + } + set {value = .characteristicValue(newValue)} + } + + var descriptorReadArguments: Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorReadArguments { + get { + if case .descriptorReadArguments(let v)? = value {return v} + return Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorReadArguments() + } + set {value = .descriptorReadArguments(newValue)} + } + + var descriptorWriteArguments: Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorWriteArguments { + get { + if case .descriptorWriteArguments(let v)? = value {return v} + return Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorWriteArguments() + } + set {value = .descriptorWriteArguments(newValue)} + } + + var unknownFields = SwiftProtobuf.UnknownStorage() + + enum OneOf_Value: Equatable { + case state(Dev_Yanshouwang_BluetoothLowEnergy_BluetoothState) + case startDiscoveryArguments(Dev_Yanshouwang_BluetoothLowEnergy_StartDiscoveryArguments) + case discovery(Dev_Yanshouwang_BluetoothLowEnergy_Discovery) + case connectArguments(Dev_Yanshouwang_BluetoothLowEnergy_ConnectArguments) + case disconnectArguments(Dev_Yanshouwang_BluetoothLowEnergy_GattDisconnectArguments) + case connectionLost(Dev_Yanshouwang_BluetoothLowEnergy_GattConnectionLost) + case characteristicReadArguments(Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicReadArguments) + case characteristicWriteArguments(Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicWriteArguments) + case characteristicNotifyArguments(Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicNotifyArguments) + case characteristicValue(Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicValue) + case descriptorReadArguments(Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorReadArguments) + case descriptorWriteArguments(Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorWriteArguments) + + #if !swift(>=4.1) + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_Message.OneOf_Value, rhs: Dev_Yanshouwang_BluetoothLowEnergy_Message.OneOf_Value) -> Bool { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch (lhs, rhs) { + case (.state, .state): return { + guard case .state(let l) = lhs, case .state(let r) = rhs else { preconditionFailure() } + return l == r + }() + case (.startDiscoveryArguments, .startDiscoveryArguments): return { + guard case .startDiscoveryArguments(let l) = lhs, case .startDiscoveryArguments(let r) = rhs else { preconditionFailure() } + return l == r + }() + case (.discovery, .discovery): return { + guard case .discovery(let l) = lhs, case .discovery(let r) = rhs else { preconditionFailure() } + return l == r + }() + case (.connectArguments, .connectArguments): return { + guard case .connectArguments(let l) = lhs, case .connectArguments(let r) = rhs else { preconditionFailure() } + return l == r + }() + case (.disconnectArguments, .disconnectArguments): return { + guard case .disconnectArguments(let l) = lhs, case .disconnectArguments(let r) = rhs else { preconditionFailure() } + return l == r + }() + case (.connectionLost, .connectionLost): return { + guard case .connectionLost(let l) = lhs, case .connectionLost(let r) = rhs else { preconditionFailure() } + return l == r + }() + case (.characteristicReadArguments, .characteristicReadArguments): return { + guard case .characteristicReadArguments(let l) = lhs, case .characteristicReadArguments(let r) = rhs else { preconditionFailure() } + return l == r + }() + case (.characteristicWriteArguments, .characteristicWriteArguments): return { + guard case .characteristicWriteArguments(let l) = lhs, case .characteristicWriteArguments(let r) = rhs else { preconditionFailure() } + return l == r + }() + case (.characteristicNotifyArguments, .characteristicNotifyArguments): return { + guard case .characteristicNotifyArguments(let l) = lhs, case .characteristicNotifyArguments(let r) = rhs else { preconditionFailure() } + return l == r + }() + case (.characteristicValue, .characteristicValue): return { + guard case .characteristicValue(let l) = lhs, case .characteristicValue(let r) = rhs else { preconditionFailure() } + return l == r + }() + case (.descriptorReadArguments, .descriptorReadArguments): return { + guard case .descriptorReadArguments(let l) = lhs, case .descriptorReadArguments(let r) = rhs else { preconditionFailure() } + return l == r + }() + case (.descriptorWriteArguments, .descriptorWriteArguments): return { + guard case .descriptorWriteArguments(let l) = lhs, case .descriptorWriteArguments(let r) = rhs else { preconditionFailure() } + return l == r + }() + default: return false + } + } + #endif + } + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_StartDiscoveryArguments { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var services: [String] = [] + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_Discovery { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var uuid: String = String() + + var rssi: Int32 = 0 + + var advertisements: Data = Data() + + var connectable: Bool = false + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_ConnectArguments { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var uuid: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_GATT { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var key: String = String() + + var maximumWriteLength: Int32 = 0 + + var services: [Dev_Yanshouwang_BluetoothLowEnergy_GattService] = [] + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_GattService { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var key: String = String() + + var uuid: String = String() + + var characteristics: [Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristic] = [] + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristic { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var key: String = String() + + var uuid: String = String() + + var canRead: Bool = false + + var canWrite: Bool = false + + var canWriteWithoutResponse: Bool = false + + var canNotify: Bool = false + + var descriptors: [Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptor] = [] + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptor { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var key: String = String() + + var uuid: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_GattDisconnectArguments { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var key: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_GattConnectionLost { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var key: String = String() + + var error: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicReadArguments { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var gattKey: String = String() + + var serviceKey: String = String() + + var key: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicWriteArguments { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var gattKey: String = String() + + var serviceKey: String = String() + + var key: String = String() + + var value: Data = Data() + + var withoutResponse: Bool = false + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicNotifyArguments { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var gattKey: String = String() + + var serviceKey: String = String() + + var key: String = String() + + var state: Bool = false + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicValue { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var gattKey: String = String() + + var serviceKey: String = String() + + var key: String = String() + + var value: Data = Data() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorReadArguments { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var gattKey: String = String() + + var serviceKey: String = String() + + var characteristicKey: String = String() + + var key: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +struct Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorWriteArguments { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var gattKey: String = String() + + var serviceKey: String = String() + + var characteristicKey: String = String() + + var key: String = String() + + var value: Data = Data() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +// MARK: - Code below here is support for the SwiftProtobuf runtime. + +fileprivate let _protobuf_package = "dev.yanshouwang.bluetooth_low_energy" + +extension Dev_Yanshouwang_BluetoothLowEnergy_MessageCategory: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 0: .same(proto: "BLUETOOTH_STATE"), + 1: .same(proto: "CENTRAL_START_DISCOVERY"), + 2: .same(proto: "CENTRAL_STOP_DISCOVERY"), + 3: .same(proto: "CENTRAL_DISCOVERED"), + 4: .same(proto: "CENTRAL_CONNECT"), + 5: .same(proto: "GATT_DISCONNECT"), + 6: .same(proto: "GATT_CONNECTION_LOST"), + 7: .same(proto: "GATT_CHARACTERISTIC_READ"), + 8: .same(proto: "GATT_CHARACTERISTIC_WRITE"), + 9: .same(proto: "GATT_CHARACTERISTIC_NOTIFY"), + 10: .same(proto: "GATT_DESCRIPTOR_READ"), + 11: .same(proto: "GATT_DESCRIPTOR_WRITE"), + ] +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_BluetoothState: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 0: .same(proto: "UNSUPPORTED"), + 1: .same(proto: "POWERED_OFF"), + 2: .same(proto: "POWERED_ON"), + ] +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_Message: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Message" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .same(proto: "category"), + 2: .same(proto: "state"), + 3: .same(proto: "startDiscoveryArguments"), + 4: .same(proto: "discovery"), + 5: .same(proto: "connectArguments"), + 6: .same(proto: "disconnectArguments"), + 7: .same(proto: "connectionLost"), + 8: .same(proto: "characteristicReadArguments"), + 9: .same(proto: "characteristicWriteArguments"), + 10: .same(proto: "characteristicNotifyArguments"), + 11: .same(proto: "characteristicValue"), + 12: .same(proto: "descriptorReadArguments"), + 13: .same(proto: "descriptorWriteArguments"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.category) }() + case 2: try { + var v: Dev_Yanshouwang_BluetoothLowEnergy_BluetoothState? + try decoder.decodeSingularEnumField(value: &v) + if let v = v { + if self.value != nil {try decoder.handleConflictingOneOf()} + self.value = .state(v) + } + }() + case 3: try { + var v: Dev_Yanshouwang_BluetoothLowEnergy_StartDiscoveryArguments? + var hadOneofValue = false + if let current = self.value { + hadOneofValue = true + if case .startDiscoveryArguments(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.value = .startDiscoveryArguments(v) + } + }() + case 4: try { + var v: Dev_Yanshouwang_BluetoothLowEnergy_Discovery? + var hadOneofValue = false + if let current = self.value { + hadOneofValue = true + if case .discovery(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.value = .discovery(v) + } + }() + case 5: try { + var v: Dev_Yanshouwang_BluetoothLowEnergy_ConnectArguments? + var hadOneofValue = false + if let current = self.value { + hadOneofValue = true + if case .connectArguments(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.value = .connectArguments(v) + } + }() + case 6: try { + var v: Dev_Yanshouwang_BluetoothLowEnergy_GattDisconnectArguments? + var hadOneofValue = false + if let current = self.value { + hadOneofValue = true + if case .disconnectArguments(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.value = .disconnectArguments(v) + } + }() + case 7: try { + var v: Dev_Yanshouwang_BluetoothLowEnergy_GattConnectionLost? + var hadOneofValue = false + if let current = self.value { + hadOneofValue = true + if case .connectionLost(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.value = .connectionLost(v) + } + }() + case 8: try { + var v: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicReadArguments? + var hadOneofValue = false + if let current = self.value { + hadOneofValue = true + if case .characteristicReadArguments(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.value = .characteristicReadArguments(v) + } + }() + case 9: try { + var v: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicWriteArguments? + var hadOneofValue = false + if let current = self.value { + hadOneofValue = true + if case .characteristicWriteArguments(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.value = .characteristicWriteArguments(v) + } + }() + case 10: try { + var v: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicNotifyArguments? + var hadOneofValue = false + if let current = self.value { + hadOneofValue = true + if case .characteristicNotifyArguments(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.value = .characteristicNotifyArguments(v) + } + }() + case 11: try { + var v: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicValue? + var hadOneofValue = false + if let current = self.value { + hadOneofValue = true + if case .characteristicValue(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.value = .characteristicValue(v) + } + }() + case 12: try { + var v: Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorReadArguments? + var hadOneofValue = false + if let current = self.value { + hadOneofValue = true + if case .descriptorReadArguments(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.value = .descriptorReadArguments(v) + } + }() + case 13: try { + var v: Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorWriteArguments? + var hadOneofValue = false + if let current = self.value { + hadOneofValue = true + if case .descriptorWriteArguments(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.value = .descriptorWriteArguments(v) + } + }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.category != .bluetoothState { + try visitor.visitSingularEnumField(value: self.category, fieldNumber: 1) + } + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch self.value { + case .state?: try { + guard case .state(let v)? = self.value else { preconditionFailure() } + try visitor.visitSingularEnumField(value: v, fieldNumber: 2) + }() + case .startDiscoveryArguments?: try { + guard case .startDiscoveryArguments(let v)? = self.value else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 3) + }() + case .discovery?: try { + guard case .discovery(let v)? = self.value else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 4) + }() + case .connectArguments?: try { + guard case .connectArguments(let v)? = self.value else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 5) + }() + case .disconnectArguments?: try { + guard case .disconnectArguments(let v)? = self.value else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 6) + }() + case .connectionLost?: try { + guard case .connectionLost(let v)? = self.value else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 7) + }() + case .characteristicReadArguments?: try { + guard case .characteristicReadArguments(let v)? = self.value else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 8) + }() + case .characteristicWriteArguments?: try { + guard case .characteristicWriteArguments(let v)? = self.value else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 9) + }() + case .characteristicNotifyArguments?: try { + guard case .characteristicNotifyArguments(let v)? = self.value else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 10) + }() + case .characteristicValue?: try { + guard case .characteristicValue(let v)? = self.value else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 11) + }() + case .descriptorReadArguments?: try { + guard case .descriptorReadArguments(let v)? = self.value else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 12) + }() + case .descriptorWriteArguments?: try { + guard case .descriptorWriteArguments(let v)? = self.value else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 13) + }() + case nil: break + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_Message, rhs: Dev_Yanshouwang_BluetoothLowEnergy_Message) -> Bool { + if lhs.category != rhs.category {return false} + if lhs.value != rhs.value {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_StartDiscoveryArguments: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".StartDiscoveryArguments" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .same(proto: "services"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeRepeatedStringField(value: &self.services) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.services.isEmpty { + try visitor.visitRepeatedStringField(value: self.services, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_StartDiscoveryArguments, rhs: Dev_Yanshouwang_BluetoothLowEnergy_StartDiscoveryArguments) -> Bool { + if lhs.services != rhs.services {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_Discovery: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Discovery" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .same(proto: "uuid"), + 2: .same(proto: "rssi"), + 3: .same(proto: "advertisements"), + 4: .same(proto: "connectable"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.uuid) }() + case 2: try { try decoder.decodeSingularSInt32Field(value: &self.rssi) }() + case 3: try { try decoder.decodeSingularBytesField(value: &self.advertisements) }() + case 4: try { try decoder.decodeSingularBoolField(value: &self.connectable) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.uuid.isEmpty { + try visitor.visitSingularStringField(value: self.uuid, fieldNumber: 1) + } + if self.rssi != 0 { + try visitor.visitSingularSInt32Field(value: self.rssi, fieldNumber: 2) + } + if !self.advertisements.isEmpty { + try visitor.visitSingularBytesField(value: self.advertisements, fieldNumber: 3) + } + if self.connectable != false { + try visitor.visitSingularBoolField(value: self.connectable, fieldNumber: 4) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_Discovery, rhs: Dev_Yanshouwang_BluetoothLowEnergy_Discovery) -> Bool { + if lhs.uuid != rhs.uuid {return false} + if lhs.rssi != rhs.rssi {return false} + if lhs.advertisements != rhs.advertisements {return false} + if lhs.connectable != rhs.connectable {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_ConnectArguments: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".ConnectArguments" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .same(proto: "uuid"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.uuid) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.uuid.isEmpty { + try visitor.visitSingularStringField(value: self.uuid, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_ConnectArguments, rhs: Dev_Yanshouwang_BluetoothLowEnergy_ConnectArguments) -> Bool { + if lhs.uuid != rhs.uuid {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_GATT: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GATT" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .same(proto: "key"), + 2: .same(proto: "maximumWriteLength"), + 3: .same(proto: "services"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.key) }() + case 2: try { try decoder.decodeSingularInt32Field(value: &self.maximumWriteLength) }() + case 3: try { try decoder.decodeRepeatedMessageField(value: &self.services) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 1) + } + if self.maximumWriteLength != 0 { + try visitor.visitSingularInt32Field(value: self.maximumWriteLength, fieldNumber: 2) + } + if !self.services.isEmpty { + try visitor.visitRepeatedMessageField(value: self.services, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_GATT, rhs: Dev_Yanshouwang_BluetoothLowEnergy_GATT) -> Bool { + if lhs.key != rhs.key {return false} + if lhs.maximumWriteLength != rhs.maximumWriteLength {return false} + if lhs.services != rhs.services {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_GattService: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GattService" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .same(proto: "key"), + 2: .same(proto: "uuid"), + 3: .same(proto: "characteristics"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.key) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.uuid) }() + case 3: try { try decoder.decodeRepeatedMessageField(value: &self.characteristics) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 1) + } + if !self.uuid.isEmpty { + try visitor.visitSingularStringField(value: self.uuid, fieldNumber: 2) + } + if !self.characteristics.isEmpty { + try visitor.visitRepeatedMessageField(value: self.characteristics, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_GattService, rhs: Dev_Yanshouwang_BluetoothLowEnergy_GattService) -> Bool { + if lhs.key != rhs.key {return false} + if lhs.uuid != rhs.uuid {return false} + if lhs.characteristics != rhs.characteristics {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristic: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GattCharacteristic" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .same(proto: "key"), + 2: .same(proto: "uuid"), + 3: .same(proto: "canRead"), + 4: .same(proto: "canWrite"), + 5: .same(proto: "canWriteWithoutResponse"), + 6: .same(proto: "canNotify"), + 7: .same(proto: "descriptors"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.key) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.uuid) }() + case 3: try { try decoder.decodeSingularBoolField(value: &self.canRead) }() + case 4: try { try decoder.decodeSingularBoolField(value: &self.canWrite) }() + case 5: try { try decoder.decodeSingularBoolField(value: &self.canWriteWithoutResponse) }() + case 6: try { try decoder.decodeSingularBoolField(value: &self.canNotify) }() + case 7: try { try decoder.decodeRepeatedMessageField(value: &self.descriptors) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 1) + } + if !self.uuid.isEmpty { + try visitor.visitSingularStringField(value: self.uuid, fieldNumber: 2) + } + if self.canRead != false { + try visitor.visitSingularBoolField(value: self.canRead, fieldNumber: 3) + } + if self.canWrite != false { + try visitor.visitSingularBoolField(value: self.canWrite, fieldNumber: 4) + } + if self.canWriteWithoutResponse != false { + try visitor.visitSingularBoolField(value: self.canWriteWithoutResponse, fieldNumber: 5) + } + if self.canNotify != false { + try visitor.visitSingularBoolField(value: self.canNotify, fieldNumber: 6) + } + if !self.descriptors.isEmpty { + try visitor.visitRepeatedMessageField(value: self.descriptors, fieldNumber: 7) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristic, rhs: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristic) -> Bool { + if lhs.key != rhs.key {return false} + if lhs.uuid != rhs.uuid {return false} + if lhs.canRead != rhs.canRead {return false} + if lhs.canWrite != rhs.canWrite {return false} + if lhs.canWriteWithoutResponse != rhs.canWriteWithoutResponse {return false} + if lhs.canNotify != rhs.canNotify {return false} + if lhs.descriptors != rhs.descriptors {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptor: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GattDescriptor" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .same(proto: "key"), + 2: .same(proto: "uuid"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.key) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.uuid) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 1) + } + if !self.uuid.isEmpty { + try visitor.visitSingularStringField(value: self.uuid, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptor, rhs: Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptor) -> Bool { + if lhs.key != rhs.key {return false} + if lhs.uuid != rhs.uuid {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_GattDisconnectArguments: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GattDisconnectArguments" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .same(proto: "key"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.key) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_GattDisconnectArguments, rhs: Dev_Yanshouwang_BluetoothLowEnergy_GattDisconnectArguments) -> Bool { + if lhs.key != rhs.key {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_GattConnectionLost: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GattConnectionLost" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .same(proto: "key"), + 2: .same(proto: "error"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.key) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.error) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 1) + } + if !self.error.isEmpty { + try visitor.visitSingularStringField(value: self.error, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_GattConnectionLost, rhs: Dev_Yanshouwang_BluetoothLowEnergy_GattConnectionLost) -> Bool { + if lhs.key != rhs.key {return false} + if lhs.error != rhs.error {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicReadArguments: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GattCharacteristicReadArguments" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .standard(proto: "gatt_key"), + 2: .standard(proto: "service_key"), + 3: .same(proto: "key"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.gattKey) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.serviceKey) }() + case 3: try { try decoder.decodeSingularStringField(value: &self.key) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.gattKey.isEmpty { + try visitor.visitSingularStringField(value: self.gattKey, fieldNumber: 1) + } + if !self.serviceKey.isEmpty { + try visitor.visitSingularStringField(value: self.serviceKey, fieldNumber: 2) + } + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicReadArguments, rhs: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicReadArguments) -> Bool { + if lhs.gattKey != rhs.gattKey {return false} + if lhs.serviceKey != rhs.serviceKey {return false} + if lhs.key != rhs.key {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicWriteArguments: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GattCharacteristicWriteArguments" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .standard(proto: "gatt_key"), + 2: .standard(proto: "service_key"), + 3: .same(proto: "key"), + 4: .same(proto: "value"), + 5: .same(proto: "withoutResponse"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.gattKey) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.serviceKey) }() + case 3: try { try decoder.decodeSingularStringField(value: &self.key) }() + case 4: try { try decoder.decodeSingularBytesField(value: &self.value) }() + case 5: try { try decoder.decodeSingularBoolField(value: &self.withoutResponse) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.gattKey.isEmpty { + try visitor.visitSingularStringField(value: self.gattKey, fieldNumber: 1) + } + if !self.serviceKey.isEmpty { + try visitor.visitSingularStringField(value: self.serviceKey, fieldNumber: 2) + } + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 3) + } + if !self.value.isEmpty { + try visitor.visitSingularBytesField(value: self.value, fieldNumber: 4) + } + if self.withoutResponse != false { + try visitor.visitSingularBoolField(value: self.withoutResponse, fieldNumber: 5) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicWriteArguments, rhs: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicWriteArguments) -> Bool { + if lhs.gattKey != rhs.gattKey {return false} + if lhs.serviceKey != rhs.serviceKey {return false} + if lhs.key != rhs.key {return false} + if lhs.value != rhs.value {return false} + if lhs.withoutResponse != rhs.withoutResponse {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicNotifyArguments: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GattCharacteristicNotifyArguments" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .standard(proto: "gatt_key"), + 2: .standard(proto: "service_key"), + 3: .same(proto: "key"), + 4: .same(proto: "state"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.gattKey) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.serviceKey) }() + case 3: try { try decoder.decodeSingularStringField(value: &self.key) }() + case 4: try { try decoder.decodeSingularBoolField(value: &self.state) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.gattKey.isEmpty { + try visitor.visitSingularStringField(value: self.gattKey, fieldNumber: 1) + } + if !self.serviceKey.isEmpty { + try visitor.visitSingularStringField(value: self.serviceKey, fieldNumber: 2) + } + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 3) + } + if self.state != false { + try visitor.visitSingularBoolField(value: self.state, fieldNumber: 4) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicNotifyArguments, rhs: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicNotifyArguments) -> Bool { + if lhs.gattKey != rhs.gattKey {return false} + if lhs.serviceKey != rhs.serviceKey {return false} + if lhs.key != rhs.key {return false} + if lhs.state != rhs.state {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicValue: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GattCharacteristicValue" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .standard(proto: "gatt_key"), + 2: .standard(proto: "service_key"), + 3: .same(proto: "key"), + 4: .same(proto: "value"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.gattKey) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.serviceKey) }() + case 3: try { try decoder.decodeSingularStringField(value: &self.key) }() + case 4: try { try decoder.decodeSingularBytesField(value: &self.value) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.gattKey.isEmpty { + try visitor.visitSingularStringField(value: self.gattKey, fieldNumber: 1) + } + if !self.serviceKey.isEmpty { + try visitor.visitSingularStringField(value: self.serviceKey, fieldNumber: 2) + } + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 3) + } + if !self.value.isEmpty { + try visitor.visitSingularBytesField(value: self.value, fieldNumber: 4) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicValue, rhs: Dev_Yanshouwang_BluetoothLowEnergy_GattCharacteristicValue) -> Bool { + if lhs.gattKey != rhs.gattKey {return false} + if lhs.serviceKey != rhs.serviceKey {return false} + if lhs.key != rhs.key {return false} + if lhs.value != rhs.value {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorReadArguments: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GattDescriptorReadArguments" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .standard(proto: "gatt_key"), + 2: .standard(proto: "service_key"), + 3: .standard(proto: "characteristic_key"), + 4: .same(proto: "key"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.gattKey) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.serviceKey) }() + case 3: try { try decoder.decodeSingularStringField(value: &self.characteristicKey) }() + case 4: try { try decoder.decodeSingularStringField(value: &self.key) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.gattKey.isEmpty { + try visitor.visitSingularStringField(value: self.gattKey, fieldNumber: 1) + } + if !self.serviceKey.isEmpty { + try visitor.visitSingularStringField(value: self.serviceKey, fieldNumber: 2) + } + if !self.characteristicKey.isEmpty { + try visitor.visitSingularStringField(value: self.characteristicKey, fieldNumber: 3) + } + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 4) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorReadArguments, rhs: Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorReadArguments) -> Bool { + if lhs.gattKey != rhs.gattKey {return false} + if lhs.serviceKey != rhs.serviceKey {return false} + if lhs.characteristicKey != rhs.characteristicKey {return false} + if lhs.key != rhs.key {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +extension Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorWriteArguments: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GattDescriptorWriteArguments" + static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ + 1: .standard(proto: "gatt_key"), + 2: .standard(proto: "service_key"), + 3: .standard(proto: "characteristic_key"), + 4: .same(proto: "key"), + 5: .same(proto: "value"), + ] + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.gattKey) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.serviceKey) }() + case 3: try { try decoder.decodeSingularStringField(value: &self.characteristicKey) }() + case 4: try { try decoder.decodeSingularStringField(value: &self.key) }() + case 5: try { try decoder.decodeSingularBytesField(value: &self.value) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.gattKey.isEmpty { + try visitor.visitSingularStringField(value: self.gattKey, fieldNumber: 1) + } + if !self.serviceKey.isEmpty { + try visitor.visitSingularStringField(value: self.serviceKey, fieldNumber: 2) + } + if !self.characteristicKey.isEmpty { + try visitor.visitSingularStringField(value: self.characteristicKey, fieldNumber: 3) + } + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 4) + } + if !self.value.isEmpty { + try visitor.visitSingularBytesField(value: self.value, fieldNumber: 5) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorWriteArguments, rhs: Dev_Yanshouwang_BluetoothLowEnergy_GattDescriptorWriteArguments) -> Bool { + if lhs.gattKey != rhs.gattKey {return false} + if lhs.serviceKey != rhs.serviceKey {return false} + if lhs.characteristicKey != rhs.characteristicKey {return false} + if lhs.key != rhs.key {return false} + if lhs.value != rhs.value {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} diff --git a/ios/bluetooth_low_energy.podspec b/ios/bluetooth_low_energy.podspec index 416fdd6..60ce210 100644 --- a/ios/bluetooth_low_energy.podspec +++ b/ios/bluetooth_low_energy.podspec @@ -4,17 +4,18 @@ # Pod::Spec.new do |s| s.name = 'bluetooth_low_energy' - s.version = '0.0.1' - s.summary = 'A new flutter plugin project.' + s.version = '0.1.0' + s.summary = 'A bluetooth low energy plugin for flutter.' s.description = <<-DESC -A new flutter plugin project. +A bluetooth low energy plugin for flutter, which can be used to develope central role apps. DESC - s.homepage = 'http://example.com' + s.homepage = 'https://github.com/yanshouwang/bluetooth_low_energy' s.license = { :file => '../LICENSE' } - s.author = { 'Your Company' => 'email@example.com' } + s.author = { 'yanshouwang' => 'yanshouwang@outlook.com' } s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' + s.dependency 'SwiftProtobuf', '~> 1.0' s.platform = :ios, '8.0' # Flutter.framework does not contain a i386 slice. diff --git a/lib/bluetooth_low_energy.dart b/lib/bluetooth_low_energy.dart index 5d2f5f1..df20bc2 100644 --- a/lib/bluetooth_low_energy.dart +++ b/lib/bluetooth_low_energy.dart @@ -15,6 +15,5 @@ part 'src/gatt.dart'; part 'src/gatt_service.dart'; part 'src/gatt_characteristic.dart'; part 'src/gatt_descriptor.dart'; -part 'src/mac.dart'; part 'src/uuid.dart'; part 'src/extension.dart'; diff --git a/lib/src/bluetooth.dart b/lib/src/bluetooth.dart index 0819e0e..58f19cc 100644 --- a/lib/src/bluetooth.dart +++ b/lib/src/bluetooth.dart @@ -2,31 +2,39 @@ part of bluetooth_low_energy; /// The abstract base class that manages central and peripheral objects. abstract class Bluetooth { - /// The availability of the bluetooth. - Future get available; - /// The current state of the bluetooth. - Future get state; + Future get state; /// The bluetooth’s state changed. - Stream get stateChanged; + Stream get stateChanged; } class _Bluetooth implements Bluetooth { @override - Future get available => method - .invokeMethod(proto.MessageCategory.BLUETOOTH_AVAILABLE.name) - .then((value) => value!); + Future get state { + final message = proto.Message( + category: proto.MessageCategory.BLUETOOTH_STATE, + ).writeToBuffer(); + return method + .invokeMethod('', message) + .then((value) => BluetoothState.values[value!]); + } @override - Future get state => method - .invokeMethod(proto.MessageCategory.BLUETOOTH_STATE.name) - .then((value) => value!); - - @override - Stream get stateChanged => stream - .map((event) => proto.Message.fromBuffer(event)) + Stream get stateChanged => stream .where((message) => message.category == proto.MessageCategory.BLUETOOTH_STATE) - .map((message) => message.state); + .map((message) => message.state.toState()); +} + +/// TO BE DONE. +enum BluetoothState { + /// TO BE DONE. + unsupported, + + /// TO BE DONE. + poweredOff, + + /// TO BE DONE. + poweredOn, } diff --git a/lib/src/central.dart b/lib/src/central.dart index 622604c..ebc10d0 100644 --- a/lib/src/central.dart +++ b/lib/src/central.dart @@ -14,39 +14,43 @@ abstract class Central extends Bluetooth { Future stopDiscovery(); /// Establishes a local connection to a peripheral. - Future connect(MAC address); + Future connect(UUID uuid); } class _Central extends _Bluetooth implements Central { @override Stream get discovered => stream - .map((event) => proto.Message.fromBuffer(event)) .where((message) => message.category == proto.MessageCategory.CENTRAL_DISCOVERED) - .map((message) => message.discovery.conversion); + .map((message) => message.discovery.toDiscovery()); @override Future startDiscovery({List? services}) { - final name = proto.MessageCategory.CENTRAL_START_DISCOVERY.name; - final arguments = proto.StartDiscoveryArguments( - services: services?.map((uuid) => uuid.name), + final message = proto.Message( + category: proto.MessageCategory.CENTRAL_START_DISCOVERY, + startDiscoveryArguments: proto.StartDiscoveryArguments( + services: services?.map((uuid) => uuid.name), + ), ).writeToBuffer(); - return method.invokeMethod(name, arguments); + return method.invokeMethod('', message); } @override Future stopDiscovery() { - final name = proto.MessageCategory.CENTRAL_STOP_DISCOVERY.name; - return method.invokeMethod(name); + final message = proto.Message( + category: proto.MessageCategory.CENTRAL_STOP_DISCOVERY, + ).writeToBuffer(); + return method.invokeMethod('', message); } @override - Future connect(MAC address) { - final name = proto.MessageCategory.CENTRAL_CONNECT.name; - final arguments = - proto.ConnectArguments(address: address.name).writeToBuffer(); + Future connect(UUID uuid) { + final message = proto.Message( + category: proto.MessageCategory.CENTRAL_CONNECT, + connectArguments: proto.ConnectArguments(uuid: uuid.name), + ).writeToBuffer(); return method - .invokeMethod>(name, arguments) - .then((value) => proto.GATT.fromBuffer(value!).convert(address)); + .invokeMethod>('', message) + .then((value) => proto.GATT.fromBuffer(value!).toGATT()); } } diff --git a/lib/src/discovery.dart b/lib/src/discovery.dart index 2270ffe..ed9f4cf 100644 --- a/lib/src/discovery.dart +++ b/lib/src/discovery.dart @@ -3,22 +3,27 @@ part of bluetooth_low_energy; /// TO BE DONE. abstract class Discovery { /// TO BE DONE. - MAC get address; + UUID get uuid; /// TO BE DONE. int get rssi; /// TO BE DONE. Map> get advertisements; + + /// TO BE DONE. + bool get connectable; } class _Discovery implements Discovery { @override - final MAC address; + final UUID uuid; @override final int rssi; @override final Map> advertisements; + @override + final bool connectable; - _Discovery(this.address, this.rssi, this.advertisements); + _Discovery(this.uuid, this.rssi, this.advertisements, this.connectable); } diff --git a/lib/src/extension.dart b/lib/src/extension.dart index d2e9bda..8d01c8e 100644 --- a/lib/src/extension.dart +++ b/lib/src/extension.dart @@ -1,136 +1,114 @@ part of bluetooth_low_energy; extension on String { - String get nameOfMAC { - final upper = toUpperCase(); - final exp = RegExp( - r'^[0-9A-F]{2}(:[0-9A-F]{2}){5}$', - multiLine: true, - caseSensitive: true, - ); - if (exp.hasMatch(upper)) { - return upper; - } - throw ArgumentError.value(this); - } - - List get valueOfMAC { - final from = RegExp(r':'); - final encoded = replaceAll(from, ''); - return hex.decode(encoded); - } - - String get nameOfUUID { - final upper = toUpperCase(); + String get uuidName { + final lowerCase = toLowerCase(); final exp0 = RegExp( - r'[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$', - multiLine: true, - caseSensitive: true, + r'^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$', + caseSensitive: false, ); - if (exp0.hasMatch(upper)) { - return upper; + if (exp0.hasMatch(lowerCase)) { + return lowerCase; } final exp1 = RegExp( - r'^[0-9A-F]{4}$', - multiLine: true, - caseSensitive: true, + r'^[0-9a-f]{4}$', + caseSensitive: false, ); - if (exp1.hasMatch(upper)) { - return '0000$upper-0000-1000-8000-00805F9B34FB'; + if (exp1.hasMatch(lowerCase)) { + return '0000$lowerCase-0000-1000-8000-00805f9b34fb'; } throw ArgumentError.value(this); } - List get valueOfUUID { + List get uuidVaue { final from = RegExp(r'-'); final encoded = replaceAll(from, ''); return hex.decode(encoded); } - MAC get conversionOfMAC => MAC(this); + UUID get uuid => UUID(this); - UUID get conversionOfUUID => UUID(this); + Exception get exceptoin => Exception(this); +} + +extension on proto.BluetoothState { + BluetoothState toState() => BluetoothState.values[value]; } extension on proto.Discovery { - Discovery get conversion { - final convertedAdvertisements = >{}; + Discovery toDiscovery() { + final advertisements = >{}; var start = 0; - while (start < advertisements.length) { - final length = advertisements[start++]; - if (length == 0) { - break; - } + while (start < this.advertisements.length) { + final length = this.advertisements[start++]; + if (length == 0) break; final end = start + length; - final key = advertisements[start++]; - final value = advertisements.sublist(start, end); + final key = this.advertisements[start++]; + final value = this.advertisements.sublist(start, end); start = end; - convertedAdvertisements[key] = value; + advertisements[key] = value; } - return _Discovery(address.conversionOfMAC, rssi, convertedAdvertisements); + return _Discovery(uuid.uuid, rssi, advertisements, connectable); } } extension on proto.GATT { - GATT convert(MAC address) { - final convertedServices = { - for (var service in services) - service.uuid.conversionOfUUID: service.convert(address) + GATT toGATT() { + final services = { + for (var service in this.services) + service.uuid.uuid: service.toGattService(key) }; - return _GATT(address, id, mtu, convertedServices); + return _GATT(key, maximumWriteLength, services); } } extension on proto.GattService { - GattService convert(MAC address) { - final convertedUUID = uuid.conversionOfUUID; - final convertedCharacteristics = { - for (var characteristic in characteristics) - characteristic.uuid.conversionOfUUID: - characteristic.convert(address, convertedUUID) + GattService toGattService(String gattKey) { + final uuid = this.uuid.uuid; + final characteristics = { + for (var characteristic in this.characteristics) + characteristic.uuid.uuid: characteristic.toGattCharacteristic( + gattKey, + key, + ) }; - return _GattService( - address, - id, - convertedUUID, - convertedCharacteristics, - ); + return _GattService(gattKey, key, uuid, characteristics); } } extension on proto.GattCharacteristic { - GattCharacteristic convert(MAC address, UUID serviceUUID) { - final convertedUUID = uuid.conversionOfUUID; - final convertedDescriptors = { - for (var descriptor in descriptors) - descriptor.uuid.conversionOfUUID: - descriptor.convert(address, serviceUUID, convertedUUID) + GattCharacteristic toGattCharacteristic(String gattKey, String serviceKey) { + final uuid = this.uuid.uuid; + final descriptors = { + for (var descriptor in this.descriptors) + descriptor.uuid.uuid: descriptor.toGattDescriptor( + gattKey, + serviceKey, + key, + ) }; return _GattCharacteristic( - address, - serviceUUID, - id, - convertedUUID, - convertedDescriptors, + gattKey, + serviceKey, + key, + uuid, canRead, canWrite, canWriteWithoutResponse, canNotify, + descriptors, ); } } extension on proto.GattDescriptor { - GattDescriptor convert( - MAC address, UUID serviceUUID, UUID characteristicUUID) { - final convertedUUID = uuid.conversionOfUUID; - return _GattDescriptor( - address, - serviceUUID, - characteristicUUID, - id, - convertedUUID, - ); + GattDescriptor toGattDescriptor( + String gattKey, + String serviceKey, + String characteristicKey, + ) { + final uuid = this.uuid.uuid; + return _GattDescriptor(gattKey, serviceKey, characteristicKey, key, uuid); } } diff --git a/lib/src/gatt.dart b/lib/src/gatt.dart index 4619ae2..562c225 100644 --- a/lib/src/gatt.dart +++ b/lib/src/gatt.dart @@ -3,10 +3,10 @@ part of bluetooth_low_energy; /// TO BE DONE. abstract class GATT { /// TO BE DONE. - int get mtu; + int get maximumWriteLength; /// TO BE DONE. - Stream get connectionLost; + Stream get connectionLost; /// TO BE DONE. Map get services; @@ -16,29 +16,27 @@ abstract class GATT { } class _GATT implements GATT { - _GATT(this.address, this.id, this.mtu, this.services); + _GATT(this.key, this.maximumWriteLength, this.services); - final MAC address; - final int id; + final String key; @override - final int mtu; + final int maximumWriteLength; @override final Map services; @override - Stream get connectionLost => stream - .map((event) => proto.Message.fromBuffer(event)) - .where((event) => - event.category == proto.MessageCategory.GATT_CONNECTION_LOST && - event.connectionLost.id == id) - .map((event) => event.connectionLost.errorCode); + Stream get connectionLost => stream + .where((message) => + message.category == proto.MessageCategory.GATT_CONNECTION_LOST && + message.connectionLost.key == key) + .map((message) => message.connectionLost.error.exceptoin); @override Future disconnect() { - final name = proto.MessageCategory.GATT_DISCONNECT.name; - final arguments = - proto.GattDisconnectArguments(address: address.name, id: id) - .writeToBuffer(); - return method.invokeMethod(name, arguments); + final message = proto.Message( + category: proto.MessageCategory.GATT_DISCONNECT, + disconnectArguments: proto.GattDisconnectArguments(key: key), + ).writeToBuffer(); + return method.invokeMethod('', message); } } diff --git a/lib/src/gatt_characteristic.dart b/lib/src/gatt_characteristic.dart index ac644df..87c602a 100644 --- a/lib/src/gatt_characteristic.dart +++ b/lib/src/gatt_characteristic.dart @@ -5,9 +5,6 @@ abstract class GattCharacteristic { /// TO BE DONE. UUID get uuid; - /// TO BE DONE. - Map get descriptors; - /// TO BE DONE. bool get canRead; @@ -20,6 +17,9 @@ abstract class GattCharacteristic { /// TO BE DONE. bool get canNotify; + /// TO BE DONE. + Map get descriptors; + /// TO BE DONE. Stream> get valueChanged; @@ -35,25 +35,23 @@ abstract class GattCharacteristic { class _GattCharacteristic implements GattCharacteristic { _GattCharacteristic( - this.address, - this.serviceUUID, - this.id, + this.gattKey, + this.serviceKey, + this.key, this.uuid, - this.descriptors, this.canRead, this.canWrite, this.canWriteWithoutResponse, this.canNotify, + this.descriptors, ); - final MAC address; - final UUID serviceUUID; - final int id; + final String gattKey; + final String serviceKey; + final String key; @override final UUID uuid; @override - final Map descriptors; - @override final bool canRead; @override final bool canWrite; @@ -61,54 +59,58 @@ class _GattCharacteristic implements GattCharacteristic { final bool canWriteWithoutResponse; @override final bool canNotify; + @override + final Map descriptors; @override Stream> get valueChanged => stream - .map((event) => proto.Message.fromBuffer(event)) .where((message) => message.category == proto.MessageCategory.GATT_CHARACTERISTIC_NOTIFY && - message.characteristicValue.id == id) + message.characteristicValue.gattKey == gattKey && + message.characteristicValue.serviceKey == serviceKey && + message.characteristicValue.key == key) .map((message) => message.characteristicValue.value); @override Future> read() { - final name = proto.MessageCategory.GATT_CHARACTERISTIC_READ.name; - final arguments = proto.GattCharacteristicReadArguments( - address: address.name, - serviceUuid: serviceUUID.name, - uuid: uuid.name, - id: id, + final message = proto.Message( + category: proto.MessageCategory.GATT_CHARACTERISTIC_READ, + characteristicReadArguments: proto.GattCharacteristicReadArguments( + gattKey: gattKey, + serviceKey: serviceKey, + key: key, + ), ).writeToBuffer(); - return method - .invokeListMethod(name, arguments) - .then((value) => value!); + return method.invokeListMethod('', message).then((value) => value!); } @override Future write(List value, {bool withoutResponse = false}) { - final name = proto.MessageCategory.GATT_CHARACTERISTIC_WRITE.name; - final arguments = proto.GattCharacteristicWriteArguments( - address: address.name, - serviceUuid: serviceUUID.name, - uuid: uuid.name, - id: id, - value: value, - withoutResponse: withoutResponse, + final message = proto.Message( + category: proto.MessageCategory.GATT_CHARACTERISTIC_WRITE, + characteristicWriteArguments: proto.GattCharacteristicWriteArguments( + gattKey: gattKey, + serviceKey: serviceKey, + key: key, + value: value, + withoutResponse: withoutResponse, + ), ).writeToBuffer(); - return method.invokeMethod(name, arguments); + return method.invokeMethod('', message); } @override Future notify(bool state) { - final name = proto.MessageCategory.GATT_CHARACTERISTIC_NOTIFY.name; - final arguments = proto.GattCharacteristicNotifyArguments( - address: address.name, - serviceUuid: serviceUUID.name, - uuid: uuid.name, - id: id, - state: state, + final message = proto.Message( + category: proto.MessageCategory.GATT_CHARACTERISTIC_NOTIFY, + characteristicNotifyArguments: proto.GattCharacteristicNotifyArguments( + gattKey: gattKey, + serviceKey: serviceKey, + key: key, + state: state, + ), ).writeToBuffer(); - return method.invokeMethod(name, arguments); + return method.invokeMethod('', message); } } diff --git a/lib/src/gatt_descriptor.dart b/lib/src/gatt_descriptor.dart index 06fdd9d..f36de61 100644 --- a/lib/src/gatt_descriptor.dart +++ b/lib/src/gatt_descriptor.dart @@ -14,46 +14,46 @@ abstract class GattDescriptor { class _GattDescriptor implements GattDescriptor { _GattDescriptor( - this.address, - this.serviceUUID, - this.characteristicUUID, - this.id, + this.gattKey, + this.serviceKey, + this.characteristicKey, + this.key, this.uuid, ); - final MAC address; - final UUID serviceUUID; - final UUID characteristicUUID; - final int id; + final String gattKey; + final String serviceKey; + final String characteristicKey; + final String key; @override final UUID uuid; @override Future> read() { - final name = proto.MessageCategory.GATT_DESCRIPTOR_READ.name; - final arguments = proto.GattDescriptorReadArguments( - address: address.name, - serviceUuid: serviceUUID.name, - characteristicUuid: characteristicUUID.name, - uuid: uuid.name, - id: id, + final message = proto.Message( + category: proto.MessageCategory.GATT_DESCRIPTOR_READ, + descriptorReadArguments: proto.GattDescriptorReadArguments( + gattKey: gattKey, + serviceKey: serviceKey, + characteristicKey: characteristicKey, + key: key, + ), ).writeToBuffer(); - return method - .invokeListMethod(name, arguments) - .then((value) => value!); + return method.invokeListMethod('', message).then((value) => value!); } @override Future write(List value) { - final name = proto.MessageCategory.GATT_DESCRIPTOR_WRITE.name; - final arguments = proto.GattDescriptorWriteArguments( - address: address.name, - serviceUuid: serviceUUID.name, - characteristicUuid: characteristicUUID.name, - uuid: uuid.name, - id: id, - value: value, + final message = proto.Message( + category: proto.MessageCategory.GATT_DESCRIPTOR_WRITE, + descriptorWriteArguments: proto.GattDescriptorWriteArguments( + gattKey: gattKey, + serviceKey: serviceKey, + characteristicKey: characteristicKey, + key: key, + value: value, + ), ).writeToBuffer(); - return method.invokeMethod(name, arguments); + return method.invokeMethod('', message); } } diff --git a/lib/src/gatt_service.dart b/lib/src/gatt_service.dart index f708e0c..bbd70d8 100644 --- a/lib/src/gatt_service.dart +++ b/lib/src/gatt_service.dart @@ -10,10 +10,10 @@ abstract class GattService { } class _GattService implements GattService { - _GattService(this.address, this.id, this.uuid, this.characteristics); + _GattService(this.gattKey, this.key, this.uuid, this.characteristics); - final MAC address; - final int id; + final String gattKey; + final String key; @override final UUID uuid; @override diff --git a/lib/src/mac.dart b/lib/src/mac.dart deleted file mode 100644 index 33ba2c5..0000000 --- a/lib/src/mac.dart +++ /dev/null @@ -1,34 +0,0 @@ -part of bluetooth_low_energy; - -/// TO BE DONE. -abstract class MAC { - /// TO BE DONE. - List get value; - - /// TO BE DONE. - String get name; - - /// TO BE DONE. - factory MAC(String str) => _MAC(str); -} - -class _MAC implements MAC { - @override - final String name; - @override - final List value; - @override - final int hashCode; - - _MAC(String str) : this.name(str.nameOfMAC); - - _MAC.name(String name) : this.nameValue(name, name.valueOfMAC); - - _MAC.nameValue(this.name, this.value) : hashCode = equality.hash(value); - - @override - String toString() => name; - - @override - bool operator ==(other) => other is MAC && other.hashCode == hashCode; -} diff --git a/lib/src/message.pb.dart b/lib/src/message.pb.dart index ef620fe..456e61d 100644 --- a/lib/src/message.pb.dart +++ b/lib/src/message.pb.dart @@ -15,57 +15,83 @@ export 'message.pbenum.dart'; enum Message_Value { state, + startDiscoveryArguments, discovery, - scanning, + connectArguments, + disconnectArguments, connectionLost, + characteristicReadArguments, + characteristicWriteArguments, + characteristicNotifyArguments, characteristicValue, + descriptorReadArguments, + descriptorWriteArguments, notSet } class Message extends $pb.GeneratedMessage { static const $core.Map<$core.int, Message_Value> _Message_ValueByTag = { 2: Message_Value.state, - 3: Message_Value.discovery, - 4: Message_Value.scanning, - 5: Message_Value.connectionLost, - 6: Message_Value.characteristicValue, + 3: Message_Value.startDiscoveryArguments, + 4: Message_Value.discovery, + 5: Message_Value.connectArguments, + 6: Message_Value.disconnectArguments, + 7: Message_Value.connectionLost, + 8: Message_Value.characteristicReadArguments, + 9: Message_Value.characteristicWriteArguments, + 10: Message_Value.characteristicNotifyArguments, + 11: Message_Value.characteristicValue, + 12: Message_Value.descriptorReadArguments, + 13: Message_Value.descriptorWriteArguments, 0: Message_Value.notSet }; - static final $pb.BuilderInfo _i = $pb.BuilderInfo( - const $core.bool.fromEnvironment('protobuf.omit_message_names') + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Message', + package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' - : 'Message', - package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') - ? '' - : 'dev.yanshouwang.bluetooth_low_energy'), + : 'dev.yanshouwang.bluetooth_low_energy'), createEmptyInstance: create) - ..oo(0, [2, 3, 4, 5, 6]) - ..e( - 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'category', $pb.PbFieldType.OE, - defaultOrMaker: MessageCategory.BLUETOOTH_AVAILABLE, + ..oo(0, [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]) + ..e(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'category', $pb.PbFieldType.OE, + defaultOrMaker: MessageCategory.BLUETOOTH_STATE, valueOf: MessageCategory.valueOf, enumValues: MessageCategory.values) - ..aOB( - 2, - const $core.bool.fromEnvironment('protobuf.omit_field_names') - ? '' - : 'state') - ..aOM(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'discovery', + ..e(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'state', $pb.PbFieldType.OE, + defaultOrMaker: BluetoothState.UNSUPPORTED, + valueOf: BluetoothState.valueOf, + enumValues: BluetoothState.values) + ..aOM( + 3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'startDiscoveryArguments', + protoName: 'startDiscoveryArguments', + subBuilder: StartDiscoveryArguments.create) + ..aOM(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'discovery', subBuilder: Discovery.create) - ..aOB(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'scanning') - ..aOM(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'connectionLost', protoName: 'connectionLost', subBuilder: ConnectionLost.create) - ..aOM(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'characteristicValue', protoName: 'characteristicValue', subBuilder: GattCharacteristicValue.create) + ..aOM(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'connectArguments', + protoName: 'connectArguments', subBuilder: ConnectArguments.create) + ..aOM(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'disconnectArguments', protoName: 'disconnectArguments', subBuilder: GattDisconnectArguments.create) + ..aOM(7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'connectionLost', protoName: 'connectionLost', subBuilder: GattConnectionLost.create) + ..aOM(8, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'characteristicReadArguments', protoName: 'characteristicReadArguments', subBuilder: GattCharacteristicReadArguments.create) + ..aOM(9, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'characteristicWriteArguments', protoName: 'characteristicWriteArguments', subBuilder: GattCharacteristicWriteArguments.create) + ..aOM(10, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'characteristicNotifyArguments', protoName: 'characteristicNotifyArguments', subBuilder: GattCharacteristicNotifyArguments.create) + ..aOM(11, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'characteristicValue', protoName: 'characteristicValue', subBuilder: GattCharacteristicValue.create) + ..aOM(12, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'descriptorReadArguments', protoName: 'descriptorReadArguments', subBuilder: GattDescriptorReadArguments.create) + ..aOM(13, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'descriptorWriteArguments', protoName: 'descriptorWriteArguments', subBuilder: GattDescriptorWriteArguments.create) ..hasRequiredFields = false; Message._() : super(); factory Message({ MessageCategory? category, - $core.bool? state, + BluetoothState? state, + StartDiscoveryArguments? startDiscoveryArguments, Discovery? discovery, - $core.bool? scanning, - ConnectionLost? connectionLost, + ConnectArguments? connectArguments, + GattDisconnectArguments? disconnectArguments, + GattConnectionLost? connectionLost, + GattCharacteristicReadArguments? characteristicReadArguments, + GattCharacteristicWriteArguments? characteristicWriteArguments, + GattCharacteristicNotifyArguments? characteristicNotifyArguments, GattCharacteristicValue? characteristicValue, + GattDescriptorReadArguments? descriptorReadArguments, + GattDescriptorWriteArguments? descriptorWriteArguments, }) { final _result = create(); if (category != null) { @@ -74,18 +100,39 @@ class Message extends $pb.GeneratedMessage { if (state != null) { _result.state = state; } + if (startDiscoveryArguments != null) { + _result.startDiscoveryArguments = startDiscoveryArguments; + } if (discovery != null) { _result.discovery = discovery; } - if (scanning != null) { - _result.scanning = scanning; + if (connectArguments != null) { + _result.connectArguments = connectArguments; + } + if (disconnectArguments != null) { + _result.disconnectArguments = disconnectArguments; } if (connectionLost != null) { _result.connectionLost = connectionLost; } + if (characteristicReadArguments != null) { + _result.characteristicReadArguments = characteristicReadArguments; + } + if (characteristicWriteArguments != null) { + _result.characteristicWriteArguments = characteristicWriteArguments; + } + if (characteristicNotifyArguments != null) { + _result.characteristicNotifyArguments = characteristicNotifyArguments; + } if (characteristicValue != null) { _result.characteristicValue = characteristicValue; } + if (descriptorReadArguments != null) { + _result.descriptorReadArguments = descriptorReadArguments; + } + if (descriptorWriteArguments != null) { + _result.descriptorWriteArguments = descriptorWriteArguments; + } return _result; } factory Message.fromBuffer($core.List<$core.int> i, @@ -130,10 +177,10 @@ class Message extends $pb.GeneratedMessage { void clearCategory() => clearField(1); @$pb.TagNumber(2) - $core.bool get state => $_getBF(1); + BluetoothState get state => $_getN(1); @$pb.TagNumber(2) - set state($core.bool v) { - $_setBool(1, v); + set state(BluetoothState v) { + setField(2, v); } @$pb.TagNumber(2) @@ -142,58 +189,163 @@ class Message extends $pb.GeneratedMessage { void clearState() => clearField(2); @$pb.TagNumber(3) - Discovery get discovery => $_getN(2); + StartDiscoveryArguments get startDiscoveryArguments => $_getN(2); @$pb.TagNumber(3) - set discovery(Discovery v) { + set startDiscoveryArguments(StartDiscoveryArguments v) { setField(3, v); } @$pb.TagNumber(3) - $core.bool hasDiscovery() => $_has(2); + $core.bool hasStartDiscoveryArguments() => $_has(2); @$pb.TagNumber(3) - void clearDiscovery() => clearField(3); + void clearStartDiscoveryArguments() => clearField(3); @$pb.TagNumber(3) - Discovery ensureDiscovery() => $_ensure(2); + StartDiscoveryArguments ensureStartDiscoveryArguments() => $_ensure(2); @$pb.TagNumber(4) - $core.bool get scanning => $_getBF(3); + Discovery get discovery => $_getN(3); @$pb.TagNumber(4) - set scanning($core.bool v) { - $_setBool(3, v); + set discovery(Discovery v) { + setField(4, v); } @$pb.TagNumber(4) - $core.bool hasScanning() => $_has(3); + $core.bool hasDiscovery() => $_has(3); @$pb.TagNumber(4) - void clearScanning() => clearField(4); + void clearDiscovery() => clearField(4); + @$pb.TagNumber(4) + Discovery ensureDiscovery() => $_ensure(3); @$pb.TagNumber(5) - ConnectionLost get connectionLost => $_getN(4); + ConnectArguments get connectArguments => $_getN(4); @$pb.TagNumber(5) - set connectionLost(ConnectionLost v) { + set connectArguments(ConnectArguments v) { setField(5, v); } @$pb.TagNumber(5) - $core.bool hasConnectionLost() => $_has(4); + $core.bool hasConnectArguments() => $_has(4); @$pb.TagNumber(5) - void clearConnectionLost() => clearField(5); + void clearConnectArguments() => clearField(5); @$pb.TagNumber(5) - ConnectionLost ensureConnectionLost() => $_ensure(4); + ConnectArguments ensureConnectArguments() => $_ensure(4); @$pb.TagNumber(6) - GattCharacteristicValue get characteristicValue => $_getN(5); + GattDisconnectArguments get disconnectArguments => $_getN(5); @$pb.TagNumber(6) - set characteristicValue(GattCharacteristicValue v) { + set disconnectArguments(GattDisconnectArguments v) { setField(6, v); } @$pb.TagNumber(6) - $core.bool hasCharacteristicValue() => $_has(5); + $core.bool hasDisconnectArguments() => $_has(5); @$pb.TagNumber(6) - void clearCharacteristicValue() => clearField(6); + void clearDisconnectArguments() => clearField(6); @$pb.TagNumber(6) - GattCharacteristicValue ensureCharacteristicValue() => $_ensure(5); + GattDisconnectArguments ensureDisconnectArguments() => $_ensure(5); + + @$pb.TagNumber(7) + GattConnectionLost get connectionLost => $_getN(6); + @$pb.TagNumber(7) + set connectionLost(GattConnectionLost v) { + setField(7, v); + } + + @$pb.TagNumber(7) + $core.bool hasConnectionLost() => $_has(6); + @$pb.TagNumber(7) + void clearConnectionLost() => clearField(7); + @$pb.TagNumber(7) + GattConnectionLost ensureConnectionLost() => $_ensure(6); + + @$pb.TagNumber(8) + GattCharacteristicReadArguments get characteristicReadArguments => $_getN(7); + @$pb.TagNumber(8) + set characteristicReadArguments(GattCharacteristicReadArguments v) { + setField(8, v); + } + + @$pb.TagNumber(8) + $core.bool hasCharacteristicReadArguments() => $_has(7); + @$pb.TagNumber(8) + void clearCharacteristicReadArguments() => clearField(8); + @$pb.TagNumber(8) + GattCharacteristicReadArguments ensureCharacteristicReadArguments() => + $_ensure(7); + + @$pb.TagNumber(9) + GattCharacteristicWriteArguments get characteristicWriteArguments => + $_getN(8); + @$pb.TagNumber(9) + set characteristicWriteArguments(GattCharacteristicWriteArguments v) { + setField(9, v); + } + + @$pb.TagNumber(9) + $core.bool hasCharacteristicWriteArguments() => $_has(8); + @$pb.TagNumber(9) + void clearCharacteristicWriteArguments() => clearField(9); + @$pb.TagNumber(9) + GattCharacteristicWriteArguments ensureCharacteristicWriteArguments() => + $_ensure(8); + + @$pb.TagNumber(10) + GattCharacteristicNotifyArguments get characteristicNotifyArguments => + $_getN(9); + @$pb.TagNumber(10) + set characteristicNotifyArguments(GattCharacteristicNotifyArguments v) { + setField(10, v); + } + + @$pb.TagNumber(10) + $core.bool hasCharacteristicNotifyArguments() => $_has(9); + @$pb.TagNumber(10) + void clearCharacteristicNotifyArguments() => clearField(10); + @$pb.TagNumber(10) + GattCharacteristicNotifyArguments ensureCharacteristicNotifyArguments() => + $_ensure(9); + + @$pb.TagNumber(11) + GattCharacteristicValue get characteristicValue => $_getN(10); + @$pb.TagNumber(11) + set characteristicValue(GattCharacteristicValue v) { + setField(11, v); + } + + @$pb.TagNumber(11) + $core.bool hasCharacteristicValue() => $_has(10); + @$pb.TagNumber(11) + void clearCharacteristicValue() => clearField(11); + @$pb.TagNumber(11) + GattCharacteristicValue ensureCharacteristicValue() => $_ensure(10); + + @$pb.TagNumber(12) + GattDescriptorReadArguments get descriptorReadArguments => $_getN(11); + @$pb.TagNumber(12) + set descriptorReadArguments(GattDescriptorReadArguments v) { + setField(12, v); + } + + @$pb.TagNumber(12) + $core.bool hasDescriptorReadArguments() => $_has(11); + @$pb.TagNumber(12) + void clearDescriptorReadArguments() => clearField(12); + @$pb.TagNumber(12) + GattDescriptorReadArguments ensureDescriptorReadArguments() => $_ensure(11); + + @$pb.TagNumber(13) + GattDescriptorWriteArguments get descriptorWriteArguments => $_getN(12); + @$pb.TagNumber(13) + set descriptorWriteArguments(GattDescriptorWriteArguments v) { + setField(13, v); + } + + @$pb.TagNumber(13) + $core.bool hasDescriptorWriteArguments() => $_has(12); + @$pb.TagNumber(13) + void clearDescriptorWriteArguments() => clearField(13); + @$pb.TagNumber(13) + GattDescriptorWriteArguments ensureDescriptorWriteArguments() => $_ensure(12); } class StartDiscoveryArguments extends $pb.GeneratedMessage { @@ -270,7 +422,7 @@ class Discovery extends $pb.GeneratedMessage { 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'address') + : 'uuid') ..a<$core.int>( 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') @@ -283,17 +435,19 @@ class Discovery extends $pb.GeneratedMessage { ? '' : 'advertisements', $pb.PbFieldType.OY) + ..aOB(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'connectable') ..hasRequiredFields = false; Discovery._() : super(); factory Discovery({ - $core.String? address, + $core.String? uuid, $core.int? rssi, $core.List<$core.int>? advertisements, + $core.bool? connectable, }) { final _result = create(); - if (address != null) { - _result.address = address; + if (uuid != null) { + _result.uuid = uuid; } if (rssi != null) { _result.rssi = rssi; @@ -301,6 +455,9 @@ class Discovery extends $pb.GeneratedMessage { if (advertisements != null) { _result.advertisements = advertisements; } + if (connectable != null) { + _result.connectable = connectable; + } return _result; } factory Discovery.fromBuffer($core.List<$core.int> i, @@ -330,16 +487,16 @@ class Discovery extends $pb.GeneratedMessage { static Discovery? _defaultInstance; @$pb.TagNumber(1) - $core.String get address => $_getSZ(0); + $core.String get uuid => $_getSZ(0); @$pb.TagNumber(1) - set address($core.String v) { + set uuid($core.String v) { $_setString(0, v); } @$pb.TagNumber(1) - $core.bool hasAddress() => $_has(0); + $core.bool hasUuid() => $_has(0); @$pb.TagNumber(1) - void clearAddress() => clearField(1); + void clearUuid() => clearField(1); @$pb.TagNumber(2) $core.int get rssi => $_getIZ(1); @@ -364,6 +521,18 @@ class Discovery extends $pb.GeneratedMessage { $core.bool hasAdvertisements() => $_has(2); @$pb.TagNumber(3) void clearAdvertisements() => clearField(3); + + @$pb.TagNumber(4) + $core.bool get connectable => $_getBF(3); + @$pb.TagNumber(4) + set connectable($core.bool v) { + $_setBool(3, v); + } + + @$pb.TagNumber(4) + $core.bool hasConnectable() => $_has(3); + @$pb.TagNumber(4) + void clearConnectable() => clearField(4); } class ConnectArguments extends $pb.GeneratedMessage { @@ -380,16 +549,16 @@ class ConnectArguments extends $pb.GeneratedMessage { 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'address') + : 'uuid') ..hasRequiredFields = false; ConnectArguments._() : super(); factory ConnectArguments({ - $core.String? address, + $core.String? uuid, }) { final _result = create(); - if (address != null) { - _result.address = address; + if (uuid != null) { + _result.uuid = uuid; } return _result; } @@ -421,16 +590,16 @@ class ConnectArguments extends $pb.GeneratedMessage { static ConnectArguments? _defaultInstance; @$pb.TagNumber(1) - $core.String get address => $_getSZ(0); + $core.String get uuid => $_getSZ(0); @$pb.TagNumber(1) - set address($core.String v) { + set uuid($core.String v) { $_setString(0, v); } @$pb.TagNumber(1) - $core.bool hasAddress() => $_has(0); + $core.bool hasUuid() => $_has(0); @$pb.TagNumber(1) - void clearAddress() => clearField(1); + void clearUuid() => clearField(1); } class GATT extends $pb.GeneratedMessage { @@ -441,39 +610,35 @@ class GATT extends $pb.GeneratedMessage { ? '' : 'dev.yanshouwang.bluetooth_low_energy'), createEmptyInstance: create) - ..a<$core.int>( + ..aOS( 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'id', - $pb.PbFieldType.O3) + : 'key') ..a<$core.int>( 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'mtu', - $pb.PbFieldType.O3) + : 'maximumWriteLength', + $pb.PbFieldType.O3, + protoName: 'maximumWriteLength') ..pc( - 3, - const $core.bool.fromEnvironment('protobuf.omit_field_names') - ? '' - : 'services', - $pb.PbFieldType.PM, + 3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'services', $pb.PbFieldType.PM, subBuilder: GattService.create) ..hasRequiredFields = false; GATT._() : super(); factory GATT({ - $core.int? id, - $core.int? mtu, + $core.String? key, + $core.int? maximumWriteLength, $core.Iterable? services, }) { final _result = create(); - if (id != null) { - _result.id = id; + if (key != null) { + _result.key = key; } - if (mtu != null) { - _result.mtu = mtu; + if (maximumWriteLength != null) { + _result.maximumWriteLength = maximumWriteLength; } if (services != null) { _result.services.addAll(services); @@ -507,38 +672,38 @@ class GATT extends $pb.GeneratedMessage { static GATT? _defaultInstance; @$pb.TagNumber(1) - $core.int get id => $_getIZ(0); + $core.String get key => $_getSZ(0); @$pb.TagNumber(1) - set id($core.int v) { - $_setSignedInt32(0, v); + set key($core.String v) { + $_setString(0, v); } @$pb.TagNumber(1) - $core.bool hasId() => $_has(0); + $core.bool hasKey() => $_has(0); @$pb.TagNumber(1) - void clearId() => clearField(1); + void clearKey() => clearField(1); @$pb.TagNumber(2) - $core.int get mtu => $_getIZ(1); + $core.int get maximumWriteLength => $_getIZ(1); @$pb.TagNumber(2) - set mtu($core.int v) { + set maximumWriteLength($core.int v) { $_setSignedInt32(1, v); } @$pb.TagNumber(2) - $core.bool hasMtu() => $_has(1); + $core.bool hasMaximumWriteLength() => $_has(1); @$pb.TagNumber(2) - void clearMtu() => clearField(2); + void clearMaximumWriteLength() => clearField(2); @$pb.TagNumber(3) $core.List get services => $_getList(2); } -class GattDisconnectArguments extends $pb.GeneratedMessage { +class GattService extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' - : 'GattDisconnectArguments', + : 'GattService', package: const $pb.PackageName( const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' @@ -548,120 +713,30 @@ class GattDisconnectArguments extends $pb.GeneratedMessage { 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'address') - ..a<$core.int>( + : 'key') + ..aOS( 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'id', - $pb.PbFieldType.O3) + : 'uuid') + ..pc( + 3, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'characteristics', + $pb.PbFieldType.PM, + subBuilder: GattCharacteristic.create) ..hasRequiredFields = false; - GattDisconnectArguments._() : super(); - factory GattDisconnectArguments({ - $core.String? address, - $core.int? id, - }) { - final _result = create(); - if (address != null) { - _result.address = address; - } - if (id != null) { - _result.id = id; - } - return _result; - } - factory GattDisconnectArguments.fromBuffer($core.List<$core.int> i, - [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => - create()..mergeFromBuffer(i, r); - factory GattDisconnectArguments.fromJson($core.String i, - [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => - create()..mergeFromJson(i, r); - @$core.Deprecated('Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' - 'Will be removed in next major version') - GattDisconnectArguments clone() => - GattDisconnectArguments()..mergeFromMessage(this); - @$core.Deprecated('Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' - 'Will be removed in next major version') - GattDisconnectArguments copyWith( - void Function(GattDisconnectArguments) updates) => - super.copyWith((message) => updates(message as GattDisconnectArguments)) - as GattDisconnectArguments; // ignore: deprecated_member_use - $pb.BuilderInfo get info_ => _i; - @$core.pragma('dart2js:noInline') - static GattDisconnectArguments create() => GattDisconnectArguments._(); - GattDisconnectArguments createEmptyInstance() => create(); - static $pb.PbList createRepeated() => - $pb.PbList(); - @$core.pragma('dart2js:noInline') - static GattDisconnectArguments getDefault() => _defaultInstance ??= - $pb.GeneratedMessage.$_defaultFor(create); - static GattDisconnectArguments? _defaultInstance; - - @$pb.TagNumber(1) - $core.String get address => $_getSZ(0); - @$pb.TagNumber(1) - set address($core.String v) { - $_setString(0, v); - } - - @$pb.TagNumber(1) - $core.bool hasAddress() => $_has(0); - @$pb.TagNumber(1) - void clearAddress() => clearField(1); - - @$pb.TagNumber(2) - $core.int get id => $_getIZ(1); - @$pb.TagNumber(2) - set id($core.int v) { - $_setSignedInt32(1, v); - } - - @$pb.TagNumber(2) - $core.bool hasId() => $_has(1); - @$pb.TagNumber(2) - void clearId() => clearField(2); -} - -class GattService extends $pb.GeneratedMessage { - static final $pb.BuilderInfo _i = - $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GattService', - package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') - ? '' - : 'dev.yanshouwang.bluetooth_low_energy'), - createEmptyInstance: create) - ..a<$core.int>( - 1, - const $core.bool.fromEnvironment('protobuf.omit_field_names') - ? '' - : 'id', - $pb.PbFieldType.O3) - ..aOS( - 2, - const $core.bool.fromEnvironment('protobuf.omit_field_names') - ? '' - : 'uuid') - ..pc( - 3, - const $core.bool.fromEnvironment('protobuf.omit_field_names') - ? '' - : 'characteristics', - $pb.PbFieldType.PM, - subBuilder: GattCharacteristic.create) - ..hasRequiredFields = false; - GattService._() : super(); factory GattService({ - $core.int? id, + $core.String? key, $core.String? uuid, $core.Iterable? characteristics, }) { final _result = create(); - if (id != null) { - _result.id = id; + if (key != null) { + _result.key = key; } if (uuid != null) { _result.uuid = uuid; @@ -698,16 +773,16 @@ class GattService extends $pb.GeneratedMessage { static GattService? _defaultInstance; @$pb.TagNumber(1) - $core.int get id => $_getIZ(0); + $core.String get key => $_getSZ(0); @$pb.TagNumber(1) - set id($core.int v) { - $_setSignedInt32(0, v); + set key($core.String v) { + $_setString(0, v); } @$pb.TagNumber(1) - $core.bool hasId() => $_has(0); + $core.bool hasKey() => $_has(0); @$pb.TagNumber(1) - void clearId() => clearField(1); + void clearKey() => clearField(1); @$pb.TagNumber(2) $core.String get uuid => $_getSZ(1); @@ -734,48 +809,43 @@ class GattCharacteristic extends $pb.GeneratedMessage { ? '' : 'dev.yanshouwang.bluetooth_low_energy'), createEmptyInstance: create) - ..a<$core.int>( + ..aOS( 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'id', - $pb.PbFieldType.O3) + : 'key') ..aOS( 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'uuid') - ..pc( - 3, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'descriptors', - $pb.PbFieldType.PM, - subBuilder: GattDescriptor.create) - ..aOB(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'canRead', protoName: 'canRead') - ..aOB(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'canWrite', protoName: 'canWrite') - ..aOB(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'canWriteWithoutResponse', protoName: 'canWriteWithoutResponse') - ..aOB(7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'canNotify', protoName: 'canNotify') + ..aOB(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'canRead', + protoName: 'canRead') + ..aOB(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'canWrite', + protoName: 'canWrite') + ..aOB(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'canWriteWithoutResponse', + protoName: 'canWriteWithoutResponse') + ..aOB(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'canNotify', protoName: 'canNotify') + ..pc(7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'descriptors', $pb.PbFieldType.PM, subBuilder: GattDescriptor.create) ..hasRequiredFields = false; GattCharacteristic._() : super(); factory GattCharacteristic({ - $core.int? id, + $core.String? key, $core.String? uuid, - $core.Iterable? descriptors, $core.bool? canRead, $core.bool? canWrite, $core.bool? canWriteWithoutResponse, $core.bool? canNotify, + $core.Iterable? descriptors, }) { final _result = create(); - if (id != null) { - _result.id = id; + if (key != null) { + _result.key = key; } if (uuid != null) { _result.uuid = uuid; } - if (descriptors != null) { - _result.descriptors.addAll(descriptors); - } if (canRead != null) { _result.canRead = canRead; } @@ -788,6 +858,9 @@ class GattCharacteristic extends $pb.GeneratedMessage { if (canNotify != null) { _result.canNotify = canNotify; } + if (descriptors != null) { + _result.descriptors.addAll(descriptors); + } return _result; } factory GattCharacteristic.fromBuffer($core.List<$core.int> i, @@ -818,16 +891,16 @@ class GattCharacteristic extends $pb.GeneratedMessage { static GattCharacteristic? _defaultInstance; @$pb.TagNumber(1) - $core.int get id => $_getIZ(0); + $core.String get key => $_getSZ(0); @$pb.TagNumber(1) - set id($core.int v) { - $_setSignedInt32(0, v); + set key($core.String v) { + $_setString(0, v); } @$pb.TagNumber(1) - $core.bool hasId() => $_has(0); + $core.bool hasKey() => $_has(0); @$pb.TagNumber(1) - void clearId() => clearField(1); + void clearKey() => clearField(1); @$pb.TagNumber(2) $core.String get uuid => $_getSZ(1); @@ -842,55 +915,55 @@ class GattCharacteristic extends $pb.GeneratedMessage { void clearUuid() => clearField(2); @$pb.TagNumber(3) - $core.List get descriptors => $_getList(2); + $core.bool get canRead => $_getBF(2); + @$pb.TagNumber(3) + set canRead($core.bool v) { + $_setBool(2, v); + } + + @$pb.TagNumber(3) + $core.bool hasCanRead() => $_has(2); + @$pb.TagNumber(3) + void clearCanRead() => clearField(3); @$pb.TagNumber(4) - $core.bool get canRead => $_getBF(3); + $core.bool get canWrite => $_getBF(3); @$pb.TagNumber(4) - set canRead($core.bool v) { + set canWrite($core.bool v) { $_setBool(3, v); } @$pb.TagNumber(4) - $core.bool hasCanRead() => $_has(3); + $core.bool hasCanWrite() => $_has(3); @$pb.TagNumber(4) - void clearCanRead() => clearField(4); + void clearCanWrite() => clearField(4); @$pb.TagNumber(5) - $core.bool get canWrite => $_getBF(4); + $core.bool get canWriteWithoutResponse => $_getBF(4); @$pb.TagNumber(5) - set canWrite($core.bool v) { + set canWriteWithoutResponse($core.bool v) { $_setBool(4, v); } @$pb.TagNumber(5) - $core.bool hasCanWrite() => $_has(4); + $core.bool hasCanWriteWithoutResponse() => $_has(4); @$pb.TagNumber(5) - void clearCanWrite() => clearField(5); + void clearCanWriteWithoutResponse() => clearField(5); @$pb.TagNumber(6) - $core.bool get canWriteWithoutResponse => $_getBF(5); + $core.bool get canNotify => $_getBF(5); @$pb.TagNumber(6) - set canWriteWithoutResponse($core.bool v) { + set canNotify($core.bool v) { $_setBool(5, v); } @$pb.TagNumber(6) - $core.bool hasCanWriteWithoutResponse() => $_has(5); + $core.bool hasCanNotify() => $_has(5); @$pb.TagNumber(6) - void clearCanWriteWithoutResponse() => clearField(6); + void clearCanNotify() => clearField(6); @$pb.TagNumber(7) - $core.bool get canNotify => $_getBF(6); - @$pb.TagNumber(7) - set canNotify($core.bool v) { - $_setBool(6, v); - } - - @$pb.TagNumber(7) - $core.bool hasCanNotify() => $_has(6); - @$pb.TagNumber(7) - void clearCanNotify() => clearField(7); + $core.List get descriptors => $_getList(6); } class GattDescriptor extends $pb.GeneratedMessage { @@ -903,12 +976,11 @@ class GattDescriptor extends $pb.GeneratedMessage { ? '' : 'dev.yanshouwang.bluetooth_low_energy'), createEmptyInstance: create) - ..a<$core.int>( + ..aOS( 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'id', - $pb.PbFieldType.O3) + : 'key') ..aOS( 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') @@ -918,12 +990,12 @@ class GattDescriptor extends $pb.GeneratedMessage { GattDescriptor._() : super(); factory GattDescriptor({ - $core.int? id, + $core.String? key, $core.String? uuid, }) { final _result = create(); - if (id != null) { - _result.id = id; + if (key != null) { + _result.key = key; } if (uuid != null) { _result.uuid = uuid; @@ -958,16 +1030,16 @@ class GattDescriptor extends $pb.GeneratedMessage { static GattDescriptor? _defaultInstance; @$pb.TagNumber(1) - $core.int get id => $_getIZ(0); + $core.String get key => $_getSZ(0); @$pb.TagNumber(1) - set id($core.int v) { - $_setSignedInt32(0, v); + set key($core.String v) { + $_setString(0, v); } @$pb.TagNumber(1) - $core.bool hasId() => $_has(0); + $core.bool hasKey() => $_has(0); @$pb.TagNumber(1) - void clearId() => clearField(1); + void clearKey() => clearField(1); @$pb.TagNumber(2) $core.String get uuid => $_getSZ(1); @@ -982,94 +1054,161 @@ class GattDescriptor extends $pb.GeneratedMessage { void clearUuid() => clearField(2); } -class ConnectionLost extends $pb.GeneratedMessage { +class GattDisconnectArguments extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo( const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' - : 'ConnectionLost', + : 'GattDisconnectArguments', package: const $pb.PackageName( const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'dev.yanshouwang.bluetooth_low_energy'), createEmptyInstance: create) - ..a<$core.int>( + ..aOS( 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'id', - $pb.PbFieldType.O3) - ..a<$core.int>( - 2, - const $core.bool.fromEnvironment('protobuf.omit_field_names') - ? '' - : 'errorCode', - $pb.PbFieldType.O3) + : 'key') ..hasRequiredFields = false; - ConnectionLost._() : super(); - factory ConnectionLost({ - $core.int? id, - $core.int? errorCode, + GattDisconnectArguments._() : super(); + factory GattDisconnectArguments({ + $core.String? key, }) { final _result = create(); - if (id != null) { - _result.id = id; - } - if (errorCode != null) { - _result.errorCode = errorCode; + if (key != null) { + _result.key = key; } return _result; } - factory ConnectionLost.fromBuffer($core.List<$core.int> i, + factory GattDisconnectArguments.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); - factory ConnectionLost.fromJson($core.String i, + factory GattDisconnectArguments.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); @$core.Deprecated('Using this can add significant overhead to your binary. ' 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' 'Will be removed in next major version') - ConnectionLost clone() => ConnectionLost()..mergeFromMessage(this); + GattDisconnectArguments clone() => + GattDisconnectArguments()..mergeFromMessage(this); @$core.Deprecated('Using this can add significant overhead to your binary. ' 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' 'Will be removed in next major version') - ConnectionLost copyWith(void Function(ConnectionLost) updates) => - super.copyWith((message) => updates(message as ConnectionLost)) - as ConnectionLost; // ignore: deprecated_member_use + GattDisconnectArguments copyWith( + void Function(GattDisconnectArguments) updates) => + super.copyWith((message) => updates(message as GattDisconnectArguments)) + as GattDisconnectArguments; // ignore: deprecated_member_use $pb.BuilderInfo get info_ => _i; @$core.pragma('dart2js:noInline') - static ConnectionLost create() => ConnectionLost._(); - ConnectionLost createEmptyInstance() => create(); - static $pb.PbList createRepeated() => - $pb.PbList(); + static GattDisconnectArguments create() => GattDisconnectArguments._(); + GattDisconnectArguments createEmptyInstance() => create(); + static $pb.PbList createRepeated() => + $pb.PbList(); @$core.pragma('dart2js:noInline') - static ConnectionLost getDefault() => _defaultInstance ??= - $pb.GeneratedMessage.$_defaultFor(create); - static ConnectionLost? _defaultInstance; + static GattDisconnectArguments getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); + static GattDisconnectArguments? _defaultInstance; @$pb.TagNumber(1) - $core.int get id => $_getIZ(0); + $core.String get key => $_getSZ(0); @$pb.TagNumber(1) - set id($core.int v) { - $_setSignedInt32(0, v); + set key($core.String v) { + $_setString(0, v); } @$pb.TagNumber(1) - $core.bool hasId() => $_has(0); + $core.bool hasKey() => $_has(0); @$pb.TagNumber(1) - void clearId() => clearField(1); + void clearKey() => clearField(1); +} + +class GattConnectionLost extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo( + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'GattConnectionLost', + package: const $pb.PackageName( + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'dev.yanshouwang.bluetooth_low_energy'), + createEmptyInstance: create) + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'key') + ..aOS( + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'error') + ..hasRequiredFields = false; + + GattConnectionLost._() : super(); + factory GattConnectionLost({ + $core.String? key, + $core.String? error, + }) { + final _result = create(); + if (key != null) { + _result.key = key; + } + if (error != null) { + _result.error = error; + } + return _result; + } + factory GattConnectionLost.fromBuffer($core.List<$core.int> i, + [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => + create()..mergeFromBuffer(i, r); + factory GattConnectionLost.fromJson($core.String i, + [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => + create()..mergeFromJson(i, r); + @$core.Deprecated('Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + GattConnectionLost clone() => GattConnectionLost()..mergeFromMessage(this); + @$core.Deprecated('Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + GattConnectionLost copyWith(void Function(GattConnectionLost) updates) => + super.copyWith((message) => updates(message as GattConnectionLost)) + as GattConnectionLost; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static GattConnectionLost create() => GattConnectionLost._(); + GattConnectionLost createEmptyInstance() => create(); + static $pb.PbList createRepeated() => + $pb.PbList(); + @$core.pragma('dart2js:noInline') + static GattConnectionLost getDefault() => _defaultInstance ??= + $pb.GeneratedMessage.$_defaultFor(create); + static GattConnectionLost? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get key => $_getSZ(0); + @$pb.TagNumber(1) + set key($core.String v) { + $_setString(0, v); + } + + @$pb.TagNumber(1) + $core.bool hasKey() => $_has(0); + @$pb.TagNumber(1) + void clearKey() => clearField(1); @$pb.TagNumber(2) - $core.int get errorCode => $_getIZ(1); + $core.String get error => $_getSZ(1); @$pb.TagNumber(2) - set errorCode($core.int v) { - $_setSignedInt32(1, v); + set error($core.String v) { + $_setString(1, v); } @$pb.TagNumber(2) - $core.bool hasErrorCode() => $_has(1); + $core.bool hasError() => $_has(1); @$pb.TagNumber(2) - void clearErrorCode() => clearField(2); + void clearError() => clearField(2); } class GattCharacteristicReadArguments extends $pb.GeneratedMessage { @@ -1077,50 +1216,43 @@ class GattCharacteristicReadArguments extends $pb.GeneratedMessage { const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GattCharacteristicReadArguments', - package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') - ? '' - : 'dev.yanshouwang.bluetooth_low_energy'), + package: const $pb.PackageName( + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'dev.yanshouwang.bluetooth_low_energy'), createEmptyInstance: create) ..aOS( 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'address') + : 'gattKey') ..aOS( 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'serviceUuid') + : 'serviceKey') ..aOS( 3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'uuid') - ..a<$core.int>( - 4, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'id', - $pb.PbFieldType.O3) + : 'key') ..hasRequiredFields = false; GattCharacteristicReadArguments._() : super(); factory GattCharacteristicReadArguments({ - $core.String? address, - $core.String? serviceUuid, - $core.String? uuid, - $core.int? id, + $core.String? gattKey, + $core.String? serviceKey, + $core.String? key, }) { final _result = create(); - if (address != null) { - _result.address = address; + if (gattKey != null) { + _result.gattKey = gattKey; } - if (serviceUuid != null) { - _result.serviceUuid = serviceUuid; + if (serviceKey != null) { + _result.serviceKey = serviceKey; } - if (uuid != null) { - _result.uuid = uuid; - } - if (id != null) { - _result.id = id; + if (key != null) { + _result.key = key; } return _result; } @@ -1157,52 +1289,40 @@ class GattCharacteristicReadArguments extends $pb.GeneratedMessage { static GattCharacteristicReadArguments? _defaultInstance; @$pb.TagNumber(1) - $core.String get address => $_getSZ(0); + $core.String get gattKey => $_getSZ(0); @$pb.TagNumber(1) - set address($core.String v) { + set gattKey($core.String v) { $_setString(0, v); } @$pb.TagNumber(1) - $core.bool hasAddress() => $_has(0); + $core.bool hasGattKey() => $_has(0); @$pb.TagNumber(1) - void clearAddress() => clearField(1); + void clearGattKey() => clearField(1); @$pb.TagNumber(2) - $core.String get serviceUuid => $_getSZ(1); + $core.String get serviceKey => $_getSZ(1); @$pb.TagNumber(2) - set serviceUuid($core.String v) { + set serviceKey($core.String v) { $_setString(1, v); } @$pb.TagNumber(2) - $core.bool hasServiceUuid() => $_has(1); + $core.bool hasServiceKey() => $_has(1); @$pb.TagNumber(2) - void clearServiceUuid() => clearField(2); + void clearServiceKey() => clearField(2); @$pb.TagNumber(3) - $core.String get uuid => $_getSZ(2); + $core.String get key => $_getSZ(2); @$pb.TagNumber(3) - set uuid($core.String v) { + set key($core.String v) { $_setString(2, v); } @$pb.TagNumber(3) - $core.bool hasUuid() => $_has(2); + $core.bool hasKey() => $_has(2); @$pb.TagNumber(3) - void clearUuid() => clearField(3); - - @$pb.TagNumber(4) - $core.int get id => $_getIZ(3); - @$pb.TagNumber(4) - set id($core.int v) { - $_setSignedInt32(3, v); - } - - @$pb.TagNumber(4) - $core.bool hasId() => $_has(3); - @$pb.TagNumber(4) - void clearId() => clearField(4); + void clearKey() => clearField(3); } class GattCharacteristicWriteArguments extends $pb.GeneratedMessage { @@ -1219,46 +1339,41 @@ class GattCharacteristicWriteArguments extends $pb.GeneratedMessage { 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'address') + : 'gattKey') ..aOS( 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'serviceUuid') + : 'serviceKey') ..aOS( 3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'uuid') - ..a<$core.int>( + : 'key') + ..a<$core.List<$core.int>>( 4, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'id', - $pb.PbFieldType.O3) - ..a<$core.List<$core.int>>(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value', $pb.PbFieldType.OY) - ..aOB(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'withoutResponse', protoName: 'withoutResponse') + const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value', + $pb.PbFieldType.OY) + ..aOB(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'withoutResponse', protoName: 'withoutResponse') ..hasRequiredFields = false; GattCharacteristicWriteArguments._() : super(); factory GattCharacteristicWriteArguments({ - $core.String? address, - $core.String? serviceUuid, - $core.String? uuid, - $core.int? id, + $core.String? gattKey, + $core.String? serviceKey, + $core.String? key, $core.List<$core.int>? value, $core.bool? withoutResponse, }) { final _result = create(); - if (address != null) { - _result.address = address; + if (gattKey != null) { + _result.gattKey = gattKey; } - if (serviceUuid != null) { - _result.serviceUuid = serviceUuid; + if (serviceKey != null) { + _result.serviceKey = serviceKey; } - if (uuid != null) { - _result.uuid = uuid; - } - if (id != null) { - _result.id = id; + if (key != null) { + _result.key = key; } if (value != null) { _result.value = value; @@ -1301,76 +1416,64 @@ class GattCharacteristicWriteArguments extends $pb.GeneratedMessage { static GattCharacteristicWriteArguments? _defaultInstance; @$pb.TagNumber(1) - $core.String get address => $_getSZ(0); + $core.String get gattKey => $_getSZ(0); @$pb.TagNumber(1) - set address($core.String v) { + set gattKey($core.String v) { $_setString(0, v); } @$pb.TagNumber(1) - $core.bool hasAddress() => $_has(0); + $core.bool hasGattKey() => $_has(0); @$pb.TagNumber(1) - void clearAddress() => clearField(1); + void clearGattKey() => clearField(1); @$pb.TagNumber(2) - $core.String get serviceUuid => $_getSZ(1); + $core.String get serviceKey => $_getSZ(1); @$pb.TagNumber(2) - set serviceUuid($core.String v) { + set serviceKey($core.String v) { $_setString(1, v); } @$pb.TagNumber(2) - $core.bool hasServiceUuid() => $_has(1); + $core.bool hasServiceKey() => $_has(1); @$pb.TagNumber(2) - void clearServiceUuid() => clearField(2); + void clearServiceKey() => clearField(2); @$pb.TagNumber(3) - $core.String get uuid => $_getSZ(2); + $core.String get key => $_getSZ(2); @$pb.TagNumber(3) - set uuid($core.String v) { + set key($core.String v) { $_setString(2, v); } @$pb.TagNumber(3) - $core.bool hasUuid() => $_has(2); + $core.bool hasKey() => $_has(2); @$pb.TagNumber(3) - void clearUuid() => clearField(3); + void clearKey() => clearField(3); @$pb.TagNumber(4) - $core.int get id => $_getIZ(3); + $core.List<$core.int> get value => $_getN(3); @$pb.TagNumber(4) - set id($core.int v) { - $_setSignedInt32(3, v); - } - - @$pb.TagNumber(4) - $core.bool hasId() => $_has(3); - @$pb.TagNumber(4) - void clearId() => clearField(4); - - @$pb.TagNumber(5) - $core.List<$core.int> get value => $_getN(4); - @$pb.TagNumber(5) set value($core.List<$core.int> v) { - $_setBytes(4, v); + $_setBytes(3, v); } - @$pb.TagNumber(5) - $core.bool hasValue() => $_has(4); - @$pb.TagNumber(5) - void clearValue() => clearField(5); + @$pb.TagNumber(4) + $core.bool hasValue() => $_has(3); + @$pb.TagNumber(4) + void clearValue() => clearField(4); - @$pb.TagNumber(6) - $core.bool get withoutResponse => $_getBF(5); - @$pb.TagNumber(6) + @$pb.TagNumber(5) + $core.bool get withoutResponse => $_getBF(4); + @$pb.TagNumber(5) set withoutResponse($core.bool v) { - $_setBool(5, v); + $_setBool(4, v); } - @$pb.TagNumber(6) - $core.bool hasWithoutResponse() => $_has(5); - @$pb.TagNumber(6) - void clearWithoutResponse() => clearField(6); + @$pb.TagNumber(5) + $core.bool hasWithoutResponse() => $_has(4); + @$pb.TagNumber(5) + void clearWithoutResponse() => clearField(5); } class GattCharacteristicNotifyArguments extends $pb.GeneratedMessage { @@ -1378,52 +1481,46 @@ class GattCharacteristicNotifyArguments extends $pb.GeneratedMessage { const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GattCharacteristicNotifyArguments', - package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') - ? '' - : 'dev.yanshouwang.bluetooth_low_energy'), + package: const $pb.PackageName( + const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'dev.yanshouwang.bluetooth_low_energy'), createEmptyInstance: create) ..aOS( 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'address') + : 'gattKey') ..aOS( 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'serviceUuid') + : 'serviceKey') ..aOS( 3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'uuid') - ..a<$core.int>( - 4, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'id', - $pb.PbFieldType.O3) - ..aOB(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'state') + : 'key') + ..aOB( + 4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'state') ..hasRequiredFields = false; GattCharacteristicNotifyArguments._() : super(); factory GattCharacteristicNotifyArguments({ - $core.String? address, - $core.String? serviceUuid, - $core.String? uuid, - $core.int? id, + $core.String? gattKey, + $core.String? serviceKey, + $core.String? key, $core.bool? state, }) { final _result = create(); - if (address != null) { - _result.address = address; + if (gattKey != null) { + _result.gattKey = gattKey; } - if (serviceUuid != null) { - _result.serviceUuid = serviceUuid; + if (serviceKey != null) { + _result.serviceKey = serviceKey; } - if (uuid != null) { - _result.uuid = uuid; - } - if (id != null) { - _result.id = id; + if (key != null) { + _result.key = key; } if (state != null) { _result.state = state; @@ -1463,64 +1560,52 @@ class GattCharacteristicNotifyArguments extends $pb.GeneratedMessage { static GattCharacteristicNotifyArguments? _defaultInstance; @$pb.TagNumber(1) - $core.String get address => $_getSZ(0); + $core.String get gattKey => $_getSZ(0); @$pb.TagNumber(1) - set address($core.String v) { + set gattKey($core.String v) { $_setString(0, v); } @$pb.TagNumber(1) - $core.bool hasAddress() => $_has(0); + $core.bool hasGattKey() => $_has(0); @$pb.TagNumber(1) - void clearAddress() => clearField(1); + void clearGattKey() => clearField(1); @$pb.TagNumber(2) - $core.String get serviceUuid => $_getSZ(1); + $core.String get serviceKey => $_getSZ(1); @$pb.TagNumber(2) - set serviceUuid($core.String v) { + set serviceKey($core.String v) { $_setString(1, v); } @$pb.TagNumber(2) - $core.bool hasServiceUuid() => $_has(1); + $core.bool hasServiceKey() => $_has(1); @$pb.TagNumber(2) - void clearServiceUuid() => clearField(2); + void clearServiceKey() => clearField(2); @$pb.TagNumber(3) - $core.String get uuid => $_getSZ(2); + $core.String get key => $_getSZ(2); @$pb.TagNumber(3) - set uuid($core.String v) { + set key($core.String v) { $_setString(2, v); } @$pb.TagNumber(3) - $core.bool hasUuid() => $_has(2); + $core.bool hasKey() => $_has(2); @$pb.TagNumber(3) - void clearUuid() => clearField(3); + void clearKey() => clearField(3); @$pb.TagNumber(4) - $core.int get id => $_getIZ(3); + $core.bool get state => $_getBF(3); @$pb.TagNumber(4) - set id($core.int v) { - $_setSignedInt32(3, v); - } - - @$pb.TagNumber(4) - $core.bool hasId() => $_has(3); - @$pb.TagNumber(4) - void clearId() => clearField(4); - - @$pb.TagNumber(5) - $core.bool get state => $_getBF(4); - @$pb.TagNumber(5) set state($core.bool v) { - $_setBool(4, v); + $_setBool(3, v); } - @$pb.TagNumber(5) - $core.bool hasState() => $_has(4); - @$pb.TagNumber(5) - void clearState() => clearField(5); + @$pb.TagNumber(4) + $core.bool hasState() => $_has(3); + @$pb.TagNumber(4) + void clearState() => clearField(4); } class GattCharacteristicValue extends $pb.GeneratedMessage { @@ -1528,33 +1613,47 @@ class GattCharacteristicValue extends $pb.GeneratedMessage { const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GattCharacteristicValue', - package: const $pb.PackageName( - const $core.bool.fromEnvironment('protobuf.omit_message_names') - ? '' - : 'dev.yanshouwang.bluetooth_low_energy'), + package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') + ? '' + : 'dev.yanshouwang.bluetooth_low_energy'), createEmptyInstance: create) - ..a<$core.int>( + ..aOS( + 1, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'gattKey') + ..aOS( + 2, + const $core.bool.fromEnvironment('protobuf.omit_field_names') + ? '' + : 'serviceKey') + ..aOS( 3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'id', - $pb.PbFieldType.O3) + : 'key') ..a<$core.List<$core.int>>( 4, - const $core.bool.fromEnvironment('protobuf.omit_field_names') - ? '' - : 'value', + const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value', $pb.PbFieldType.OY) ..hasRequiredFields = false; GattCharacteristicValue._() : super(); factory GattCharacteristicValue({ - $core.int? id, + $core.String? gattKey, + $core.String? serviceKey, + $core.String? key, $core.List<$core.int>? value, }) { final _result = create(); - if (id != null) { - _result.id = id; + if (gattKey != null) { + _result.gattKey = gattKey; + } + if (serviceKey != null) { + _result.serviceKey = serviceKey; + } + if (key != null) { + _result.key = key; } if (value != null) { _result.value = value; @@ -1590,27 +1689,51 @@ class GattCharacteristicValue extends $pb.GeneratedMessage { $pb.GeneratedMessage.$_defaultFor(create); static GattCharacteristicValue? _defaultInstance; + @$pb.TagNumber(1) + $core.String get gattKey => $_getSZ(0); + @$pb.TagNumber(1) + set gattKey($core.String v) { + $_setString(0, v); + } + + @$pb.TagNumber(1) + $core.bool hasGattKey() => $_has(0); + @$pb.TagNumber(1) + void clearGattKey() => clearField(1); + + @$pb.TagNumber(2) + $core.String get serviceKey => $_getSZ(1); + @$pb.TagNumber(2) + set serviceKey($core.String v) { + $_setString(1, v); + } + + @$pb.TagNumber(2) + $core.bool hasServiceKey() => $_has(1); + @$pb.TagNumber(2) + void clearServiceKey() => clearField(2); + @$pb.TagNumber(3) - $core.int get id => $_getIZ(0); + $core.String get key => $_getSZ(2); @$pb.TagNumber(3) - set id($core.int v) { - $_setSignedInt32(0, v); + set key($core.String v) { + $_setString(2, v); } @$pb.TagNumber(3) - $core.bool hasId() => $_has(0); + $core.bool hasKey() => $_has(2); @$pb.TagNumber(3) - void clearId() => clearField(3); + void clearKey() => clearField(3); @$pb.TagNumber(4) - $core.List<$core.int> get value => $_getN(1); + $core.List<$core.int> get value => $_getN(3); @$pb.TagNumber(4) set value($core.List<$core.int> v) { - $_setBytes(1, v); + $_setBytes(3, v); } @$pb.TagNumber(4) - $core.bool hasValue() => $_has(1); + $core.bool hasValue() => $_has(3); @$pb.TagNumber(4) void clearValue() => clearField(4); } @@ -1629,45 +1752,40 @@ class GattDescriptorReadArguments extends $pb.GeneratedMessage { 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'address') + : 'gattKey') ..aOS( 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'serviceUuid') + : 'serviceKey') ..aOS( 3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'characteristicUuid') - ..aOS( - 4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'uuid') - ..a<$core.int>(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'id', $pb.PbFieldType.O3) + : 'characteristicKey') + ..aOS(4, + const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'key') ..hasRequiredFields = false; GattDescriptorReadArguments._() : super(); factory GattDescriptorReadArguments({ - $core.String? address, - $core.String? serviceUuid, - $core.String? characteristicUuid, - $core.String? uuid, - $core.int? id, + $core.String? gattKey, + $core.String? serviceKey, + $core.String? characteristicKey, + $core.String? key, }) { final _result = create(); - if (address != null) { - _result.address = address; + if (gattKey != null) { + _result.gattKey = gattKey; } - if (serviceUuid != null) { - _result.serviceUuid = serviceUuid; + if (serviceKey != null) { + _result.serviceKey = serviceKey; } - if (characteristicUuid != null) { - _result.characteristicUuid = characteristicUuid; + if (characteristicKey != null) { + _result.characteristicKey = characteristicKey; } - if (uuid != null) { - _result.uuid = uuid; - } - if (id != null) { - _result.id = id; + if (key != null) { + _result.key = key; } return _result; } @@ -1703,64 +1821,52 @@ class GattDescriptorReadArguments extends $pb.GeneratedMessage { static GattDescriptorReadArguments? _defaultInstance; @$pb.TagNumber(1) - $core.String get address => $_getSZ(0); + $core.String get gattKey => $_getSZ(0); @$pb.TagNumber(1) - set address($core.String v) { + set gattKey($core.String v) { $_setString(0, v); } @$pb.TagNumber(1) - $core.bool hasAddress() => $_has(0); + $core.bool hasGattKey() => $_has(0); @$pb.TagNumber(1) - void clearAddress() => clearField(1); + void clearGattKey() => clearField(1); @$pb.TagNumber(2) - $core.String get serviceUuid => $_getSZ(1); + $core.String get serviceKey => $_getSZ(1); @$pb.TagNumber(2) - set serviceUuid($core.String v) { + set serviceKey($core.String v) { $_setString(1, v); } @$pb.TagNumber(2) - $core.bool hasServiceUuid() => $_has(1); + $core.bool hasServiceKey() => $_has(1); @$pb.TagNumber(2) - void clearServiceUuid() => clearField(2); + void clearServiceKey() => clearField(2); @$pb.TagNumber(3) - $core.String get characteristicUuid => $_getSZ(2); + $core.String get characteristicKey => $_getSZ(2); @$pb.TagNumber(3) - set characteristicUuid($core.String v) { + set characteristicKey($core.String v) { $_setString(2, v); } @$pb.TagNumber(3) - $core.bool hasCharacteristicUuid() => $_has(2); + $core.bool hasCharacteristicKey() => $_has(2); @$pb.TagNumber(3) - void clearCharacteristicUuid() => clearField(3); + void clearCharacteristicKey() => clearField(3); @$pb.TagNumber(4) - $core.String get uuid => $_getSZ(3); + $core.String get key => $_getSZ(3); @$pb.TagNumber(4) - set uuid($core.String v) { + set key($core.String v) { $_setString(3, v); } @$pb.TagNumber(4) - $core.bool hasUuid() => $_has(3); + $core.bool hasKey() => $_has(3); @$pb.TagNumber(4) - void clearUuid() => clearField(4); - - @$pb.TagNumber(5) - $core.int get id => $_getIZ(4); - @$pb.TagNumber(5) - set id($core.int v) { - $_setSignedInt32(4, v); - } - - @$pb.TagNumber(5) - $core.bool hasId() => $_has(4); - @$pb.TagNumber(5) - void clearId() => clearField(5); + void clearKey() => clearField(4); } class GattDescriptorWriteArguments extends $pb.GeneratedMessage { @@ -1777,47 +1883,42 @@ class GattDescriptorWriteArguments extends $pb.GeneratedMessage { 1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'address') + : 'gattKey') ..aOS( 2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'serviceUuid') + : 'serviceKey') ..aOS( 3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' - : 'characteristicUuid') + : 'characteristicKey') ..aOS(4, - const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'uuid') - ..a<$core.int>(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'id', $pb.PbFieldType.O3) - ..a<$core.List<$core.int>>(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value', $pb.PbFieldType.OY) + const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'key') + ..a<$core.List<$core.int>>(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value', $pb.PbFieldType.OY) ..hasRequiredFields = false; GattDescriptorWriteArguments._() : super(); factory GattDescriptorWriteArguments({ - $core.String? address, - $core.String? serviceUuid, - $core.String? characteristicUuid, - $core.String? uuid, - $core.int? id, + $core.String? gattKey, + $core.String? serviceKey, + $core.String? characteristicKey, + $core.String? key, $core.List<$core.int>? value, }) { final _result = create(); - if (address != null) { - _result.address = address; + if (gattKey != null) { + _result.gattKey = gattKey; } - if (serviceUuid != null) { - _result.serviceUuid = serviceUuid; + if (serviceKey != null) { + _result.serviceKey = serviceKey; } - if (characteristicUuid != null) { - _result.characteristicUuid = characteristicUuid; + if (characteristicKey != null) { + _result.characteristicKey = characteristicKey; } - if (uuid != null) { - _result.uuid = uuid; - } - if (id != null) { - _result.id = id; + if (key != null) { + _result.key = key; } if (value != null) { _result.value = value; @@ -1856,74 +1957,62 @@ class GattDescriptorWriteArguments extends $pb.GeneratedMessage { static GattDescriptorWriteArguments? _defaultInstance; @$pb.TagNumber(1) - $core.String get address => $_getSZ(0); + $core.String get gattKey => $_getSZ(0); @$pb.TagNumber(1) - set address($core.String v) { + set gattKey($core.String v) { $_setString(0, v); } @$pb.TagNumber(1) - $core.bool hasAddress() => $_has(0); + $core.bool hasGattKey() => $_has(0); @$pb.TagNumber(1) - void clearAddress() => clearField(1); + void clearGattKey() => clearField(1); @$pb.TagNumber(2) - $core.String get serviceUuid => $_getSZ(1); + $core.String get serviceKey => $_getSZ(1); @$pb.TagNumber(2) - set serviceUuid($core.String v) { + set serviceKey($core.String v) { $_setString(1, v); } @$pb.TagNumber(2) - $core.bool hasServiceUuid() => $_has(1); + $core.bool hasServiceKey() => $_has(1); @$pb.TagNumber(2) - void clearServiceUuid() => clearField(2); + void clearServiceKey() => clearField(2); @$pb.TagNumber(3) - $core.String get characteristicUuid => $_getSZ(2); + $core.String get characteristicKey => $_getSZ(2); @$pb.TagNumber(3) - set characteristicUuid($core.String v) { + set characteristicKey($core.String v) { $_setString(2, v); } @$pb.TagNumber(3) - $core.bool hasCharacteristicUuid() => $_has(2); + $core.bool hasCharacteristicKey() => $_has(2); @$pb.TagNumber(3) - void clearCharacteristicUuid() => clearField(3); + void clearCharacteristicKey() => clearField(3); @$pb.TagNumber(4) - $core.String get uuid => $_getSZ(3); + $core.String get key => $_getSZ(3); @$pb.TagNumber(4) - set uuid($core.String v) { + set key($core.String v) { $_setString(3, v); } @$pb.TagNumber(4) - $core.bool hasUuid() => $_has(3); + $core.bool hasKey() => $_has(3); @$pb.TagNumber(4) - void clearUuid() => clearField(4); + void clearKey() => clearField(4); @$pb.TagNumber(5) - $core.int get id => $_getIZ(4); + $core.List<$core.int> get value => $_getN(4); @$pb.TagNumber(5) - set id($core.int v) { - $_setSignedInt32(4, v); - } - - @$pb.TagNumber(5) - $core.bool hasId() => $_has(4); - @$pb.TagNumber(5) - void clearId() => clearField(5); - - @$pb.TagNumber(6) - $core.List<$core.int> get value => $_getN(5); - @$pb.TagNumber(6) set value($core.List<$core.int> v) { - $_setBytes(5, v); + $_setBytes(4, v); } - @$pb.TagNumber(6) - $core.bool hasValue() => $_has(5); - @$pb.TagNumber(6) - void clearValue() => clearField(6); + @$pb.TagNumber(5) + $core.bool hasValue() => $_has(4); + @$pb.TagNumber(5) + void clearValue() => clearField(5); } diff --git a/lib/src/message.pbenum.dart b/lib/src/message.pbenum.dart index 86d43a2..19348b2 100644 --- a/lib/src/message.pbenum.dart +++ b/lib/src/message.pbenum.dart @@ -10,74 +10,68 @@ import 'dart:core' as $core; import 'package:protobuf/protobuf.dart' as $pb; class MessageCategory extends $pb.ProtobufEnum { - static const MessageCategory BLUETOOTH_AVAILABLE = MessageCategory._( - 0, - const $core.bool.fromEnvironment('protobuf.omit_enum_names') - ? '' - : 'BLUETOOTH_AVAILABLE'); static const MessageCategory BLUETOOTH_STATE = MessageCategory._( - 1, + 0, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'BLUETOOTH_STATE'); static const MessageCategory CENTRAL_START_DISCOVERY = MessageCategory._( - 2, + 1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'CENTRAL_START_DISCOVERY'); static const MessageCategory CENTRAL_STOP_DISCOVERY = MessageCategory._( - 3, + 2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'CENTRAL_STOP_DISCOVERY'); static const MessageCategory CENTRAL_DISCOVERED = MessageCategory._( - 4, + 3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'CENTRAL_DISCOVERED'); static const MessageCategory CENTRAL_CONNECT = MessageCategory._( - 5, + 4, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'CENTRAL_CONNECT'); static const MessageCategory GATT_DISCONNECT = MessageCategory._( - 6, + 5, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'GATT_DISCONNECT'); static const MessageCategory GATT_CONNECTION_LOST = MessageCategory._( - 7, + 6, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'GATT_CONNECTION_LOST'); static const MessageCategory GATT_CHARACTERISTIC_READ = MessageCategory._( - 8, + 7, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'GATT_CHARACTERISTIC_READ'); static const MessageCategory GATT_CHARACTERISTIC_WRITE = MessageCategory._( - 9, + 8, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'GATT_CHARACTERISTIC_WRITE'); static const MessageCategory GATT_CHARACTERISTIC_NOTIFY = MessageCategory._( - 10, + 9, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'GATT_CHARACTERISTIC_NOTIFY'); static const MessageCategory GATT_DESCRIPTOR_READ = MessageCategory._( - 11, + 10, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'GATT_DESCRIPTOR_READ'); static const MessageCategory GATT_DESCRIPTOR_WRITE = MessageCategory._( - 12, + 11, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'GATT_DESCRIPTOR_WRITE'); static const $core.List values = [ - BLUETOOTH_AVAILABLE, BLUETOOTH_STATE, CENTRAL_START_DISCOVERY, CENTRAL_STOP_DISCOVERY, @@ -98,3 +92,33 @@ class MessageCategory extends $pb.ProtobufEnum { const MessageCategory._($core.int v, $core.String n) : super(v, n); } + +class BluetoothState extends $pb.ProtobufEnum { + static const BluetoothState UNSUPPORTED = BluetoothState._( + 0, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'UNSUPPORTED'); + static const BluetoothState POWERED_OFF = BluetoothState._( + 1, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'POWERED_OFF'); + static const BluetoothState POWERED_ON = BluetoothState._( + 2, + const $core.bool.fromEnvironment('protobuf.omit_enum_names') + ? '' + : 'POWERED_ON'); + + static const $core.List values = [ + UNSUPPORTED, + POWERED_OFF, + POWERED_ON, + ]; + + static final $core.Map<$core.int, BluetoothState> _byValue = + $pb.ProtobufEnum.initByValue(values); + static BluetoothState? valueOf($core.int value) => _byValue[value]; + + const BluetoothState._($core.int v, $core.String n) : super(v, n); +} diff --git a/lib/src/message.pbjson.dart b/lib/src/message.pbjson.dart index 9f34c3b..46d2a41 100644 --- a/lib/src/message.pbjson.dart +++ b/lib/src/message.pbjson.dart @@ -13,25 +13,37 @@ import 'dart:typed_data' as $typed_data; const MessageCategory$json = const { '1': 'MessageCategory', '2': const [ - const {'1': 'BLUETOOTH_AVAILABLE', '2': 0}, - const {'1': 'BLUETOOTH_STATE', '2': 1}, - const {'1': 'CENTRAL_START_DISCOVERY', '2': 2}, - const {'1': 'CENTRAL_STOP_DISCOVERY', '2': 3}, - const {'1': 'CENTRAL_DISCOVERED', '2': 4}, - const {'1': 'CENTRAL_CONNECT', '2': 5}, - const {'1': 'GATT_DISCONNECT', '2': 6}, - const {'1': 'GATT_CONNECTION_LOST', '2': 7}, - const {'1': 'GATT_CHARACTERISTIC_READ', '2': 8}, - const {'1': 'GATT_CHARACTERISTIC_WRITE', '2': 9}, - const {'1': 'GATT_CHARACTERISTIC_NOTIFY', '2': 10}, - const {'1': 'GATT_DESCRIPTOR_READ', '2': 11}, - const {'1': 'GATT_DESCRIPTOR_WRITE', '2': 12}, + const {'1': 'BLUETOOTH_STATE', '2': 0}, + const {'1': 'CENTRAL_START_DISCOVERY', '2': 1}, + const {'1': 'CENTRAL_STOP_DISCOVERY', '2': 2}, + const {'1': 'CENTRAL_DISCOVERED', '2': 3}, + const {'1': 'CENTRAL_CONNECT', '2': 4}, + const {'1': 'GATT_DISCONNECT', '2': 5}, + const {'1': 'GATT_CONNECTION_LOST', '2': 6}, + const {'1': 'GATT_CHARACTERISTIC_READ', '2': 7}, + const {'1': 'GATT_CHARACTERISTIC_WRITE', '2': 8}, + const {'1': 'GATT_CHARACTERISTIC_NOTIFY', '2': 9}, + const {'1': 'GATT_DESCRIPTOR_READ', '2': 10}, + const {'1': 'GATT_DESCRIPTOR_WRITE', '2': 11}, ], }; /// Descriptor for `MessageCategory`. Decode as a `google.protobuf.EnumDescriptorProto`. final $typed_data.Uint8List messageCategoryDescriptor = $convert.base64Decode( - 'Cg9NZXNzYWdlQ2F0ZWdvcnkSFwoTQkxVRVRPT1RIX0FWQUlMQUJMRRAAEhMKD0JMVUVUT09USF9TVEFURRABEhsKF0NFTlRSQUxfU1RBUlRfRElTQ09WRVJZEAISGgoWQ0VOVFJBTF9TVE9QX0RJU0NPVkVSWRADEhYKEkNFTlRSQUxfRElTQ09WRVJFRBAEEhMKD0NFTlRSQUxfQ09OTkVDVBAFEhMKD0dBVFRfRElTQ09OTkVDVBAGEhgKFEdBVFRfQ09OTkVDVElPTl9MT1NUEAcSHAoYR0FUVF9DSEFSQUNURVJJU1RJQ19SRUFEEAgSHQoZR0FUVF9DSEFSQUNURVJJU1RJQ19XUklURRAJEh4KGkdBVFRfQ0hBUkFDVEVSSVNUSUNfTk9USUZZEAoSGAoUR0FUVF9ERVNDUklQVE9SX1JFQUQQCxIZChVHQVRUX0RFU0NSSVBUT1JfV1JJVEUQDA=='); + 'Cg9NZXNzYWdlQ2F0ZWdvcnkSEwoPQkxVRVRPT1RIX1NUQVRFEAASGwoXQ0VOVFJBTF9TVEFSVF9ESVNDT1ZFUlkQARIaChZDRU5UUkFMX1NUT1BfRElTQ09WRVJZEAISFgoSQ0VOVFJBTF9ESVNDT1ZFUkVEEAMSEwoPQ0VOVFJBTF9DT05ORUNUEAQSEwoPR0FUVF9ESVNDT05ORUNUEAUSGAoUR0FUVF9DT05ORUNUSU9OX0xPU1QQBhIcChhHQVRUX0NIQVJBQ1RFUklTVElDX1JFQUQQBxIdChlHQVRUX0NIQVJBQ1RFUklTVElDX1dSSVRFEAgSHgoaR0FUVF9DSEFSQUNURVJJU1RJQ19OT1RJRlkQCRIYChRHQVRUX0RFU0NSSVBUT1JfUkVBRBAKEhkKFUdBVFRfREVTQ1JJUFRPUl9XUklURRAL'); +@$core.Deprecated('Use bluetoothStateDescriptor instead') +const BluetoothState$json = const { + '1': 'BluetoothState', + '2': const [ + const {'1': 'UNSUPPORTED', '2': 0}, + const {'1': 'POWERED_OFF', '2': 1}, + const {'1': 'POWERED_ON', '2': 2}, + ], +}; + +/// Descriptor for `BluetoothState`. Decode as a `google.protobuf.EnumDescriptorProto`. +final $typed_data.Uint8List bluetoothStateDescriptor = $convert.base64Decode( + 'Cg5CbHVldG9vdGhTdGF0ZRIPCgtVTlNVUFBPUlRFRBAAEg8KC1BPV0VSRURfT0ZGEAESDgoKUE9XRVJFRF9PThAC'); @$core.Deprecated('Use messageDescriptor instead') const Message$json = const { '1': 'Message', @@ -44,35 +56,117 @@ const Message$json = const { '6': '.dev.yanshouwang.bluetooth_low_energy.MessageCategory', '10': 'category' }, - const {'1': 'state', '3': 2, '4': 1, '5': 8, '9': 0, '10': 'state'}, + const { + '1': 'state', + '3': 2, + '4': 1, + '5': 14, + '6': '.dev.yanshouwang.bluetooth_low_energy.BluetoothState', + '9': 0, + '10': 'state' + }, + const { + '1': 'startDiscoveryArguments', + '3': 3, + '4': 1, + '5': 11, + '6': '.dev.yanshouwang.bluetooth_low_energy.StartDiscoveryArguments', + '9': 0, + '10': 'startDiscoveryArguments' + }, const { '1': 'discovery', - '3': 3, + '3': 4, '4': 1, '5': 11, '6': '.dev.yanshouwang.bluetooth_low_energy.Discovery', '9': 0, '10': 'discovery' }, - const {'1': 'scanning', '3': 4, '4': 1, '5': 8, '9': 0, '10': 'scanning'}, const { - '1': 'connectionLost', + '1': 'connectArguments', '3': 5, '4': 1, '5': 11, - '6': '.dev.yanshouwang.bluetooth_low_energy.ConnectionLost', + '6': '.dev.yanshouwang.bluetooth_low_energy.ConnectArguments', + '9': 0, + '10': 'connectArguments' + }, + const { + '1': 'disconnectArguments', + '3': 6, + '4': 1, + '5': 11, + '6': '.dev.yanshouwang.bluetooth_low_energy.GattDisconnectArguments', + '9': 0, + '10': 'disconnectArguments' + }, + const { + '1': 'connectionLost', + '3': 7, + '4': 1, + '5': 11, + '6': '.dev.yanshouwang.bluetooth_low_energy.GattConnectionLost', '9': 0, '10': 'connectionLost' }, + const { + '1': 'characteristicReadArguments', + '3': 8, + '4': 1, + '5': 11, + '6': + '.dev.yanshouwang.bluetooth_low_energy.GattCharacteristicReadArguments', + '9': 0, + '10': 'characteristicReadArguments' + }, + const { + '1': 'characteristicWriteArguments', + '3': 9, + '4': 1, + '5': 11, + '6': + '.dev.yanshouwang.bluetooth_low_energy.GattCharacteristicWriteArguments', + '9': 0, + '10': 'characteristicWriteArguments' + }, + const { + '1': 'characteristicNotifyArguments', + '3': 10, + '4': 1, + '5': 11, + '6': + '.dev.yanshouwang.bluetooth_low_energy.GattCharacteristicNotifyArguments', + '9': 0, + '10': 'characteristicNotifyArguments' + }, const { '1': 'characteristicValue', - '3': 6, + '3': 11, '4': 1, '5': 11, '6': '.dev.yanshouwang.bluetooth_low_energy.GattCharacteristicValue', '9': 0, '10': 'characteristicValue' }, + const { + '1': 'descriptorReadArguments', + '3': 12, + '4': 1, + '5': 11, + '6': '.dev.yanshouwang.bluetooth_low_energy.GattDescriptorReadArguments', + '9': 0, + '10': 'descriptorReadArguments' + }, + const { + '1': 'descriptorWriteArguments', + '3': 13, + '4': 1, + '5': 11, + '6': '.dev.yanshouwang.bluetooth_low_energy.GattDescriptorWriteArguments', + '9': 0, + '10': 'descriptorWriteArguments' + }, ], '8': const [ const {'1': 'value'}, @@ -81,7 +175,7 @@ const Message$json = const { /// Descriptor for `Message`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List messageDescriptor = $convert.base64Decode( - 'CgdNZXNzYWdlElEKCGNhdGVnb3J5GAEgASgOMjUuZGV2LnlhbnNob3V3YW5nLmJsdWV0b290aF9sb3dfZW5lcmd5Lk1lc3NhZ2VDYXRlZ29yeVIIY2F0ZWdvcnkSFgoFc3RhdGUYAiABKAhIAFIFc3RhdGUSTwoJZGlzY292ZXJ5GAMgASgLMi8uZGV2LnlhbnNob3V3YW5nLmJsdWV0b290aF9sb3dfZW5lcmd5LkRpc2NvdmVyeUgAUglkaXNjb3ZlcnkSHAoIc2Nhbm5pbmcYBCABKAhIAFIIc2Nhbm5pbmcSXgoOY29ubmVjdGlvbkxvc3QYBSABKAsyNC5kZXYueWFuc2hvdXdhbmcuYmx1ZXRvb3RoX2xvd19lbmVyZ3kuQ29ubmVjdGlvbkxvc3RIAFIOY29ubmVjdGlvbkxvc3QScQoTY2hhcmFjdGVyaXN0aWNWYWx1ZRgGIAEoCzI9LmRldi55YW5zaG91d2FuZy5ibHVldG9vdGhfbG93X2VuZXJneS5HYXR0Q2hhcmFjdGVyaXN0aWNWYWx1ZUgAUhNjaGFyYWN0ZXJpc3RpY1ZhbHVlQgcKBXZhbHVl'); + 'CgdNZXNzYWdlElEKCGNhdGVnb3J5GAEgASgOMjUuZGV2LnlhbnNob3V3YW5nLmJsdWV0b290aF9sb3dfZW5lcmd5Lk1lc3NhZ2VDYXRlZ29yeVIIY2F0ZWdvcnkSTAoFc3RhdGUYAiABKA4yNC5kZXYueWFuc2hvdXdhbmcuYmx1ZXRvb3RoX2xvd19lbmVyZ3kuQmx1ZXRvb3RoU3RhdGVIAFIFc3RhdGUSeQoXc3RhcnREaXNjb3ZlcnlBcmd1bWVudHMYAyABKAsyPS5kZXYueWFuc2hvdXdhbmcuYmx1ZXRvb3RoX2xvd19lbmVyZ3kuU3RhcnREaXNjb3ZlcnlBcmd1bWVudHNIAFIXc3RhcnREaXNjb3ZlcnlBcmd1bWVudHMSTwoJZGlzY292ZXJ5GAQgASgLMi8uZGV2LnlhbnNob3V3YW5nLmJsdWV0b290aF9sb3dfZW5lcmd5LkRpc2NvdmVyeUgAUglkaXNjb3ZlcnkSZAoQY29ubmVjdEFyZ3VtZW50cxgFIAEoCzI2LmRldi55YW5zaG91d2FuZy5ibHVldG9vdGhfbG93X2VuZXJneS5Db25uZWN0QXJndW1lbnRzSABSEGNvbm5lY3RBcmd1bWVudHMScQoTZGlzY29ubmVjdEFyZ3VtZW50cxgGIAEoCzI9LmRldi55YW5zaG91d2FuZy5ibHVldG9vdGhfbG93X2VuZXJneS5HYXR0RGlzY29ubmVjdEFyZ3VtZW50c0gAUhNkaXNjb25uZWN0QXJndW1lbnRzEmIKDmNvbm5lY3Rpb25Mb3N0GAcgASgLMjguZGV2LnlhbnNob3V3YW5nLmJsdWV0b290aF9sb3dfZW5lcmd5LkdhdHRDb25uZWN0aW9uTG9zdEgAUg5jb25uZWN0aW9uTG9zdBKJAQobY2hhcmFjdGVyaXN0aWNSZWFkQXJndW1lbnRzGAggASgLMkUuZGV2LnlhbnNob3V3YW5nLmJsdWV0b290aF9sb3dfZW5lcmd5LkdhdHRDaGFyYWN0ZXJpc3RpY1JlYWRBcmd1bWVudHNIAFIbY2hhcmFjdGVyaXN0aWNSZWFkQXJndW1lbnRzEowBChxjaGFyYWN0ZXJpc3RpY1dyaXRlQXJndW1lbnRzGAkgASgLMkYuZGV2LnlhbnNob3V3YW5nLmJsdWV0b290aF9sb3dfZW5lcmd5LkdhdHRDaGFyYWN0ZXJpc3RpY1dyaXRlQXJndW1lbnRzSABSHGNoYXJhY3RlcmlzdGljV3JpdGVBcmd1bWVudHMSjwEKHWNoYXJhY3RlcmlzdGljTm90aWZ5QXJndW1lbnRzGAogASgLMkcuZGV2LnlhbnNob3V3YW5nLmJsdWV0b290aF9sb3dfZW5lcmd5LkdhdHRDaGFyYWN0ZXJpc3RpY05vdGlmeUFyZ3VtZW50c0gAUh1jaGFyYWN0ZXJpc3RpY05vdGlmeUFyZ3VtZW50cxJxChNjaGFyYWN0ZXJpc3RpY1ZhbHVlGAsgASgLMj0uZGV2LnlhbnNob3V3YW5nLmJsdWV0b290aF9sb3dfZW5lcmd5LkdhdHRDaGFyYWN0ZXJpc3RpY1ZhbHVlSABSE2NoYXJhY3RlcmlzdGljVmFsdWUSfQoXZGVzY3JpcHRvclJlYWRBcmd1bWVudHMYDCABKAsyQS5kZXYueWFuc2hvdXdhbmcuYmx1ZXRvb3RoX2xvd19lbmVyZ3kuR2F0dERlc2NyaXB0b3JSZWFkQXJndW1lbnRzSABSF2Rlc2NyaXB0b3JSZWFkQXJndW1lbnRzEoABChhkZXNjcmlwdG9yV3JpdGVBcmd1bWVudHMYDSABKAsyQi5kZXYueWFuc2hvdXdhbmcuYmx1ZXRvb3RoX2xvd19lbmVyZ3kuR2F0dERlc2NyaXB0b3JXcml0ZUFyZ3VtZW50c0gAUhhkZXNjcmlwdG9yV3JpdGVBcmd1bWVudHNCBwoFdmFsdWU='); @$core.Deprecated('Use startDiscoveryArgumentsDescriptor instead') const StartDiscoveryArguments$json = const { '1': 'StartDiscoveryArguments', @@ -98,7 +192,7 @@ final $typed_data.Uint8List startDiscoveryArgumentsDescriptor = const Discovery$json = const { '1': 'Discovery', '2': const [ - const {'1': 'address', '3': 1, '4': 1, '5': 9, '10': 'address'}, + const {'1': 'uuid', '3': 1, '4': 1, '5': 9, '10': 'uuid'}, const {'1': 'rssi', '3': 2, '4': 1, '5': 17, '10': 'rssi'}, const { '1': 'advertisements', @@ -107,29 +201,36 @@ const Discovery$json = const { '5': 12, '10': 'advertisements' }, + const {'1': 'connectable', '3': 4, '4': 1, '5': 8, '10': 'connectable'}, ], }; /// Descriptor for `Discovery`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List discoveryDescriptor = $convert.base64Decode( - 'CglEaXNjb3ZlcnkSGAoHYWRkcmVzcxgBIAEoCVIHYWRkcmVzcxISCgRyc3NpGAIgASgRUgRyc3NpEiYKDmFkdmVydGlzZW1lbnRzGAMgASgMUg5hZHZlcnRpc2VtZW50cw=='); + 'CglEaXNjb3ZlcnkSEgoEdXVpZBgBIAEoCVIEdXVpZBISCgRyc3NpGAIgASgRUgRyc3NpEiYKDmFkdmVydGlzZW1lbnRzGAMgASgMUg5hZHZlcnRpc2VtZW50cxIgCgtjb25uZWN0YWJsZRgEIAEoCFILY29ubmVjdGFibGU='); @$core.Deprecated('Use connectArgumentsDescriptor instead') const ConnectArguments$json = const { '1': 'ConnectArguments', '2': const [ - const {'1': 'address', '3': 1, '4': 1, '5': 9, '10': 'address'}, + const {'1': 'uuid', '3': 1, '4': 1, '5': 9, '10': 'uuid'}, ], }; /// Descriptor for `ConnectArguments`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List connectArgumentsDescriptor = $convert.base64Decode( - 'ChBDb25uZWN0QXJndW1lbnRzEhgKB2FkZHJlc3MYASABKAlSB2FkZHJlc3M='); +final $typed_data.Uint8List connectArgumentsDescriptor = $convert + .base64Decode('ChBDb25uZWN0QXJndW1lbnRzEhIKBHV1aWQYASABKAlSBHV1aWQ='); @$core.Deprecated('Use gATTDescriptor instead') const GATT$json = const { '1': 'GATT', '2': const [ - const {'1': 'id', '3': 1, '4': 1, '5': 5, '10': 'id'}, - const {'1': 'mtu', '3': 2, '4': 1, '5': 5, '10': 'mtu'}, + const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, + const { + '1': 'maximumWriteLength', + '3': 2, + '4': 1, + '5': 5, + '10': 'maximumWriteLength' + }, const { '1': 'services', '3': 3, @@ -143,25 +244,12 @@ const GATT$json = const { /// Descriptor for `GATT`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List gATTDescriptor = $convert.base64Decode( - 'CgRHQVRUEg4KAmlkGAEgASgFUgJpZBIQCgNtdHUYAiABKAVSA210dRJNCghzZXJ2aWNlcxgDIAMoCzIxLmRldi55YW5zaG91d2FuZy5ibHVldG9vdGhfbG93X2VuZXJneS5HYXR0U2VydmljZVIIc2VydmljZXM='); -@$core.Deprecated('Use gattDisconnectArgumentsDescriptor instead') -const GattDisconnectArguments$json = const { - '1': 'GattDisconnectArguments', - '2': const [ - const {'1': 'address', '3': 1, '4': 1, '5': 9, '10': 'address'}, - const {'1': 'id', '3': 2, '4': 1, '5': 5, '10': 'id'}, - ], -}; - -/// Descriptor for `GattDisconnectArguments`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List gattDisconnectArgumentsDescriptor = - $convert.base64Decode( - 'ChdHYXR0RGlzY29ubmVjdEFyZ3VtZW50cxIYCgdhZGRyZXNzGAEgASgJUgdhZGRyZXNzEg4KAmlkGAIgASgFUgJpZA=='); + 'CgRHQVRUEhAKA2tleRgBIAEoCVIDa2V5Ei4KEm1heGltdW1Xcml0ZUxlbmd0aBgCIAEoBVISbWF4aW11bVdyaXRlTGVuZ3RoEk0KCHNlcnZpY2VzGAMgAygLMjEuZGV2LnlhbnNob3V3YW5nLmJsdWV0b290aF9sb3dfZW5lcmd5LkdhdHRTZXJ2aWNlUghzZXJ2aWNlcw=='); @$core.Deprecated('Use gattServiceDescriptor instead') const GattService$json = const { '1': 'GattService', '2': const [ - const {'1': 'id', '3': 1, '4': 1, '5': 5, '10': 'id'}, + const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, const {'1': 'uuid', '3': 2, '4': 1, '5': 9, '10': 'uuid'}, const { '1': 'characteristics', @@ -176,88 +264,98 @@ const GattService$json = const { /// Descriptor for `GattService`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List gattServiceDescriptor = $convert.base64Decode( - 'CgtHYXR0U2VydmljZRIOCgJpZBgBIAEoBVICaWQSEgoEdXVpZBgCIAEoCVIEdXVpZBJiCg9jaGFyYWN0ZXJpc3RpY3MYAyADKAsyOC5kZXYueWFuc2hvdXdhbmcuYmx1ZXRvb3RoX2xvd19lbmVyZ3kuR2F0dENoYXJhY3RlcmlzdGljUg9jaGFyYWN0ZXJpc3RpY3M='); + 'CgtHYXR0U2VydmljZRIQCgNrZXkYASABKAlSA2tleRISCgR1dWlkGAIgASgJUgR1dWlkEmIKD2NoYXJhY3RlcmlzdGljcxgDIAMoCzI4LmRldi55YW5zaG91d2FuZy5ibHVldG9vdGhfbG93X2VuZXJneS5HYXR0Q2hhcmFjdGVyaXN0aWNSD2NoYXJhY3RlcmlzdGljcw=='); @$core.Deprecated('Use gattCharacteristicDescriptor instead') const GattCharacteristic$json = const { '1': 'GattCharacteristic', '2': const [ - const {'1': 'id', '3': 1, '4': 1, '5': 5, '10': 'id'}, + const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, const {'1': 'uuid', '3': 2, '4': 1, '5': 9, '10': 'uuid'}, + const {'1': 'canRead', '3': 3, '4': 1, '5': 8, '10': 'canRead'}, + const {'1': 'canWrite', '3': 4, '4': 1, '5': 8, '10': 'canWrite'}, + const { + '1': 'canWriteWithoutResponse', + '3': 5, + '4': 1, + '5': 8, + '10': 'canWriteWithoutResponse' + }, + const {'1': 'canNotify', '3': 6, '4': 1, '5': 8, '10': 'canNotify'}, const { '1': 'descriptors', - '3': 3, + '3': 7, '4': 3, '5': 11, '6': '.dev.yanshouwang.bluetooth_low_energy.GattDescriptor', '10': 'descriptors' }, - const {'1': 'canRead', '3': 4, '4': 1, '5': 8, '10': 'canRead'}, - const {'1': 'canWrite', '3': 5, '4': 1, '5': 8, '10': 'canWrite'}, - const { - '1': 'canWriteWithoutResponse', - '3': 6, - '4': 1, - '5': 8, - '10': 'canWriteWithoutResponse' - }, - const {'1': 'canNotify', '3': 7, '4': 1, '5': 8, '10': 'canNotify'}, ], }; /// Descriptor for `GattCharacteristic`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List gattCharacteristicDescriptor = $convert.base64Decode( - 'ChJHYXR0Q2hhcmFjdGVyaXN0aWMSDgoCaWQYASABKAVSAmlkEhIKBHV1aWQYAiABKAlSBHV1aWQSVgoLZGVzY3JpcHRvcnMYAyADKAsyNC5kZXYueWFuc2hvdXdhbmcuYmx1ZXRvb3RoX2xvd19lbmVyZ3kuR2F0dERlc2NyaXB0b3JSC2Rlc2NyaXB0b3JzEhgKB2NhblJlYWQYBCABKAhSB2NhblJlYWQSGgoIY2FuV3JpdGUYBSABKAhSCGNhbldyaXRlEjgKF2NhbldyaXRlV2l0aG91dFJlc3BvbnNlGAYgASgIUhdjYW5Xcml0ZVdpdGhvdXRSZXNwb25zZRIcCgljYW5Ob3RpZnkYByABKAhSCWNhbk5vdGlmeQ=='); + 'ChJHYXR0Q2hhcmFjdGVyaXN0aWMSEAoDa2V5GAEgASgJUgNrZXkSEgoEdXVpZBgCIAEoCVIEdXVpZBIYCgdjYW5SZWFkGAMgASgIUgdjYW5SZWFkEhoKCGNhbldyaXRlGAQgASgIUghjYW5Xcml0ZRI4ChdjYW5Xcml0ZVdpdGhvdXRSZXNwb25zZRgFIAEoCFIXY2FuV3JpdGVXaXRob3V0UmVzcG9uc2USHAoJY2FuTm90aWZ5GAYgASgIUgljYW5Ob3RpZnkSVgoLZGVzY3JpcHRvcnMYByADKAsyNC5kZXYueWFuc2hvdXdhbmcuYmx1ZXRvb3RoX2xvd19lbmVyZ3kuR2F0dERlc2NyaXB0b3JSC2Rlc2NyaXB0b3Jz'); @$core.Deprecated('Use gattDescriptorDescriptor instead') const GattDescriptor$json = const { '1': 'GattDescriptor', '2': const [ - const {'1': 'id', '3': 1, '4': 1, '5': 5, '10': 'id'}, + const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, const {'1': 'uuid', '3': 2, '4': 1, '5': 9, '10': 'uuid'}, ], }; /// Descriptor for `GattDescriptor`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List gattDescriptorDescriptor = $convert.base64Decode( - 'Cg5HYXR0RGVzY3JpcHRvchIOCgJpZBgBIAEoBVICaWQSEgoEdXVpZBgCIAEoCVIEdXVpZA=='); -@$core.Deprecated('Use connectionLostDescriptor instead') -const ConnectionLost$json = const { - '1': 'ConnectionLost', + 'Cg5HYXR0RGVzY3JpcHRvchIQCgNrZXkYASABKAlSA2tleRISCgR1dWlkGAIgASgJUgR1dWlk'); +@$core.Deprecated('Use gattDisconnectArgumentsDescriptor instead') +const GattDisconnectArguments$json = const { + '1': 'GattDisconnectArguments', '2': const [ - const {'1': 'id', '3': 1, '4': 1, '5': 5, '10': 'id'}, - const {'1': 'error_code', '3': 2, '4': 1, '5': 5, '10': 'errorCode'}, + const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, ], }; -/// Descriptor for `ConnectionLost`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List connectionLostDescriptor = $convert.base64Decode( - 'Cg5Db25uZWN0aW9uTG9zdBIOCgJpZBgBIAEoBVICaWQSHQoKZXJyb3JfY29kZRgCIAEoBVIJZXJyb3JDb2Rl'); +/// Descriptor for `GattDisconnectArguments`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List gattDisconnectArgumentsDescriptor = + $convert.base64Decode( + 'ChdHYXR0RGlzY29ubmVjdEFyZ3VtZW50cxIQCgNrZXkYASABKAlSA2tleQ=='); +@$core.Deprecated('Use gattConnectionLostDescriptor instead') +const GattConnectionLost$json = const { + '1': 'GattConnectionLost', + '2': const [ + const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, + const {'1': 'error', '3': 2, '4': 1, '5': 9, '10': 'error'}, + ], +}; + +/// Descriptor for `GattConnectionLost`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List gattConnectionLostDescriptor = $convert.base64Decode( + 'ChJHYXR0Q29ubmVjdGlvbkxvc3QSEAoDa2V5GAEgASgJUgNrZXkSFAoFZXJyb3IYAiABKAlSBWVycm9y'); @$core.Deprecated('Use gattCharacteristicReadArgumentsDescriptor instead') const GattCharacteristicReadArguments$json = const { '1': 'GattCharacteristicReadArguments', '2': const [ - const {'1': 'address', '3': 1, '4': 1, '5': 9, '10': 'address'}, - const {'1': 'service_uuid', '3': 2, '4': 1, '5': 9, '10': 'serviceUuid'}, - const {'1': 'uuid', '3': 3, '4': 1, '5': 9, '10': 'uuid'}, - const {'1': 'id', '3': 4, '4': 1, '5': 5, '10': 'id'}, + const {'1': 'gatt_key', '3': 1, '4': 1, '5': 9, '10': 'gattKey'}, + const {'1': 'service_key', '3': 2, '4': 1, '5': 9, '10': 'serviceKey'}, + const {'1': 'key', '3': 3, '4': 1, '5': 9, '10': 'key'}, ], }; /// Descriptor for `GattCharacteristicReadArguments`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List gattCharacteristicReadArgumentsDescriptor = $convert.base64Decode( - 'Ch9HYXR0Q2hhcmFjdGVyaXN0aWNSZWFkQXJndW1lbnRzEhgKB2FkZHJlc3MYASABKAlSB2FkZHJlc3MSIQoMc2VydmljZV91dWlkGAIgASgJUgtzZXJ2aWNlVXVpZBISCgR1dWlkGAMgASgJUgR1dWlkEg4KAmlkGAQgASgFUgJpZA=='); + 'Ch9HYXR0Q2hhcmFjdGVyaXN0aWNSZWFkQXJndW1lbnRzEhkKCGdhdHRfa2V5GAEgASgJUgdnYXR0S2V5Eh8KC3NlcnZpY2Vfa2V5GAIgASgJUgpzZXJ2aWNlS2V5EhAKA2tleRgDIAEoCVIDa2V5'); @$core.Deprecated('Use gattCharacteristicWriteArgumentsDescriptor instead') const GattCharacteristicWriteArguments$json = const { '1': 'GattCharacteristicWriteArguments', '2': const [ - const {'1': 'address', '3': 1, '4': 1, '5': 9, '10': 'address'}, - const {'1': 'service_uuid', '3': 2, '4': 1, '5': 9, '10': 'serviceUuid'}, - const {'1': 'uuid', '3': 3, '4': 1, '5': 9, '10': 'uuid'}, - const {'1': 'id', '3': 4, '4': 1, '5': 5, '10': 'id'}, - const {'1': 'value', '3': 5, '4': 1, '5': 12, '10': 'value'}, + const {'1': 'gatt_key', '3': 1, '4': 1, '5': 9, '10': 'gattKey'}, + const {'1': 'service_key', '3': 2, '4': 1, '5': 9, '10': 'serviceKey'}, + const {'1': 'key', '3': 3, '4': 1, '5': 9, '10': 'key'}, + const {'1': 'value', '3': 4, '4': 1, '5': 12, '10': 'value'}, const { '1': 'withoutResponse', - '3': 6, + '3': 5, '4': 1, '5': 8, '10': 'withoutResponse' @@ -268,28 +366,29 @@ const GattCharacteristicWriteArguments$json = const { /// Descriptor for `GattCharacteristicWriteArguments`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List gattCharacteristicWriteArgumentsDescriptor = $convert.base64Decode( - 'CiBHYXR0Q2hhcmFjdGVyaXN0aWNXcml0ZUFyZ3VtZW50cxIYCgdhZGRyZXNzGAEgASgJUgdhZGRyZXNzEiEKDHNlcnZpY2VfdXVpZBgCIAEoCVILc2VydmljZVV1aWQSEgoEdXVpZBgDIAEoCVIEdXVpZBIOCgJpZBgEIAEoBVICaWQSFAoFdmFsdWUYBSABKAxSBXZhbHVlEigKD3dpdGhvdXRSZXNwb25zZRgGIAEoCFIPd2l0aG91dFJlc3BvbnNl'); + 'CiBHYXR0Q2hhcmFjdGVyaXN0aWNXcml0ZUFyZ3VtZW50cxIZCghnYXR0X2tleRgBIAEoCVIHZ2F0dEtleRIfCgtzZXJ2aWNlX2tleRgCIAEoCVIKc2VydmljZUtleRIQCgNrZXkYAyABKAlSA2tleRIUCgV2YWx1ZRgEIAEoDFIFdmFsdWUSKAoPd2l0aG91dFJlc3BvbnNlGAUgASgIUg93aXRob3V0UmVzcG9uc2U='); @$core.Deprecated('Use gattCharacteristicNotifyArgumentsDescriptor instead') const GattCharacteristicNotifyArguments$json = const { '1': 'GattCharacteristicNotifyArguments', '2': const [ - const {'1': 'address', '3': 1, '4': 1, '5': 9, '10': 'address'}, - const {'1': 'service_uuid', '3': 2, '4': 1, '5': 9, '10': 'serviceUuid'}, - const {'1': 'uuid', '3': 3, '4': 1, '5': 9, '10': 'uuid'}, - const {'1': 'id', '3': 4, '4': 1, '5': 5, '10': 'id'}, - const {'1': 'state', '3': 5, '4': 1, '5': 8, '10': 'state'}, + const {'1': 'gatt_key', '3': 1, '4': 1, '5': 9, '10': 'gattKey'}, + const {'1': 'service_key', '3': 2, '4': 1, '5': 9, '10': 'serviceKey'}, + const {'1': 'key', '3': 3, '4': 1, '5': 9, '10': 'key'}, + const {'1': 'state', '3': 4, '4': 1, '5': 8, '10': 'state'}, ], }; /// Descriptor for `GattCharacteristicNotifyArguments`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List gattCharacteristicNotifyArgumentsDescriptor = $convert.base64Decode( - 'CiFHYXR0Q2hhcmFjdGVyaXN0aWNOb3RpZnlBcmd1bWVudHMSGAoHYWRkcmVzcxgBIAEoCVIHYWRkcmVzcxIhCgxzZXJ2aWNlX3V1aWQYAiABKAlSC3NlcnZpY2VVdWlkEhIKBHV1aWQYAyABKAlSBHV1aWQSDgoCaWQYBCABKAVSAmlkEhQKBXN0YXRlGAUgASgIUgVzdGF0ZQ=='); + 'CiFHYXR0Q2hhcmFjdGVyaXN0aWNOb3RpZnlBcmd1bWVudHMSGQoIZ2F0dF9rZXkYASABKAlSB2dhdHRLZXkSHwoLc2VydmljZV9rZXkYAiABKAlSCnNlcnZpY2VLZXkSEAoDa2V5GAMgASgJUgNrZXkSFAoFc3RhdGUYBCABKAhSBXN0YXRl'); @$core.Deprecated('Use gattCharacteristicValueDescriptor instead') const GattCharacteristicValue$json = const { '1': 'GattCharacteristicValue', '2': const [ - const {'1': 'id', '3': 3, '4': 1, '5': 5, '10': 'id'}, + const {'1': 'gatt_key', '3': 1, '4': 1, '5': 9, '10': 'gattKey'}, + const {'1': 'service_key', '3': 2, '4': 1, '5': 9, '10': 'serviceKey'}, + const {'1': 'key', '3': 3, '4': 1, '5': 9, '10': 'key'}, const {'1': 'value', '3': 4, '4': 1, '5': 12, '10': 'value'}, ], }; @@ -297,49 +396,47 @@ const GattCharacteristicValue$json = const { /// Descriptor for `GattCharacteristicValue`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List gattCharacteristicValueDescriptor = $convert.base64Decode( - 'ChdHYXR0Q2hhcmFjdGVyaXN0aWNWYWx1ZRIOCgJpZBgDIAEoBVICaWQSFAoFdmFsdWUYBCABKAxSBXZhbHVl'); + 'ChdHYXR0Q2hhcmFjdGVyaXN0aWNWYWx1ZRIZCghnYXR0X2tleRgBIAEoCVIHZ2F0dEtleRIfCgtzZXJ2aWNlX2tleRgCIAEoCVIKc2VydmljZUtleRIQCgNrZXkYAyABKAlSA2tleRIUCgV2YWx1ZRgEIAEoDFIFdmFsdWU='); @$core.Deprecated('Use gattDescriptorReadArgumentsDescriptor instead') const GattDescriptorReadArguments$json = const { '1': 'GattDescriptorReadArguments', '2': const [ - const {'1': 'address', '3': 1, '4': 1, '5': 9, '10': 'address'}, - const {'1': 'service_uuid', '3': 2, '4': 1, '5': 9, '10': 'serviceUuid'}, + const {'1': 'gatt_key', '3': 1, '4': 1, '5': 9, '10': 'gattKey'}, + const {'1': 'service_key', '3': 2, '4': 1, '5': 9, '10': 'serviceKey'}, const { - '1': 'characteristic_uuid', + '1': 'characteristic_key', '3': 3, '4': 1, '5': 9, - '10': 'characteristicUuid' + '10': 'characteristicKey' }, - const {'1': 'uuid', '3': 4, '4': 1, '5': 9, '10': 'uuid'}, - const {'1': 'id', '3': 5, '4': 1, '5': 5, '10': 'id'}, + const {'1': 'key', '3': 4, '4': 1, '5': 9, '10': 'key'}, ], }; /// Descriptor for `GattDescriptorReadArguments`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List gattDescriptorReadArgumentsDescriptor = $convert.base64Decode( - 'ChtHYXR0RGVzY3JpcHRvclJlYWRBcmd1bWVudHMSGAoHYWRkcmVzcxgBIAEoCVIHYWRkcmVzcxIhCgxzZXJ2aWNlX3V1aWQYAiABKAlSC3NlcnZpY2VVdWlkEi8KE2NoYXJhY3RlcmlzdGljX3V1aWQYAyABKAlSEmNoYXJhY3RlcmlzdGljVXVpZBISCgR1dWlkGAQgASgJUgR1dWlkEg4KAmlkGAUgASgFUgJpZA=='); + 'ChtHYXR0RGVzY3JpcHRvclJlYWRBcmd1bWVudHMSGQoIZ2F0dF9rZXkYASABKAlSB2dhdHRLZXkSHwoLc2VydmljZV9rZXkYAiABKAlSCnNlcnZpY2VLZXkSLQoSY2hhcmFjdGVyaXN0aWNfa2V5GAMgASgJUhFjaGFyYWN0ZXJpc3RpY0tleRIQCgNrZXkYBCABKAlSA2tleQ=='); @$core.Deprecated('Use gattDescriptorWriteArgumentsDescriptor instead') const GattDescriptorWriteArguments$json = const { '1': 'GattDescriptorWriteArguments', '2': const [ - const {'1': 'address', '3': 1, '4': 1, '5': 9, '10': 'address'}, - const {'1': 'service_uuid', '3': 2, '4': 1, '5': 9, '10': 'serviceUuid'}, + const {'1': 'gatt_key', '3': 1, '4': 1, '5': 9, '10': 'gattKey'}, + const {'1': 'service_key', '3': 2, '4': 1, '5': 9, '10': 'serviceKey'}, const { - '1': 'characteristic_uuid', + '1': 'characteristic_key', '3': 3, '4': 1, '5': 9, - '10': 'characteristicUuid' + '10': 'characteristicKey' }, - const {'1': 'uuid', '3': 4, '4': 1, '5': 9, '10': 'uuid'}, - const {'1': 'id', '3': 5, '4': 1, '5': 5, '10': 'id'}, - const {'1': 'value', '3': 6, '4': 1, '5': 12, '10': 'value'}, + const {'1': 'key', '3': 4, '4': 1, '5': 9, '10': 'key'}, + const {'1': 'value', '3': 5, '4': 1, '5': 12, '10': 'value'}, ], }; /// Descriptor for `GattDescriptorWriteArguments`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List gattDescriptorWriteArgumentsDescriptor = $convert.base64Decode( - 'ChxHYXR0RGVzY3JpcHRvcldyaXRlQXJndW1lbnRzEhgKB2FkZHJlc3MYASABKAlSB2FkZHJlc3MSIQoMc2VydmljZV91dWlkGAIgASgJUgtzZXJ2aWNlVXVpZBIvChNjaGFyYWN0ZXJpc3RpY191dWlkGAMgASgJUhJjaGFyYWN0ZXJpc3RpY1V1aWQSEgoEdXVpZBgEIAEoCVIEdXVpZBIOCgJpZBgFIAEoBVICaWQSFAoFdmFsdWUYBiABKAxSBXZhbHVl'); + 'ChxHYXR0RGVzY3JpcHRvcldyaXRlQXJndW1lbnRzEhkKCGdhdHRfa2V5GAEgASgJUgdnYXR0S2V5Eh8KC3NlcnZpY2Vfa2V5GAIgASgJUgpzZXJ2aWNlS2V5Ei0KEmNoYXJhY3RlcmlzdGljX2tleRgDIAEoCVIRY2hhcmFjdGVyaXN0aWNLZXkSEAoDa2V5GAQgASgJUgNrZXkSFAoFdmFsdWUYBSABKAxSBXZhbHVl'); diff --git a/lib/src/util.dart b/lib/src/util.dart index ee577b3..25102be 100644 --- a/lib/src/util.dart +++ b/lib/src/util.dart @@ -1,9 +1,12 @@ import 'package:collection/collection.dart'; import 'package:flutter/services.dart'; +import 'message.pb.dart'; + const namespace = 'yanshouwang.dev/bluetooth_low_energy'; const method = MethodChannel('$namespace/method'); const event = EventChannel('$namespace/event'); const equality = ListEquality(); -final stream = event.receiveBroadcastStream(); +final stream = + event.receiveBroadcastStream().map((event) => Message.fromBuffer(event)); diff --git a/lib/src/uuid.dart b/lib/src/uuid.dart index e85ebdf..0bdbd2a 100644 --- a/lib/src/uuid.dart +++ b/lib/src/uuid.dart @@ -20,9 +20,9 @@ class _UUID implements UUID { @override final int hashCode; - _UUID(String str) : this.name(str.nameOfUUID); + _UUID(String str) : this.name(str.uuidName); - _UUID.name(String name) : this.nameValue(name, name.valueOfUUID); + _UUID.name(String name) : this.nameValue(name, name.uuidVaue); _UUID.nameValue(this.name, this.value) : hashCode = equality.hash(value); diff --git a/proto/message.proto b/proto/message.proto index 9dc863a..3cf5801 100644 --- a/proto/message.proto +++ b/proto/message.proto @@ -4,11 +4,18 @@ package dev.yanshouwang.bluetooth_low_energy; message Message { MessageCategory category = 1; oneof value { - bool state = 2; - Discovery discovery = 3; - bool scanning = 4; - ConnectionLost connectionLost = 5; - GattCharacteristicValue characteristicValue = 6; + BluetoothState state = 2; + StartDiscoveryArguments startDiscoveryArguments = 3; + Discovery discovery = 4; + ConnectArguments connectArguments = 5; + GattDisconnectArguments disconnectArguments = 6; + GattConnectionLost connectionLost = 7; + GattCharacteristicReadArguments characteristicReadArguments = 8; + GattCharacteristicWriteArguments characteristicWriteArguments = 9; + GattCharacteristicNotifyArguments characteristicNotifyArguments = 10; + GattCharacteristicValue characteristicValue = 11; + GattDescriptorReadArguments descriptorReadArguments = 12; + GattDescriptorWriteArguments descriptorWriteArguments = 13; } } @@ -17,110 +24,112 @@ message StartDiscoveryArguments { } message Discovery { - string address = 1; + string uuid = 1; sint32 rssi = 2; bytes advertisements = 3; + bool connectable = 4; } message ConnectArguments { - string address = 1; + string uuid = 1; } message GATT { - int32 id = 1; - int32 mtu = 2; + string key = 1; + int32 maximumWriteLength = 2; repeated GattService services = 3; } -message GattDisconnectArguments{ - string address = 1; - int32 id = 2; -} - message GattService { - int32 id = 1; + string key = 1; string uuid = 2; repeated GattCharacteristic characteristics = 3; } message GattCharacteristic { - int32 id = 1; + string key = 1; string uuid = 2; - repeated GattDescriptor descriptors = 3; - bool canRead = 4; - bool canWrite = 5; - bool canWriteWithoutResponse = 6; - bool canNotify = 7; + bool canRead = 3; + bool canWrite = 4; + bool canWriteWithoutResponse = 5; + bool canNotify = 6; + repeated GattDescriptor descriptors = 7; } message GattDescriptor { - int32 id = 1; + string key = 1; string uuid = 2; } -message ConnectionLost { - int32 id = 1; - int32 error_code = 2; +message GattDisconnectArguments{ + string key = 1; +} + +message GattConnectionLost { + string key = 1; + string error = 2; } message GattCharacteristicReadArguments { - string address = 1; - string service_uuid = 2; - string uuid = 3; - int32 id = 4; + string gatt_key = 1; + string service_key = 2; + string key = 3; } message GattCharacteristicWriteArguments { - string address = 1; - string service_uuid = 2; - string uuid = 3; - int32 id = 4; - bytes value = 5; - bool withoutResponse = 6; + string gatt_key = 1; + string service_key = 2; + string key = 3; + bytes value = 4; + bool withoutResponse = 5; } message GattCharacteristicNotifyArguments{ - string address = 1; - string service_uuid = 2; - string uuid = 3; - int32 id = 4; - bool state = 5; + string gatt_key = 1; + string service_key = 2; + string key = 3; + bool state = 4; } message GattCharacteristicValue { - int32 id = 3; + string gatt_key = 1; + string service_key = 2; + string key = 3; bytes value = 4; } message GattDescriptorReadArguments { - string address = 1; - string service_uuid = 2; - string characteristic_uuid = 3; - string uuid = 4; - int32 id = 5; + string gatt_key = 1; + string service_key = 2; + string characteristic_key = 3; + string key = 4; } message GattDescriptorWriteArguments { - string address = 1; - string service_uuid = 2; - string characteristic_uuid = 3; - string uuid = 4; - int32 id = 5; - bytes value = 6; + string gatt_key = 1; + string service_key = 2; + string characteristic_key = 3; + string key = 4; + bytes value = 5; } enum MessageCategory { - BLUETOOTH_AVAILABLE =0; - BLUETOOTH_STATE = 1; - CENTRAL_START_DISCOVERY = 2; - CENTRAL_STOP_DISCOVERY = 3; - CENTRAL_DISCOVERED = 4; - CENTRAL_CONNECT = 5; - GATT_DISCONNECT = 6; - GATT_CONNECTION_LOST = 7; - GATT_CHARACTERISTIC_READ = 8; - GATT_CHARACTERISTIC_WRITE = 9; - GATT_CHARACTERISTIC_NOTIFY = 10; - GATT_DESCRIPTOR_READ = 11; - GATT_DESCRIPTOR_WRITE = 12; + BLUETOOTH_STATE = 0; + CENTRAL_START_DISCOVERY = 1; + CENTRAL_STOP_DISCOVERY = 2; + CENTRAL_DISCOVERED = 3; + CENTRAL_CONNECT = 4; + GATT_DISCONNECT = 5; + GATT_CONNECTION_LOST = 6; + GATT_CHARACTERISTIC_READ = 7; + GATT_CHARACTERISTIC_WRITE = 8; + GATT_CHARACTERISTIC_NOTIFY = 9; + GATT_DESCRIPTOR_READ = 10; + GATT_DESCRIPTOR_WRITE = 11; +} + +enum BluetoothState { + UNSUPPORTED = 0; + POWERED_OFF = 1; + POWERED_ON = 2; } \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 9adced2..668283b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,63 +5,63 @@ packages: dependency: transitive description: name: async - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.6.1" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" characters: dependency: transitive description: name: characters - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" charcode: dependency: transitive description: name: charcode - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" clock: dependency: transitive description: name: clock - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" collection: dependency: "direct main" description: name: collection - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.15.0" convert: dependency: "direct main" description: name: convert - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" fixnum: dependency: transitive description: name: fixnum - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.0" flutter: @@ -78,35 +78,35 @@ packages: dependency: transitive description: name: matcher - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.12.10" meta: dependency: transitive description: name: meta - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.0" path: dependency: transitive description: name: path - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.8.0" pedantic: dependency: "direct dev" description: name: pedantic - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "1.11.0" + version: "1.11.1" protobuf: dependency: "direct main" description: name: protobuf - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" sky_engine: @@ -118,56 +118,56 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.8.1" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" test_api: dependency: transitive description: name: test_api - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.3.0" typed_data: dependency: transitive description: name: typed_data - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.0" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" sdks: diff --git a/pubspec.yaml b/pubspec.yaml index 91d6b8b..2a04525 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: bluetooth_low_energy description: A bluetooth low energy plugin for flutter, which can be used to develope central role apps. -version: 0.0.2 +version: 0.1.0 homepage: https://github.com/yanshouwang/bluetooth_low_energy publish_to: https://pub.dev diff --git a/test/bluetooth_low_energy_test.dart b/test/bluetooth_low_energy_test.dart index 89e4316..91a3ece 100644 --- a/test/bluetooth_low_energy_test.dart +++ b/test/bluetooth_low_energy_test.dart @@ -14,66 +14,59 @@ void main() { calls.clear(); method.setMockMethodCallHandler((call) async { calls.add(call); - if (call.method == proto.MessageCategory.BLUETOOTH_AVAILABLE.name) { - return true; - } else if (call.method == proto.MessageCategory.BLUETOOTH_STATE.name) { - return true; - } else if (call.method == - proto.MessageCategory.CENTRAL_START_DISCOVERY.name) { - return null; - } else if (call.method == - proto.MessageCategory.CENTRAL_STOP_DISCOVERY.name) { - return null; - } else if (call.method == proto.MessageCategory.CENTRAL_CONNECT.name) { - final descriptors = [ - proto.GattDescriptor( - id: 4000, - uuid: '2900', - ), - ]; - final characteristics = [ - proto.GattCharacteristic( - id: 3000, - uuid: '2A00', - descriptors: descriptors, - canRead: true, - canWrite: true, - canWriteWithoutResponse: true, - canNotify: true, - ), - ]; - final services = [ - proto.GattService( - id: 2000, - uuid: '1800', - characteristics: characteristics, - ), - ]; - final gatt = proto.GATT( - id: 1000, - mtu: 23, - services: services, - ); - return gatt.writeToBuffer(); - } else if (call.method == proto.MessageCategory.GATT_DISCONNECT.name) { - return null; - } else if (call.method == - proto.MessageCategory.GATT_CHARACTERISTIC_READ.name) { - return [0x01, 0x02, 0x03, 0x04, 0x05]; - } else if (call.method == - proto.MessageCategory.GATT_CHARACTERISTIC_WRITE.name) { - return null; - } else if (call.method == - proto.MessageCategory.GATT_CHARACTERISTIC_NOTIFY.name) { - return null; - } else if (call.method == - proto.MessageCategory.GATT_DESCRIPTOR_READ.name) { - return [0x05, 0x04, 0x03, 0x02, 0x01]; - } else if (call.method == - proto.MessageCategory.GATT_DESCRIPTOR_WRITE.name) { - return null; - } else { - throw UnimplementedError(); + final message = proto.Message.fromBuffer(call.arguments); + switch (message.category) { + case proto.MessageCategory.BLUETOOTH_STATE: + return proto.BluetoothState.POWERED_ON.value; + case proto.MessageCategory.CENTRAL_START_DISCOVERY: + return null; + case proto.MessageCategory.CENTRAL_STOP_DISCOVERY: + return null; + case proto.MessageCategory.CENTRAL_CONNECT: + final descriptors = [ + proto.GattDescriptor( + key: '0', + uuid: '2900', + ), + ]; + final characteristics = [ + proto.GattCharacteristic( + key: '0', + uuid: '2A00', + descriptors: descriptors, + canRead: true, + canWrite: true, + canWriteWithoutResponse: true, + canNotify: true, + ), + ]; + final services = [ + proto.GattService( + key: '0', + uuid: '1800', + characteristics: characteristics, + ), + ]; + final gatt = proto.GATT( + key: '0', + maximumWriteLength: 20, + services: services, + ); + return gatt.writeToBuffer(); + case proto.MessageCategory.GATT_DISCONNECT: + return null; + case proto.MessageCategory.GATT_CHARACTERISTIC_READ: + return [0x01, 0x02, 0x03, 0x04, 0x05]; + case proto.MessageCategory.GATT_CHARACTERISTIC_WRITE: + return null; + case proto.MessageCategory.GATT_CHARACTERISTIC_NOTIFY: + return null; + case proto.MessageCategory.GATT_DESCRIPTOR_READ: + return [0x05, 0x04, 0x03, 0x02, 0x01]; + case proto.MessageCategory.GATT_DESCRIPTOR_WRITE: + return null; + default: + throw UnimplementedError(); } }); event.setMockMethodCallHandler((call) async { @@ -81,7 +74,7 @@ void main() { case 'listen': final state = proto.Message( category: proto.MessageCategory.BLUETOOTH_STATE, - state: false, + state: proto.BluetoothState.POWERED_OFF, ).writeToBuffer(); await ServicesBinding.instance!.defaultBinaryMessenger .handlePlatformMessage( @@ -92,7 +85,7 @@ void main() { final discovery = proto.Message( category: proto.MessageCategory.CENTRAL_DISCOVERED, discovery: proto.Discovery( - address: 'aa:bb:cc:dd:ee:ff', + uuid: 'AABB', rssi: -50, advertisements: [0x07, 0xff, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa], ), @@ -105,9 +98,9 @@ void main() { ); final connectionLost = proto.Message( category: proto.MessageCategory.GATT_CONNECTION_LOST, - connectionLost: proto.ConnectionLost( - id: 1000, - errorCode: 19, + connectionLost: proto.GattConnectionLost( + key: '0', + error: 'Connection lost.', ), ).writeToBuffer(); await ServicesBinding.instance!.defaultBinaryMessenger @@ -119,7 +112,9 @@ void main() { final characteristicValue = proto.Message( category: proto.MessageCategory.GATT_CHARACTERISTIC_NOTIFY, characteristicValue: proto.GattCharacteristicValue( - id: 3000, + gattKey: '0', + serviceKey: '0', + key: '0', value: [0x0A, 0x0B, 0x0C, 0x0D, 0x0E], ), ).writeToBuffer(); @@ -142,33 +137,19 @@ void main() { event.setMockMethodCallHandler(null); }); - test( - '${proto.MessageCategory.BLUETOOTH_AVAILABLE}', - () async { - final actual = await central.available; - expect(actual, true); - expect( - calls, - [ - isMethodCall( - proto.MessageCategory.BLUETOOTH_AVAILABLE.name, - arguments: null, - ), - ], - ); - }, - ); test( '${proto.MessageCategory.BLUETOOTH_STATE}', () async { final actual = await central.state; - expect(actual, true); + expect(actual, BluetoothState.poweredOn); expect( calls, [ isMethodCall( - proto.MessageCategory.BLUETOOTH_STATE.name, - arguments: null, + '', + arguments: proto.Message( + category: proto.MessageCategory.BLUETOOTH_STATE, + ).writeToBuffer(), ), ], ); @@ -178,7 +159,7 @@ void main() { '${proto.MessageCategory.BLUETOOTH_STATE} EVENT', () async { final actual = await central.stateChanged.first; - expect(actual, false); + expect(actual, BluetoothState.poweredOff); }, ); test( @@ -190,9 +171,12 @@ void main() { calls, [ isMethodCall( - proto.MessageCategory.CENTRAL_START_DISCOVERY.name, - arguments: proto.StartDiscoveryArguments( - services: services.map((uuid) => uuid.name), + '', + arguments: proto.Message( + category: proto.MessageCategory.CENTRAL_START_DISCOVERY, + startDiscoveryArguments: proto.StartDiscoveryArguments( + services: services.map((uuid) => uuid.name), + ), ).writeToBuffer(), ), ], @@ -207,8 +191,10 @@ void main() { calls, [ isMethodCall( - proto.MessageCategory.CENTRAL_STOP_DISCOVERY.name, - arguments: null, + '', + arguments: proto.Message( + category: proto.MessageCategory.CENTRAL_STOP_DISCOVERY, + ).writeToBuffer(), ), ], ); @@ -218,8 +204,8 @@ void main() { '${proto.MessageCategory.CENTRAL_DISCOVERED} EVENT', () async { final actual = await central.discovered.first; - final address = MAC('aa:bb:cc:dd:ee:ff'); - expect(actual.address, address); + final uuid = UUID('AABB'); + expect(actual.uuid, uuid); final rssi = -50; expect(actual.rssi, rssi); final advertisements = { @@ -231,9 +217,9 @@ void main() { test( '${proto.MessageCategory.CENTRAL_CONNECT}', () async { - final address = MAC('aa:bb:cc:dd:ee:ff'); - final actual = await central.connect(address); - expect(actual.mtu, 23); + final uuid = UUID('AABB'); + final actual = await central.connect(uuid); + expect(actual.maximumWriteLength, 20); expect(actual.services.length, 1); final service = actual.services.values.first; expect(service.uuid, UUID('1800')); @@ -251,9 +237,12 @@ void main() { calls, [ isMethodCall( - proto.MessageCategory.CENTRAL_CONNECT.name, - arguments: proto.ConnectArguments( - address: address.name, + '', + arguments: proto.Message( + category: proto.MessageCategory.CENTRAL_CONNECT, + connectArguments: proto.ConnectArguments( + uuid: uuid.name, + ), ).writeToBuffer(), ), ], @@ -263,23 +252,26 @@ void main() { test( '${proto.MessageCategory.GATT_DISCONNECT}', () async { - final address = MAC('aa:bb:cc:dd:ee:ff'); - final gatt = await central.connect(address); + final uuid = UUID('AABB'); + final gatt = await central.connect(uuid); await gatt.disconnect(); expect( calls, [ isMethodCall( - proto.MessageCategory.CENTRAL_CONNECT.name, - arguments: proto.ConnectArguments( - address: address.name, + '', + arguments: proto.Message( + category: proto.MessageCategory.CENTRAL_CONNECT, + connectArguments: proto.ConnectArguments( + uuid: uuid.name, + ), ).writeToBuffer(), ), isMethodCall( - proto.MessageCategory.GATT_DISCONNECT.name, - arguments: proto.GattDisconnectArguments( - address: address.name, - id: 1000, + '', + arguments: proto.Message( + category: proto.MessageCategory.GATT_DISCONNECT, + disconnectArguments: proto.GattDisconnectArguments(key: '0'), ).writeToBuffer(), ), ], @@ -289,17 +281,32 @@ void main() { test( '${proto.MessageCategory.GATT_CONNECTION_LOST}', () async { - final address = MAC('aa:bb:cc:dd:ee:ff'); - final gatt = await central.connect(address); + final uuid = UUID('AABB'); + final gatt = await central.connect(uuid); final actual = await gatt.connectionLost.first; - expect(actual, 19); + final matcher = Exception('Connection lost.'); + expect('$actual', '$matcher'); + expect( + calls, + [ + isMethodCall( + '', + arguments: proto.Message( + category: proto.MessageCategory.CENTRAL_CONNECT, + connectArguments: proto.ConnectArguments( + uuid: uuid.name, + ), + ).writeToBuffer(), + ), + ], + ); }, ); test( '${proto.MessageCategory.GATT_CHARACTERISTIC_READ}', () async { - final address = MAC('aa:bb:cc:dd:ee:ff'); - final gatt = await central.connect(address); + final uuid = UUID('AABB'); + final gatt = await central.connect(uuid); final service = gatt.services.values.first; final characteristic = service.characteristics.values.first; final actual = await characteristic.read(); @@ -308,18 +315,24 @@ void main() { calls, [ isMethodCall( - proto.MessageCategory.CENTRAL_CONNECT.name, - arguments: proto.ConnectArguments( - address: address.name, + '', + arguments: proto.Message( + category: proto.MessageCategory.CENTRAL_CONNECT, + connectArguments: proto.ConnectArguments( + uuid: uuid.name, + ), ).writeToBuffer(), ), isMethodCall( - proto.MessageCategory.GATT_CHARACTERISTIC_READ.name, - arguments: proto.GattCharacteristicReadArguments( - address: address.name, - serviceUuid: service.uuid.name, - uuid: characteristic.uuid.name, - id: 3000, + '', + arguments: proto.Message( + category: proto.MessageCategory.GATT_CHARACTERISTIC_READ, + characteristicReadArguments: + proto.GattCharacteristicReadArguments( + gattKey: '0', + serviceKey: '0', + key: '0', + ), ).writeToBuffer(), ), ], @@ -329,8 +342,8 @@ void main() { test( '${proto.MessageCategory.GATT_CHARACTERISTIC_WRITE}', () async { - final address = MAC('aa:bb:cc:dd:ee:ff'); - final gatt = await central.connect(address); + final uuid = UUID('AABB'); + final gatt = await central.connect(uuid); final service = gatt.services.values.first; final characteristic = service.characteristics.values.first; final value = [0x01, 0x02, 0x03, 0x04, 0x05]; @@ -339,20 +352,26 @@ void main() { calls, [ isMethodCall( - proto.MessageCategory.CENTRAL_CONNECT.name, - arguments: proto.ConnectArguments( - address: address.name, + '', + arguments: proto.Message( + category: proto.MessageCategory.CENTRAL_CONNECT, + connectArguments: proto.ConnectArguments( + uuid: uuid.name, + ), ).writeToBuffer(), ), isMethodCall( - proto.MessageCategory.GATT_CHARACTERISTIC_WRITE.name, - arguments: proto.GattCharacteristicWriteArguments( - address: address.name, - serviceUuid: service.uuid.name, - uuid: characteristic.uuid.name, - id: 3000, - value: value, - withoutResponse: true, + '', + arguments: proto.Message( + category: proto.MessageCategory.GATT_CHARACTERISTIC_WRITE, + characteristicWriteArguments: + proto.GattCharacteristicWriteArguments( + gattKey: '0', + serviceKey: '0', + key: '0', + value: value, + withoutResponse: true, + ), ).writeToBuffer(), ), ], @@ -362,8 +381,8 @@ void main() { test( '${proto.MessageCategory.GATT_CHARACTERISTIC_NOTIFY}', () async { - final address = MAC('aa:bb:cc:dd:ee:ff'); - final gatt = await central.connect(address); + final uuid = UUID('AABB'); + final gatt = await central.connect(uuid); final service = gatt.services.values.first; final characteristic = service.characteristics.values.first; await characteristic.notify(true); @@ -371,19 +390,25 @@ void main() { calls, [ isMethodCall( - proto.MessageCategory.CENTRAL_CONNECT.name, - arguments: proto.ConnectArguments( - address: address.name, + '', + arguments: proto.Message( + category: proto.MessageCategory.CENTRAL_CONNECT, + connectArguments: proto.ConnectArguments( + uuid: uuid.name, + ), ).writeToBuffer(), ), isMethodCall( - proto.MessageCategory.GATT_CHARACTERISTIC_NOTIFY.name, - arguments: proto.GattCharacteristicNotifyArguments( - address: address.name, - serviceUuid: service.uuid.name, - uuid: characteristic.uuid.name, - id: 3000, - state: true, + '', + arguments: proto.Message( + category: proto.MessageCategory.GATT_CHARACTERISTIC_NOTIFY, + characteristicNotifyArguments: + proto.GattCharacteristicNotifyArguments( + gattKey: '0', + serviceKey: '0', + key: '0', + state: true, + ), ).writeToBuffer(), ), ], @@ -393,19 +418,33 @@ void main() { test( '${proto.MessageCategory.GATT_CHARACTERISTIC_NOTIFY} EVENT', () async { - final address = MAC('aa:bb:cc:dd:ee:ff'); - final gatt = await central.connect(address); + final uuid = UUID('AABB'); + final gatt = await central.connect(uuid); final service = gatt.services.values.first; final characteristic = service.characteristics.values.first; final value = await characteristic.valueChanged.first; expect(value, [0x0A, 0x0B, 0x0C, 0x0D, 0x0E]); + expect( + calls, + [ + isMethodCall( + '', + arguments: proto.Message( + category: proto.MessageCategory.CENTRAL_CONNECT, + connectArguments: proto.ConnectArguments( + uuid: uuid.name, + ), + ).writeToBuffer(), + ), + ], + ); }, ); test( '${proto.MessageCategory.GATT_DESCRIPTOR_READ}', () async { - final address = MAC('aa:bb:cc:dd:ee:ff'); - final gatt = await central.connect(address); + final uuid = UUID('AABB'); + final gatt = await central.connect(uuid); final service = gatt.services.values.first; final characteristic = service.characteristics.values.first; final descriptor = characteristic.descriptors.values.first; @@ -415,19 +454,24 @@ void main() { calls, [ isMethodCall( - proto.MessageCategory.CENTRAL_CONNECT.name, - arguments: proto.ConnectArguments( - address: address.name, + '', + arguments: proto.Message( + category: proto.MessageCategory.CENTRAL_CONNECT, + connectArguments: proto.ConnectArguments( + uuid: uuid.name, + ), ).writeToBuffer(), ), isMethodCall( - proto.MessageCategory.GATT_DESCRIPTOR_READ.name, - arguments: proto.GattDescriptorReadArguments( - address: address.name, - serviceUuid: service.uuid.name, - characteristicUuid: characteristic.uuid.name, - uuid: descriptor.uuid.name, - id: 4000, + '', + arguments: proto.Message( + category: proto.MessageCategory.GATT_DESCRIPTOR_READ, + descriptorReadArguments: proto.GattDescriptorReadArguments( + gattKey: '0', + serviceKey: '0', + characteristicKey: '0', + key: '0', + ), ).writeToBuffer(), ), ], @@ -437,8 +481,8 @@ void main() { test( '${proto.MessageCategory.GATT_DESCRIPTOR_WRITE}', () async { - final address = MAC('aa:bb:cc:dd:ee:ff'); - final gatt = await central.connect(address); + final uuid = UUID('AABB'); + final gatt = await central.connect(uuid); final service = gatt.services.values.first; final characteristic = service.characteristics.values.first; final descriptor = characteristic.descriptors.values.first; @@ -448,20 +492,25 @@ void main() { calls, [ isMethodCall( - proto.MessageCategory.CENTRAL_CONNECT.name, - arguments: proto.ConnectArguments( - address: address.name, + '', + arguments: proto.Message( + category: proto.MessageCategory.CENTRAL_CONNECT, + connectArguments: proto.ConnectArguments( + uuid: uuid.name, + ), ).writeToBuffer(), ), isMethodCall( - proto.MessageCategory.GATT_DESCRIPTOR_WRITE.name, - arguments: proto.GattDescriptorWriteArguments( - address: address.name, - serviceUuid: service.uuid.name, - characteristicUuid: characteristic.uuid.name, - uuid: descriptor.uuid.name, - id: 4000, - value: value, + '', + arguments: proto.Message( + category: proto.MessageCategory.GATT_DESCRIPTOR_WRITE, + descriptorWriteArguments: proto.GattDescriptorWriteArguments( + gattKey: '0', + serviceKey: '0', + characteristicKey: '0', + key: '0', + value: value, + ), ).writeToBuffer(), ), ],