Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save hpssjellis/5ffad74751a224bb9f528f54cd4afba6 to your computer and use it in GitHub Desktop.
Save hpssjellis/5ffad74751a224bb9f528f54cd4afba6 to your computer and use it in GitHub Desktop.
int8_t sendATcommand(char* ATcommand, char* expected_answer, unsigned int timeout){
uint8_t x=0, answer=0;
char response[100];
unsigned long previous;
memset(response, '\0', 100); // Clean response buffer
delay(100); // Delay to be sure no passed commands interfere
while( Serial.available() > 0) Serial.read(); // Wait for clean input buffer
Serial.println(ATcommand); // Send the AT command
previous = millis();
// this loop waits for the answer
do{
// if there are data in the UART input buffer, reads it and checks for the asnwer
if(Serial.available() != 0){
response[x] = Serial.read();
x++;
// check if the desired answer is in the response of the module
if (strstr(response, expected_answer) != NULL){
answer = 1;
}
}
// Waits for the answer with time out
} while((answer == 0) && ((millis() - previous) < timeout));
return answer;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment