J'utilise l'application BLE sur un téléphone Android communiquant avec une carte de capteur BLE personnalisée. Il y a deux caractéristiques fournies par le conseil, accélération et ecg. Au téléphone, j'aimerais recevoir les notifications de deux caractéristiques du tableau des capteurs. Mon code pour définir les notifications:Bluetooth LE écouter plusieurs notifications de caractéristiques
mGatt.setCharacteristicNotification(ecgChar, true);
BluetoothGattDescriptor descriptor = ecgChar.getDescriptor(
UUID.fromString("00002902-0000-1000-8000-00805f9b34fb"));
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
mGatt.writeDescriptor(descriptor);
mGatt.setCharacteristicNotification(accelChar, true);
descriptor = ecgChar.getDescriptor(
UUID.fromString("00002902-0000-1000-8000-00805f9b34fb"));
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
mGatt.writeDescriptor(descriptor);
Cependant, je ne peux recevoir des notifications que pour les premières caractéristiques. Lorsque je n'enregistre la notification que pour une caractéristique, cela a bien fonctionné. La fréquence d'échantillonnage est de 100 Hz pour l'ECG et l'accélération. Alors, comment puis-je recevoir des notifications à partir des deux caractéristiques? Merci.
En fait, je sais que l'opération gatt est sérialisée, j'ai donc essayé d'ajouter un délai entre deux écritures mais cela n'a pas fonctionné. Maintenant, j'utilise les callbacks pour gérer la sérialisation, ce qui est la bonne façon, et ça marche bien! Merci! – Sentimental