Android 4.3: Comment se connecter à plusieurs périphériques Bluetooth Low Energy

Ma Question est: Peut-Android 4.3 (client) ont des connexions actives avec plusieurs BLE périphériques (serveurs)? Si oui, comment puis-je l'atteindre?

Ce que j'ai fait jusqu'à présent

J'essaie d'évaluer ce que le débit que vous pouvez réaliser à l'aide de BLE et Android 4.3 BLE de l'API. En plus j'ai aussi essayer de savoir combien d'appareils peuvent être connectés et actifs en même temps. J'utilise un Nexus 7 (2013), Android 4.4 comme maître et TI CC2540 Télécommande comme des esclaves.

J'ai écrit un simple logiciel de serveur pour les esclaves, qui transmet 10000 20Byte paquets à travers BLE des notifications. J'ai basé mon Application Android sur le Application Accelerator de Bluetooth SIG.

Il fonctionne bien pour un périphérique et que je peux atteindre autour de 56 kBits charge utile du débit à un Intervalle de Connexion de 7,5 ms. Pour vous connecter à plusieurs esclaves j'ai suivi les conseils d'un Nordique Employé qui a écrit dans le Nordique De La Zone Des Développeurs:

Oui, il est possible de gérer plusieurs esclaves avec une seule application. Vous devez gérer chaque esclave avec un BluetoothGatt instance. Vous aussi, vous avez besoin de BluetoothGattCallback pour chaque esclave vous connecter.

Donc j'ai essayé et cela en partie les travaux. Je peux me connecter à plusieurs esclaves. Je peux également vous inscrire pour les notifications sur plusieurs esclaves. Le problème commence quand j'ai commencer le test. Je reçois au premier notifications de tous les esclaves, mais après une couple de Connexion Intervalles juste les notifications à partir d'un périphérique venir auge. Après environ 10 secondes, les autres esclaves déconnecter, parce qu'ils semblent atteindre le délai de connexion. Parfois, je reçois depuis le début de l'essai que des notifications à partir d'un esclave.

J'ai également essayé d'accéder à l'attribut au cours d'une opération de lecture avec le même résultat. Après une couple de lit seulement les réponses à partir d'un appareil est creux.

Je suis conscient qu'il y a quelques questions similaires sur ce forum: Ne Android 4.3 soutien de plusieurs BLE connexions de l'appareil?, A native Android BLE GATT de mise en œuvre synchrone de la nature? ou C? Ble de raccordement multiples. Mais aucune de ces réponses, il est clair pour moi, si c'est possible et comment le faire.

Je serais très reconnaissant pour les conseils.

  • Avez-vous besoin nécessairement de se connecter? Si vous êtes soucieux de dissimuler les données et fiable-ou-total de l'échec, peut-être vous pouvez simplement le mettre dans les paquets de diffusion et d'analyse de ceux-ci.
  • Merci pour votre relecture. J'ai pour utiliser le mode connecté pour des raisons de fiabilité
  • J'ai recherche sur le net pour trouver des exemples de la façon de faire ce que vous avez en vous un programme de test @Andreas Mueller. Pourriez-vous avoir la gentillesse de m'aider, et me montrer comment envoyer des notifications à partir de Android à l'CC2540 puce avec la nouvelle Application "accélérateur"-code? (lien vers le projet peut-être?)
  • Je suis désolé, mais je ne peux pas vous donner accès au projet. Les droits sont à l'université, je travaille pour. J'ai obtenu la permission de partager la testlogic et bluetooth-stuff. Le logiciel a été pour les essais à l'interne seulement. De sorte que la qualité du Code n'est pas tout que de grands. J'espère que ça va aider: drive.google.com/...