Spark-Could-API-CoreControling

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


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.

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.