Modifications

Sauter à la navigation Sauter à la recherche
2 006 octets ajoutés ,  8 décembre 2014 à 12:56
Ligne 180 : Ligne 180 :     
== Les petits curieux ==
 
== Les petits curieux ==
Soyons un peu plus curieux et désobéissant! Avant d'opter pour l'utilisation d'un montage avec filtrage, j'ai essayé de comprendre pourquoi mon Core prétendait qu'il faisait -20°C dans mon salon.
+
Soyons un peu plus curieux et désobéissant! Avant d'opter pour l'utilisation d'un montage avec filtrage, j'ai essayé de comprendre pourquoi mon Core prétendait qu'il faisait -20°C dans mon salon!
   −
J'ai donc modifié le programme pour publier toutes les variables du programme sur l'API Spark Cloud
+
J'ai donc modifié le programme pour publier toutes les variables du programme sur l'API Spark Cloud et c'est là qu'on apprend des choses intéressantes.
    
=== Le code ===
 
=== Le code ===
Ligne 246 : Ligne 246 :  
   }
 
   }
 
}</nowiki>
 
}</nowiki>
 +
 +
Il est également possible de lire les autres variables avec les requêtes CURL suivantes:
 +
 +
<nowiki>curl -G https://api.spark.io/v1/devices/54yyyyyyyyyyyyyyyyyyy67/voltage -d access_token=1dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf8<nowiki>
 +
 +
<nowiki>curl -G https://api.spark.io/v1/devices/54yyyyyyyyyyyyyyyyyyy67/reading -d access_token=1dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf8<nowiki>
 +
 +
=== Désobéissons ===
 +
Vous vous doutez certainement que votre programme Spark publie les éléments de votre interface sur Spark Cloud.
 +
 +
C'est en faisant preuve de curiosité que j'ai remarqué qu'il était possible de consulter l'interface disponible en faisant une {{underline|requête CURL sur le Core (sans préciser l'API)}}.
 +
 +
<nowiki>curl -G https://api.spark.io/v1/devices/54yyyyyyyyyyyyyyyyyyy67 -d access_token=1dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf8<nowiki>
 +
 +
Ce qui produit un résultat contenant une énumération de l'interface disponible sur votre Core.
 +
 +
<nowiki>{
 +
  "id": "54yyyyyyyyyyyyyyyyyyy67",
 +
  "name": "mch-demo",
 +
  "connected": true,
 +
  "variables": {
 +
    "temperature": "double",
 +
    "voltage": "double",
 +
    "reading": "int32"
 +
  },
 +
  "functions": [],
 +
  "cc3000_patch_version": "1.29"
 +
</nowiki>
 +
 +
Comme vous pouvez le contaster, nous obtenons beaucoup d'informations utiles:
 +
* '''id''': Identification de votre Core. Superflux à la base mais peut grandement faciliter l'écriture de votre code.
 +
* '''name''': Le nom que vous avez donné à votre Core. En utilisant une nomenclature adéquate, vous pourriez identifier
 +
* '''connected''': permet de savoir si votre Core est actuellement connecté sur Spark Cloud.
 +
* '''variables''': contient les entrées (et type) correspondant aux {{underline|variables}} d'API déclarées dans notre programme avec <code>Spark.variable()</code>
 +
* '''functions''': contient les entrées correspondant aux {{underline|fonctions}} d'API déclarées dans votre programme avec <code>Spark.function()</code>
    
{{Spark-Core-Hacking-TRAILER}}
 
{{Spark-Core-Hacking-TRAILER}}
    
<small>Source: [http://docs.spark.io/examples/#measuring-the-temperature docs.spark.io/examples/#measuring-the-temperature]</small>
 
<small>Source: [http://docs.spark.io/examples/#measuring-the-temperature docs.spark.io/examples/#measuring-the-temperature]</small>
29 836

modifications

Menu de navigation