Différences entre versions de « Bluefruit-LE-Shield-BLE-GATT »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(20 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
  
 
== GATT BLE ==
 
== GATT BLE ==
{{traduction}}
+
[https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt GATT] est l'acronyme de "Generic ATTribute Profile" (profile d'attribut générique). GATT gouverne l'organisation et l'échange de données entre les périphériques connectés. Un périphérique (nommé "''the peripheral''" dans la nomenclature) agit comme un serveur GATT qui enregistre les données dans des enregistrements Attributs. Un second périphérique (nommé la "central") agit comme un client GATT, demandant les données au serveur lorsque cela est nécessaire.
  
[https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt GATT], which standards for the ''Generic ATTribute Profile'', governs data organization and data exchanges between connected devices. One device (the peripheral) acts as a GATT Server, which stores data in Attribute records, and the second device in the connection (the central) acts as a GATT Client, requesting data from the server whenever necessary.
+
Les commandes suivantes peuvent être utilisées pour créer des services et caractéristiques GATT personnalisés sur le BLEFriend. Ces services et caractéristiques sont utilisés pour enregistrer et échanger les données.
  
The following commands can be used to create custom GATT services and characteristics on the BLEFriend, which are used to store and exchange data.
+
Attention: toutes les caractéristiques que vous aller définir seront sauvegardées dans la mémoire FLASH de configuration (non volatile) du périphérique. Ces caractéristiques seront réinitialisées à chaque démarrage du périphérique.
  
