Spark-Cloud-API-SparkFunction-Runs
Wiring?
Si vous connaissez Arduino alors vous connaissez déjà Wiring!
Wiring est un framework de développement pour microcontroleur, framework utilisé dans Arduino.
Wiring permet d'écrire des logiciel cross-platform pour controler des périphériques branchés sur une large gamme de microcontroleur en vue de créer du code créatifs, des objets interactifs, des expériences spaciales ou physiques. Le framework fut créé en gardant en mémoire les besoins des concepteurs et artistes de façon à stimuler le partage des idées au travers d'une communauté rassemblant débutant et experts... bref l'émergence d'une collectivité expérimenté. Il y a des milliers d'étudiants, artistes, ingénieurs, désigners, chercheurs et hobbyistes qui utilisent Wiring pour apprendre, prototyper et réaliser des productions professionnelles.
Pour en apprendre plus sur Wiring, voyez wiring.org.co (anglais)
Loop() et Setup()
Implémentation Arduino
L'environnement Wiring définit deux fonctions de bases qui sont setup() et loop().
Comme vous pouvez le constater une fois les broches initialisées dans setup(), la fonction loop() agit est appelée sans arrêt par le Framework Wiring. Il est important de savoir qu'entre deux appels de loop(), Wiring effectue un certain nombre de tâches utiles au bon fonctionnement du Framework.
Voici également un graphique d'état qui présente toutes les transisions possibles.
Le cas de Spark Core
Dans le cas de Spark Core, l'exécution de la boucle principale se divise en deux parties:
- USER STAGE - Cette partie de l'exécution appelle la fonction loop() où fonctionne votre code.
- SYSTEM STAGE - Gestion système du Core.
Bien que cela soit caché, l'appel de loop() se fait depuis une autre boucle sans fin prenant en charge des choses avant, après et entre les différents appels de loop(). Ces appels que vous ne voyez pas prennent place dans un bloc exécutif que nous appelerons SYSTEM STAGE.
Une des tâches du SYSTEM STAGE est de vérifier si le Spark Cloud désire déclencher un appel vers un Spark.function ou s'il a besoin de connaître le contenu d'une Spark.variable, etc. En fonction, le SYSTEM STAGE agira de façon adéquate.
Conséquence du SYSTEM STAGE
Etant donné l'activité en ligne du SYSTEM STAGE, il n'est pas possible de prédire combien de fois la fonction loop() sera appelée sur un laps de temps donné.
La complexité de cette partie du système est telle (connexion Wifi, Votre routeur, connexion internet, serveurs Spark, etc) que le temps d'exécution du SYSTEM STAGE ne peut pas être déterminé avec exactitude. Cela doit être considéré comme non prévisible
loop() < 10 sec
Si votre code fonctionne pendant plus de 10 secondes et empêche le SYSTEM STAGE de faire son travail alors la connexion Cloud sera interrompue. Pour éviter cela, vous devez explicitement appeler la fonction SPARK_WLAN_Loop() ou Spark.process() durant les longues section de votre code.
Si vous avez seulement besoin d'un long délais, vous pouvez appeler la fonction delay() qui fait elle même appel à SPARK_WLAN_Loop() environ une fois par seconde.
References
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.