dotintent / react-native-ble-plx

React Native BLE library
Apache License 2.0
2.97k stars 498 forks source link

BLE device automatically disconnecting #1197

Open chris-goodchild opened 1 month ago

chris-goodchild commented 1 month ago

Prerequisites

Question

Hi, I'm not certain this is a bug but I'm also unable to reproduce this issue using another client, so here goes.

On iOS, I'm seeing the BLE device disconnect very quickly after pairing. The sequence of events is as follows:

  1. Initialize BLE
  2. Scan for devices
  3. Select the device
  4. Connect and stop scan
  5. Detect all services and characteristics for the device
  6. Write characteristic to obtain a list of available WiFi SSIDs
  7. Write characteristic to send WiFi credentials
  8. Disconnect the device

Unless I trigger the first write immediately the device disconnects. It seems to disconnect unless there's an operation almost immediately which seems odd. The docs don't suggest there's a need to keep the connection open by any means, so am I missing something? When we test the BLE device using another client performing the same steps it works fine, no disconnects. It's only when I use this library it drops out. I've seen other issues related to Android but nothing for iOS.

madej10 commented 1 month ago

@chris-goodchild thank you for reporting the issue, we're adding it to the pipeline. We'll let you know if we're seeing the same.

chris-goodchild commented 1 month ago

Thanks so much @madej10 - just to add some additional findings:

More often than not, as I am setting up a monitor after discovering services and characteristics, I'm also seeing an error Characteristic [UUID] not found. I have double-checked my service and characteristic UUIDs are present and correct, so I assume this error is a result of the device disconnecting?

FlorinPopaPersonal commented 1 month ago

I am encountering a similar behaviour on android. The ble device disconnects after a few seconds without activity

madej10 commented 1 month ago

Thanks @FlorinPopaPersonal we're preparing a release, after which we'll look into this issue on both platforms.

madej10 commented 1 month ago

Hi all, we've started seeing the issue and are looking for a way to fix it. Thanks for your patience and for bringing it to our attention.

PierreHenri123 commented 1 month ago

Hello. I got the same issue, both Android and Ios. Thanks for your investigating. It will be really appreciated.

Franco-Julian commented 1 month ago

Hi plz solved this issue, we have to fix the app in production!

joanmarcs commented 1 month ago

The problem persist in 3.2.0. We only encounter that problem in Android 14. Not in Android 12.

Our app is able to connect to the device. When we are connected, we ask for the state of the device every second. It works fine in Android 12 as we can get the state unlimitedly but in Android 14 we get disconnected after few seconds. Also, the connection is not as estable as it is when we make the connection in Android 12, it is in a slow way and with some errors between but it eventually connects.

madej10 commented 3 weeks ago

hi all, this is our top priority - hopefully we can at least get you an update today. Thank you all for your patience

joanmarcs commented 3 weeks ago

We have found some Android 14 devices that are working fine, seems to be a problem about samsungs and pixels.

intent-kacper-cyranowski commented 3 weeks ago

Hello everyone, I was investigating this issue and I have to admit that I'm having trouble reproducing this error. In the case of iOS, I once managed to reach a situation where an error occurred when connecting to the device, but that was when I started trying to force its occurrence by repeatedly resetting the BLE instance and performing operations on it during the resets 😕. I also checked it on Android and standard flow also causes no problems. I tried to reproduce this problem according to the scenario suggested in the first post:

Despite waiting between each step, nothing breaks and everything works as intended. So I have few questions: Do you have any additional suggestions on what I should do to reproduce this problem? How (and whether) do you use BLE instance destroy function in your applications? How long do your apps stay active? How often are requests sent to the device (how long is the interval between subsequent requests)? Do we assume that the user turns off (moves to background) the application after connecting?

a396901990 commented 1 week ago

we had a similar issue with Samsung, but we are using v2.0.3

amit13091992 commented 1 week ago

Facing same issue on Android and iOS as well. Can anyone update on fixing this issue?

madej10 commented 4 days ago

@a396901990 @amit13091992 could you please reply to the questions posted by @intent-kacper-cyranowski in the previous comment to help us narrow it down:

Despite waiting between each step, nothing breaks and everything works as intended. So I have few questions: Do you have any additional suggestions on what I should do to reproduce this problem? How (and whether) do you use BLE instance destroy function in your applications? How long do your apps stay active? How often are requests sent to the device (how long is the interval between subsequent requests)? Do we assume that the user turns off (moves to background) the application after connecting?

Lesha1213 commented 3 days ago

Also have this problem on Samsung. May be the reason is https://www.youtube.com/watch?v=KH0tryRDhMw ?

joanmarcs commented 3 days ago

Hi! I am trying to respond your questions. As I have said older comments, it occurs only in ANDROID and only in some Android 14 devices. The same code works in devices with old Android versions and also some devices with Android 14.

Do you have any additional suggestions on what I should do to reproduce this problem?

I am explaining how our app works. Our app allows our clients to control our electric vehicle chargers. We connect to the device:


const connectToDevice = async (device: Device): Promise => { try { const options = { timeout: 5000, }; if (Platform.OS === 'android') { const deviceConnection = await manager.connectToDevice( device.id, ); let allServicesAndCharacteristics = await deviceConnection.discoverAllServicesAndCharacteristics(); setConnectedDevice(allServicesAndCharacteristics); console.log('CONNECTED ANDROID'); return true; } else { const deviceConnection = await manager.connectToDevice( device.id, options, ); let allServicesAndCharacteristics = await deviceConnection.discoverAllServicesAndCharacteristics(); setConnectedDevice(allServicesAndCharacteristics); console.log('CONNECTED IOS'); return true; } } catch (error) { console.log('Failure to connect', error); return false; } };


That connection, in the devices that are failing, is not as fluent as in the devices that work fine as we need some retries, but it finally connects. We have tried with timeout, without timeout, with a big timeout, ... nothing has worked.

The we begin asking the charger state. We ask it every second. We have a method that listens all the charger's responses and this is the way we ask for the state:


const getStateBleDevice = (device: Device) => simpleCommandRequestToCharger( manager, device, selbaServiceUUID, getState, null, 'getState', );


export const simpleCommandRequestToCharger = async ( manager: BleManager, device: Device, selbaServiceUUID: string, selbaCommand: any, param: boolean | number | null, selbaCommandStringName: string, secondParam?: boolean | number | null, ) => { const deviceCharacteristics = await manager.characteristicsForDevice( device.id, selbaServiceUUID, );

const command = selbaCommand(param, secondParam); const arrayCommand = new Uint8Array(command); const commandBase64 = fromByteArray(arrayCommand);

deviceCharacteristics.forEach(async charactheristic => { try { await charactheristic.writeWithoutResponse(commandBase64); } catch (error) { console.log(${selbaCommandStringName} error -->, error); } }); };


In the phones that works fine, we can ask the state for an unlimited time but in the phones that don't work we end up getting this error: https://github.com/dotintent/react-native-ble-plx/issues/1157#issuecomment-2148997260 after asking the state 4 or 5 times. We are close to the charger and there is no more interaction for our part, we only let the phone to ask the state.

How (and whether) do you use BLE instance destroy function in your applications?

Do you mean how we disconnect from device? The user can close the connection.

How long do your apps stay active?

If it works, it can be active for an unlimited time.

How often are requests sent to the device (how long is the interval between subsequent requests)?

2000 milis

Do we assume that the user turns off (moves to background) the application after connecting?

the application is in foreground all the time. Even we have blocked the autolock of the screen.

Edit: I am unable to put the code in the correct format, sorry

intent-kacper-cyranowski commented 2 days ago

Hi @joanmarcs I tried to reproduce your issue using https://github.com/dotintent/react-native-ble-plx/blob/fix/1197_device_automatically_disconnecting/example/src/screens/MainStack/DisconnectBeforeWrite/DisconnectBeforeWrite.tsx without setting the timeout on android 14 device with no success.

The message you received in #1157 (comment) means only that connection was successfully closed, the rest of the error is related to unhandled promise.

Because problem seems to be device specific I would need of you to setLogLevel to LogLevel.Verbose, and provide filtered logs from Logcat, gathered on a device with the issue. The filters should be package:mine (tag:BluetoothGatt | tag:ReactNativeJS | RxBle)

I would also ask you to create separate issue so we could continue our conversation there, as this one is related to iOS.

eliaslecomte commented 1 day ago

For me that is:

