Différences entre versions de « Spark-Could-API-CoreControling »
Ligne 4 : | Ligne 4 : | ||
== Introduction == | == Introduction == | ||
− | {{bloc-etroit|text= | + | {{bloc-etroit|text=Pour controler un Core, vous devez d'abord définir et exposer des fonctions dans le firmware du Core. Ensuite, vous pouvez appeler ces fonctions à distance en utilisant l'API Spark Cloud. |
− | Note: | + | Note: Si vous avez déclaré une fonction dont le nom est supérieur à 12 charactères, le nom {{underline|sera tronqué}} à 12 charactères. |
− | + | Exemple: Spark.function("someFunction1", ...); expose une fonction nommée '''someFunction''' et non '''someFunction1'''}} | |
== Sur le Core == | == Sur le Core == | ||
− | + | Disons, par exemple, que nous avons créé une machine à café contrôlé par Spark Core. Dans le firmware, nous devrions trouver une fonction '''brew''' (''faire infuser''). | |
<nowiki>/* FIRMWARE */ | <nowiki>/* FIRMWARE */ | ||
int brew(String args) | int brew(String args) | ||
{ | { | ||
− | // | + | // parser la température d'infusion et la durée depuis args |
// ... | // ... | ||
− | + | activater_resistance_chauffante(temperature); | |
− | + | demarrer_pompe_eau(duration_seconds); | |
// int status_code = ... | // int status_code = ... | ||
Ligne 33 : | Ligne 33 : | ||
− | + | Dans une machine à caffé, '''brew''' (''faire infuser'') devrait normalement être appelé lorsque le bouton est pressé sur la machine. | |
− | + | Pour rendre cette fonction disponible par l'intermédiaire du Spark Clound, ajoutez simplement l'appel à '''Spark.function''' dans la fonction '''setup()'''. | |
− | + | Cela expose la fonction ''brew'' de façon a pouvoir l'appeler via l'API. Lorsque ce code est présent dans le firmware, vous pouvez faire des appels d'API. | |
== Appel d'API == | == Appel d'API == | ||
− | + | La requête d'API sera redirigé vers votre Spark Core et exécutera votre fonction '''brew'''. | |
− | + | La réponse contiendra une clé '''return_value''' contenant la valeur entière (int) retournée par '''brew'''. | |
POST /v1/devices/{DEVICE_ID}/{FUNCTION} | POST /v1/devices/{DEVICE_ID}/{FUNCTION} | ||
<nowiki> | <nowiki> | ||
− | # | + | # Exemple de requête |
curl https://api.spark.io/v1/devices/0123456789abcdef01234567/brew \ | curl https://api.spark.io/v1/devices/0123456789abcdef01234567/brew \ | ||
-d access_token=1234123412341234123412341234123412341234 \ | -d access_token=1234123412341234123412341234123412341234 \ | ||
Ligne 54 : | Ligne 54 : | ||
Exemple de réponse | Exemple de réponse | ||
− | <nowiki> | + | <nowiki>{ |
− | { | ||
"id": "0123456789abcdef01234567", | "id": "0123456789abcdef01234567", | ||
"name": "prototype99", | "name": "prototype99", |
Version du 11 janvier 2015 à 14:04
En cours de traduction/élaboration. |
Introduction
Pour controler un Core, vous devez d'abord définir et exposer des fonctions dans le firmware du Core. Ensuite, vous pouvez appeler ces fonctions à distance en utilisant l'API Spark Cloud.
Note: Si vous avez déclaré une fonction dont le nom est supérieur à 12 charactères, le nom sera tronqué à 12 charactères.
Exemple: Spark.function("someFunction1", ...); expose une fonction nommée someFunction et non someFunction1
Sur le Core
Disons, par exemple, que nous avons créé une machine à café contrôlé par Spark Core. Dans le firmware, nous devrions trouver une fonction brew (faire infuser).
/* FIRMWARE */ int brew(String args) { // parser la température d'infusion et la durée depuis args // ... activater_resistance_chauffante(temperature); demarrer_pompe_eau(duration_seconds); // int status_code = ... return status_code; } /* FIRMWARE */ void setup() { Spark.function("brew", brew); }
Dans une machine à caffé, brew (faire infuser) devrait normalement être appelé lorsque le bouton est pressé sur la machine.
Pour rendre cette fonction disponible par l'intermédiaire du Spark Clound, ajoutez simplement l'appel à Spark.function dans la fonction setup().
Cela expose la fonction brew de façon a pouvoir l'appeler via l'API. Lorsque ce code est présent dans le firmware, vous pouvez faire des appels d'API.
Appel d'API
La requête d'API sera redirigé vers votre Spark Core et exécutera votre fonction brew.
La réponse contiendra une clé return_value contenant la valeur entière (int) retournée par brew.
POST /v1/devices/{DEVICE_ID}/{FUNCTION}
# Exemple de requête curl https://api.spark.io/v1/devices/0123456789abcdef01234567/brew \ -d access_token=1234123412341234123412341234123412341234 \ -d "args=202,230"
Exemple de réponse
{ "id": "0123456789abcdef01234567", "name": "prototype99", "connected": true, "return_value": 42 }
Source: Cloud CODE (API) créé par Spark.IO.
Traduction réalisée par Meurisse D pour MCHobby.be - Translated by Meurisse D. for MCHobby.be
Traduit avec l'autorisation de Spark.IO - Translated with the permission from Spark.IO - Spark.IO
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.