diff --git a/Adafruit_FONA.cpp b/Adafruit_FONA.cpp index d5775ed..965231b 100644 --- a/Adafruit_FONA.cpp +++ b/Adafruit_FONA.cpp @@ -894,24 +894,20 @@ bool Adafruit_FONA::sendSMS(char *smsaddr, char *smsmsg) { DEBUG_PRINTLN("^Z"); - if ((_type == FONA3G_A) || (_type == FONA3G_E)) { - // Eat two sets of CRLF - readline(200); - // DEBUG_PRINT("Line 1: "); DEBUG_PRINTLN(strlen(replybuffer)); - readline(200); - // DEBUG_PRINT("Line 2: "); DEBUG_PRINTLN(strlen(replybuffer)); - } - readline(10000); // read the +CMGS reply, wait up to 10 seconds!!! - // DEBUG_PRINT("Line 3: "); DEBUG_PRINTLN(strlen(replybuffer)); - if (strstr(replybuffer, "+CMGS") == 0) { - return false; - } - readline(1000); // read OK - // DEBUG_PRINT("* "); DEBUG_PRINTLN(replybuffer); - - if (strcmp(replybuffer, "OK") != 0) { - return false; - } + char ltimeout = 0; + do { + readline(10000); + ltimeout++; + if (ltimeout > 5) + return false; + } while (strstr(replybuffer, "+CMGS") == NULL); + ltimeout = 0; + do { + readline(200); + ltimeout++; + if (ltimeout > 5) + return false; + } while (strcmp(replybuffer, "OK") != 0); return true; }