2024-07-04 09:30:07.340  9402-9797  RxBle#Clie...ationQueue com...redacted.app  D  QUEUED   ScanOperationApi21(56802824)
2024-07-04 09:30:07.341  9402-9815  RxBle#Clie...ationQueue com...redacted.app  D  STARTED  ScanOperationApi21(56802824)
2024-07-04 09:30:07.342  9402-9815  RxBle#Clie...ationQueue com...redacted.app  I  RUNNING  ScanOperationApi21{ANY_MUST_MATCH -> nativeFilters=[BluetoothLeScanFilter [mDeviceName=null, MAC=null, mUuid=..., mUuidMask=null, mSolicitedUuid=null, mSolicitedUuidMask=null, mServiceDataUuid=null, mServiceData=null, mServiceDataMask=null, mManufacturerId=-1, mManufacturerData=null, mManufacturerDataMask=null], BluetoothLeScanFilter [mDeviceName=null, MAC=null, mUuid=..., mUuidMask=null, mSolicitedUuid=null, mSolicitedUuidMask=null, mServiceDataUuid=null, mServiceData=null, mServiceDataMask=null, mManufacturerId=-1, mManufacturerData=null, mManufacturerDataMask=null]]}
2024-07-04 09:30:07.343  9402-14433 RxBle#ScanOperation     com...redacted.app  I  Scan operation is requested to start.
2024-07-04 09:30:07.344  9402-14433 RxBle#Scan...ationApi21 com...redacted.app  D  No library side filtering —> debug logs of scanned devices disabled
2024-07-04 09:30:07.351  9402-9815  RxBle#Clie...ationQueue com...redacted.app  D  FINISHED ScanOperationApi21(56802824) in 11 ms
2024-07-04 09:30:07.396  9402-9402  RxBle#Client            com...redacted.app  I  ScanResult{bleDevice=RxBleDeviceImpl{MAC='XX:XX:XX:XX:XX:XX', name=BRC1H 43:23:99}, rssi=-68, timestampNanos=852829057810892, callbackType=CALLBACK_TYPE_ALL_MATCHES, scanRecord=[...], isConnectable=CONNECTABLE}
2024-07-04 09:30:07.413  9402-9402  RxBle#Client            com...redacted.app  I  ScanResult{bleDevice=RxBleDeviceImpl{MAC='XX:XX:XX:XX:XX:XX', name=BRC1H 43:23:99}, rssi=-68, timestampNanos=852829085807246, callbackType=CALLBACK_TYPE_ALL_MATCHES, scanRecord=[...], isConnectable=CONNECTABLE}
2024-07-04 09:30:07.453  9402-9402  RxBle#Client            com...redacted.app  I  ScanResult{bleDevice=RxBleDeviceImpl{MAC='XX:XX:XX:XX:XX:XX', name=BRC1H 43:23:99}, rssi=-68, timestampNanos=852829124941101, callbackType=CALLBACK_TYPE_ALL_MATCHES, scanRecord=[...], isConnectable=CONNECTABLE}
2024-07-04 09:30:07.499  9402-9402  RxBle#Client            com...redacted.app  I  ScanResult{bleDevice=RxBleDeviceImpl{MAC='XX:XX:XX:XX:XX:XX', name=BRC1H 43:23:99}, rssi=-68, timestampNanos=852829170055684, callbackType=CALLBACK_TYPE_ALL_MATCHES, scanRecord=[...], isConnectable=CONNECTABLE}
2024-07-04 09:30:07.536  9402-9402  RxBle#Client            com...redacted.app  I  ScanResult{bleDevice=RxBleDeviceImpl{MAC='XX:XX:XX:XX:XX:XX', name=BRC1H 43:23:99}, rssi=-67, timestampNanos=852829208258601, callbackType=CALLBACK_TYPE_ALL_MATCHES, scanRecord=[...], isConnectable=CONNECTABLE}
2024-07-04 09:30:08.472  9402-9402  RxBle#Client            com...redacted.app  I  ScanResult{bleDevice=RxBleDeviceImpl{MAC='XX:XX:XX:XX:XX:XX', name=BRC1H 43:23:99}, rssi=-60, timestampNanos=852830139733184, callbackType=CALLBACK_TYPE_ALL_MATCHES, scanRecord=[...], isConnectable=CONNECTABLE}
2024-07-04 09:30:09.358  9402-9402  RxBle#Client            com...redacted.app  I  ScanResult{bleDevice=RxBleDeviceImpl{MAC='XX:XX:XX:XX:XX:XX', name=BRC1H 43:23:99}, rssi=-54, timestampNanos=852831027069121, callbackType=CALLBACK_TYPE_ALL_MATCHES, scanRecord=[...], isConnectable=CONNECTABLE}
2024-07-04 09:30:09.389  9402-9402  RxBle#Client            com...redacted.app  I  ScanResult{bleDevice=RxBleDeviceImpl{MAC='XX:XX:XX:XX:XX:XX', name=BRC1H 43:23:99}, rssi=-53, timestampNanos=852831052887350, callbackType=CALLBACK_TYPE_ALL_MATCHES, scanRecord=[...], isConnectable=CONNECTABLE}
2024-07-04 09:30:09.463  9402-9402  RxBle#Client            com...redacted.app  I  ScanResult{bleDevice=RxBleDeviceImpl{MAC='XX:XX:XX:XX:XX:XX', name=BRC1H 43:23:99}, rssi=-54, timestampNanos=852831130719329, callbackType=CALLBACK_TYPE_ALL_MATCHES, scanRecord=[...], isConnectable=CONNECTABLE}
2024-07-04 09:30:09.515  9402-9402  RxBle#Client            com...redacted.app  I  ScanResult{bleDevice=RxBleDeviceImpl{MAC='XX:XX:XX:XX:XX:XX', name=BRC1H 43:23:99}, rssi=-54, timestampNanos=852831180362141, callbackType=CALLBACK_TYPE_ALL_MATCHES, scanRecord=[...], isConnectable=CONNECTABLE}
2024-07-04 09:30:09.776  9402-14433 RxBle#ScanOperation     com...redacted.app  I  Scan operation is requested to stop.
2024-07-04 09:30:09.802  9402-14441 RxBle#Clie...ationQueue com...redacted.app  D  QUEUED   ConnectOperation(203521677)
2024-07-04 09:30:09.803  9402-9815  RxBle#Clie...ationQueue com...redacted.app  D  STARTED  ConnectOperation(203521677)
2024-07-04 09:30:09.804  9402-9815  RxBle#Clie...ationQueue com...redacted.app  I  RUNNING  ConnectOperation{MAC='XX:XX:XX:XX:XX:XX', autoConnect=true}
2024-07-04 09:30:09.816  9402-14433 RxBle#BleC...tionCompat com...redacted.app  V  Connecting without reflection
2024-07-04 09:30:09.825  9402-9815  RxBle#Clie...ationQueue com...redacted.app  D  FINISHED ConnectOperation(203521677) in 22 ms
2024-07-04 09:30:10.117  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onConnectionStateChange(), status=0, value=2
2024-07-04 09:30:10.134  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   ServiceDiscoveryOperation(156176648)
2024-07-04 09:30:10.134  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  ServiceDiscoveryOperation(156176648)
2024-07-04 09:30:10.135  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  ServiceDiscoveryOperation{MAC='XX:XX:XX:XX:XX:XX'}
2024-07-04 09:30:10.153  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'     onServicesDiscovered(), status=0
2024-07-04 09:30:10.154  9402-14441 RxBle#Serv...yOperation com...redacted.app  V  Preparing services description
2024-07-04 09:30:10.162  9402-14441 RxBle#Serv...yOperation com...redacted.app  V  --------------- ====== Printing peripheral content ====== ---------------
                                                                                                    MAC='XX:XX:XX:XX:XX:XX'
                                                                                                    PERIPHERAL NAME: BRC1H 43:23:99
                                                                                                    -------------------------------------------------------------------------

                                                                                                    Primary Service - Generic Access (...)
                                                                                                    Instance ID: 1
                                                                                                    -> Characteristics:
                                                                                                        * Device Name (...)
                                                                                                          Properties: [ READ ]
                                                                                                        * Appearance (...)
                                                                                                          Properties: [ READ ]
                                                                                                        * Central Address Resolution (...)
                                                                                                          Properties: [ READ ]

                                                                                                    Primary Service - Generic Attribute (...)
                                                                                                    Instance ID: 16
                                                                                                    -> Characteristics:
                                                                                                        * Service Changed (...)
                                                                                                          Properties: [ INDICATE ]
                                                                                                          -> Descriptors: 
                                                                                                            * Client Characteristic Configuration (...)

                                                                                                    Primary Service - Device Information (...)
                                                                                                    Instance ID: 48
                                                                                                    -> Characteristics:
                                                                                                        * Manufacturer Name String (...)
                                                                                                          Properties: [ READ ]
                                                                                                        * System ID (...)
                                                                                                          Properties: [ READ ]
                                                                                                        * Model Number String (...)
                                                                                                          Properties: [ READ ]
                                                                                                        * Serial Number String (...)
                                                                                                          Properties: [ READ ]
                                                                                                        * Firmware Revision String (...)
                                                                                                          Properties: [ READ ]
                                                                                                        * Hardware Revision String (...)
                                                                                                          Properties: [ READ ]
                                                                                                        * Software Revision String (...)
                                                                                                          Properties: [ READ ]
                                                                                                        * IEEE 11073-20601 Regulatory Certification Data List (...)
                                                                                                          Properties: [ READ ]
                                                                                                        * PnP ID (...)
                                                                                                          Properties: [ READ ]

                                                                                                    Primary Service - Unknown service (...)
                                                                                                    Instance ID: 256
                                                                                                    -> Characteristics:
                                                                                                        * Unknown characteristic (...)
                                                                                                          Properties: [ NOTIFY ]
                                                                                                          -> Descriptors: 
                                                                                                            * Client Characteristic Configuration (...)
                                                                                                        * Unknown characteristic (...)
                                                                                                          Properties: [ WRITE_NO_RESPONSE ]
                                                                                                        * Unknown characteristic (...)
                                                                                                          Properties: [ NOTIFY ]
                                                                                                          -> Descriptors: 
                                                                                                            * Client Characteristic Configuration (...)

                                                                                                    Primary Service - Unknown service (...)
                                                                                                    Instance ID: 512
                                                                                                    -> Characteristics:
                                                                                                        * Unknown characteristic (...)
                                                                                                          Properties: [ NOTIFY ]
                                                                                                          -> Descriptors: 
                                                                                                            * Client Characteristic Configuration (...)
                                                                                                        * Unknown characteristic (...)
                                                                                                          Properties: [ WRITE_NO_RESPONSE ]
                                                                                                    --------------- ====== Finished peripheral content ====== ---------------
