Création de conditions IF sans recharger le pde

Bonjour,

Je travaille sur un projet domotique en Arduino qui prend en compte des scénarios basé sur une centrale. Un GUI permet d'envoyer des informations à cette centrale par ethernet.

J'aimerai que le GUI permette de créer des scénarios qui seront stocké au niveau de la centrale (afin de ne pas dépendre du GUI et laisser la centrale tourner). Ces scénarios peuvent être fait de manière assez basique (if then else, parfois avec plusieurs conditions).

Si je ne me trompe pas, cela nécessite une création dynamique de condition dans l'arduino... je ne veux pas avoir à recharger le pde à chaque fois dans la centrale. Est t'il possible de faire ce genre de chose (j'ai un protocole définit en ethernet qui envoie les données que je veux)

Si je ne suis pas assez clair, n'hésitez pas.. ce n'est pas très facile à expliquer :~

Merci d'avance

Si je ne me trompe pas, cela nécessite une création dynamique de condition dans l'arduino... je ne veux pas avoir à recharger le pde à chaque fois dans la centrale

En fait tu prends le problème par le mauvais bout.
Tu n'as pas besoin de refaire le programme à chaque fois que tu change le scénario. Tu as besoin d'un programme qui interprète tes scénarios et qui les exécute.
Il faut que tu définisses une grammaire que tu utiliseras pour écrire tes scénarios. Et ton programme comprend la grammaire et exécute les scénarios.

yes, je vois ce que tu veux dire, cela risque de faire une grammaire assez complexe… je vais me pencher la dessus ^^

merci

Bonjour,

Dans un ce type de projet il serait plus intelligent de faire un systéme qui interprète la config stocké sur une carte SD plutôt que de devoir reprogrammé la carte sans cesse.

Pour faire simple :
GUI -ethernet → central → SD
SD → central → interpréteur → action

Suivant la flexibilité que tu veux donner à ton systéme tu va devoir soit faire un systéme “simple” qui réagit juste pour quelque cas prédéfini ou sinon un vrai mini-cpu émulé (avec opcode, …) un peu comme le systéme de scripting de bitlash.

tu peut aussi fair un systeme en mode module

en gros tu a des commande de base, avec des options qui font faire plusieurs chose

par exemple dans le robot que je construit, je peut envoyer la commande “rotate”, qui agis sur les chenille du robot pour en effectuer la rotation

  • rotate {} {left | right} {}
    must be between 0 and 100
    must be 1 or 2
    1 if you want slow rotation, only one side
    2 if you want quick rotation, both side

mais comme on le vois dans le descriptif il y a 2 mode a la commande

tu peut donc baser ta grammaire sur un système a commande dans ce genre
par exemple (comme c’est de la domotique)
la commande “light” pour éteindre ou allumer les lumière

  • light {<room_id>} {<light_id>} {on | off}
    <room_id> id de la pièce
    <light_id> id de la lampe

du coup avec ce genre de système tu n’a plus qu’a faire un adressage de tes lampes ^^
et combiner avec des registre a décalage et des multiplexeur, tu peut avoir autant de sorti (d’adresse) que tu veux sur un simple arduino UNO