Open chipweinberger opened 8 months ago
All data is coming properly but after some time have some error and freez application.
i need some help for this error given below :-
D/FBP-Android: [FBP] onCharacteristicChanged: D/FBP-Android: [FBP] chr: ffe1
Same UUID? That sounds wild, almost defeats the "unique" part of UUID. I didn't know that such a scenario is even possible and valid: I thought that the service UUID + characteristic UUID is unique tuple.
Would be great to see this resolved! I'm facing this issue with my current implementation, and in response to @MrCsabaToth, as per the Bluetooth spec Vol 3, Part G, Section 3.3.1:
"A service may have multiple characteristic definitions with the same Characteristic UUID"
I'm currently implementing something similar to this wifi scanner service, which populates the scan results as characteristics.
As a workaround for now I'm going to give each of the scan results the same Characteristic UUID up to the first 120 bits to identify them, then increment the last 8 bits giving me 256 possible options.
@matt-meades
feel free to open a PR, and test it
See previous discussions/PR from flutter_blue
:
https://github.com/pauldemarco/flutter_blue/pull/215
LINK BROKEN https://github.com/pauldemarco/flutter_blue/issues/213
Same UUID? That sounds wild, almost defeats the "unique" part of UUID. I didn't know that such a scenario is even possible and valid: I thought that the service UUID + characteristic UUID is unique tuple.
The UUID is a unique identifier for what the characteristic represents - not the characteristic instance itself. The true unique identifier of an instance is its attribute handle, a 2-byte identifier. The GATT client obtains the table of attribute handles upon connection and then only has to include the 2-byte identifier in operations, rather than a 16 byte UUID.
FlutterBluePlus Version
1.31.14
Flutter Version
3.18.1
What is your feature request?
Relevant Issue: https://github.com/boskokg/flutter_blue_plus/issues/789
FlutterBluePlus does not yet support multiple characteristics with the same uuid in the same service, which is needed for the 0x1812 HID Service.
We need to add a new class member to
BluetoothCharacteristic
:final int characteristicIndex
For most characteristics, index will be 0. But If there are multiple characteristics with the same uuid, index represents first, second, third, etc. Android & iOS always keep characteristics in the same order, so we can use an index to find the right one.
Logs