Minor realignment with vshymanskyy

This commit is contained in:
SRGDamia1
2018-05-15 17:25:34 -04:00
parent 407f141119
commit cdcdd15a80
10 changed files with 301 additions and 306 deletions

View File

@@ -175,10 +175,10 @@ public:
String remoteIP() TINY_GSM_ATTR_NOT_IMPLEMENTED; String remoteIP() TINY_GSM_ATTR_NOT_IMPLEMENTED;
private: private:
TinyGsmA6* at; TinyGsmA6* at;
uint8_t mux; uint8_t mux;
bool sock_connected; bool sock_connected;
RxFifo rx; RxFifo rx;
}; };
//============================================================================// //============================================================================//
@@ -195,7 +195,6 @@ private:
//============================================================================// //============================================================================//
//============================================================================// //============================================================================//
public: public:
#ifdef GSM_DEFAULT_STREAM #ifdef GSM_DEFAULT_STREAM
@@ -241,8 +240,8 @@ public:
for (unsigned long start = millis(); millis() - start < timeout; ) { for (unsigned long start = millis(); millis() - start < timeout; ) {
sendAT(GF("")); sendAT(GF(""));
if (waitResponse(200) == 1) { if (waitResponse(200) == 1) {
delay(100); delay(100);
return true; return true;
} }
delay(100); delay(100);
} }
@@ -348,6 +347,17 @@ public:
return SIM_ERROR; return SIM_ERROR;
} }
RegStatus getRegistrationStatus() {
sendAT(GF("+CREG?"));
if (waitResponse(GF(GSM_NL "+CREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
String getOperator() { String getOperator() {
sendAT(GF("+COPS=3,0")); // Set format sendAT(GF("+COPS=3,0")); // Set format
waitResponse(); waitResponse();
@@ -366,17 +376,6 @@ public:
* Generic network functions * Generic network functions
*/ */
RegStatus getRegistrationStatus() {
sendAT(GF("+CREG?"));
if (waitResponse(GF(GSM_NL "+CREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
int getSignalQuality() { int getSignalQuality() {
sendAT(GF("+CSQ")); sendAT(GF("+CSQ"));
if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) {
@@ -402,22 +401,6 @@ public:
return false; return false;
} }
String getLocalIP() {
sendAT(GF("+CIFSR"));
String res;
if (waitResponse(10000L, res) != 1) {
return "";
}
res.replace(GSM_NL "OK" GSM_NL, "");
res.replace(GSM_NL, "");
res.trim();
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* WiFi functions * WiFi functions
*/ */
@@ -480,6 +463,22 @@ public:
return (res == 1); return (res == 1);
} }
String getLocalIP() {
sendAT(GF("+CIFSR"));
String res;
if (waitResponse(10000L, res) != 1) {
return "";
}
res.replace(GSM_NL "OK" GSM_NL, "");
res.replace(GSM_NL, "");
res.trim();
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* Messaging functions * Messaging functions
*/ */
@@ -583,7 +582,7 @@ protected:
} }
bool modemGetConnected(uint8_t mux) { bool modemGetConnected(uint8_t mux) {
sendAT(GF("+CIPSTATUS")); // TODO mux? sendAT(GF("+CIPSTATUS")); //TODO mux?
int res = waitResponse(GF(",\"CONNECTED\""), GF(",\"CLOSED\""), GF(",\"CLOSING\""), GF(",\"INITIAL\"")); int res = waitResponse(GF(",\"CONNECTED\""), GF(",\"CLOSED\""), GF(",\"CLOSING\""), GF(",\"INITIAL\""));
waitResponse(); waitResponse();
return 1 == res; return 1 == res;

View File

@@ -382,6 +382,17 @@ public:
return SIM_ERROR; return SIM_ERROR;
} }
RegStatus getRegistrationStatus() {
sendAT(GF("+CREG?"));
if (waitResponse(GF(GSM_NL "+CREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
String getOperator() { String getOperator() {
sendAT(GF("+COPS?")); sendAT(GF("+COPS?"));
if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { if (waitResponse(GF(GSM_NL "+COPS:")) != 1) {
@@ -397,17 +408,6 @@ public:
* Generic network functions * Generic network functions
*/ */
RegStatus getRegistrationStatus() {
sendAT(GF("+CREG?"));
if (waitResponse(GF(GSM_NL "+CREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
int getSignalQuality() { int getSignalQuality() {
sendAT(GF("+CSQ")); sendAT(GF("+CSQ"));
if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) {
@@ -433,23 +433,6 @@ public:
return false; return false;
} }
String getLocalIP() {
sendAT(GF("+CGPADDR=1"));
if (waitResponse(10000L, GF(GSM_NL "+CGPADDR:")) != 1) {
return "";
}
streamSkipUntil(',');
String res = stream.readStringUntil('\n');
if (waitResponse() != 1) {
return "";
}
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* WiFi functions * WiFi functions
*/ */
@@ -500,6 +483,23 @@ public:
return localIP() != 0; return localIP() != 0;
} }
String getLocalIP() {
sendAT(GF("+CGPADDR=1"));
if (waitResponse(10000L, GF(GSM_NL "+CGPADDR:")) != 1) {
return "";
}
streamSkipUntil(',');
String res = stream.readStringUntil('\n');
if (waitResponse() != 1) {
return "";
}
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* Messaging functions * Messaging functions
*/ */

View File

@@ -9,7 +9,7 @@
#ifndef TinyGsmClientESP8266_h #ifndef TinyGsmClientESP8266_h
#define TinyGsmClientESP8266_h #define TinyGsmClientESP8266_h
// #define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
#if !defined(TINY_GSM_RX_BUFFER) #if !defined(TINY_GSM_RX_BUFFER)
#define TINY_GSM_RX_BUFFER 512 #define TINY_GSM_RX_BUFFER 512
@@ -286,7 +286,9 @@ public:
return res; return res;
} }
bool hasSSL() { return true; } bool hasSSL() {
return true;
}
/* /*
* Power functions * Power functions
@@ -317,11 +319,6 @@ public:
* SIM card functions * SIM card functions
*/ */
/*
* Generic network functions
*/
RegStatus getRegistrationStatus() { RegStatus getRegistrationStatus() {
sendAT(GF("+CIPSTATUS")); sendAT(GF("+CIPSTATUS"));
if (waitResponse(3000, GF("STATUS:")) != 1) return REG_UNKNOWN; if (waitResponse(3000, GF("STATUS:")) != 1) return REG_UNKNOWN;
@@ -330,6 +327,10 @@ public:
return (RegStatus)status; return (RegStatus)status;
} }
/*
* Generic network functions
*/
int getSignalQuality() { int getSignalQuality() {
sendAT(GF("+CWJAP_CUR?")); sendAT(GF("+CWJAP_CUR?"));
int res1 = waitResponse(GF("No AP"), GF("+CWJAP_CUR:")); int res1 = waitResponse(GF("No AP"), GF("+CWJAP_CUR:"));
@@ -366,6 +367,25 @@ public:
return false; return false;
} }
/*
* WiFi functions
*/
bool networkConnect(const char* ssid, const char* pwd) {
sendAT(GF("+CWJAP_CUR=\""), ssid, GF("\",\""), pwd, GF("\""));
if (waitResponse(30000L, GFP(GSM_OK), GF(GSM_NL "FAIL" GSM_NL)) != 1) {
return false;
}
return true;
}
bool networkDisconnect() {
sendAT(GF("+CWQAP"));
bool retVal = waitResponse(10000L) == 1;
waitResponse(GF("WIFI DISCONNECT"));
return retVal;
}
String getLocalIP() { String getLocalIP() {
sendAT(GF("+CIPSTA_CUR??")); sendAT(GF("+CIPSTA_CUR??"));
int res1 = waitResponse(GF("ERROR"), GF("+CWJAP_CUR:")); int res1 = waitResponse(GF("ERROR"), GF("+CWJAP_CUR:"));
@@ -381,24 +401,6 @@ public:
return TinyGsmIpFromString(getLocalIP()); return TinyGsmIpFromString(getLocalIP());
} }
/*
* WiFi functions
*/
bool networkConnect(const char* ssid, const char* pwd) {
sendAT(GF("+CWJAP_CUR=\""), ssid, GF("\",\""), pwd, GF("\""));
if (waitResponse(30000L, GFP(GSM_OK), GF(GSM_NL "FAIL" GSM_NL)) != 1) {
return false;
}
return true;
}
bool networkDisconnect() {
sendAT(GF("+CWQAP"));
bool retVal = waitResponse(10000L) == 1;
waitResponse(GF("WIFI DISCONNECT"));
return retVal;
}
/* /*
* GPRS functions * GPRS functions
*/ */

View File

@@ -79,6 +79,7 @@ public:
public: public:
virtual int connect(const char *host, uint16_t port) { virtual int connect(const char *host, uint16_t port) {
stop();
TINY_GSM_YIELD(); TINY_GSM_YIELD();
rx.clear(); rx.clear();
sock_connected = at->modemConnect(host, port, &mux); sock_connected = at->modemConnect(host, port, &mux);
@@ -255,9 +256,9 @@ public:
for (unsigned long start = millis(); millis() - start < timeout; ) { for (unsigned long start = millis(); millis() - start < timeout; ) {
sendAT(GF("")); sendAT(GF(""));
if (waitResponse(200) == 1) { if (waitResponse(200) == 1) {
//nilThdSleepMilliseconds(100); --> add ifdef balise //nilThdSleepMilliseconds(100); --> add ifdef balise
delay(100); delay(100);
return true; return true;
} }
//nilThdSleepMilliseconds(50); --> add ifdef balise //nilThdSleepMilliseconds(50); --> add ifdef balise
delay(100); delay(100);
@@ -355,6 +356,17 @@ public:
return SIM_ERROR; return SIM_ERROR;
} }
RegStatus getRegistrationStatus() {
sendAT(GF("+CGREG?"));
if (waitResponse(GF(GSM_NL "+CGREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
String getOperator() { String getOperator() {
sendAT(GF("+COPS?")); sendAT(GF("+COPS?"));
if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { if (waitResponse(GF(GSM_NL "+COPS:")) != 1) {
@@ -370,17 +382,6 @@ public:
* Generic network functions * Generic network functions
*/ */
RegStatus getRegistrationStatus() {
sendAT(GF("+CGREG?"));
if (waitResponse(GF(GSM_NL "+CGREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
int getSignalQuality() { int getSignalQuality() {
sendAT(GF("+CSQ")); sendAT(GF("+CSQ"));
if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) {
@@ -407,20 +408,6 @@ public:
return false; return false;
} }
String getLocalIP() {
sendAT(GF("+CIFSR;E0"));
String res;
if (waitResponse(10000L, res) != 1) {
return "";
}
res.trim();
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* WiFi functions * WiFi functions
*/ */
@@ -489,6 +476,20 @@ public:
return true; return true;
} }
String getLocalIP() {
sendAT(GF("+CIFSR;E0"));
String res;
if (waitResponse(10000L, res) != 1) {
return "";
}
res.trim();
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* Messaging functions * Messaging functions
*/ */

View File

@@ -9,7 +9,7 @@
#ifndef TinyGsmClientM590_h #ifndef TinyGsmClientM590_h
#define TinyGsmClientM590_h #define TinyGsmClientM590_h
// #define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
#if !defined(TINY_GSM_RX_BUFFER) #if !defined(TINY_GSM_RX_BUFFER)
#define TINY_GSM_RX_BUFFER 256 #define TINY_GSM_RX_BUFFER 256
@@ -173,10 +173,10 @@ public:
String remoteIP() TINY_GSM_ATTR_NOT_IMPLEMENTED; String remoteIP() TINY_GSM_ATTR_NOT_IMPLEMENTED;
private: private:
TinyGsmM590* at; TinyGsmM590* at;
uint8_t mux; uint8_t mux;
bool sock_connected; bool sock_connected;
RxFifo rx; RxFifo rx;
}; };
//============================================================================// //============================================================================//
@@ -359,6 +359,17 @@ public:
return SIM_ERROR; return SIM_ERROR;
} }
RegStatus getRegistrationStatus() {
sendAT(GF("+CREG?"));
if (waitResponse(GF(GSM_NL "+CREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
String getOperator() { String getOperator() {
sendAT(GF("+COPS?")); sendAT(GF("+COPS?"));
if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { if (waitResponse(GF(GSM_NL "+COPS:")) != 1) {
@@ -374,17 +385,6 @@ public:
* Generic network functions * Generic network functions
*/ */
RegStatus getRegistrationStatus() {
sendAT(GF("+CREG?"));
if (waitResponse(GF(GSM_NL "+CREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
int getSignalQuality() { int getSignalQuality() {
sendAT(GF("+CSQ")); sendAT(GF("+CSQ"));
if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) {
@@ -410,22 +410,6 @@ public:
return false; return false;
} }
String getLocalIP() {
sendAT(GF("+XIIC?"));
if (waitResponse(GF(GSM_NL "+XIIC:")) != 1) {
return "";
}
stream.readStringUntil(',');
String res = stream.readStringUntil('\n');
waitResponse();
res.trim();
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* WiFi functions * WiFi functions
*/ */
@@ -486,6 +470,22 @@ public:
return res == 1; return res == 1;
} }
String getLocalIP() {
sendAT(GF("+XIIC?"));
if (waitResponse(GF(GSM_NL "+XIIC:")) != 1) {
return "";
}
stream.readStringUntil(',');
String res = stream.readStringUntil('\n');
waitResponse();
res.trim();
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* Messaging functions * Messaging functions
*/ */

View File

@@ -372,6 +372,17 @@ public:
return SIM_ERROR; return SIM_ERROR;
} }
RegStatus getRegistrationStatus() {
sendAT(GF("+CREG?"));
if (waitResponse(GF(GSM_NL "+CREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
String getOperator() { String getOperator() {
sendAT(GF("+COPS?")); sendAT(GF("+COPS?"));
if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { if (waitResponse(GF(GSM_NL "+COPS:")) != 1) {
@@ -387,17 +398,6 @@ public:
* Generic network functions * Generic network functions
*/ */
RegStatus getRegistrationStatus() {
sendAT(GF("+CREG?"));
if (waitResponse(GF(GSM_NL "+CREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
int getSignalQuality() { int getSignalQuality() {
sendAT(GF("+CSQ")); sendAT(GF("+CSQ"));
if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) {
@@ -432,23 +432,6 @@ public:
waitResponse(); waitResponse();
} }
String getLocalIP() {
sendAT(GF("+CGPADDR=1"));
if (waitResponse(10000L, GF(GSM_NL "+CGPADDR:")) != 1) {
return "";
}
streamSkipUntil(',');
String res = stream.readStringUntil('\n');
if (waitResponse() != 1) {
return "";
}
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* WiFi functions * WiFi functions
*/ */
@@ -498,6 +481,23 @@ public:
return localIP() != 0; return localIP() != 0;
} }
String getLocalIP() {
sendAT(GF("+CGPADDR=1"));
if (waitResponse(10000L, GF(GSM_NL "+CGPADDR:")) != 1) {
return "";
}
streamSkipUntil(',');
String res = stream.readStringUntil('\n');
if (waitResponse() != 1) {
return "";
}
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* Messaging functions * Messaging functions
*/ */
@@ -608,9 +608,9 @@ protected:
bool modemConnect(const char* host, uint16_t port, uint8_t mux) { bool modemConnect(const char* host, uint16_t port, uint8_t mux) {
sendAT(GF("+QIOPEN="), GF("\"TCP"), GF("\",\""), host, GF("\","), port); sendAT(GF("+QIOPEN="), GF("\"TCP"), GF("\",\""), host, GF("\","), port);
int rsp = waitResponse(75000L, int rsp = waitResponse(75000L,
GF("CONNECT OK" GSM_NL), GF("CONNECT OK" GSM_NL),
GF("CONNECT FAIL" GSM_NL), GF("CONNECT FAIL" GSM_NL),
GF("ALREADY CONNECT" GSM_NL)); GF("ALREADY CONNECT" GSM_NL));
if ( rsp != 1 ) { if ( rsp != 1 ) {
return false; return false;
} }

View File

@@ -12,8 +12,8 @@
#ifndef TinyGsmClientMC60_h #ifndef TinyGsmClientMC60_h
#define TinyGsmClientMC60_h #define TinyGsmClientMC60_h
// #define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
// #define TINY_GSM_USE_HEX //#define TINY_GSM_USE_HEX
#if !defined(TINY_GSM_RX_BUFFER) #if !defined(TINY_GSM_RX_BUFFER)
#define TINY_GSM_RX_BUFFER 64 #define TINY_GSM_RX_BUFFER 64
@@ -417,6 +417,17 @@ public:
return SIM_ERROR; return SIM_ERROR;
} }
RegStatus getRegistrationStatus() {
sendAT(GF("+CREG?"));
if (waitResponse(GF(GSM_NL "+CREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
String getOperator() { String getOperator() {
sendAT(GF("+COPS?")); sendAT(GF("+COPS?"));
if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { if (waitResponse(GF(GSM_NL "+COPS:")) != 1) {
@@ -432,17 +443,6 @@ public:
* Generic network functions * Generic network functions
*/ */
RegStatus getRegistrationStatus() {
sendAT(GF("+CREG?"));
if (waitResponse(GF(GSM_NL "+CREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
int getSignalQuality() { int getSignalQuality() {
sendAT(GF("+CSQ")); sendAT(GF("+CSQ"));
if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) {
@@ -468,20 +468,6 @@ public:
return false; return false;
} }
String getLocalIP() {
sendAT(GF("+CIFSR;E0"));
String res;
if (waitResponse(10000L, res) != 1) {
return "";
}
res.trim();
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* WiFi functions * WiFi functions
*/ */
@@ -626,6 +612,20 @@ public:
return waitResponse(60000L) == 1; return waitResponse(60000L) == 1;
} }
String getLocalIP() {
sendAT(GF("+CIFSR;E0"));
String res;
if (waitResponse(10000L, res) != 1) {
return "";
}
res.trim();
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* Messaging functions * Messaging functions
*/ */

View File

@@ -9,8 +9,8 @@
#ifndef TinyGsmClientSIM800_h #ifndef TinyGsmClientSIM800_h
#define TinyGsmClientSIM800_h #define TinyGsmClientSIM800_h
// #define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
// #define TINY_GSM_USE_HEX //#define TINY_GSM_USE_HEX
#if !defined(TINY_GSM_RX_BUFFER) #if !defined(TINY_GSM_RX_BUFFER)
#define TINY_GSM_RX_BUFFER 64 #define TINY_GSM_RX_BUFFER 64
@@ -255,11 +255,6 @@ public:
if (waitResponse() != 1) { if (waitResponse() != 1) {
return false; return false;
} }
// PREFERRED SMS STORAGE
sendAT(GF("+CPMS="), GF("\"SM\""), GF(","), GF("\"SM\""), GF(","), GF("\"SM\""));
waitResponse();
getSimStatus(); getSimStatus();
return true; return true;
} }
@@ -434,6 +429,17 @@ public:
return SIM_ERROR; return SIM_ERROR;
} }
RegStatus getRegistrationStatus() {
sendAT(GF("+CREG?"));
if (waitResponse(GF(GSM_NL "+CREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
String getOperator() { String getOperator() {
sendAT(GF("+COPS?")); sendAT(GF("+COPS?"));
if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { if (waitResponse(GF(GSM_NL "+COPS:")) != 1) {
@@ -449,17 +455,6 @@ public:
* Generic network functions * Generic network functions
*/ */
RegStatus getRegistrationStatus() {
sendAT(GF("+CREG?"));
if (waitResponse(GF(GSM_NL "+CREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
int getSignalQuality() { int getSignalQuality() {
sendAT(GF("+CSQ")); sendAT(GF("+CSQ"));
if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) {
@@ -485,22 +480,6 @@ public:
return false; return false;
} }
String getLocalIP() {
sendAT(GF("+CIFSR;E0"));
String res;
if (waitResponse(10000L, res) != 1) {
return "";
}
res.replace(GSM_NL "OK" GSM_NL, "");
res.replace(GSM_NL, "");
res.trim();
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* WiFi functions * WiFi functions
*/ */
@@ -625,6 +604,22 @@ public:
return true; return true;
} }
String getLocalIP() {
sendAT(GF("+CIFSR;E0"));
String res;
if (waitResponse(10000L, res) != 1) {
return "";
}
res.replace(GSM_NL "OK" GSM_NL, "");
res.replace(GSM_NL, "");
res.trim();
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* Messaging functions * Messaging functions
*/ */
@@ -717,7 +712,6 @@ public:
/* /*
* Battery functions * Battery functions
*/ */
// Use: float vBatt = modem.getBattVoltage() / 1000.0; // Use: float vBatt = modem.getBattVoltage() / 1000.0;
uint16_t getBattVoltage() { uint16_t getBattVoltage() {
sendAT(GF("+CBC")); sendAT(GF("+CBC"));

View File

@@ -176,12 +176,12 @@ public:
String remoteIP() TINY_GSM_ATTR_NOT_IMPLEMENTED; String remoteIP() TINY_GSM_ATTR_NOT_IMPLEMENTED;
private: private:
TinyGsmU201* at; TinyGsmU201* at;
uint8_t mux; uint8_t mux;
uint16_t sock_available; uint16_t sock_available;
bool sock_connected; bool sock_connected;
bool got_data; bool got_data;
RxFifo rx; RxFifo rx;
}; };
//============================================================================// //============================================================================//
@@ -382,6 +382,17 @@ public:
return SIM_ERROR; return SIM_ERROR;
} }
RegStatus getRegistrationStatus() {
sendAT(GF("+CGREG?"));
if (waitResponse(GF(GSM_NL "+CGREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
String getOperator() { String getOperator() {
sendAT(GF("+COPS?")); sendAT(GF("+COPS?"));
if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { if (waitResponse(GF(GSM_NL "+COPS:")) != 1) {
@@ -397,17 +408,6 @@ public:
* Generic network functions * Generic network functions
*/ */
RegStatus getRegistrationStatus() {
sendAT(GF("+CGREG?"));
if (waitResponse(GF(GSM_NL "+CGREG:")) != 1) {
return REG_UNKNOWN;
}
streamSkipUntil(','); // Skip format (0)
int status = stream.readStringUntil('\n').toInt();
waitResponse();
return (RegStatus)status;
}
int getSignalQuality() { int getSignalQuality() {
sendAT(GF("+CSQ")); sendAT(GF("+CSQ"));
if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) {
@@ -433,24 +433,6 @@ public:
return false; return false;
} }
String getLocalIP() {
sendAT(GF("+UPSND=0,0"));
if (waitResponse(GF(GSM_NL "+UPSND:")) != 1) {
return "";
}
streamSkipUntil(','); // Skip PSD profile
streamSkipUntil('\"'); // Skip request type
String res = stream.readStringUntil('\"');
if (waitResponse() != 1) {
return "";
}
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* WiFi functions * WiFi functions
*/ */
@@ -519,6 +501,24 @@ public:
return localIP() != 0; return localIP() != 0;
} }
String getLocalIP() {
sendAT(GF("+UPSND=0,0"));
if (waitResponse(GF(GSM_NL "+UPSND:")) != 1) {
return "";
}
streamSkipUntil(','); // Skip PSD profile
streamSkipUntil('\"'); // Skip request type
String res = stream.readStringUntil('\"');
if (waitResponse() != 1) {
return "";
}
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* Messaging functions * Messaging functions
*/ */

View File

@@ -169,9 +169,9 @@ public:
String remoteIP() TINY_GSM_ATTR_NOT_IMPLEMENTED; String remoteIP() TINY_GSM_ATTR_NOT_IMPLEMENTED;
private: private:
TinyGsmXBee* at; TinyGsmXBee* at;
uint8_t mux; uint8_t mux;
bool sock_connected; bool sock_connected;
}; };
//============================================================================// //============================================================================//
@@ -430,18 +430,6 @@ public:
return SIM_READY; // unsupported return SIM_READY; // unsupported
} }
String getOperator() {
if (!commandMode()) return ""; // Return immediately
sendAT(GF("MN"));
String res = readResponse();
exitCommand();
return res;
}
/*
* Generic network functions
*/
RegStatus getRegistrationStatus() { RegStatus getRegistrationStatus() {
if (!commandMode()) return REG_UNKNOWN; // Return immediately if (!commandMode()) return REG_UNKNOWN; // Return immediately
@@ -514,6 +502,17 @@ public:
exitCommand(); exitCommand();
return stat; return stat;
} }
String getOperator() {
if (!commandMode()) return ""; // Return immediately
sendAT(GF("MN"));
String res = readResponse();
exitCommand();
return res;
}
/*
* Generic network functions
*/
int getSignalQuality() { int getSignalQuality() {
if (!commandMode()) return 0; // Return immediately if (!commandMode()) return 0; // Return immediately
@@ -543,21 +542,6 @@ public:
return false; return false;
} }
String getLocalIP() {
if (!commandMode()) return ""; // Return immediately
sendAT(GF("MY"));
String IPaddr; IPaddr.reserve(16);
// wait for the response - this response can be very slow
IPaddr = readResponse(30000);
exitCommand();
IPaddr.trim();
return IPaddr;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* WiFi functions * WiFi functions
*/ */
@@ -593,6 +577,21 @@ fail:
return res; return res;
} }
String getLocalIP() {
if (!commandMode()) return ""; // Return immediately
sendAT(GF("MY"));
String IPaddr; IPaddr.reserve(16);
// wait for the response - this response can be very slow
IPaddr = readResponse(30000);
exitCommand();
IPaddr.trim();
return IPaddr;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/* /*
* GPRS functions * GPRS functions
*/ */