2024-07-04 09:30:10.165  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED ServiceDiscoveryOperation(156176648) in 31 ms
2024-07-04 09:30:10.173  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   ConnectionPriorityChangeOperation(223679111)
2024-07-04 09:30:10.175  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  ConnectionPriorityChangeOperation(223679111)
2024-07-04 09:30:10.176  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  ConnectionPriorityChangeOperation{MAC='XX:XX:XX:XX:XX:XX', connectionPriority=CONNECTION_PRIORITY_LOW_POWER, successTimeout={value=1, timeUnit=MILLISECONDS}}
2024-07-04 09:30:10.179  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED ConnectionPriorityChangeOperation(223679111) in 3 ms
2024-07-04 09:30:10.203  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   DescriptorWriteOperation(241586211)
2024-07-04 09:30:10.212  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  DescriptorWriteOperation(241586211)
2024-07-04 09:30:10.214  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  DescriptorWriteOperation{MAC='XX:XX:XX:XX:XX:XX', descriptor=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:10.240  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(91801346)
2024-07-04 09:30:10.374  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'        onDescriptorWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:10.375  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED DescriptorWriteOperation(241586211) in 170 ms
2024-07-04 09:30:10.376  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(91801346)
2024-07-04 09:30:10.376  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:10.380  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:10.381  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060000000000)
2024-07-04 09:30:10.383  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(91801346) in 7 ms
2024-07-04 09:30:10.457  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:10.458  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:10.459  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 001500000010013E11011B12010F130107400301)
2024-07-04 09:30:10.461  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 010A08)
2024-07-04 09:30:10.487  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(29635674)
2024-07-04 09:30:10.488  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(29635674)
2024-07-04 09:30:10.490  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:10.496  9402-14044 RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:10.498  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 000E00013030003100450046004700)
2024-07-04 09:30:10.501  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(29635674) in 12 ms
2024-07-04 09:30:10.579  9402-14044 RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:10.579  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0025000130300100311000000000000000000000)
2024-07-04 09:30:10.579  9402-14044 RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:10.580  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 01000000000000450301090746020511470101)
2024-07-04 09:30:10.611  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicReadOperation(233539456)
2024-07-04 09:30:10.612  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicReadOperation(233539456)
2024-07-04 09:30:10.613  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicReadOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...']}
2024-07-04 09:30:10.748  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'     onCharacteristicRead(), status=0, value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:10.749  9402-14441 RxBle#Characteristic    com...redacted.app  V  Read from Characteristic(uuid: 00002a28-0000-1000-8000-00805f9b34fb, id: 15, value: 373033312E30352E3137)
2024-07-04 09:30:10.749  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'      onConnectionUpdated(), status=0, interval=96 (120.00 ms), latency=2, timeout=500 (5000 ms)
2024-07-04 09:30:10.750  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicReadOperation(233539456) in 138 ms
2024-07-04 09:30:10.763  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(73785461)
2024-07-04 09:30:10.765  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(73785461)
2024-07-04 09:30:10.765  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:10.768  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:10.770  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 0007004300FE0101)
2024-07-04 09:30:10.779  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(73785461) in 11 ms
2024-07-04 09:30:10.987  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:10.987  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0007004300FE0100)
2024-07-04 09:30:10.994  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(27720406)
2024-07-04 09:30:10.996  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(27720406)
2024-07-04 09:30:10.999  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:11.006  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:11.007  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 0007004300500101)
2024-07-04 09:30:11.011  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(27720406) in 14 ms
2024-07-04 09:30:11.228  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:11.228  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0007004300500100)
2024-07-04 09:30:11.238  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(246403248)
2024-07-04 09:30:11.239  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(246403248)
2024-07-04 09:30:11.240  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:11.245  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:11.246  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 0007004300FE0100)
2024-07-04 09:30:11.250  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(246403248) in 9 ms
2024-07-04 09:30:11.468  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:11.469  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0007004300FE0100)
2024-07-04 09:30:11.476  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(38594490)
2024-07-04 09:30:11.477  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(38594490)
2024-07-04 09:30:11.478  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:11.481  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:11.482  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060000300000)
2024-07-04 09:30:11.483  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(38594490) in 6 ms
2024-07-04 09:30:11.708  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:11.709  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 001F00003010010013011F150110160112170120)
2024-07-04 09:30:11.709  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:11.710  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 011F0103200104210101300100)
2024-07-04 09:30:11.728  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(13711261)
2024-07-04 09:30:11.729  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(13711261)
2024-07-04 09:30:11.730  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:11.737  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:11.737  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060000500000)
2024-07-04 09:30:11.739  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(13711261) in 9 ms
2024-07-04 09:30:11.949  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:11.950  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 001600005010010012011D13010D150110200101)
2024-07-04 09:30:11.950  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:11.951  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 01210101)
2024-07-04 09:30:11.974  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(244233066)
2024-07-04 09:30:11.977  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(244233066)
2024-07-04 09:30:11.978  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:11.982  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:11.982  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060001001000)
2024-07-04 09:30:11.984  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(244233066) in 8 ms
2024-07-04 09:30:12.188  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:12.188  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0007000100100101)
2024-07-04 09:30:12.204  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(244597261)
2024-07-04 09:30:12.206  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(244597261)
2024-07-04 09:30:12.207  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:12.210  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:12.211  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060001000000)
2024-07-04 09:30:12.213  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(244597261) in 7 ms
2024-07-04 09:30:12.431  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:12.431  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 003B000100100101400100410100420106430100)
2024-07-04 09:30:12.432  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:12.433  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0145010046010050010851010060010061010062)
2024-07-04 09:30:12.435  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:12.436  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0201006301007001009004004133009105000030)
2024-07-04 09:30:12.436  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:12.437  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 033000)
2024-07-04 09:30:12.462  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(194185256)
2024-07-04 09:30:12.463  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(194185256)
2024-07-04 09:30:12.463  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:12.467  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:12.468  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060000200000)
2024-07-04 09:30:12.471  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(194185256) in 7 ms
2024-07-04 09:30:12.672  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:12.673  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 000D000020100101150130200101)
2024-07-04 09:30:12.689  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(28619840)
2024-07-04 09:30:12.689  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(28619840)
2024-07-04 09:30:12.690  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:12.695  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:12.695  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060001100000)
2024-07-04 09:30:12.697  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(28619840) in 7 ms
2024-07-04 09:30:12.908  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:12.909  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 000D00011010010B40011E4101FF)
2024-07-04 09:30:12.923  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(249931835)
2024-07-04 09:30:12.924  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(249931835)
2024-07-04 09:30:12.925  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:12.929  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:12.930  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060000201000)
2024-07-04 09:30:12.932  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(249931835) in 8 ms
2024-07-04 09:30:13.147  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:13.148  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0007000020100101)
2024-07-04 09:30:13.165  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(200002850)
2024-07-04 09:30:13.166  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(200002850)
2024-07-04 09:30:13.167  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:13.172  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:13.172  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 0018000021150020002100300031003200A200A3)
2024-07-04 09:30:13.175  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(200002850) in 8 ms
2024-07-04 09:30:13.175  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(75345264)
2024-07-04 09:30:13.177  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(75345264)
2024-07-04 09:30:13.177  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:13.180  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:13.181  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 0100B200B300)
2024-07-04 09:30:13.183  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(75345264) in 7 ms
2024-07-04 09:30:13.390  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:13.391  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0024000021150130200211802102050030010131)
2024-07-04 09:30:13.394  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:13.394  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 010102320102A20121A3010AB20125B3010F)
2024-07-04 09:30:13.410  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(85310088)
2024-07-04 09:30:13.413  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(85310088)
2024-07-04 09:30:13.414  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:13.418  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:13.419  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060000400000)
2024-07-04 09:30:13.421  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(85310088) in 10 ms
2024-07-04 09:30:13.629  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:13.630  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:13.631  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 004C00004012011C1401011501F020020C002102)
2024-07-04 09:30:13.631  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:13.632  9402-9421  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:13.632  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 010980300100310100320101400100A00110A101)
2024-07-04 09:30:13.635  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0210A2020A00A3020800A40112A50110B00120B1)
2024-07-04 09:30:13.636  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 030120B2021000B3020F00B40118B50113FE0100)
2024-07-04 09:30:13.652  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(47790622)
2024-07-04 09:30:13.654  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(47790622)
2024-07-04 09:30:13.655  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:13.659  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:13.660  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060000301000)
2024-07-04 09:30:13.662  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(47790622) in 9 ms
2024-07-04 09:30:13.866  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:13.867  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0007000030100100)
2024-07-04 09:30:13.881  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(217661329)
2024-07-04 09:30:13.882  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(217661329)
2024-07-04 09:30:13.883  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:13.889  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:13.889  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060003001000)
2024-07-04 09:30:13.891  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(217661329) in 9 ms
2024-07-04 09:30:14.108  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:14.109  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 000700030010010B)
2024-07-04 09:30:14.126  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(53257168)
2024-07-04 09:30:14.128  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(53257168)
2024-07-04 09:30:14.129  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:14.134  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:14.134  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060003020000)
2024-07-04 09:30:14.136  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(53257168) in 9 ms
2024-07-04 09:30:14.347  9402-14044 RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:14.348  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 00310003021501101A01001B010031010932010D)
2024-07-04 09:30:14.348  9402-14044 RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:14.349  9402-14044 RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:14.349  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0133010A340100350115360110400101A00110A1)
2024-07-04 09:30:14.350  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 020110B00120B10120FE0100)
2024-07-04 09:30:14.370  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(44335526)
2024-07-04 09:30:14.371  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(44335526)
2024-07-04 09:30:14.372  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:14.375  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:14.376  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060003011500)
2024-07-04 09:30:14.377  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(44335526) in 6 ms
2024-07-04 09:30:14.588  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:14.589  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0007000301150110)
2024-07-04 09:30:14.603  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(189447481)
2024-07-04 09:30:14.604  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(189447481)
2024-07-04 09:30:14.605  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:14.609  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:14.609  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060003014000)
2024-07-04 09:30:14.611  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(189447481) in 7 ms
2024-07-04 09:30:14.829  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:14.830  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0007000301400101)
2024-07-04 09:30:15.097  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(194158736)
2024-07-04 09:30:15.099  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(194158736)
2024-07-04 09:30:15.100  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:15.104  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:15.105  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060000500000)
2024-07-04 09:30:15.108  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(194158736) in 9 ms
2024-07-04 09:30:15.432  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:15.433  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 001600005010010012011D13010D150110200101)
2024-07-04 09:30:15.433  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:15.434  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 01210101)
2024-07-04 09:30:15.437  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(35697405)
2024-07-04 09:30:15.438  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(35697405)
2024-07-04 09:30:15.439  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:15.444  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:15.444  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060001000000)
2024-07-04 09:30:15.446  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(35697405) in 7 ms
2024-07-04 09:30:15.673  9402-9419  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:15.675  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:15.675  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 003B000100100101400100410100420106430100)
2024-07-04 09:30:15.676  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:15.677  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0145010046010050010851010060010061010062)
2024-07-04 09:30:15.678  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:15.679  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0201006301007001009004004133009105000030)
2024-07-04 09:30:15.680  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 033000)
2024-07-04 09:30:15.684  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(149795379)
2024-07-04 09:30:15.685  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(149795379)
2024-07-04 09:30:15.686  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:15.691  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:15.691  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060000300000)
2024-07-04 09:30:15.693  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(149795379) in 8 ms
2024-07-04 09:30:15.908  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:15.909  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 001F00003010010013011F150110160112170120)
2024-07-04 09:30:15.909  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:15.910  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 011F0103200104210101300100)
2024-07-04 09:30:15.916  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(192898332)
2024-07-04 09:30:15.917  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(192898332)
2024-07-04 09:30:15.918  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:15.922  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:15.923  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060000200000)
2024-07-04 09:30:15.925  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(192898332) in 8 ms
2024-07-04 09:30:16.150  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:16.152  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 000D000020100101150130200101)
2024-07-04 09:30:16.161  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(61585160)
2024-07-04 09:30:16.163  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(61585160)
2024-07-04 09:30:16.164  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:16.173  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:16.174  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060001100000)
2024-07-04 09:30:16.177  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(61585160) in 14 ms
2024-07-04 09:30:16.390  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:16.391  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 000D00011010010B40011E4101FF)
2024-07-04 09:30:16.399  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(248069044)
2024-07-04 09:30:16.401  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(248069044)
2024-07-04 09:30:16.403  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:16.410  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:16.411  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 00060000400000)
2024-07-04 09:30:16.414  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(248069044) in 13 ms
2024-07-04 09:30:16.631  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:16.634  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 004C00004012011C1401011501F020020C002102)
2024-07-04 09:30:16.634  9402-14044 RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:16.636  9402-14044 RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:16.637  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 010980300100310100320101400100A00110A101)
2024-07-04 09:30:16.638  9402-14044 RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:16.639  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0210A2020A00A3020800A40112A50110B00120B1)
2024-07-04 09:30:16.641  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 030120B2021000B3020F00B40118B50113FE0100)
2024-07-04 09:30:16.646  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(255519103)
2024-07-04 09:30:16.647  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(255519103)
2024-07-04 09:30:16.647  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:16.652  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:16.653  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 0018000021150020002100300031003200A200A3)
2024-07-04 09:30:16.654  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(255519103) in 8 ms
2024-07-04 09:30:16.655  9402-9797  RxBle#Conn...ationQueue com...redacted.app  D  QUEUED   CharacteristicWriteOperation(36143786)
2024-07-04 09:30:16.657  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  STARTED  CharacteristicWriteOperation(36143786)
2024-07-04 09:30:16.657  9402-14440 RxBle#Conn...ationQueue com...redacted.app  I  RUNNING  CharacteristicWriteOperation{MAC='XX:XX:XX:XX:XX:XX', characteristic=[uuid='...', hexValue=[...]]}
2024-07-04 09:30:16.660  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'    onCharacteristicWrite(), status=0, value=[uuid='...']
2024-07-04 09:30:16.661  9402-14441 RxBle#Characteristic    com...redacted.app  V  Write to Characteristic(uuid: 2141e112-213a-11e6-b67b-9e71128cae77, id: 27, value: 0100B200B300)
2024-07-04 09:30:16.662  9402-14440 RxBle#Conn...ationQueue com...redacted.app  D  FINISHED CharacteristicWriteOperation(36143786) in 6 ms
2024-07-04 09:30:16.870  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:16.872  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 0024000021150130200211802102050030010131)
2024-07-04 09:30:16.872  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onCharacteristicChanged(), value=[uuid='...', hexValue=[...]]
2024-07-04 09:30:16.875  9402-14469 RxBle#Characteristic    com...redacted.app  V  Notification from Characteristic(uuid: 2141e111-213a-11e6-b67b-9e71128cae77, id: 25, value: 010102320102A20121A3010AB20125B3010F)
2024-07-04 09:30:17.969  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'      onConnectionUpdated(), status=0, interval=28 (35.00 ms), latency=4, timeout=100 (1000 ms)
2024-07-04 09:30:20.134  9402-14441 RxBle#Clie...ationQueue com...redacted.app  D  QUEUED   DisconnectOperation(146704759)
2024-07-04 09:30:20.135  9402-14439 RxBle#BlePlxModule      com...redacted.app  E  Handle all unhandled exceptions from RxJava: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | java.util.concurrent.TimeoutException: The source did not signal an event for 10000 milliseconds and has been terminated.
2024-07-04 09:30:20.136  9402-9815  RxBle#Clie...ationQueue com...redacted.app  D  STARTED  DisconnectOperation(146704759)
2024-07-04 09:30:20.137  9402-9815  RxBle#Clie...ationQueue com...redacted.app  I  RUNNING  DisconnectOperation{MAC='XX:XX:XX:XX:XX:XX'}
2024-07-04 09:30:20.139  9402-14441 RxBle#Conn...ationQueue com...redacted.app  D  Connection operations queue to be terminated (MAC='XX:XX:XX:XX:XX:XX')
                                                                                                    com.polidea.rxandroidble2.exceptions.BleDisconnectedException: Disconnected from MAC='XX:XX:XX:XX:XX:XX' with status -1 (UNKNOWN)
                                                                                                        at com.polidea.rxandroidble2.internal.serialization.ConnectionOperationQueueImpl.onConnectionUnsubscribed(ConnectionOperationQueueImpl.java:162)
                                                                                                        at com.polidea.rxandroidble2.internal.connection.ConnectorImpl.lambda$prepareConnection$1(ConnectorImpl.java:53)
                                                                                                        at com.polidea.rxandroidble2.internal.connection.ConnectorImpl$$ExternalSyntheticLambda2.run(Unknown Source:2)
                                                                                                        at io.reactivex.internal.operators.observable.ObservableDoFinally$DoFinallyObserver.runFinally(ObservableDoFinally.java:142)
                                                                                                        at io.reactivex.internal.operators.observable.ObservableDoFinally$DoFinallyObserver.dispose(ObservableDoFinally.java:98)
                                                                                                        at io.reactivex.internal.disposables.DisposableHelper.dispose(DisposableHelper.java:124)
                                                                                                        at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.dispose(ObservableSubscribeOn.java:73)
                                                                                                        at io.reactivex.internal.operators.observable.ObservableUnsubscribeOn$UnsubscribeObserver$DisposeTask.run(ObservableUnsubscribeOn.java:95)
                                                                                                        at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
                                                                                                        at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
                                                                                                        at java.util.concurrent.FutureTask.run(FutureTask.java:264)
                                                                                                        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
                                                                                                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                                                                                                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
                                                                                                        at java.lang.Thread.run(Thread.java:1012)
2024-07-04 09:30:20.140  9402-14440 RxBle#Conn...ationQueue com...redacted.app  V  Terminated (MAC='XX:XX:XX:XX:XX:XX')
2024-07-04 09:30:20.151  9402-9420  RxBle#GattCallback      com...redacted.app  I  MAC='XX:XX:XX:XX:XX:XX'  onConnectionStateChange(), status=0, value=0
2024-07-04 09:30:20.160  9402-9815  RxBle#Clie...ationQueue com...redacted.app  D  FINISHED DisconnectOperation(146704759) in 24 ms

So I believe that this is the bug/issue:

QUEUED   DisconnectOperation(146704759)
2024-07-04 09:30:20.135  9402-14439 RxBle#BlePlxModule      com...redacted.app  E  Handle all unhandled exceptions from RxJava: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | java.util.concurrent.TimeoutException: The source did not signal an event for 10000 milliseconds and has been terminated.
2024-07-04 09:30:20.136  9402-9815  RxBle#Clie...ationQueue com...redacted.app  D  STARTED  DisconnectOperation(146704759)

I'm not intentionally disconnecting, this is just an app that worked with react-native-ble-plx 2, updated for new android platform requirements.

joanmarcs commented 1 day ago

Hi @joanmarcs I tried to reproduce your issue using https://github.com/dotintent/react-native-ble-plx/blob/fix/1197_device_automatically_disconnecting/example/src/screens/MainStack/DisconnectBeforeWrite/DisconnectBeforeWrite.tsx without setting the timeout on android 14 device with no success.

The message you received in #1157 (comment) means only that connection was successfully closed, the rest of the error is related to unhandled promise.

Because problem seems to be device specific I would need of you to setLogLevel to LogLevel.Verbose, and provide filtered logs from Logcat, gathered on a device with the issue. The filters should be package:mine (tag:BluetoothGatt | tag:ReactNativeJS | RxBle)

I would also ask you to create separate issue co we could continue our conversation there, as this one is related to iOS.

Done here: https://github.com/dotintent/react-native-ble-plx/issues/1222

intent-kacper-cyranowski commented 1 day ago

Hi @eliaslecomte Thanks for your time and logs. I tried to reproduce it with rapid writes, but with no luck. Could you create separate issue with minimal repro, as issue seems to be different from what @joanmarcs faces.

I would also ask everyone else that needs help with similar issue, yet unrelated to iOS, to create separate issue and provide relevant information