User manual
(Timeout) est défini par esp8266.setTimeout . Avec findUntil() une deuxième chaî-
ne de caractères peut cependant être définie par laquelle la fonction de recherche
s’arrête et fournit false comme valeur de retour. Nous exploitons ceci dans la fonc-
tion sendCom():
001
//-------Controll ESP--------
002
003
boolean sendCom(String command, char respond[])
004
{
005
esp8266.println(command);
006
if (esp8266.findUntil(respond, "ERROR"))
007
{
008
return true;
009
}
010
else
011
{
012
debug("ESP SEND ERROR: " + command);
013
return false;
014
}
015
}
Si vous appelez la fonction, vous devez également remettre à la fonction
l’instruction et la valeur de retour attendue, p. ex. AT et la valeur de retour atten-
due OK. La commande est transmise par println() et finalement attendue jusqu’à la
valeur de retour attendue ou un ERROR est reçu. Si l’attente est remplie, la fonc-
tion renvoie la valeur true . Dans le cas contraire, le module transmet par la fonc-
tion debug()-un ESP SEND ERROR et la commande envoyée revient pour pouvoir
contrôler facilement quelle instruction est à l’origine des problèmes.
Pas toutes les instructions ATont une valeur de retour explicite ou à une ligne. Si
par exemple l’adresse IP est interrogée, il n’y a pas nécessairement de valeur
connue à l’avance. C’est pourquoi il y a une deuxième fonction sendCom()qui n’a
besoin que du paramètre command et renvoie ensuite toute la chaîne (string)
reçue. La chaîne ne doit cependant pas être trop longue car la mémoire tampon
du SoftwareSerial peut être dépassée.