User manual
programma verder gaat. De wachttijd (time-out) wordt door esp8266.setTimeout
gedefinieerd. Met findUntil() kan echter ook een tweede datareeks worden gedefi-
nieerd waarbij de zoekfunctie uitstapt en false als returnwaarde levert. Dit gebrui-
ken wij in de functie 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
}
Wanneer u de functie oproept, moet u dus het bevel en de verwachte returnwaar-
de aan de functie overgeven, bv. AT en de verwachte returnwaarde OK. Via print-
ln() wordt het commando overgedragen en tenslotte gewacht tot de verwachte
returnwaarde of een ERROR wordt ontvangen. Als de verwachting vervuld is,
geeft de functie de waarde true terug. Indien niet, zendt de module via de debug()-
functie een ESP SEND ERROR en het verzonden commando terug zodat men
makkelijk kan controleren, welk bevel de problemen veroorzaakt.
Niet alle AT-bevelen hebben een eenduidige of uit een regel bestaande return-
waarde. Als bv. het IP-adres wordt gevraagd, is er in regel geen vooraf bekende
waarde. Daarom is er een tweede sendCom()-functie die alleen de parameter
command nodig heeft en dan de hele ontvangen string teruggeeft. De string mag
echter niet te lang zijn want de buffer van SoftwareSerial kan overlopen.