diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index 414b8d8..a53890b 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -66,6 +66,7 @@ public: public: virtual int connect(const char *host, uint16_t port) { + stop(); TINY_GSM_YIELD(); rx.clear(); uint8_t newMux = -1; @@ -94,6 +95,7 @@ public: at->sendAT(GF("+CIPCLOSE="), mux); sock_connected = false; at->waitResponse(); + rx.clear(); } virtual size_t write(const uint8_t *buf, size_t size) { @@ -216,9 +218,7 @@ public: } void maintain() { - //while (stream.available()) { - waitResponse(10, NULL, NULL); - //} + waitResponse(10, NULL, NULL); } bool factoryDefault() { @@ -240,6 +240,10 @@ public: return res; } + bool hasSSL() { + return false; + } + /* * Power functions */ @@ -400,8 +404,10 @@ public: } bool gprsDisconnect() { + // Shut the TCP/IP connection sendAT(GF("+CIPSHUT")); - waitResponse(5000L); + if (waitResponse(60000L) != 1) + return false; for (int i = 0; i<3; i++) { sendAT(GF("+CGATT=0")); @@ -612,12 +618,12 @@ protected: int modemSend(const void* buff, size_t len, uint8_t mux) { sendAT(GF("+CIPSEND="), mux, ',', len); if (waitResponse(2000L, GF(GSM_NL ">")) != 1) { - return -1; + return 0; } stream.write((uint8_t*)buff, len); stream.flush(); if (waitResponse(10000L, GFP(GSM_OK), GF(GSM_NL "FAIL")) != 1) { - return -1; + return 0; } return len; } diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index 1ded3ca..44ed149 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -53,6 +53,7 @@ public: public: virtual int connect(const char *host, uint16_t port) { + stop(); TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux); @@ -76,6 +77,7 @@ public: at->sendAT(GF("+CIPCLOSE="), mux); sock_connected = false; at->waitResponse(); + rx.clear(); } virtual size_t write(const uint8_t *buf, size_t size) { @@ -159,6 +161,7 @@ public: public: virtual int connect(const char *host, uint16_t port) { + stop(); TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux, true); @@ -209,7 +212,7 @@ public: } void maintain() { - waitResponse(10, NULL, NULL); + waitResponse(10, NULL, NULL); } bool factoryDefault() { @@ -370,12 +373,12 @@ protected: int modemSend(const void* buff, size_t len, uint8_t mux) { sendAT(GF("+CIPSEND="), mux, ',', len); if (waitResponse(GF(">")) != 1) { - return -1; + return 0; } stream.write((uint8_t*)buff, len); stream.flush(); if (waitResponse(10000L, GF(GSM_NL "SEND OK" GSM_NL)) != 1) { - return -1; + return 0; } return len; } diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index 57a6195..21539ae 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -68,6 +68,7 @@ public: public: virtual int connect(const char *host, uint16_t port) { + stop(); TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux); @@ -91,6 +92,7 @@ public: at->sendAT(GF("+TCPCLOSE="), mux); sock_connected = false; at->waitResponse(); + rx.clear(); } virtual size_t write(const uint8_t *buf, size_t size) { @@ -242,6 +244,10 @@ public: return res; } + bool hasSSL() { + return false; + } + /* * Power functions */ diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 8da1acb..6490842 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -535,7 +535,8 @@ public: } bool gprsDisconnect() { - sendAT(GF("+CIPSHUT")); // Shut the TCP/IP connection + // Shut the TCP/IP connection + sendAT(GF("+CIPSHUT")); if (waitResponse(60000L) != 1) return false; @@ -770,12 +771,12 @@ protected: int modemSend(const void* buff, size_t len, uint8_t mux) { sendAT(GF("+CIPSEND="), mux, ',', len); if (waitResponse(GF(">")) != 1) { - return -1; + return 0; } stream.write((uint8_t*)buff, len); stream.flush(); if (waitResponse(GF(GSM_NL "DATA ACCEPT:")) != 1) { - return -1; + return 0; } streamSkipUntil(','); // Skip mux return stream.readStringUntil('\n').toInt(); diff --git a/src/TinyGsmClientU201.h b/src/TinyGsmClientU201.h index 051598c..4466058 100644 --- a/src/TinyGsmClientU201.h +++ b/src/TinyGsmClientU201.h @@ -68,6 +68,7 @@ public: public: virtual int connect(const char *host, uint16_t port) { + stop(); TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, &mux); @@ -92,6 +93,7 @@ public: at->sendAT(GF("+USOCL="), mux); sock_connected = false; at->waitResponse(); + rx.clear(); } virtual size_t write(const uint8_t *buf, size_t size) { @@ -106,7 +108,7 @@ public: virtual int available() { TINY_GSM_YIELD(); - if (!rx.size() && sock_connected) { // TODO + if (!rx.size() && sock_connected) { at->maintain(); } return rx.size() + sock_available; @@ -180,6 +182,7 @@ public: public: virtual int connect(const char *host, uint16_t port) { + stop(); TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, &mux, true); @@ -258,6 +261,12 @@ public: return waitResponse() == 1; } + String getModemInfo() TINY_GSM_ATTR_NOT_IMPLEMENTED; + + bool hasSSL() { + return true; + } + /* * Power functions */ diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index f5d296c..87dbcda 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -9,7 +9,7 @@ #ifndef TinyGsmClientXBee_h #define TinyGsmClientXBee_h -// #define TINY_GSM_DEBUG Serial +//#define TINY_GSM_DEBUG Serial #if !defined(TINY_GSM_RX_BUFFER) #define TINY_GSM_RX_BUFFER 256 @@ -459,11 +459,7 @@ fail: * Messaging functions */ - void sendUSSD() { - } - - void sendSMS() { - } + String sendUSSD(const String& code) TINY_GSM_ATTR_NOT_IMPLEMENTED; bool sendSMS(const String& number, const String& text) { commandMode();