Please note that any characteristics that you define here will automatically be saved to non-volatile FLASH config memory on the device and re-initialised the next time the device starts.
+
{{ambox|text=Il est nécessaire d'effectuer une réinitialisation système avec un 'ATZ' avec la plupart des commandes ci-dessous pour que la modification soit effective!}}
 
 
{{ambox|text=You need to perform a system reset via 'ATZ' before most of the commands below will take effect!}}
 
  
 
== Limitations de GATT ==
 
== Limitations de GATT ==
The commands below have the following limitations due to SRAM and resource availability, which should be kept in mind when creating or working with customer GATT services and characteristics.
+
Etant donné la mémoire SRAM et les ressources limitées du module, les commandes ont certaines limitations détaillées ci-dessous.
 
+
Gardez ces limitations en mémoire lorsque vous créez des services et caractéristiques GATT personnalisés.
These values apply to firmware 0.7.0 and higher:
 
  
* Maximum number of services: 10
+
Ces valeurs sont applicable à partir du firmware firmware 0.7.0:
* Maximum number of characteristics: 30
+
* Nombre maximal de services: 10
* Maximum buffer size for each characteristic: 32 bytes
+
* Nombre maximal de caractéristiques: 30
* Maximum number of CCCDs: 16
+
* Taille de la mémoire tampon Max pour chaque caractéristique: 32 octets
 +
* Nombre maximum de CCCDs: 16
  
If you want to clear any previous config value, enter the ''AT+FACTORYRESET'' command before working on a new peripheral configuration.
+
Vous pouvez utiliser la commande de réinitialisation d'usine ('''AT+FACTORYRESET''') si vous avez besoin d'effacer les valeurs d'une précédente configuration. Saisissez la commande avant de débuter une nouvelle configuration.
  
 
== AT+GATTCLEAR ==
 
== AT+GATTCLEAR ==
Clears any custom GATT services and characteristics that have been defined on the device.
+
Efface tous les services et caractéristiques GATT personnalisés qui ont été définis sur le périphérique.
 
* Codebase Revision: 0.3.0
 
* Codebase Revision: 0.3.0
* Parameters: None
+
* Paramètres: Aucune
* Response: None
+
* Réponse: Aucune
  
 
  <nowiki>AT+GATTCLEAR
 
  <nowiki>AT+GATTCLEAR
Ligne 34 : Ligne 32 :
  
 
== AT+GATTADDSERVICE ==
 
== AT+GATTADDSERVICE ==
Adds a new custom service definition to the device.
+
Ajoute une nouvelle définition de service personnalisé sur le pérhiphérique.
* Codebase Revision: 0.3.0
+
* Codebase Revision : 0.3.0
* Parameters: This command accepts a set of comma-separated key-value pairs that are used to define the service properties. The following key-value pairs can be used:
+
* Paramètre : La commande accepte une série de paires "clé-valeur", paires séparés par des virgules. Ces paires sont utilisées pour définir les propriétés du service.<br />Les paires clé-valeur suivantes peuvent être utilisés:
** '''UUID''': The 16-bit UUID to use for this service. 16-bit values should be in hexadecimal format (0x1234).
+
** '''UUID''' : Le UUID 16-bits pour ce service. La valeur 16-bits doit être mentionnée au format hexadécimal (0x1234).
** '''UUID128''': The 128-bit UUID to use for this service. 128-bit values should be in the following format: 00-11-22-33-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF  
+
** '''UUID128''' : Le UUID 128-bits pour ce service. Les valeurs 128-bits doivent avoir le format suivant: 00-11-22-33-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF  
* Réponse: The index value of the service in the custom GATT service lookup table. (It's important to keep track of these index values to work with the service later.)
+
* Réponse : La valeur d'index du service GATT personnalisé dans la table lookup. (Il est important de mémoriser cette valeur indexe pour pouvoir travailler avec le service.)
  
{{ambox-stop|text=Note: Key values are not case-sensitive}}
+
{{ambox-stop|text=Note: Les valeurs des clés ne sont pas sensible à la case}}
{{ambox-stop|text=Only one UUID type can be entered for the service (either UUID or UUID128)}}
+
{{ambox-stop|text=Un seul type de UUID peut être saisi pour le service (soit UUID ou soit UUID128)}}
  
  <nowiki># Clear any previous custom services/characteristics
+
  <nowiki># Efface toutes les définitions antérieurs
 +
# de services/caractéristiques personnalisées
 
AT+GATTCLEAR
 
AT+GATTCLEAR
 
OK
 
OK
  
# Add a battery service (UUID = 0x180F) to the peripheral
+
# Ajoute le service "battery" (UUID = 0x180F, état de la
 +
# batterie) sur le périphérique
 
AT+GATTADDSERVICE=UUID=0x180F
 
AT+GATTADDSERVICE=UUID=0x180F
 
1
 
1
 
OK
 
OK
 
    
 
    
# Add a battery measurement characteristic (UUID = 0x2A19), notify enabled
+
# Ajoute la caractéristique "battery measurement"
 +
# (UUID = 0x2A19, mesure de la batterie), notification activée
 
AT+GATTADDCHAR=UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,VALUE=100
 
AT+GATTADDCHAR=UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,VALUE=100
1
 
OK</nowiki>
 
 
<nowiki># Clear any previous custom services/characteristics
 
AT+GATTCLEAR
 
OK
 
 
# Add a custom service to the peripheral
 
AT+GATTADDSERVICE=UUID128=00-11-00-11-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF
 
1
 
OK
 
 
# Add a custom characteristic to the above service (making sure that there
 
# is no conflict between the 16-bit UUID and bytes 3+4 of the 128-bit service UUID)
 
AT+GATTADDCHAR=UUID=0x0002,PROPERTIES=0x02,MIN_LEN=1,VALUE=100
 
 
1
 
1
 
OK</nowiki>
 
OK</nowiki>
  
 
== AT+GATTADDCHAR ==
 
== AT+GATTADDCHAR ==
Adds a custom characteristic to the last service that was added to the peripheral (via AT+GATTADDSERVICE).
+
Ajouter une caractéristique personnalisée au dernier service ajouté sur le périphérique (via AT+GATTADDSERVICE).
  
{{ambox-stop|text= AT+GATTADDCHAR must be run AFTER AT+GATTADDSERVICE, and will add the new characteristic to the last service definition that was added.}}
+
{{ambox-stop|text= AT+GATTADDCHAR doit être exécuté APRES AT+GATTADDSERVICE et ajoutera une nouvelle caractéristique à la dernière définition de service ajouté sur le périphérique.}}
{{ambox|text= As of version 0.6.6 of the Bluefruit LE firmware you can now use custom 128-bit UUIDs with this command. See the example at the bottom of this command description.}}
+
{{ambox|text= Depuis la version 0.6.6 du firmware, il est également possible d'utiliser des UUIDs 128-bit personnalisés avec cette commande. Voyez les exemple ci-dessous pour plus d'information.}}
  
 
* Codebase Revision : 0.3.0
 
* Codebase Revision : 0.3.0
* Parameters : This command accepts a set of comma-separated key-value pairs that are used to define the characteristic properties. The following key-value pais can be used:
+
* Paramètres : cette commande accepte un ensemble de paires clé-valeur (séparées par des virgules) pour définir les propriétés de la caractéristique. Les paires clé-valeur suivantes peuvent être utilisés:
** '''UUID''' : The 16-bit UUID to use for the characteristic (which will be insert in the 3rd and 4th bytes of the parent services 128-bit UUID). This value should be entered in hexadecimal format (ex. 'UUID=0x1234'). This value must be unique, and should not conflict with bytes 3+4 of the parent service's 128-bit UUID.
+
** '''UUID''' : L'UUID 16-bit de la caractéristique (qui sera inséré dans les 3ième et 4ièmes octets des UUID 128-bit des services parent). Cette valeur devrait être encodée au format hexadécimal  au format (ex. 'UUID=0x1234'). Cette valeur doit être unique, et ne doit pas entrer en conflit avec les octets 3+4 de l'UUID 128-bit du service parent.
** '''PROPERTIES''' : The 8-bit characteristic properties field, as defined by the Bluetooth SIG. The following values can be used:
+
** '''PROPERTIES''' : Le champs propriétés 8-bit de la caractéristique, tel que définit dans Bluetooth SIG. Les valeurs suivantes peuvent être utilisées:
*** 0x02 - Read
+
*** 0x02 - Read (lecture)
*** 0x04 - Write Without Response
+
*** 0x04 - Write Without Response (écriture sans réponse)
*** 0x08 - Write
+
*** 0x08 - Write (écriture)
*** 0x10 - Notify
+
*** 0x10 - Notify (notification)
*** 0x20 - Indicate
+
*** 0x20 - Indicate (désigner)
** '''MIN_LEN''' : The minimum size of the values for this characteristic (in bytes, min = 1, max = 20, default = 1)
+
** '''MIN_LEN''' : La taille minimale des valeurs pour cette caractéristique (en octets, min = 1, max = 20, défaut = 1)
** '''MAX_LEN''' : The maximum size of the values for the characteristic (in bytes, min = 1, max = 20, default = 1)
+
** '''MAX_LEN''' : La taille minimale des valeurs pour cette caractéristique  (in octets, min = 1, max = 20, défaut = 1)
** '''VALUE''' : The initial value to assign to this characteristic (within the limits of 'MIN_LEN' and 'MAX_LEN'). Value can be an integer ("-100", "27"), a hexadecimal value ("0xABCD"), a byte array ("aa-bb-cc-dd") or a string ("GATT!").
+
** '''VALUE''' : Valeur initiale assignée à la caractéristique (dans les limites de 'MIN_LEN' et 'MAX_LEN'). La valeur peut être un entier ("-100", "27"), un hexadécimal  ("0xABCD"), ou un tableau d'octet ("aa-bb-cc-dd") ou une chaâine de caractère ("GATT!").
** '''>=0.7.0 - DATATYPE''' : This argument indicates the data type stored in the characteristic, and is used to help parse data properly. It can be one of the following values:
+
** '''>=0.7.0 - DATATYPE''' : cet argument indique le type de données stockée dans la caractéristique et est utilisé pour aider le parsing des données. DATATYPE peut avoir l'une des valeurs suivantes:
*** AUTO (0, default)
+
*** AUTO (0, défaut)
*** STRING (1)
+
*** STRING (1, chaîne de caractère)
*** BYTEARRAY (2)
+
*** BYTEARRAY (2, tableau d'octets)
*** INTEGER (3)
+
*** INTEGER (3, entier)
** '''>=0.7.0 - DESCRIPTION''': Adds the specified string as the characteristic description entry
+
** '''>=0.7.0 - DESCRIPTION''': Ajoute la chaîne de caractère en argument comme description (''description entry'') de la caractéristique
** '''>=0.7.0 - PRESENTATION''': Adds the specified value as the characteristic presentation format entry
+
** '''>=0.7.0 - PRESENTATION''': Ajoute la chaîne de caractère en argument comme format de présentation (''presentation format entry'') de la caractéristique.
* '''Response''': The index value of the characteristic in the custom GATT characteristic lookup table. (It's important to keep track of these characteristic index values to work with the characteristic later.)
+
* '''Réponse''': La valeur d'index de la caractéristique dans la table lookup des caractéristiques GATT personnalisées. (Il est important de mémoriser cette index pour travailler ensuite avec les caractéristiques.)
  
{{ambox-stop|text=Note: Key values are not case-sensitive}}  
+
{{ambox-stop|text=Note: Les valeurs des clés ne sont pas sensible à la case}}  
{{ambox-stop|text=Make sure that the 16-bit UUID is unique and does not conflict with bytes 3+4 of the 128-bit service UUID}}
+
{{ambox-stop|text=Assurez-vous de l'unicité du UUID 16-bit et qu'il n'entre pas en conflit avec les octets 3+4 de l'UUID service 128-bit}}
  
  <nowiki># Clear any previous custom services/characteristics
+
  <nowiki># Efface toutes les définitions antérieurs
 +
# de services/caractéristiques personnalisées
 
AT+GATTCLEAR
 
AT+GATTCLEAR
 
OK
 
OK
  
# Add a battery service (UUID = 0x180F) to the peripheral
+
# Ajoute le service "battery" (UUID = 0x180F, état de la
 +
# batterie) sur le périphérique
 
AT+GATTADDSERVICE=UUID=0x180F
 
AT+GATTADDSERVICE=UUID=0x180F
 
1
 
1
 
OK
 
OK
 
    
 
    
# Add a battery measurement characteristic (UUID = 0x2A19), notify enabled
+
# Ajoute la caractéristique "battery measurement"
 +
# (UUID = 0x2A19, mesure de la batterie), notification activée
 
AT+GATTADDCHAR=UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,VALUE=100
 
AT+GATTADDCHAR=UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,VALUE=100
 
1
 
1
 
OK</nowiki>
 
OK</nowiki>
  
  <nowiki># Clear any previous custom services/characteristics
+
  <nowiki># Efface toutes les définitions antérieurs
 +
# de services/caractéristiques personnalisées
 
AT+GATTCLEAR
 
AT+GATTCLEAR
 
OK
 
OK
  
# Add a custom service to the peripheral
+
# Ajoute un service personnalisé sur le périphérique
 
AT+GATTADDSERVICE=UUID128=00-11-00-11-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF
 
AT+GATTADDSERVICE=UUID128=00-11-00-11-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF
 
1
 
1
 
OK
 
OK
  
# Add a custom characteristic to the above service (making sure that there
+
# Ajouter une caractéristique personnalisée au
# is no conflict between the 16-bit UUID and bytes 3+4 of the 128-bit service UUID)
+
# service ci-dessus (s'assurer qu'il n'y a pas de conflit entre
 +
# le UUID 16-bit et les octets 3+4 d'un UUID service 128-bit)
 
AT+GATTADDCHAR=UUID=0x0002,PROPERTIES=0x02,MIN_LEN=1,VALUE=100
 
AT+GATTADDCHAR=UUID=0x0002,PROPERTIES=0x02,MIN_LEN=1,VALUE=100
 
1
 
1
 
OK</nowiki>
 
OK</nowiki>
  
Version '''0.6.6''' of the Bluefruit LE firmware added the ability to use a new "'''UUID128'''" flag to add custom 128-bit UUIDs that aren't related to the parent service UUID (which is used when passing the 16-bit "'''UUID'''" flag).
+
La version '''0.6.6''' du firmware de Bluefruit LE est capable d'utiliser le drapeau  "nouveau '''UUID128'''" pour ajouter un des UUIDs 128-bit personnalisés qui ne sont pas relatifs à un service UUID parent (qui est utilisé lorsque l'on passe un drapeau "'''UUID''' 16-bit ").
  
To specify a 128-bit UUID for your customer characteristic, enter a value resembling the following syntax:
+
Pour spécifier un UUID 128-bit pour votre caractéristique personnalisée, saisissez une valeur ressemblant à la syntaxe suivante:
  
  <nowiki># Add a custom characteristic to the above service using a
+
  <nowiki># Ajouter une caractéristique personnalisée
# custom 128-bit UUID
+
# au service définit ci-dessous (en utilisant un
 +
# UUID 128-bit personalisé)
 
AT+GATTADDCHAR=UUID128=00-11-22-33-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF,PROPERTIES=0x02,MIN_LEN=1,VALUE=100
 
AT+GATTADDCHAR=UUID128=00-11-22-33-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF,PROPERTIES=0x02,MIN_LEN=1,VALUE=100
 
1
 
1
 
OK</nowiki>
 
OK</nowiki>
  
Version '''0.7.0''' of the Bluefruit LE firmware added the new '''DESCRIPTION''' and '''PRESENTATION''' keywoards, corresponding the the GATT [https://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_user_description.xml Characteristic User Description] and the GATT [https://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml Characteristic Presentation Format] Descriptors.
+
La version  '''0.7.0''' du firmware de Bluefruit LE ajoute les nouveau mots clés '''DESCRIPTION''' et '''PRESENTATION''', correspondant aux spécifications GATT [https://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_user_description.xml Characteristic User Description] et [https://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml Characteristic Presentation Format].
  
The '''DESCRIPTION''' field is a string that contains a short text description of the characteristic. Some apps may not display this data, but it should be visible using something like the Master Control Panel application from Nordic on iOS and Android.
+
Le champs '''DESCRIPTION''' est une chaîne de caractère qui contient une courte description textuelle de la caractéristique. Certaines Apps pourraient ignorer cette information, elle devrait néanmoins être visible en utilisant l'application "Master Control Panel" de Nordic sous iOS et Android.
  
The '''PRESENTATION''' field contains a 7-byte payload that encapsulates the characteristic presentation format data. It requires a specific set of bytes and values to work properly. See the following link for details on how to format the payload: https://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml
+
Le champs '''PRESENTATION''' contient un payload 7-octets qui encapsule les données ''presentation format'' de la caractéristique. Il nécessite en ensemble d'octets spécifique pour fonctionner correctement. Voyez le lien suivant pour plus de détails sur le format du payload: https://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml
  
The following example shows how you might use both of these new fields:
+
L'exemple suivant montre comment vous pouvez utiliser ces deux nouveaux champs:
  
 
  <nowiki>AT+GATTADDCHAR=UUID=0x2A37, PROPERTIES=0x10, MIN_LEN=2, MAX_LEN=3, VALUE=00-40,  
 
  <nowiki>AT+GATTADDCHAR=UUID=0x2A37, PROPERTIES=0x10, MIN_LEN=2, MAX_LEN=3, VALUE=00-40,  
 
               DESCRIPTION=HRM Measurement, PRESENTATION=17-00-AC-27-01-00-00</nowiki>
 
               DESCRIPTION=HRM Measurement, PRESENTATION=17-00-AC-27-01-00-00</nowiki>
  
For the Characteristic Presentation Format we have:
+
Pour le format de présentation de la caractéristique nous avons:
 
* Format = IEEE-11073 32-bit FLOAT (Decimal 23, Hex 0x17)
 
* Format = IEEE-11073 32-bit FLOAT (Decimal 23, Hex 0x17)
* Exponent = 0/None
+
* Exposant = 0/aucun
* Unit = Thermodynamic temperature: Degrees Fahrenheit (0x27AC) - Bluetooth LE Unit List
+
* Unité = témpérature thermodynamique (Thermodynamic temperature): Degrés Fahrenheit (0x27AC) - Bluetooth LE Unit List
* Namespace = Bluetooth SIG Assigned Number (0x01)
+
* Espace de nom/Namespace = Bluetooth SIG Assigned Number (0x01)
* Description = None (0x0000)
+
* Description = Aucune (0x0000)
  
The results from Nordic's Master Control Panel app can be seen below:
+
L'application "Master Control Panel" de Nordic affiche l'information suivante:
  
[[Fichier:Bluefruit-LE-Shield-BLE-GATT-00.png]]
+
{{ADFImage|Bluefruit-LE-Shield-BLE-GATT-00.png}}
  
 
== AT+GATTCHAR ==
 
== AT+GATTCHAR ==
 
+
Fixer ou retrouver la valeur d'une caractéristique GATT personnalisée personnalisée (basé sur le numéro d'index ''index ID'' retourné par AT+GATTADDCHAR lorsque la caractéristique à été ajouté sur le périphérique).
Gets or sets the value of the specified custom GATT characteristic (based on the index ID returned when the characteristic was added to the system via AT+GATTADDCHAR).
 
  
 
* Codebase Revision: 0.3.0
 
* Codebase Revision: 0.3.0
* Parameters: This function takes one or two comma-separated functions (one parameter = read, two parameters = write).
+
* Paramètre: cette fonction prend un ou deux paramètres (séparé par une virgule, un paramètre = lecture, deux paramètres = écriture).
** The first parameter is the characteristic index value, as returned from the AT+GATTADDCHAR function. This parameter is always required, and if no second parameter is entered the current value of this characteristic will be returned.
+
** Le premier paramètre est l'index de la caractéristique, tel que retourné par la fonction AT+GATTADDCHAR. Ce paramètre est toujours nécessaire et s'il n'y a pas de second paramètres alors la valeur courante de la caractéristique est retournée.
** The second (optional) parameter is the new value to assign to this characteristic (within the MIN_SIZE and MAX_SIZE limits defined when creating it).
+
** Le second paramètre (optionnel) est la nouvelle valeur à assigner à la caractéristique (dans les limites définies par MIN_SIZE et MAX_SIZE lorsque la caractéristique à été créée).
* Response: If the command is used in read mode (only the characteristic index is provided as a value), the response will display the current value of the characteristics. If the command is used in write mode (two comma-separated values are provided), the characteristics will be updated to use the provided value.
+
* Réponse:  
 +
** Si la commande est utilisée en mode lecture (avec l'index de la caractéristique comme seul paramètre) alors la réponse affichera la valeur actuelle de la caractéristique.
 +
** Si la commande est utilisée en mode écriture (avec index de la caractéristique + une virgule + la nouvelle valeur) alors la caractéristique sera mise-à-jour pour utiliser la nouvelle valeur.
  
  <nowiki># Clear any previous custom services/characteristics
+
  <nowiki># Efface toutes les définitions antérieurs
 +
# de services/caractéristiques personnalisées
 
AT+GATTCLEAR
 
AT+GATTCLEAR
 
OK
 
OK
  
# Add a battery service (UUID = 0x180F) to the peripheral
+
# Ajoute le service "battery" (UUID = 0x180F, état de la
 +
# batterie) sur le périphérique
 
AT+GATTADDSERVICE=UUID=0x180F
 
AT+GATTADDSERVICE=UUID=0x180F
 
1
 
1
 
OK
 
OK
 
    
 
    
# Add a battery measurement characteristic (UUID = 0x2A19), notify enabled
+
# Ajoute la caractéristique "battery measurement"
 +
# (UUID = 0x2A19, mesure de la batterie), notification activée
 
AT+GATTADDCHAR=UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,VALUE=100
 
AT+GATTADDCHAR=UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,VALUE=100
 
1
 
1
 
OK
 
OK
  
# Read the battery measurement characteristic (index ID = 1)
+
# Lire la caractéristique "battery measurement" (index ID = 1)
 
AT+GATTCHAR=1
 
AT+GATTCHAR=1
 
0x64
 
0x64
 
OK
 
OK
  
# Update the battery measurement characteristic to 32 (hex 0x20)
+
# Modifier la caractéristique "battery measurement" vers 32 (hex 0x20)
 
AT+GATTCHAR=1,32
 
AT+GATTCHAR=1,32
 
OK
 
OK
  
# Verify the previous write attempt
+
# Vérifier la valeur écrite
 
AT+GATTCHAR=1
 
AT+GATTCHAR=1
 
0x20
 
0x20
Ligne 203 : Ligne 199 :
  
 
== AT+GATTLIST ==
 
== AT+GATTLIST ==
Lists all custom GATT services and characteristics that have been defined on the device.
+
Liste tous les services et caractéristiques GATT personnalisés qui ont été définis sur le périphérique.
 
* Codebase Revision: 0.3.0
 
* Codebase Revision: 0.3.0
* Parameters: None
+
* Paramètre: Aucun
* Response: A list of all custom services and characteristics defined on the device.
+
* Réponse: Une liste de tous les services personnalisé et toutes les caractéristiques définie sur le périphérique.
  
  <nowiki># Clear any previous custom services/characteristics
+
  <nowiki># Efface tous les services/caractéristiques personnalisés
 
AT+GATTCLEAR
 
AT+GATTCLEAR
 
OK
 
OK
  
# Add a battery service (UUID = 0x180F) to the peripheral
+
# Ajouter le service "battery" (UUID = 0x180F) sur le périphérique
 
AT+GATTADDSERVICE=UUID=0x180F
 
AT+GATTADDSERVICE=UUID=0x180F
 
1
 
1
 
OK
 
OK
 
    
 
    
# Add a battery measurement characteristic (UUID = 0x2A19), notify enabled
+
# Ajouter la caractéristique "battery measurement" (UUID = 0x2A19), notification activée
 
AT+GATTADDCHAR=UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,VALUE=100
 
AT+GATTADDCHAR=UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,VALUE=100
 
1
 
1
 
OK
 
OK
 
    
 
    
# Add a custom service to the peripheral
+
# Ajouter un service personalisé sur le périphérique
 
AT+GATTADDSERVICE=UUID128=00-11-00-11-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF
 
AT+GATTADDSERVICE=UUID128=00-11-00-11-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF
 
2
 
2
 
OK
 
OK
  
# Add a custom characteristic to the above service (making sure that there
+
# Ajouter une caractéristique personnalisé sur le service ci-dessus
# is no conflict between the 16-bit UUID and bytes 3+4 of the 128-bit service UUID)
+
# (S'assurer qu'il n'y a pas de conflit entre l'UUID 16 bits et
 +
# les octets 3+4 sur UUID service 128-bit)
 
AT+GATTADDCHAR=UUID=0x0002,PROPERTIES=0x02,MIN_LEN=1,VALUE=100
 
AT+GATTADDCHAR=UUID=0x0002,PROPERTIES=0x02,MIN_LEN=1,VALUE=100
 
2
 
2
 
OK
 
OK
  
# Get a list of all custom GATT services and characteristics on the device
+
# Obtenir une liste de tous les services GATT personnalisés et
 +
# de toutes les caractéristiques personnalisées sur le périphérique
 
AT+GATTLIST
 
AT+GATTLIST
 
ID=01,UUID=0x180F
 
ID=01,UUID=0x180F
Ligne 242 : Ligne 240 :
  
 
== AT+GATTCHARRAW ==
 
== AT+GATTCHARRAW ==
This read only command reads binary (instead of ASCII) data from a characteristic. It is non-printable but has less overhead and is easier when writing libraries in Arduino.
+
Cette commande en lecture seule lit les données binaires d'une caractéristique (au lieu de ASCII. L'information n'est pas affichable mais représente moins de surcharge et facilite l'écriture de bibliothèques pour Arduino (ou autre microcontroleur).
 
* Codebase Revision: 0.7.0
 
* Codebase Revision: 0.7.0
* Parameters: The numeric ID of the characteristic to display the data for
+
* Paramètre: Le numéro d'index de la caractéristique (''index ID'') dont on désire les données
* Output: Binary data corresponding to the specified characteristic.
+
* Sortie: les données binaire correspondant à la caractéristique.
  
{{ambox|text=Note: This is a specialized command and no NEWLINE is present at the end of the command!}}
+
{{ambox|text=Note : Il s'agit d'une commande spécialisée et il n'y a pas de caractère NEWLINE en fin de commande!}}
  
 
{{Bluefruit-LE-Shield-TRAILER}}
 
{{Bluefruit-LE-Shield-TRAILER}}

Version actuelle datée du 16 juillet 2017 à 21:09


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

GATT BLE

GATT est l'acronyme de "Generic ATTribute Profile" (profile d'attribut générique). GATT gouverne l'organisation et l'échange de données entre les périphériques connectés. Un périphérique (nommé "the peripheral" dans la nomenclature) agit comme un serveur GATT qui enregistre les données dans des enregistrements Attributs. Un second périphérique (nommé la "central") agit comme un client GATT, demandant les données au serveur lorsque cela est nécessaire.

Les commandes suivantes peuvent être utilisées pour créer des services et caractéristiques GATT personnalisés sur le BLEFriend. Ces services et caractéristiques sont utilisés pour enregistrer et échanger les données.

Attention: toutes les caractéristiques que vous aller définir seront sauvegardées dans la mémoire FLASH de configuration (non volatile) du périphérique. Ces caractéristiques seront réinitialisées à chaque démarrage du périphérique.

Limitations de GATT

Etant donné la mémoire SRAM et les ressources limitées du module, les commandes ont certaines limitations détaillées ci-dessous. Gardez ces limitations en mémoire lorsque vous créez des services et caractéristiques GATT personnalisés.

Ces valeurs sont applicable à partir du firmware firmware 0.7.0:

  • Nombre maximal de services: 10
  • Nombre maximal de caractéristiques: 30
  • Taille de la mémoire tampon Max pour chaque caractéristique: 32 octets
  • Nombre maximum de CCCDs: 16

Vous pouvez utiliser la commande de réinitialisation d'usine (AT+FACTORYRESET) si vous avez besoin d'effacer les valeurs d'une précédente configuration. Saisissez la commande avant de débuter une nouvelle configuration.

AT+GATTCLEAR

Efface tous les services et caractéristiques GATT personnalisés qui ont été définis sur le périphérique.

  • Codebase Revision: 0.3.0
  • Paramètres: Aucune
  • Réponse: Aucune
AT+GATTCLEAR
OK

AT+GATTADDSERVICE

Ajoute une nouvelle définition de service personnalisé sur le pérhiphérique.

  • Codebase Revision : 0.3.0
  • Paramètre : La commande accepte une série de paires "clé-valeur", paires séparés par des virgules. Ces paires sont utilisées pour définir les propriétés du service.
    Les paires clé-valeur suivantes peuvent être utilisés:
    • UUID : Le UUID 16-bits pour ce service. La valeur 16-bits doit être mentionnée au format hexadécimal (0x1234).
    • UUID128 : Le UUID 128-bits pour ce service. Les valeurs 128-bits doivent avoir le format suivant: 00-11-22-33-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF
  • Réponse : La valeur d'index du service GATT personnalisé dans la table lookup. (Il est important de mémoriser cette valeur indexe pour pouvoir travailler avec le service.)
# Efface toutes les définitions antérieurs 
# de services/caractéristiques personnalisées
AT+GATTCLEAR
OK

# Ajoute le service "battery" (UUID = 0x180F, état de la 
# batterie) sur le périphérique
AT+GATTADDSERVICE=UUID=0x180F
1
OK
  
# Ajoute la caractéristique "battery measurement" 
# (UUID = 0x2A19, mesure de la batterie), notification activée
AT+GATTADDCHAR=UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,VALUE=100
1
OK

AT+GATTADDCHAR

Ajouter une caractéristique personnalisée au dernier service ajouté sur le périphérique (via AT+GATTADDSERVICE).

  • Codebase Revision : 0.3.0
  • Paramètres : cette commande accepte un ensemble de paires clé-valeur (séparées par des virgules) pour définir les propriétés de la caractéristique. Les paires clé-valeur suivantes peuvent être utilisés:
    • UUID : L'UUID 16-bit de la caractéristique (qui sera inséré dans les 3ième et 4ièmes octets des UUID 128-bit des services parent). Cette valeur devrait être encodée au format hexadécimal au format (ex. 'UUID=0x1234'). Cette valeur doit être unique, et ne doit pas entrer en conflit avec les octets 3+4 de l'UUID 128-bit du service parent.
    • PROPERTIES : Le champs propriétés 8-bit de la caractéristique, tel que définit dans Bluetooth SIG. Les valeurs suivantes peuvent être utilisées:
      • 0x02 - Read (lecture)
      • 0x04 - Write Without Response (écriture sans réponse)
      • 0x08 - Write (écriture)
      • 0x10 - Notify (notification)
      • 0x20 - Indicate (désigner)
    • MIN_LEN : La taille minimale des valeurs pour cette caractéristique (en octets, min = 1, max = 20, défaut = 1)
    • MAX_LEN : La taille minimale des valeurs pour cette caractéristique (in octets, min = 1, max = 20, défaut = 1)
    • VALUE : Valeur initiale assignée à la caractéristique (dans les limites de 'MIN_LEN' et 'MAX_LEN'). La valeur peut être un entier ("-100", "27"), un hexadécimal ("0xABCD"), ou un tableau d'octet ("aa-bb-cc-dd") ou une chaâine de caractère ("GATT!").
    • >=0.7.0 - DATATYPE : cet argument indique le type de données stockée dans la caractéristique et est utilisé pour aider le parsing des données. DATATYPE peut avoir l'une des valeurs suivantes:
      • AUTO (0, défaut)
      • STRING (1, chaîne de caractère)
      • BYTEARRAY (2, tableau d'octets)
      • INTEGER (3, entier)
    • >=0.7.0 - DESCRIPTION: Ajoute la chaîne de caractère en argument comme description (description entry) de la caractéristique
    • >=0.7.0 - PRESENTATION: Ajoute la chaîne de caractère en argument comme format de présentation (presentation format entry) de la caractéristique.
  • Réponse: La valeur d'index de la caractéristique dans la table lookup des caractéristiques GATT personnalisées. (Il est important de mémoriser cette index pour travailler ensuite avec les caractéristiques.)
# Efface toutes les définitions antérieurs 
# de services/caractéristiques personnalisées
AT+GATTCLEAR
OK

# Ajoute le service "battery" (UUID = 0x180F, état de la 
# batterie) sur le périphérique
AT+GATTADDSERVICE=UUID=0x180F
1
OK
  
# Ajoute la caractéristique "battery measurement" 
# (UUID = 0x2A19, mesure de la batterie), notification activée
AT+GATTADDCHAR=UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,VALUE=100
1
OK
# Efface toutes les définitions antérieurs 
# de services/caractéristiques personnalisées
AT+GATTCLEAR
OK

# Ajoute un service personnalisé sur le périphérique
AT+GATTADDSERVICE=UUID128=00-11-00-11-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF
1
OK

# Ajouter une caractéristique personnalisée au
# service ci-dessus (s'assurer qu'il n'y a pas de conflit entre
# le UUID 16-bit et les octets 3+4 d'un UUID service 128-bit)
AT+GATTADDCHAR=UUID=0x0002,PROPERTIES=0x02,MIN_LEN=1,VALUE=100
1
OK

La version 0.6.6 du firmware de Bluefruit LE est capable d'utiliser le drapeau "nouveau UUID128" pour ajouter un des UUIDs 128-bit personnalisés qui ne sont pas relatifs à un service UUID parent (qui est utilisé lorsque l'on passe un drapeau "UUID 16-bit ").

Pour spécifier un UUID 128-bit pour votre caractéristique personnalisée, saisissez une valeur ressemblant à la syntaxe suivante:

# Ajouter une caractéristique personnalisée
# au service définit ci-dessous (en utilisant un 
# UUID 128-bit personalisé)
AT+GATTADDCHAR=UUID128=00-11-22-33-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF,PROPERTIES=0x02,MIN_LEN=1,VALUE=100
1
OK

La version 0.7.0 du firmware de Bluefruit LE ajoute les nouveau mots clés DESCRIPTION et PRESENTATION, correspondant aux spécifications GATT Characteristic User Description et Characteristic Presentation Format.

Le champs DESCRIPTION est une chaîne de caractère qui contient une courte description textuelle de la caractéristique. Certaines Apps pourraient ignorer cette information, elle devrait néanmoins être visible en utilisant l'application "Master Control Panel" de Nordic sous iOS et Android.

Le champs PRESENTATION contient un payload 7-octets qui encapsule les données presentation format de la caractéristique. Il nécessite en ensemble d'octets spécifique pour fonctionner correctement. Voyez le lien suivant pour plus de détails sur le format du payload: https://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml

L'exemple suivant montre comment vous pouvez utiliser ces deux nouveaux champs:

AT+GATTADDCHAR=UUID=0x2A37, PROPERTIES=0x10, MIN_LEN=2, MAX_LEN=3, VALUE=00-40, 
               DESCRIPTION=HRM Measurement, PRESENTATION=17-00-AC-27-01-00-00

Pour le format de présentation de la caractéristique nous avons:

  • Format = IEEE-11073 32-bit FLOAT (Decimal 23, Hex 0x17)
  • Exposant = 0/aucun
  • Unité = témpérature thermodynamique (Thermodynamic temperature): Degrés Fahrenheit (0x27AC) - Bluetooth LE Unit List
  • Espace de nom/Namespace = Bluetooth SIG Assigned Number (0x01)
  • Description = Aucune (0x0000)

L'application "Master Control Panel" de Nordic affiche l'information suivante:

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

AT+GATTCHAR

Fixer ou retrouver la valeur d'une caractéristique GATT personnalisée personnalisée (basé sur le numéro d'index index ID retourné par AT+GATTADDCHAR lorsque la caractéristique à été ajouté sur le périphérique).

  • Codebase Revision: 0.3.0
  • Paramètre: cette fonction prend un ou deux paramètres (séparé par une virgule, un paramètre = lecture, deux paramètres = écriture).
    • Le premier paramètre est l'index de la caractéristique, tel que retourné par la fonction AT+GATTADDCHAR. Ce paramètre est toujours nécessaire et s'il n'y a pas de second paramètres alors la valeur courante de la caractéristique est retournée.
    • Le second paramètre (optionnel) est la nouvelle valeur à assigner à la caractéristique (dans les limites définies par MIN_SIZE et MAX_SIZE lorsque la caractéristique à été créée).
  • Réponse:
    • Si la commande est utilisée en mode lecture (avec l'index de la caractéristique comme seul paramètre) alors la réponse affichera la valeur actuelle de la caractéristique.
    • Si la commande est utilisée en mode écriture (avec index de la caractéristique + une virgule + la nouvelle valeur) alors la caractéristique sera mise-à-jour pour utiliser la nouvelle valeur.
# Efface toutes les définitions antérieurs 
# de services/caractéristiques personnalisées
AT+GATTCLEAR
OK

# Ajoute le service "battery" (UUID = 0x180F, état de la 
# batterie) sur le périphérique
AT+GATTADDSERVICE=UUID=0x180F
1
OK
  
# Ajoute la caractéristique "battery measurement" 
# (UUID = 0x2A19, mesure de la batterie), notification activée
AT+GATTADDCHAR=UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,VALUE=100
1
OK

# Lire la caractéristique "battery measurement" (index ID = 1)
AT+GATTCHAR=1
0x64
OK

# Modifier la caractéristique "battery measurement" vers 32 (hex 0x20)
AT+GATTCHAR=1,32
OK

# Vérifier la valeur écrite
AT+GATTCHAR=1
0x20
OK

AT+GATTLIST

Liste tous les services et caractéristiques GATT personnalisés qui ont été définis sur le périphérique.

  • Codebase Revision: 0.3.0
  • Paramètre: Aucun
  • Réponse: Une liste de tous les services personnalisé et toutes les caractéristiques définie sur le périphérique.
# Efface tous les services/caractéristiques personnalisés
AT+GATTCLEAR
OK

# Ajouter le service "battery" (UUID = 0x180F) sur le périphérique
AT+GATTADDSERVICE=UUID=0x180F
1
OK
  
# Ajouter la caractéristique "battery measurement" (UUID = 0x2A19), notification activée
AT+GATTADDCHAR=UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,VALUE=100
1
OK
  
# Ajouter un service personalisé sur le périphérique
AT+GATTADDSERVICE=UUID128=00-11-00-11-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF
2
OK

# Ajouter une caractéristique personnalisé sur le service ci-dessus
# (S'assurer qu'il n'y a pas de conflit entre l'UUID 16 bits et 
# les octets 3+4 sur UUID service 128-bit)
AT+GATTADDCHAR=UUID=0x0002,PROPERTIES=0x02,MIN_LEN=1,VALUE=100
2
OK

# Obtenir une liste de tous les services GATT personnalisés et
# de toutes les caractéristiques personnalisées sur le périphérique
AT+GATTLIST
ID=01,UUID=0x180F
  ID=01,UUID=0x2A19,PROPERTIES=0x10,MIN_LEN=1,MAX_LEN=1,VALUE=0x64
ID=02,UUID=0x11, UUID128=00-11-00-11-44-55-66-77-88-99-AA-BB-CC-DD-EE-FF
  ID=02,UUID=0x02,PROPERTIES=0x02,MIN_LEN=1,MAX_LEN=1,VALUE=0x64
OK

AT+GATTCHARRAW

Cette commande en lecture seule lit les données binaires d'une caractéristique (au lieu de ASCII. L'information n'est pas affichable mais représente moins de surcharge et facilite l'écriture de bibliothèques pour Arduino (ou autre microcontroleur).

  • Codebase Revision: 0.7.0
  • Paramètre: Le numéro d'index de la caractéristique (index ID) dont on désire les données
  • Sortie: les données binaire correspondant à la caractéristique.

Basé sur "Bluefruit LE Shield" d'Adafruit Industries, écrit par Kevin Townsend - Traduit en Français par shop.mchobby.be CC-BY-SA pour la traduction
Toute copie doit contenir ce crédit, lien vers cette page et la section "crédit de traduction".

Based on "Bluefruit LE Shield" from Adafruit Industries, written by Kevin Townsend - Translated to French by shop.mchobby.be CC-BY-SA for the translation
Copies must includes this credit, link to this page and the section "crédit de traduction" (translation credit).

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com