Modifications

Sauter à la navigation Sauter à la recherche
Page créée avec « {{Spark.IO-Could-API-NAV}} == Wiring? == Si vous connaissez {{cl|5|Arduino}} alors vous connaissez déjà Wiring! Wiring est un framework de développement pour microcontro... »
{{Spark.IO-Could-API-NAV}}

== Wiring? ==
Si vous connaissez {{cl|5|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 [http://wiring.org.co/ wiring.org.co] (''anglais'')

== Loop() et Setup() ==

=== Implémentation Arduino ===
L'environnement Wiring définit deux fonctions de bases qui sont setup() et loop().

[[Fichier:Spark-Cloud-API-SparkFunction-Runs-00.jpg]]

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.

[[Fichier:Spark-Cloud-API-SparkFunction-Runs-01.png]]

=== 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.

[[Fichier:Spark-Cloud-API-SparhFunction-Runs-10.jpg]]

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 {{underline|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 ==
* [https://community.spark.io/t/when-do-spark-functions-run/9244/2 Ce thread sur sommunity.spark.io]
* [http://wiring.org.co/ wiring.org.co]

{{Spark.IO-Could-API-TRAILER}}
29 922

modifications

Menu de navigation