From c40ca2144b50314e2b83a8fe0903c9b419786dff Mon Sep 17 00:00:00 2001 From: lewis he Date: Fri, 5 Jun 2020 15:12:56 +0800 Subject: [PATCH] Added GNSS setMode and getMode method --- src/TinyGsmClientSIM7600.h | 26 ++++++++++++++++++++++++++ src/TinyGsmGPS.tpp | 12 ++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/TinyGsmClientSIM7600.h b/src/TinyGsmClientSIM7600.h index d2f2c35..f288ff7 100644 --- a/src/TinyGsmClientSIM7600.h +++ b/src/TinyGsmClientSIM7600.h @@ -524,6 +524,32 @@ class TinyGsmSim7600 : public TinyGsmModem, return false; } + + /** + * CGNSSMODE: , + * This command is used to configure GPS, GLONASS, BEIDOU and QZSS support mode. + * 0 : GLONASS + * 1 : BEIDOU + * 2 : GALILEO + * 3 : QZSS + * dpo_mode: 1 enable , 0 disable + */ + String setGNSSModeImpl(uint8_t mode,bool dpo){ + String res; + sendAT(GF("+CGNSSMODE="), mode,",",dpo); + if (waitResponse(10000L,res) != 1) { return "";} + res.replace(GSM_NL, ""); + res.trim(); + return res; + } + + uint8_t getGNSSModeImpl(){ + sendAT(GF("+CGNSSMODE?")); + if (waitResponse(GF(GSM_NL "+CGNSSMODE:")) != 1) { return 0;} + return stream.readStringUntil(',').toInt(); + } + + /* * Time functions */ diff --git a/src/TinyGsmGPS.tpp b/src/TinyGsmGPS.tpp index 9d09fc9..73af243 100644 --- a/src/TinyGsmGPS.tpp +++ b/src/TinyGsmGPS.tpp @@ -43,6 +43,16 @@ class TinyGsmGPS { hour, minute, second); } + String setGNSSMode(uint8_t mode,bool dpo) + { + return thisModem().setGNSSModeImpl(mode,dpo); + } + + uint8_t getGNSSMode() + { + return thisModem().getGNSSModeImpl(); + } + /* * CRTP Helper */ @@ -66,6 +76,8 @@ class TinyGsmGPS { int* year = 0, int* month = 0, int* day = 0, int* hour = 0, int* minute = 0, int* second = 0) TINY_GSM_ATTR_NOT_IMPLEMENTED; + String setGNSSModeImpl(uint8_t mode,bool dpo) TINY_GSM_ATTR_NOT_IMPLEMENTED; + uint8_t getGNSSModeImpl() TINY_GSM_ATTR_NOT_IMPLEMENTED; };