Я использую приложение BLE на телефоне Android, общающемся с пользовательской панелью датчика BLE. Есть две характеристики, обеспечиваемые доской, ускорение и экв. Со стороны телефона я хотел бы получать уведомления о двух характеристиках с сенсорной панели. Мой код для установки уведомлений:Bluetooth LE прослушивает несколько характерных уведомлений
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);
Однако я могу получать уведомления только о первых характеристиках. Когда я регистрирую уведомление только по одному признаку, он работал хорошо. Частота дискретизации составляет 100 Гц для ЭКГ и ускорения. Итак, как я могу получать уведомления по обоим признакам? Благодарю.
Фактически, я знаю, что операция gatt сериализована, поэтому я попытался добавить задержку между двумя сообщениями, но не работал. Теперь я использую обратные вызовы для обработки сериализации, что является правильным способом, и это работает хорошо! Благодаря! – Sentimental