User manual

L’évaluation dans le programme fonctionne désormais comme suit : Supposons
que les cases 3, 5 et 7 aient été sélectionnées dans le formulaire. L’URL se modi-
fie pour :
[IP]/?ld3=on&ld5=on&ld7=on
Cela signifie que seules les cases sélectionnées sont transmises et identifiées
avec l’indice. Dans la routine loopvoici ce qu’il se passe exactement : D’abord tout
le port D, sur lequel se trouvent les sorties numériques, est activé bas. Ensuite
une boucle whilerecherche toutes les « Id » dans le lien ressources. Sur la base
de l’indice des ldtrouvées, enld3 serait p. ex. la 3,l’octet 0b0001000 se génère par
le décalage de 1 dans un octet autour de l’indice dit 3. Il est ensuite lié à la valeur
actuelle de l’octet. Cela se produit avec tous les indices transmis jusqu’à ce que le
registre de sorties de D trouve la valeur correcte. Cette forme de sortie au lieu de
digitalWrite() est sans doute quelque peu inhabituelle pour un utilisateur Arduino
dans ce cas mais bien plus pratique.
if (esp8266.find("+IPD,"))
{
debug("Incomming Request");
int connectionId = esp8266.parseInt();
if (esp8266.find("/?")) PORTD = B00000000;
while (esp8266.findUntil("ld", "\n"))
{
int ld = esp8266.parseInt();
PORTD |= (1 << ld);
}
}
À l’inverse, la sortie des cases à cocher fonctionne de la manière suivante : dans
la fonction createWebsite()les espaces réservés sont échangés depuis le docu-
ment HTML. Une boucle forpasse un par un tous les ports utilisés de la série. Si le
pin est haut (également remarqué ici par la comparaison d’un octet qui a été géné-
en décalant les octets hauts), l’espace réservé avec l’indice est remplacé par le
texte checked. Lorsque le pin est bas, l’espace réservé est simplement seulement