2017-08-15 2 views
0

Je possède actuellement une carte LilyPad Simblee BLE - RFD77101, avec laquelle j'essaie d'établir une connexion avec un service personnalisé que je définis dans arduino 1.6.5 IDE avec le Simblee.customUUID commander.Je n'arrive pas à établir une connexion avec un service personnalisé

Plus tard, j'ai essayé d'obtenir le service et la caractéristique dans Android Studio avec l'exemple de code BluetoothleGatt en utilisant l'UUID I précédemment établi.

Le problème est lorsque je me connecte au Simblee l'application ne parvient pas à reconnaître le service et me consigne l'erreur suivante.

sur mesure BLE Service non trouvé

Le code est un peu de temps donc je ne suis pas poster tout cela directement. Si quelqu'un a une idée quant à une solution à mon problème et besoin et une partie du code, je suis évidemment plus que content de l'afficher.

Merci à quiconque d'avance.

C'est le vide public où je tente d'obtenir la caractéristique:

public void readCustomCharacteristic() { 
    if (mBluetoothAdapter == null || mBluetoothGatt == null) { 
    Log.w(TAG, "BluetoothAdapter not initialized"); 
    return; 
    } 
    /*check if the service is available on the device*/ 
    BluetoothGattService mCustomService = mBluetoothGatt.getService(UUID.fromString("fe84-0000-1000-8000-00805f9b34fb")); 
    if(mCustomService == null) { 
    Log.w(TAG, "Custom BLE Service not found"); 
    return; 
    } 
    /*get the read characteristic from the service*/ 
    BluetoothGattCharacteristic mReadCharacteristic = mCustomService.getCharacteristic(UUID.fromString("2d30c083-f39f-4ce6-923f-3484ea480596")); 
    if(!mBluetoothGatt.readCharacteristic(mReadCharacteristic)) { 
    Log.w(TAG, "Failed to read characteristic"); 
    } 
} 

Répondre

0
BluetoothGattService mCustomService = mBluetoothGatt.getService(UUID.fromString("fe84-0000-1000-8000-00805f9b34fb")); 

UUID que vous avez fourni est pas au format correct. Selon la documentation, la partie avant le premier trait d'union devrait être composée de 4 octets hexadécimaux (voir celui que vous avez fourni pour les caractéristiques) mais vous n'en avez obtenu que 2 ici. Vous devez ajouter le remplissage 0 devant comme

BluetoothGattService mCustomService = mBluetoothGatt.getService(UUID.fromString("0000fe84-0000-1000-8000-00805f9b34fb")); 

Edit: manque un point ici. Avez-vous appelé mBluetoothGatt.discoverServices()?

+0

Avec l'ajout du remplissage "0000" et le changement de l'uuid caractéristique à "2d30c08 ** 2 ** ..." (qui est la caractéristique de lecture du module Simblee) a fini par fonctionner correctement maintenant. Merci –