Blocco "Settings_ATcommands_HC12".
Il blocco riguarda le impostazioni del comando AT sul modulo HC-12 (Figura 1).

Descrizione del codice del blocco.
Costanti.
- CONST_UART - costante per selezionare la porta UART.
- TIMEOUT - La costante di tempo per attendere una risposta, se arriva una risposta o si verifica un timeout.
Codice.
Sezione "Declare".
Elemento di codice "Storing the response".
String storingResponse = ""; //Variabile per memorizzare la risposta.
Sezione "Loop".
Elemento di codice "Main code".
if(<ClearStoringResponse> == true) //Cancella il contenuto della variabile "StoringResponse".
{
storingResponse = "";
}
if(<SendCommand> == true)
{
<CONST_UART.Name>.println(<ATCommand>); //Inviamo un comando.
}
if (<CONST_UART.Name>.available()) //Se qualcosa inviato...
{
storingResponse = waitResponse(); //Otteniamo la risposta per l'analisi.
storingResponse.trim(); //Rimuovi gli spazi extra all'inizio e alla fine.
}
Sezione "Function".
Funzione "Wait for response".
//La funzione di attendere una risposta e restituire un risultato.
String waitResponse()
{
String _response = ""; //Variabile per la memorizzazione del risultato.
long _timeout = millis() + <TIMEOUT>; //Variabile per il monitoraggio del timeout.
//In attesa di una risposta, se arriva una risposta o si verifica un timeout.
while (!<CONST_UART.Name>.available() && millis() < _timeout) {};
if (<CONST_UART.Name>.available()) //Se c'è qualcosa da leggere...
{
_response = <CONST_UART.Name>.readString(); //... letto e memorizzato.
}
else //Se il timeout è arrivato...
{
storingResponse = "Timeout"; //... notificarlo e...
}
return _response; //... restituire il risultato. Vuoto se problema.
}
Scarica file.