Browse Source

Handle no GSM location returned

Signed-off-by: Sara Damiano <sdamiano@stroudcenter.org>
v_master
Sara Damiano 5 years ago
parent
commit
37766589f8
2 changed files with 17 additions and 10 deletions
  1. +12
    -9
      examples/AllFunctions/AllFunctions.ino
  2. +5
    -1
      src/TinyGsmGSMLocation.tpp

+ 12
- 9
examples/AllFunctions/AllFunctions.ino View File

@ -347,9 +347,9 @@ void loop() {
delay(15000L);
}
}
DBG("Retrieving GSM location again as a string");
String location = modem.getGsmLocation();
DBG("GSM Based Location String:", location);
DBG("Retrieving GSM location again as a string");
String location = modem.getGsmLocation();
DBG("GSM Based Location String:", location);
#endif
#if TINY_GSM_TEST_GPS && defined TINY_GSM_MODEM_HAS_GPS
@ -385,9 +385,9 @@ void loop() {
delay(15000L);
}
}
DBG("Retrieving GPS/GNSS/GLONASS location again as a string");
String gps_raw = modem.getGPSraw();
DBG("GPS/GNSS Based Location String:", gps_raw);
DBG("Retrieving GPS/GNSS/GLONASS location again as a string");
String gps_raw = modem.getGPSraw();
DBG("GPS/GNSS Based Location String:", gps_raw);
DBG("Disabling GPS");
modem.disableGPS();
#endif
@ -413,13 +413,14 @@ void loop() {
delay(15000L);
}
}
DBG("Retrieving time again as a string");
String time = modem.getGSMDateTime(DATE_FULL);
DBG("Current Network Time:", time);
DBG("Retrieving time again as a string");
String time = modem.getGSMDateTime(DATE_FULL);
DBG("Current Network Time:", time);
#endif
#if TINY_GSM_TEST_GPRS
modem.gprsDisconnect();
delay(5000L);
if (!modem.isGprsConnected()) {
DBG("GPRS disconnected");
} else {
@ -454,6 +455,8 @@ void loop() {
DBG("Poweroff.");
#endif
DBG("End of tests.");
// Do nothing forevermore
while (true) {
modem.maintain();


+ 5
- 1
src/TinyGsmGSMLocation.tpp View File

@ -90,7 +90,11 @@ class TinyGsmGSMLocation {
// 4 = Get longitude latitude and date time
thisModem().sendAT(GF("+CLBS=4,1"));
// Should get a location code of "0" indicating success
if (thisModem().waitResponse(120000L, GF("+CLBS:0,")) != 1) {
if (thisModem().waitResponse(120000L, GF("+CLBS:")) != 1) { return false; }
int8_t locationCode = thisModem().streamGetIntLength(2);
// 0 = success, else, error
if (locationCode != 0) {
thisModem().waitResponse(); // should be an ok after the error
return false;
}


Loading…
Cancel
Save