capacitor-community / bluetooth-le

Capacitor plugin for Bluetooth Low Energy
MIT License
280 stars 86 forks source link

Support for same multiple of the same UUID's #187

Open allard-potma opened 3 years ago

allard-potma commented 3 years ago

Is your feature request related to a problem? Please describe. I'm trying to communicate with a device that exposes the "Environmental Sensing Service". This service allows multiple of the same UUID's to be defined in the service, for example two temperature channels. The "ES Measurement" descriptor is used to differentiate between the channels. My device has one temperature channel defined as "Internal" and one as "External".

I'm not sure, but I even think that multiple of the same service UUID's are allowed by the Bluetooth spec, but I struggling to find it in the >1000 page core spec document.

Describe the solution you'd like A solution to be able to read both channels. The gatt_handle should be unique for both, but I'm not sure if the Android/IOS API allows accessing by handle.

Edit: Android has the function [getInstanceId](https://developer.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html#getInstanceId()).

pwespi commented 3 years ago

Thank you for using this plugin. Yes, it seems that multiple services and characteristics with the same UUID are allowed by the Bluetooth spec. This plugin does not yet support this. It will be quite some effort to implement, so not sure when I will have time to do it.

In the meantime, it looks like this cordova plugin supports multiple services or characteristics with the same UUID.