From dd47263b40a2db79543bf6269d2c54b2c49778cd Mon Sep 17 00:00:00 2001 From: Michael Krumpus Date: Sun, 3 Jun 2018 16:28:54 -0500 Subject: [PATCH 01/46] Beginning to add support for Sequans CAT-M1 modem. --- src/TinyGsmClient.h | 9 + src/TinyGsmClientSequansMonarchCatM1.h | 973 +++++++++++++++++++++++++ 2 files changed, 982 insertions(+) create mode 100644 src/TinyGsmClientSequansMonarchCatM1.h diff --git a/src/TinyGsmClient.h b/src/TinyGsmClient.h index c352cbb..57bf7f8 100644 --- a/src/TinyGsmClient.h +++ b/src/TinyGsmClient.h @@ -71,6 +71,15 @@ typedef TinyGsmXBee::GsmClient TinyGsmClient; typedef TinyGsmXBee::GsmClientSecure TinyGsmClientSecure; +#elif defined(TINY_GSM_MODEM_SEQUANS_MONARCH_CATM1) + #define TINY_GSM_MODEM_HAS_GPRS + #define TINY_GSM_MODEM_HAS_SSL + #include + typedef TinyGsmSequansMonarchCatM1 TinyGsm; + typedef TinyGsm::GsmClient TinyGsmClient; + typedef TinyGsm::GsmClientSecure TinyGsmClientSecure; + + #else #error "Please define GSM modem model" #endif diff --git a/src/TinyGsmClientSequansMonarchCatM1.h b/src/TinyGsmClientSequansMonarchCatM1.h new file mode 100644 index 0000000..328628d --- /dev/null +++ b/src/TinyGsmClientSequansMonarchCatM1.h @@ -0,0 +1,973 @@ +/** + * @file TinyGsmClientSIM800.h + * @author Volodymyr Shymanskyy + * @license LGPL-3.0 + * @copyright Copyright (c) 2016 Volodymyr Shymanskyy + * @date Nov 2016 + */ + +#ifndef TinyGsmClientSequansMonarchCatM1_h +#define TinyGsmClientSequansMonarchCatM1_h + +#define TINY_GSM_DEBUG Serial +//#define TINY_GSM_USE_HEX + +#if !defined(TINY_GSM_RX_BUFFER) + #define TINY_GSM_RX_BUFFER 64 +#endif + +#define TINY_GSM_MUX_COUNT 5 + +#include + +#define GSM_NL "\r\n" +static const char GSM_OK[] TINY_GSM_PROGMEM = "OK" GSM_NL; +static const char GSM_ERROR[] TINY_GSM_PROGMEM = "ERROR" GSM_NL; + +enum SimStatus { + SIM_ERROR = 0, + SIM_READY = 1, + SIM_LOCKED = 2, +}; + +enum RegStatus { + REG_UNREGISTERED = 0, + REG_SEARCHING = 2, + REG_DENIED = 3, + REG_OK_HOME = 1, + REG_OK_ROAMING = 5, + REG_UNKNOWN = 4, +}; + + +class TinyGsmSequansMonarchCatM1 +{ + +public: + +class GsmClient : public Client +{ + friend class TinyGsmSequansMonarchCatM1; + typedef TinyGsmFifo RxFifo; + +public: + GsmClient() {} + + GsmClient(TinyGsmSequansMonarchCatM1& modem, uint8_t mux = 1) { + init(&modem, mux); + } + + bool init(TinyGsmSequansMonarchCatM1* modem, uint8_t mux = 1) { + this->at = modem; + this->mux = mux; + sock_available = 0; + prev_check = 0; + sock_connected = false; + got_data = false; + + at->sockets[mux] = this; + + return true; + } + +public: + virtual int connect(const char *host, uint16_t port) { + stop(); + TINY_GSM_YIELD(); + rx.clear(); + sock_connected = at->modemConnect(host, port, mux); + return sock_connected; + } + + virtual int connect(IPAddress ip, uint16_t port) { + String host; host.reserve(16); + host += ip[0]; + host += "."; + host += ip[1]; + host += "."; + host += ip[2]; + host += "."; + host += ip[3]; + return connect(host.c_str(), port); + } + + virtual void stop() { + TINY_GSM_YIELD(); + at->sendAT(GF("+CIPCLOSE="), mux); + sock_connected = false; + at->waitResponse(); + rx.clear(); + } + + virtual size_t write(const uint8_t *buf, size_t size) { + TINY_GSM_YIELD(); + at->maintain(); + return at->modemSend(buf, size, mux); + } + + virtual size_t write(uint8_t c) { + return write(&c, 1); + } + + virtual int available() { + TINY_GSM_YIELD(); + if (!rx.size() && sock_connected) { + // Workaround: sometimes SIM800 forgets to notify about data arrival. + // TODO: Currently we ping the module periodically, + // but maybe there's a better indicator that we need to poll + if (millis() - prev_check > 500) { + got_data = true; + prev_check = millis(); + } + at->maintain(); + } + return rx.size() + sock_available; + } + + virtual int read(uint8_t *buf, size_t size) { + TINY_GSM_YIELD(); + at->maintain(); + size_t cnt = 0; + while (cnt < size && sock_connected) { + size_t chunk = TinyGsmMin(size-cnt, rx.size()); + if (chunk > 0) { + rx.get(buf, chunk); + buf += chunk; + cnt += chunk; + continue; + } + // TODO: Read directly into user buffer? + at->maintain(); + if (sock_available > 0) { + at->modemRead(rx.free(), mux); + } else { + break; + } + } + return cnt; + } + + virtual int read() { + uint8_t c; + if (read(&c, 1) == 1) { + return c; + } + return -1; + } + + virtual int peek() { return -1; } //TODO + virtual void flush() { at->stream.flush(); } + + virtual uint8_t connected() { + if (available()) { + return true; + } + return sock_connected; + } + virtual operator bool() { return connected(); } + + /* + * Extended API + */ + + String remoteIP() TINY_GSM_ATTR_NOT_IMPLEMENTED; + +private: + TinyGsmSequansMonarchCatM1* at; + uint8_t mux; + uint16_t sock_available; + uint32_t prev_check; + bool sock_connected; + bool got_data; + RxFifo rx; +}; + +class GsmClientSecure : public GsmClient +{ +public: + GsmClientSecure() {} + + GsmClientSecure(TinyGsmSequansMonarchCatM1& modem, uint8_t mux = 1) + : GsmClient(modem, mux) + {} + +public: + virtual int connect(const char *host, uint16_t port) { + stop(); + TINY_GSM_YIELD(); + rx.clear(); + sock_connected = at->modemConnect(host, port, mux, true); + return sock_connected; + } +}; + +public: + + TinyGsmSequansMonarchCatM1(Stream& stream) + : stream(stream) + { + memset(sockets, 0, sizeof(sockets)); + } + + /* + * Basic functions + */ + bool begin() { + return init(); + } + + bool init() { + if (!testAT()) { + return false; + } + //sendAT(GF("&FZ")); // Factory + Reset + //waitResponse(); + //sendAT(GF("E0")); // Echo Off + if (waitResponse() != 1) { + return false; + } + getSimStatus(); + return true; + } + + void setBaud(unsigned long baud) { + sendAT(GF("+IPR="), baud); + } + + bool testAT(unsigned long timeout = 10000L) { + //streamWrite(GF("AAAAA" GSM_NL)); // TODO: extra A's to help detect the baud rate + for (unsigned long start = millis(); millis() - start < timeout; ) { + sendAT(GF("")); + if (waitResponse(200) == 1) { + delay(100); + return true; + } + delay(100); + } + return false; + } + + void maintain() { + for (int mux = 0; mux < TINY_GSM_MUX_COUNT; mux++) { + GsmClient* sock = sockets[mux]; + if (sock && sock->got_data) { + sock->got_data = false; + sock->sock_available = modemGetAvailable(mux); + } + } + while (stream.available()) { + waitResponse(10, NULL, NULL); + } + } + + bool factoryDefault() { + sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write + waitResponse(); + sendAT(GF("+IPR=0")); // Auto-baud + waitResponse(); + sendAT(GF("+IFC=0,0")); // No Flow Control + waitResponse(); + sendAT(GF("+ICF=3,3")); // 8 data 0 parity 1 stop + waitResponse(); + sendAT(GF("+CSCLK=0")); // Disable Slow Clock + waitResponse(); + sendAT(GF("&W")); // Write configuration + return waitResponse() == 1; + } + + String getModemInfo() { + sendAT(GF("I")); + String res; + if (waitResponse(1000L, res) != 1) { + return ""; + } + res.replace(GSM_NL "OK" GSM_NL, ""); + res.replace(GSM_NL, " "); + res.trim(); + return res; + } + + bool hasSSL() { +#if defined(TINY_GSM_MODEM_SIM900) + return false; +#else + sendAT(GF("+CIPSSL=?")); + if (waitResponse(GF(GSM_NL "+CIPSSL:")) != 1) { + return false; + } + return waitResponse() == 1; +#endif + } + + /* + * Power functions + */ + + bool restart() { + if (!testAT()) { + return false; + } + +/* + sendAT(GF("+CFUN=0")); + if (waitResponse(10000L) != 1) { + return false; + } + */ + sendAT(GF("+CFUN=1,1")); + if (waitResponse(10000L) != 1) { + return false; + } + delay(3000); + return init(); + } + + bool poweroff() { + sendAT(GF("+CPOWD=1")); + return waitResponse(GF("NORMAL POWER DOWN")) == 1; + } + + bool radioOff() { + sendAT(GF("+CFUN=0")); + if (waitResponse(10000L) != 1) { + return false; + } + delay(3000); + return true; + } + + /* + During sleep, the SIM800 module has its serial communication disabled. In order to reestablish communication + pull the DRT-pin of the SIM800 module LOW for at least 50ms. Then use this function to disable sleep mode. + The DTR-pin can then be released again. + */ + bool sleepEnable(bool enable = true) { + sendAT(GF("+CSCLK="), enable); + return waitResponse() == 1; + } + + /* + * SIM card functions + */ + + bool simUnlock(const char *pin) { + sendAT(GF("+CPIN=\""), pin, GF("\"")); + return waitResponse() == 1; + } + + String getSimCCID() { + sendAT(GF("+SQNCCID")); + if (waitResponse(GF(GSM_NL "+SQNCCID:")) != 1) { + return ""; + } + String res = stream.readStringUntil('\n'); + waitResponse(); + res.trim(); + return res; + } + + String getIMEI() { + sendAT(GF("+GSN")); + if (waitResponse(GF(GSM_NL)) != 1) { + return ""; + } + String res = stream.readStringUntil('\n'); + waitResponse(); + res.trim(); + return res; + } + + SimStatus getSimStatus(unsigned long timeout = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + sendAT(GF("+CPIN?")); + if (waitResponse(GF(GSM_NL "+CPIN:")) != 1) { + delay(1000); + continue; + } + int status = waitResponse(GF("READY"), GF("SIM PIN"), GF("SIM PUK"), GF("NOT INSERTED")); + waitResponse(); + switch (status) { + case 2: + case 3: return SIM_LOCKED; + case 1: return SIM_READY; + default: 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() { + sendAT(GF("+COPS?")); + if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { + return ""; + } + streamSkipUntil('"'); // Skip mode and format + String res = stream.readStringUntil('"'); + waitResponse(); + return res; + } + + /* + * Generic network functions + */ + + int getSignalQuality() { + sendAT(GF("+CSQ")); + if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { + return 99; + } + int res = stream.readStringUntil(',').toInt(); + waitResponse(); + return res; + } + + bool isNetworkConnected() { + RegStatus s = getRegistrationStatus(); + if (s == REG_OK_HOME || s == REG_OK_ROAMING) { + DBG("connected with status:", s); + return true; + } else { + return false; + } + } + + bool waitForNetwork(unsigned long timeout = 60000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + if (isNetworkConnected()) { + return true; + } + delay(250); + } + return false; + } + + /* + * GPRS functions + */ + bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { + gprsDisconnect(); + +/* + // Set the Bearer for the IP + sendAT(GF("+SAPBR=3,1,\"Contype\",\"GPRS\"")); // Set the connection type to GPRS + waitResponse(); + + sendAT(GF("+SAPBR=3,1,\"APN\",\""), apn, '"'); // Set the APN + waitResponse(); +*/ + + if (user && strlen(user) > 0) { + sendAT(GF("+CGAUTH=3,1,\""), user, GF("\",\""), pwd, GF("\"")); + waitResponse(); + } + + // Define the PDP context + // AT+CGDCONT=3,"IPV4V6","NIMBLINK.GW12.VZWENTP" + // AT+CGDCONT=3,"IPV4V6","hologram" + sendAT(GF("+CGDCONT=3,\"IPV4V6\",\""), apn, '"'); + waitResponse(); + +/* + // Activate the PDP context + sendAT(GF("+CGACT=1,1")); + waitResponse(60000L); + + // Open the definied GPRS bearer context + sendAT(GF("+SAPBR=1,1")); + waitResponse(85000L); + // Query the GPRS bearer context status + sendAT(GF("+SAPBR=2,1")); + if (waitResponse(30000L) != 1) + return false; +*/ + + // Attach to GPRS + sendAT(GF("+CGATT=1")); + if (waitResponse(60000L) != 1) + return false; + + +/* + // Set to multi-IP + sendAT(GF("+CIPMUX=1")); + if (waitResponse() != 1) { + return false; + } + + // Put in "quick send" mode (thus no extra "Send OK") + sendAT(GF("+CIPQSEND=1")); + if (waitResponse() != 1) { + return false; + } + + // Set to get data manually + sendAT(GF("+CIPRXGET=1")); + if (waitResponse() != 1) { + return false; + } + + // Start Task and Set APN, USER NAME, PASSWORD + sendAT(GF("+CSTT=\""), apn, GF("\",\""), user, GF("\",\""), pwd, GF("\"")); + if (waitResponse(60000L) != 1) { + return false; + } + + // Bring Up Wireless Connection with GPRS or CSD + sendAT(GF("+CIICR")); + if (waitResponse(60000L) != 1) { + return false; + } + + // Get Local IP Address, only assigned after connection + sendAT(GF("+CIFSR;E0")); + if (waitResponse(10000L) != 1) { + return false; + } + + // Configure Domain Name Server (DNS) + sendAT(GF("+CDNSCFG=\"8.8.8.8\",\"8.8.4.4\"")); + if (waitResponse() != 1) { + return false; + } + +*/ + return true; + } + + bool gprsDisconnect() { + // Shut the TCP/IP connection +/* + sendAT(GF("+CIPSHUT")); + if (waitResponse(60000L) != 1) + return false; +*/ + sendAT(GF("+CGATT=0")); // Deactivate the bearer context + if (waitResponse(60000L) != 1) + return false; + + return true; + } + + + bool isGprsConnected() { + sendAT(GF("+CGATT?")); + if (waitResponse(GF(GSM_NL "+CGATT:")) != 1) { + return false; + } + int res = stream.readStringUntil('\n').toInt(); + waitResponse(); + if (res != 1) + return false; + + 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()); + } + + /* + * Phone Call functions + */ + + bool setGsmBusy(bool busy = true) { + sendAT(GF("+GSMBUSY="), busy ? 1 : 0); + return waitResponse() == 1; + } + + bool callAnswer() { + sendAT(GF("A")); + return waitResponse() == 1; + } + + // Returns true on pick-up, false on error/busy + bool callNumber(const String& number) { + if (number == GF("last")) { + sendAT(GF("DL")); + } else { + sendAT(GF("D"), number, ";"); + } + int status = waitResponse(60000L, + GFP(GSM_OK), + GF("BUSY" GSM_NL), + GF("NO ANSWER" GSM_NL), + GF("NO CARRIER" GSM_NL)); + switch (status) { + case 1: return true; + case 2: + case 3: return false; + default: return false; + } + } + + bool callHangup() { + sendAT(GF("H")); + return waitResponse() == 1; + } + + // 0-9,*,#,A,B,C,D + bool dtmfSend(char cmd, int duration_ms = 100) { + duration_ms = constrain(duration_ms, 100, 1000); + + sendAT(GF("+VTD="), duration_ms / 100); // VTD accepts in 1/10 of a second + waitResponse(); + + sendAT(GF("+VTS="), cmd); + return waitResponse(10000L) == 1; + } + + /* + * Messaging functions + */ + + String sendUSSD(const String& code) { + sendAT(GF("+CMGF=1")); + waitResponse(); + sendAT(GF("+CSCS=\"HEX\"")); + waitResponse(); + sendAT(GF("+CUSD=1,\""), code, GF("\"")); + if (waitResponse() != 1) { + return ""; + } + if (waitResponse(10000L, GF(GSM_NL "+CUSD:")) != 1) { + return ""; + } + stream.readStringUntil('"'); + String hex = stream.readStringUntil('"'); + stream.readStringUntil(','); + int dcs = stream.readStringUntil('\n').toInt(); + + if (dcs == 15) { + return TinyGsmDecodeHex8bit(hex); + } else if (dcs == 72) { + return TinyGsmDecodeHex16bit(hex); + } else { + return hex; + } + } + + bool sendSMS(const String& number, const String& text) { + sendAT(GF("+CMGF=1")); + waitResponse(); + //Set GSM 7 bit default alphabet (3GPP TS 23.038) + sendAT(GF("+CSCS=\"GSM\"")); + waitResponse(); + sendAT(GF("+CMGS=\""), number, GF("\"")); + if (waitResponse(GF(">")) != 1) { + return false; + } + stream.print(text); + stream.write((char)0x1A); + stream.flush(); + return waitResponse(60000L) == 1; + } + + bool sendSMS_UTF16(const String& number, const void* text, size_t len) { + sendAT(GF("+CMGF=1")); + waitResponse(); + sendAT(GF("+CSCS=\"HEX\"")); + waitResponse(); + sendAT(GF("+CSMP=17,167,0,8")); + waitResponse(); + + sendAT(GF("+CMGS=\""), number, GF("\"")); + if (waitResponse(GF(">")) != 1) { + return false; + } + + uint16_t* t = (uint16_t*)text; + for (size_t i=0; i> 8; + if (c < 0x10) { stream.print('0'); } + stream.print(c, HEX); + c = t[i] & 0xFF; + if (c < 0x10) { stream.print('0'); } + stream.print(c, HEX); + } + stream.write((char)0x1A); + stream.flush(); + return waitResponse(60000L) == 1; + } + + + /* + * Location functions + */ + + String getGsmLocation() { + sendAT(GF("+CIPGSMLOC=1,1")); + if (waitResponse(10000L, GF(GSM_NL "+CIPGSMLOC:")) != 1) { + return ""; + } + String res = stream.readStringUntil('\n'); + waitResponse(); + res.trim(); + return res; + } + + /* + * Battery functions + */ + // Use: float vBatt = modem.getBattVoltage() / 1000.0; + uint16_t getBattVoltage() { + sendAT(GF("+CBC")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return 0; + } + streamSkipUntil(','); // Skip + streamSkipUntil(','); // Skip + + uint16_t res = stream.readStringUntil(',').toInt(); + waitResponse(); + return res; + } + + int getBattPercent() { + sendAT(GF("+CBC")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + stream.readStringUntil(','); + int res = stream.readStringUntil(',').toInt(); + waitResponse(); + return res; + } + +protected: + + bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) { + int rsp; +#if !defined(TINY_GSM_MODEM_SIM900) + sendAT(GF("+CIPSSL="), ssl); + rsp = waitResponse(); + if (ssl && rsp != 1) { + return false; + } +#endif + sendAT(GF("+CIPSTART="), mux, ',', GF("\"TCP"), GF("\",\""), host, GF("\","), port); + rsp = waitResponse(75000L, + GF("CONNECT OK" GSM_NL), + GF("CONNECT FAIL" GSM_NL), + GF("ALREADY CONNECT" GSM_NL), + GF("ERROR" GSM_NL), + GF("CLOSE OK" GSM_NL) // Happens when HTTPS handshake fails + ); + return (1 == rsp); + } + + int modemSend(const void* buff, size_t len, uint8_t mux) { + sendAT(GF("+CIPSEND="), mux, ',', len); + if (waitResponse(GF(">")) != 1) { + return 0; + } + stream.write((uint8_t*)buff, len); + stream.flush(); + if (waitResponse(GF(GSM_NL "DATA ACCEPT:")) != 1) { + return 0; + } + streamSkipUntil(','); // Skip mux + return stream.readStringUntil('\n').toInt(); + } + + size_t modemRead(size_t size, uint8_t mux) { +#ifdef TINY_GSM_USE_HEX + sendAT(GF("+CIPRXGET=3,"), mux, ',', size); + if (waitResponse(GF("+CIPRXGET:")) != 1) { + return 0; + } +#else + sendAT(GF("+CIPRXGET=2,"), mux, ',', size); + if (waitResponse(GF("+CIPRXGET:")) != 1) { + return 0; + } +#endif + streamSkipUntil(','); // Skip mode 2/3 + streamSkipUntil(','); // Skip mux + size_t len = stream.readStringUntil(',').toInt(); + sockets[mux]->sock_available = stream.readStringUntil('\n').toInt(); + + for (size_t i=0; irx.put(c); + } + waitResponse(); + return len; + } + + size_t modemGetAvailable(uint8_t mux) { + sendAT(GF("+CIPRXGET=4,"), mux); + size_t result = 0; + if (waitResponse(GF("+CIPRXGET:")) == 1) { + streamSkipUntil(','); // Skip mode 4 + streamSkipUntil(','); // Skip mux + result = stream.readStringUntil('\n').toInt(); + waitResponse(); + } + if (!result) { + sockets[mux]->sock_connected = modemGetConnected(mux); + } + return result; + } + + bool modemGetConnected(uint8_t mux) { + sendAT(GF("+CIPSTATUS="), mux); + int res = waitResponse(GF(",\"CONNECTED\""), GF(",\"CLOSED\""), GF(",\"CLOSING\""), GF(",\"INITIAL\"")); + waitResponse(); + return 1 == res; + } + +public: + + /* Utilities */ + + template + void streamWrite(T last) { + stream.print(last); + } + + template + void streamWrite(T head, Args... tail) { + stream.print(head); + streamWrite(tail...); + } + + bool streamSkipUntil(char c) { //TODO: timeout + while (true) { + while (!stream.available()) { TINY_GSM_YIELD(); } + if (stream.read() == c) + return true; + } + return false; + } + + template + void sendAT(Args... cmd) { + streamWrite("AT", cmd..., GSM_NL); + stream.flush(); + TINY_GSM_YIELD(); + DBG("### AT:", cmd...); + } + + // TODO: Optimize this! + uint8_t waitResponse(uint32_t timeout, String& data, + GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), + GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) + { + /*String r1s(r1); r1s.trim(); + String r2s(r2); r2s.trim(); + String r3s(r3); r3s.trim(); + String r4s(r4); r4s.trim(); + String r5s(r5); r5s.trim(); + DBG("### ..:", r1s, ",", r2s, ",", r3s, ",", r4s, ",", r5s);*/ + data.reserve(64); + int index = 0; + unsigned long startMillis = millis(); + do { + TINY_GSM_YIELD(); + while (stream.available() > 0) { + int a = stream.read(); + if (a <= 0) continue; // Skip 0x00 bytes, just in case + data += (char)a; + if (r1 && data.endsWith(r1)) { + index = 1; + goto finish; + } else if (r2 && data.endsWith(r2)) { + index = 2; + goto finish; + } else if (r3 && data.endsWith(r3)) { + index = 3; + goto finish; + } else if (r4 && data.endsWith(r4)) { + index = 4; + goto finish; + } else if (r5 && data.endsWith(r5)) { + index = 5; + goto finish; + } else if (data.endsWith(GF(GSM_NL "+CIPRXGET:"))) { + String mode = stream.readStringUntil(','); + if (mode.toInt() == 1) { + int mux = stream.readStringUntil('\n').toInt(); + if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) { + sockets[mux]->got_data = true; + } + data = ""; + } else { + data += mode; + } + } else if (data.endsWith(GF("CLOSED" GSM_NL))) { + int nl = data.lastIndexOf(GSM_NL, data.length()-8); + int coma = data.indexOf(',', nl+2); + int mux = data.substring(nl+2, coma).toInt(); + if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) { + sockets[mux]->sock_connected = false; + } + data = ""; + DBG("### Closed: ", mux); + } + } + } while (millis() - startMillis < timeout); +finish: + if (!index) { + data.trim(); + if (data.length()) { + DBG("### Unhandled:", data); + } + data = ""; + } + return index; + } + + uint8_t waitResponse(uint32_t timeout, + GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), + GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) + { + String data; + return waitResponse(timeout, data, r1, r2, r3, r4, r5); + } + + uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), + GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) + { + return waitResponse(1000, r1, r2, r3, r4, r5); + } + +public: + Stream& stream; + +protected: + GsmClient* sockets[TINY_GSM_MUX_COUNT]; +}; + +#endif From 27ada9c3f5ee23a3038c6c405788293db79de9c1 Mon Sep 17 00:00:00 2001 From: Michael Krumpus Date: Sun, 27 Jan 2019 17:26:35 -0600 Subject: [PATCH 02/46] Major updates. --- src/TinyGsmClient.h | 4 +- src/TinyGsmClientSequansMonarchCatM1.h | 303 ++++++++++++++++--------- 2 files changed, 194 insertions(+), 113 deletions(-) diff --git a/src/TinyGsmClient.h b/src/TinyGsmClient.h index 57bf7f8..4edbda8 100644 --- a/src/TinyGsmClient.h +++ b/src/TinyGsmClient.h @@ -76,8 +76,8 @@ #define TINY_GSM_MODEM_HAS_SSL #include typedef TinyGsmSequansMonarchCatM1 TinyGsm; - typedef TinyGsm::GsmClient TinyGsmClient; - typedef TinyGsm::GsmClientSecure TinyGsmClientSecure; + typedef TinyGsmSequansMonarchCatM1::GsmClient TinyGsmClient; + typedef TinyGsmSequansMonarchCatM1::GsmClientSecure TinyGsmClientSecure; #else diff --git a/src/TinyGsmClientSequansMonarchCatM1.h b/src/TinyGsmClientSequansMonarchCatM1.h index 328628d..363dff4 100644 --- a/src/TinyGsmClientSequansMonarchCatM1.h +++ b/src/TinyGsmClientSequansMonarchCatM1.h @@ -1,10 +1,3 @@ -/** - * @file TinyGsmClientSIM800.h - * @author Volodymyr Shymanskyy - * @license LGPL-3.0 - * @copyright Copyright (c) 2016 Volodymyr Shymanskyy - * @date Nov 2016 - */ #ifndef TinyGsmClientSequansMonarchCatM1_h #define TinyGsmClientSequansMonarchCatM1_h @@ -39,6 +32,18 @@ enum RegStatus { REG_UNKNOWN = 4, }; +#define NUM_SOCKETS 6 + +enum SocketStatus { + SOCK_CLOSED = 0, + SOCK_ACTIVE_DATA = 1, + SOCK_SUSPENDED = 2, + SOCK_SUSPENDED_PENDING_DATA = 3, + SOCK_LISTENING = 4, + SOCK_INCOMING = 5, + SOCK_OPENING = 6, +}; + class TinyGsmSequansMonarchCatM1 { @@ -72,7 +77,7 @@ public: public: virtual int connect(const char *host, uint16_t port) { - stop(); + if (sock_connected) stop(); TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux); @@ -93,7 +98,7 @@ public: virtual void stop() { TINY_GSM_YIELD(); - at->sendAT(GF("+CIPCLOSE="), mux); + at->sendAT(GF("+SQNSH="), mux); sock_connected = false; at->waitResponse(); rx.clear(); @@ -111,10 +116,8 @@ public: virtual int available() { TINY_GSM_YIELD(); - if (!rx.size() && sock_connected) { - // Workaround: sometimes SIM800 forgets to notify about data arrival. - // TODO: Currently we ping the module periodically, - // but maybe there's a better indicator that we need to poll + if (!rx.size()) { + // Workaround: sometimes unsolicited SQNSSRING notifications do not arrive. if (millis() - prev_check > 500) { got_data = true; prev_check = millis(); @@ -128,7 +131,7 @@ public: TINY_GSM_YIELD(); at->maintain(); size_t cnt = 0; - while (cnt < size && sock_connected) { + while (cnt < size) { size_t chunk = TinyGsmMin(size-cnt, rx.size()); if (chunk > 0) { rx.get(buf, chunk); @@ -139,7 +142,8 @@ public: // TODO: Read directly into user buffer? at->maintain(); if (sock_available > 0) { - at->modemRead(rx.free(), mux); + int n = at->modemRead(rx.free(), mux); + if (n == 0) break; } else { break; } @@ -156,13 +160,15 @@ public: } virtual int peek() { return -1; } //TODO - virtual void flush() { at->stream.flush(); } + virtual void flush() { + at->stream.flush(); + } virtual uint8_t connected() { if (available()) { return true; } - return sock_connected; + return got_data || sock_connected; } virtual operator bool() { return connected(); } @@ -193,7 +199,7 @@ public: public: virtual int connect(const char *host, uint16_t port) { - stop(); + if (sock_connected) stop(); TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux, true); @@ -222,7 +228,7 @@ public: } //sendAT(GF("&FZ")); // Factory + Reset //waitResponse(); - //sendAT(GF("E0")); // Echo Off + sendAT(GF("E0")); // Echo Off if (waitResponse() != 1) { return false; } @@ -255,6 +261,7 @@ public: sock->sock_available = modemGetAvailable(mux); } } + while (stream.available()) { waitResponse(10, NULL, NULL); } @@ -287,16 +294,13 @@ public: return res; } + // TODO bool hasSSL() { -#if defined(TINY_GSM_MODEM_SIM900) - return false; -#else sendAT(GF("+CIPSSL=?")); if (waitResponse(GF(GSM_NL "+CIPSSL:")) != 1) { return false; } return waitResponse() == 1; -#endif } /* @@ -314,17 +318,17 @@ public: return false; } */ - sendAT(GF("+CFUN=1,1")); + sendAT(GF("+CFUN=1")); if (waitResponse(10000L) != 1) { return false; } - delay(3000); + delay(1000); return init(); } bool poweroff() { - sendAT(GF("+CPOWD=1")); - return waitResponse(GF("NORMAL POWER DOWN")) == 1; + sendAT(GF("+SQNSSHDN=?")); + return waitResponse(); } bool radioOff() { @@ -397,12 +401,13 @@ public: } RegStatus getRegistrationStatus() { - sendAT(GF("+CREG?")); - if (waitResponse(GF(GSM_NL "+CREG:")) != 1) { + //sendAT(GF("+CREG?")); + sendAT(GF("+CEREG?")); + if (waitResponse(GF(GSM_NL "+CEREG:")) != 1) { return REG_UNKNOWN; } streamSkipUntil(','); // Skip format (0) - int status = stream.readStringUntil('\n').toInt(); + int status = stream.readStringUntil(',').toInt(); waitResponse(); return (RegStatus)status; } @@ -435,7 +440,7 @@ public: bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); if (s == REG_OK_HOME || s == REG_OK_ROAMING) { - DBG("connected with status:", s); + DBG(F("connected with status:"), s); return true; } else { return false; @@ -574,14 +579,23 @@ public: } String getLocalIP() { - sendAT(GF("+CIFSR;E0")); - String res; - if (waitResponse(10000L, res) != 1) { + //sendAT(GF("+CIFSR;E0")); + sendAT(GF("+CGPADDR=3")); + + if (waitResponse(10000L, GF("+CGPADDR: 3,\"")) != 1) { return ""; } + + String res = stream.readStringUntil('\"'); + waitResponse(); + return res; + +/* res.replace(GSM_NL "OK" GSM_NL, ""); res.replace(GSM_NL, ""); res.trim(); +*/ + return res; } @@ -760,79 +774,132 @@ protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) { int rsp; -#if !defined(TINY_GSM_MODEM_SIM900) +/* + // TODO: test for SSL ability somehow sendAT(GF("+CIPSSL="), ssl); rsp = waitResponse(); if (ssl && rsp != 1) { return false; } -#endif - sendAT(GF("+CIPSTART="), mux, ',', GF("\"TCP"), GF("\",\""), host, GF("\","), port); +*/ + sendAT(GF("+SQNSD="), mux, ",0,", port, ',', GF("\""), host, GF("\""), ",0,0,1"); rsp = waitResponse(75000L, - GF("CONNECT OK" GSM_NL), - GF("CONNECT FAIL" GSM_NL), - GF("ALREADY CONNECT" GSM_NL), - GF("ERROR" GSM_NL), - GF("CLOSE OK" GSM_NL) // Happens when HTTPS handshake fails + GF("OK" GSM_NL), + GF("NO CARRIER" GSM_NL) ); - return (1 == rsp); + + // creation of socket failed immediately. + if (rsp != 1) return rsp; + + // wait until we get a good status + unsigned long timeout = 5000; + unsigned long startMillis = millis(); + bool connected = false; + while (!connected) { + connected = modemGetConnected(mux); + if (connected) { + delay(50); + break; + } + delay(100); // socket may be in opening state + if (millis() - startMillis < timeout) { + break; + } + } + return connected; } + int modemSend(const void* buff, size_t len, uint8_t mux) { - sendAT(GF("+CIPSEND="), mux, ',', len); - if (waitResponse(GF(">")) != 1) { - return 0; + bool success = false; + uint8_t retries = 0; + while ((!success) && (retries < 5)) { + sendAT(GF("+SQNSSENDEXT="), mux, ',', len); + if (waitResponse(5000, GF(GSM_NL "> ")) != 1) { + DBG("no prompt!"); + retries++; + delay(50); + } else { + success = true; + } } - stream.write((uint8_t*)buff, len); - stream.flush(); - if (waitResponse(GF(GSM_NL "DATA ACCEPT:")) != 1) { - return 0; + if (success) { + stream.write((uint8_t*)buff, len); + stream.flush(); + if (waitResponse() != 1) { + DBG("no OK after send"); + return 0; + } } - streamSkipUntil(','); // Skip mux - return stream.readStringUntil('\n').toInt(); - } - - size_t modemRead(size_t size, uint8_t mux) { -#ifdef TINY_GSM_USE_HEX - sendAT(GF("+CIPRXGET=3,"), mux, ',', size); - if (waitResponse(GF("+CIPRXGET:")) != 1) { - return 0; - } -#else - sendAT(GF("+CIPRXGET=2,"), mux, ',', size); - if (waitResponse(GF("+CIPRXGET:")) != 1) { - return 0; - } -#endif - streamSkipUntil(','); // Skip mode 2/3 - streamSkipUntil(','); // Skip mux - size_t len = stream.readStringUntil(',').toInt(); - sockets[mux]->sock_available = stream.readStringUntil('\n').toInt(); - - for (size_t i=0; irx.put(c); - } - waitResponse(); return len; } - size_t modemGetAvailable(uint8_t mux) { - sendAT(GF("+CIPRXGET=4,"), mux); - size_t result = 0; - if (waitResponse(GF("+CIPRXGET:")) == 1) { - streamSkipUntil(','); // Skip mode 4 + + size_t modemRead(size_t size, uint8_t mux) { + size_t bytes_read = 0; + sendAT(GF("+SQNSRECV="), mux, ',', size); + if (waitResponse(GF("+SQNSRECV: ")) != 1) { + return 0; + } + streamSkipUntil(','); // Skip mux + size_t len = stream.readStringUntil('\n').toInt(); + + unsigned long timeout = 500; + unsigned long startMillis = millis(); + bool timedOut = false; + for (size_t i=0; irx.put(c); + } + if (timedOut) { + Serial.print("timeout! "); + Serial.print(" len="); + Serial.print(len); + Serial.print(" bytes_read="); + Serial.println(bytes_read); + unsigned char *s = (unsigned char*)malloc(bytes_read+1); + sockets[mux]->rx.get(s, bytes_read); + Serial.print("->"); + Serial.print((char *)s); + Serial.println("<-"); + } else { + waitResponse(); + } + sockets[mux]->sock_available = modemGetAvailable(mux); + return bytes_read; + } + + size_t getSocketInfo(uint8_t mux) { + sendAT(GF("+SQNSI="), mux); + size_t bytes_sent = 0; + if (waitResponse(GF("+SQNSI:")) == 1) { streamSkipUntil(','); // Skip mux - result = stream.readStringUntil('\n').toInt(); + bytes_sent = stream.readStringUntil(',').toInt(); + streamSkipUntil('\n'); + waitResponse(); + } + return bytes_sent; + } + + size_t modemGetAvailable(uint8_t mux) { + sendAT(GF("+SQNSI="), mux); + size_t result = 0; + if (waitResponse(GF("+SQNSI:")) == 1) { + streamSkipUntil(','); // Skip mux + streamSkipUntil(','); // Skip sent + streamSkipUntil(','); // Skip received + result = stream.readStringUntil(',').toInt(); waitResponse(); } if (!result) { @@ -842,16 +909,33 @@ protected: } bool modemGetConnected(uint8_t mux) { - sendAT(GF("+CIPSTATUS="), mux); - int res = waitResponse(GF(",\"CONNECTED\""), GF(",\"CLOSED\""), GF(",\"CLOSING\""), GF(",\"INITIAL\"")); - waitResponse(); - return 1 == res; + sendAT(GF("+SQNSS")); + uint8_t m = 0; + uint8_t status = 0; + + while (true) { + if (waitResponse(GFP(GSM_OK), GF(GSM_NL "+SQNSS: ")) != 2) { + break; + }; + m = stream.readStringUntil(',').toInt(); + if (m == mux) { + status = stream.readStringUntil(',').toInt(); + } + streamSkipUntil('\n'); // Skip + } + + return ((status != SOCK_CLOSED) && (status != SOCK_INCOMING) && (status != SOCK_OPENING)); } public: /* Utilities */ + bool commandMode(int retries = 2) { + streamWrite(GF("+++")); // enter command mode + return true; + } + template void streamWrite(T last) { stream.print(last); @@ -874,7 +958,7 @@ public: template void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); + streamWrite("AT", cmd..., '\r'); stream.flush(); TINY_GSM_YIELD(); DBG("### AT:", cmd...); @@ -915,26 +999,18 @@ public: } else if (r5 && data.endsWith(r5)) { index = 5; goto finish; - } else if (data.endsWith(GF(GSM_NL "+CIPRXGET:"))) { - String mode = stream.readStringUntil(','); - if (mode.toInt() == 1) { - int mux = stream.readStringUntil('\n').toInt(); - if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) { - sockets[mux]->got_data = true; - } - data = ""; - } else { - data += mode; + } else if (data.endsWith(GF(GSM_NL "+SQNSRING:"))) { + int mux = stream.readStringUntil(',').toInt(); + if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) { + sockets[mux]->got_data = true; } - } else if (data.endsWith(GF("CLOSED" GSM_NL))) { - int nl = data.lastIndexOf(GSM_NL, data.length()-8); - int coma = data.indexOf(',', nl+2); - int mux = data.substring(nl+2, coma).toInt(); + data = ""; + } else if (data.endsWith(GF("SQNSH: "))) { + int mux = stream.readStringUntil('\n').toInt(); if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) { sockets[mux]->sock_connected = false; } data = ""; - DBG("### Closed: ", mux); } } } while (millis() - startMillis < timeout); @@ -946,6 +1022,11 @@ finish: } data = ""; } +/* + Serial.print("-> "); + Serial.print(data); + Serial.print(" <-"); +*/ return index; } From 0c9a0ecdc436abb27c2b90bf610c5533c093963c Mon Sep 17 00:00:00 2001 From: Michael Krumpus Date: Thu, 31 Jan 2019 19:12:04 -0600 Subject: [PATCH 03/46] Cleanup Sequans implementation. --- src/TinyGsmClient.h | 10 +- ...hCatM1.h => TinyGsmClientSequansMonarch.h} | 193 ++++-------------- 2 files changed, 50 insertions(+), 153 deletions(-) rename src/{TinyGsmClientSequansMonarchCatM1.h => TinyGsmClientSequansMonarch.h} (85%) diff --git a/src/TinyGsmClient.h b/src/TinyGsmClient.h index 4edbda8..051dd10 100644 --- a/src/TinyGsmClient.h +++ b/src/TinyGsmClient.h @@ -71,13 +71,13 @@ typedef TinyGsmXBee::GsmClient TinyGsmClient; typedef TinyGsmXBee::GsmClientSecure TinyGsmClientSecure; -#elif defined(TINY_GSM_MODEM_SEQUANS_MONARCH_CATM1) +#elif defined(TINY_GSM_MODEM_SEQUANS_MONARCH) #define TINY_GSM_MODEM_HAS_GPRS #define TINY_GSM_MODEM_HAS_SSL - #include - typedef TinyGsmSequansMonarchCatM1 TinyGsm; - typedef TinyGsmSequansMonarchCatM1::GsmClient TinyGsmClient; - typedef TinyGsmSequansMonarchCatM1::GsmClientSecure TinyGsmClientSecure; + #include + typedef TinyGsmSequansMonarch TinyGsm; + typedef TinyGsmSequansMonarch::GsmClient TinyGsmClient; + typedef TinyGsmSequansMonarch::GsmClientSecure TinyGsmClientSecure; #else diff --git a/src/TinyGsmClientSequansMonarchCatM1.h b/src/TinyGsmClientSequansMonarch.h similarity index 85% rename from src/TinyGsmClientSequansMonarchCatM1.h rename to src/TinyGsmClientSequansMonarch.h index 363dff4..14a428b 100644 --- a/src/TinyGsmClientSequansMonarchCatM1.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -1,6 +1,13 @@ +/** + * @file TinyGsmClientSequansMonarch.h + * @author Michael Krumpus + * @license LGPL-3.0 + * @copyright Copyright (c) 2019 Michael Krumpus + * @date Jan 2019 + */ -#ifndef TinyGsmClientSequansMonarchCatM1_h -#define TinyGsmClientSequansMonarchCatM1_h +#ifndef TinyGsmClientSequansMonarch_h +#define TinyGsmClientSequansMonarch_h #define TINY_GSM_DEBUG Serial //#define TINY_GSM_USE_HEX @@ -45,24 +52,24 @@ enum SocketStatus { }; -class TinyGsmSequansMonarchCatM1 +class TinyGsmSequansMonarch { public: class GsmClient : public Client { - friend class TinyGsmSequansMonarchCatM1; + friend class TinyGsmSequansMonarch; typedef TinyGsmFifo RxFifo; public: GsmClient() {} - GsmClient(TinyGsmSequansMonarchCatM1& modem, uint8_t mux = 1) { + GsmClient(TinyGsmSequansMonarch& modem, uint8_t mux = 1) { init(&modem, mux); } - bool init(TinyGsmSequansMonarchCatM1* modem, uint8_t mux = 1) { + bool init(TinyGsmSequansMonarch* modem, uint8_t mux = 1) { this->at = modem; this->mux = mux; sock_available = 0; @@ -179,7 +186,7 @@ public: String remoteIP() TINY_GSM_ATTR_NOT_IMPLEMENTED; private: - TinyGsmSequansMonarchCatM1* at; + TinyGsmSequansMonarch* at; uint8_t mux; uint16_t sock_available; uint32_t prev_check; @@ -193,7 +200,7 @@ class GsmClientSecure : public GsmClient public: GsmClientSecure() {} - GsmClientSecure(TinyGsmSequansMonarchCatM1& modem, uint8_t mux = 1) + GsmClientSecure(TinyGsmSequansMonarch& modem, uint8_t mux = 1) : GsmClient(modem, mux) {} @@ -209,7 +216,7 @@ public: public: - TinyGsmSequansMonarchCatM1(Stream& stream) + TinyGsmSequansMonarch(Stream& stream) : stream(stream) { memset(sockets, 0, sizeof(sockets)); @@ -295,6 +302,7 @@ public: } // TODO + /* bool hasSSL() { sendAT(GF("+CIPSSL=?")); if (waitResponse(GF(GSM_NL "+CIPSSL:")) != 1) { @@ -302,7 +310,7 @@ public: } return waitResponse() == 1; } - +*/ /* * Power functions */ @@ -312,13 +320,12 @@ public: return false; } -/* sendAT(GF("+CFUN=0")); if (waitResponse(10000L) != 1) { return false; } - */ - sendAT(GF("+CFUN=1")); + + sendAT(GF("+CFUN=1,1")); if (waitResponse(10000L) != 1) { return false; } @@ -463,101 +470,29 @@ public: bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { gprsDisconnect(); -/* - // Set the Bearer for the IP - sendAT(GF("+SAPBR=3,1,\"Contype\",\"GPRS\"")); // Set the connection type to GPRS + // Define the PDP context + sendAT(GF("+CGDCONT=3,\"IPV4V6\",\""), apn, '"'); waitResponse(); - sendAT(GF("+SAPBR=3,1,\"APN\",\""), apn, '"'); // Set the APN - waitResponse(); -*/ - if (user && strlen(user) > 0) { sendAT(GF("+CGAUTH=3,1,\""), user, GF("\",\""), pwd, GF("\"")); waitResponse(); } - // Define the PDP context - // AT+CGDCONT=3,"IPV4V6","NIMBLINK.GW12.VZWENTP" - // AT+CGDCONT=3,"IPV4V6","hologram" - sendAT(GF("+CGDCONT=3,\"IPV4V6\",\""), apn, '"'); - waitResponse(); - -/* // Activate the PDP context - sendAT(GF("+CGACT=1,1")); + sendAT(GF("+CGACT=3,1")); waitResponse(60000L); - // Open the definied GPRS bearer context - sendAT(GF("+SAPBR=1,1")); - waitResponse(85000L); - // Query the GPRS bearer context status - sendAT(GF("+SAPBR=2,1")); - if (waitResponse(30000L) != 1) - return false; -*/ - // Attach to GPRS sendAT(GF("+CGATT=1")); if (waitResponse(60000L) != 1) return false; - -/* - // Set to multi-IP - sendAT(GF("+CIPMUX=1")); - if (waitResponse() != 1) { - return false; - } - - // Put in "quick send" mode (thus no extra "Send OK") - sendAT(GF("+CIPQSEND=1")); - if (waitResponse() != 1) { - return false; - } - - // Set to get data manually - sendAT(GF("+CIPRXGET=1")); - if (waitResponse() != 1) { - return false; - } - - // Start Task and Set APN, USER NAME, PASSWORD - sendAT(GF("+CSTT=\""), apn, GF("\",\""), user, GF("\",\""), pwd, GF("\"")); - if (waitResponse(60000L) != 1) { - return false; - } - - // Bring Up Wireless Connection with GPRS or CSD - sendAT(GF("+CIICR")); - if (waitResponse(60000L) != 1) { - return false; - } - - // Get Local IP Address, only assigned after connection - sendAT(GF("+CIFSR;E0")); - if (waitResponse(10000L) != 1) { - return false; - } - - // Configure Domain Name Server (DNS) - sendAT(GF("+CDNSCFG=\"8.8.8.8\",\"8.8.4.4\"")); - if (waitResponse() != 1) { - return false; - } - -*/ return true; } bool gprsDisconnect() { - // Shut the TCP/IP connection -/* - sendAT(GF("+CIPSHUT")); - if (waitResponse(60000L) != 1) - return false; -*/ - sendAT(GF("+CGATT=0")); // Deactivate the bearer context + sendAT(GF("+CGATT=0")); if (waitResponse(60000L) != 1) return false; @@ -579,24 +514,14 @@ public: } String getLocalIP() { - //sendAT(GF("+CIFSR;E0")); sendAT(GF("+CGPADDR=3")); if (waitResponse(10000L, GF("+CGPADDR: 3,\"")) != 1) { return ""; } - String res = stream.readStringUntil('\"'); waitResponse(); return res; - -/* - res.replace(GSM_NL "OK" GSM_NL, ""); - res.replace(GSM_NL, ""); - res.trim(); -*/ - - return res; } IPAddress localIP() { @@ -607,6 +532,7 @@ public: * Phone Call functions */ + // TODO bool setGsmBusy(bool busy = true) { sendAT(GF("+GSMBUSY="), busy ? 1 : 0); return waitResponse() == 1; @@ -618,6 +544,7 @@ public: } // Returns true on pick-up, false on error/busy + // TODO bool callNumber(const String& number) { if (number == GF("last")) { sendAT(GF("DL")); @@ -643,6 +570,7 @@ public: } // 0-9,*,#,A,B,C,D + // TODO bool dtmfSend(char cmd, int duration_ms = 100) { duration_ms = constrain(duration_ms, 100, 1000); @@ -656,7 +584,7 @@ public: /* * Messaging functions */ - + // TODO String sendUSSD(const String& code) { sendAT(GF("+CMGF=1")); waitResponse(); @@ -683,6 +611,7 @@ public: } } + // TODO bool sendSMS(const String& number, const String& text) { sendAT(GF("+CMGF=1")); waitResponse(); @@ -699,6 +628,7 @@ public: return waitResponse(60000L) == 1; } + // TODO bool sendSMS_UTF16(const String& number, const void* text, size_t len) { sendAT(GF("+CMGF=1")); waitResponse(); @@ -731,6 +661,7 @@ public: * Location functions */ + // TODO String getGsmLocation() { sendAT(GF("+CIPGSMLOC=1,1")); if (waitResponse(10000L, GF(GSM_NL "+CIPGSMLOC:")) != 1) { @@ -746,6 +677,7 @@ public: * Battery functions */ // Use: float vBatt = modem.getBattVoltage() / 1000.0; + // TODO uint16_t getBattVoltage() { sendAT(GF("+CBC")); if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { @@ -759,6 +691,7 @@ public: return res; } + // TODO int getBattPercent() { sendAT(GF("+CBC")); if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { @@ -774,14 +707,21 @@ protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) { int rsp; + + // TODO /* - // TODO: test for SSL ability somehow sendAT(GF("+CIPSSL="), ssl); rsp = waitResponse(); if (ssl && rsp != 1) { return false; } */ + sendAT(GF("+SQNSCFG="), mux, GF(",3,300,90,600,50")); + waitResponse(); + + sendAT(GF("+SQNSCFGEXT="), mux, GF(",1,0,0,0,0")); + waitResponse(); + sendAT(GF("+SQNSD="), mux, ",0,", port, ',', GF("\""), host, GF("\""), ",0,0,1"); rsp = waitResponse(75000L, GF("OK" GSM_NL), @@ -836,7 +776,6 @@ protected: size_t modemRead(size_t size, uint8_t mux) { - size_t bytes_read = 0; sendAT(GF("+SQNSRECV="), mux, ',', size); if (waitResponse(GF("+SQNSRECV: ")) != 1) { return 0; @@ -844,52 +783,14 @@ protected: streamSkipUntil(','); // Skip mux size_t len = stream.readStringUntil('\n').toInt(); - unsigned long timeout = 500; - unsigned long startMillis = millis(); - bool timedOut = false; for (size_t i=0; irx.put(c); } - if (timedOut) { - Serial.print("timeout! "); - Serial.print(" len="); - Serial.print(len); - Serial.print(" bytes_read="); - Serial.println(bytes_read); - unsigned char *s = (unsigned char*)malloc(bytes_read+1); - sockets[mux]->rx.get(s, bytes_read); - Serial.print("->"); - Serial.print((char *)s); - Serial.println("<-"); - } else { - waitResponse(); - } + waitResponse(); sockets[mux]->sock_available = modemGetAvailable(mux); - return bytes_read; - } - - size_t getSocketInfo(uint8_t mux) { - sendAT(GF("+SQNSI="), mux); - size_t bytes_sent = 0; - if (waitResponse(GF("+SQNSI:")) == 1) { - streamSkipUntil(','); // Skip mux - bytes_sent = stream.readStringUntil(',').toInt(); - streamSkipUntil('\n'); - waitResponse(); - } - return bytes_sent; + return len; } size_t modemGetAvailable(uint8_t mux) { @@ -1011,6 +912,7 @@ public: sockets[mux]->sock_connected = false; } data = ""; + DBG("### Closed: ", mux); } } } while (millis() - startMillis < timeout); @@ -1022,11 +924,6 @@ finish: } data = ""; } -/* - Serial.print("-> "); - Serial.print(data); - Serial.print(" <-"); -*/ return index; } From d2dde3569cf555d0665cab6bfbaabdfa63c1af8f Mon Sep 17 00:00:00 2001 From: Michael Krumpus Date: Sat, 2 Feb 2019 13:54:54 -0600 Subject: [PATCH 04/46] Implemented SMS. Added SSL support. --- src/TinyGsmClientSequansMonarch.h | 172 ++++++------------------------ 1 file changed, 33 insertions(+), 139 deletions(-) diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 14a428b..ddba239 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -9,7 +9,7 @@ #ifndef TinyGsmClientSequansMonarch_h #define TinyGsmClientSequansMonarch_h -#define TINY_GSM_DEBUG Serial +//#define TINY_GSM_DEBUG Serial //#define TINY_GSM_USE_HEX #if !defined(TINY_GSM_RX_BUFFER) @@ -233,8 +233,6 @@ public: if (!testAT()) { return false; } - //sendAT(GF("&FZ")); // Factory + Reset - //waitResponse(); sendAT(GF("E0")); // Echo Off if (waitResponse() != 1) { return false; @@ -248,7 +246,6 @@ public: } bool testAT(unsigned long timeout = 10000L) { - //streamWrite(GF("AAAAA" GSM_NL)); // TODO: extra A's to help detect the baud rate for (unsigned long start = millis(); millis() - start < timeout; ) { sendAT(GF("")); if (waitResponse(200) == 1) { @@ -301,16 +298,14 @@ public: return res; } - // TODO - /* bool hasSSL() { - sendAT(GF("+CIPSSL=?")); - if (waitResponse(GF(GSM_NL "+CIPSSL:")) != 1) { + sendAT(GF("+SQNSPCFG=1")); + if (waitResponse(GFP(GSM_OK), GF(GSM_NL "+SQNSPCFG:")) != 2) { return false; } return waitResponse() == 1; } -*/ + /* * Power functions */ @@ -326,7 +321,7 @@ public: } sendAT(GF("+CFUN=1,1")); - if (waitResponse(10000L) != 1) { + if (waitResponse(60000L, GF("+SYSSTART")) != 1) { return false; } delay(1000); @@ -480,7 +475,7 @@ public: } // Activate the PDP context - sendAT(GF("+CGACT=3,1")); + sendAT(GF("+CGACT=1,3")); waitResponse(60000L); // Attach to GPRS @@ -532,92 +527,23 @@ public: * Phone Call functions */ - // TODO - bool setGsmBusy(bool busy = true) { - sendAT(GF("+GSMBUSY="), busy ? 1 : 0); - return waitResponse() == 1; - } + bool setGsmBusy(bool busy = true) TINY_GSM_ATTR_NOT_AVAILABLE; - bool callAnswer() { - sendAT(GF("A")); - return waitResponse() == 1; - } + bool callAnswer() TINY_GSM_ATTR_NOT_IMPLEMENTED; - // Returns true on pick-up, false on error/busy - // TODO - bool callNumber(const String& number) { - if (number == GF("last")) { - sendAT(GF("DL")); - } else { - sendAT(GF("D"), number, ";"); - } - int status = waitResponse(60000L, - GFP(GSM_OK), - GF("BUSY" GSM_NL), - GF("NO ANSWER" GSM_NL), - GF("NO CARRIER" GSM_NL)); - switch (status) { - case 1: return true; - case 2: - case 3: return false; - default: return false; - } - } + bool callNumber(const String& number) TINY_GSM_ATTR_NOT_IMPLEMENTED; - bool callHangup() { - sendAT(GF("H")); - return waitResponse() == 1; - } + bool callHangup() TINY_GSM_ATTR_NOT_IMPLEMENTED; - // 0-9,*,#,A,B,C,D - // TODO - bool dtmfSend(char cmd, int duration_ms = 100) { - duration_ms = constrain(duration_ms, 100, 1000); + String sendUSSD(const String& code) TINY_GSM_ATTR_NOT_IMPLEMENTED; - sendAT(GF("+VTD="), duration_ms / 100); // VTD accepts in 1/10 of a second - waitResponse(); - - sendAT(GF("+VTS="), cmd); - return waitResponse(10000L) == 1; - } - - /* - * Messaging functions - */ - // TODO - String sendUSSD(const String& code) { - sendAT(GF("+CMGF=1")); - waitResponse(); - sendAT(GF("+CSCS=\"HEX\"")); - waitResponse(); - sendAT(GF("+CUSD=1,\""), code, GF("\"")); - if (waitResponse() != 1) { - return ""; - } - if (waitResponse(10000L, GF(GSM_NL "+CUSD:")) != 1) { - return ""; - } - stream.readStringUntil('"'); - String hex = stream.readStringUntil('"'); - stream.readStringUntil(','); - int dcs = stream.readStringUntil('\n').toInt(); - - if (dcs == 15) { - return TinyGsmDecodeHex8bit(hex); - } else if (dcs == 72) { - return TinyGsmDecodeHex16bit(hex); - } else { - return hex; - } - } - - // TODO bool sendSMS(const String& number, const String& text) { sendAT(GF("+CMGF=1")); waitResponse(); //Set GSM 7 bit default alphabet (3GPP TS 23.038) sendAT(GF("+CSCS=\"GSM\"")); waitResponse(); + sendAT(GF("+CMGS=\""), number, GF("\"")); if (waitResponse(GF(">")) != 1) { return false; @@ -628,34 +554,7 @@ public: return waitResponse(60000L) == 1; } - // TODO - bool sendSMS_UTF16(const String& number, const void* text, size_t len) { - sendAT(GF("+CMGF=1")); - waitResponse(); - sendAT(GF("+CSCS=\"HEX\"")); - waitResponse(); - sendAT(GF("+CSMP=17,167,0,8")); - waitResponse(); - - sendAT(GF("+CMGS=\""), number, GF("\"")); - if (waitResponse(GF(">")) != 1) { - return false; - } - - uint16_t* t = (uint16_t*)text; - for (size_t i=0; i> 8; - if (c < 0x10) { stream.print('0'); } - stream.print(c, HEX); - c = t[i] & 0xFF; - if (c < 0x10) { stream.print('0'); } - stream.print(c, HEX); - } - stream.write((char)0x1A); - stream.flush(); - return waitResponse(60000L) == 1; - } - + bool sendSMS_UTF16(const String& number, const void* text, size_t len) TINY_GSM_ATTR_NOT_IMPLEMENTED; /* * Location functions @@ -708,20 +607,25 @@ protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) { int rsp; - // TODO -/* - sendAT(GF("+CIPSSL="), ssl); - rsp = waitResponse(); - if (ssl && rsp != 1) { + if ((ssl) && (!hasSSL())) { + DBG("SSL not configured. Use AT+SQNSPCFG to configure security profile 1"); return false; } -*/ + sendAT(GF("+SQNSCFG="), mux, GF(",3,300,90,600,50")); waitResponse(); sendAT(GF("+SQNSCFGEXT="), mux, GF(",1,0,0,0,0")); waitResponse(); + if (ssl) { + // enable SSl and use security profile 1 + sendAT(GF("+SQNSSCFG="), mux, GF(",1,1")); + if (waitResponse() != 1) { + return false; + } + } + sendAT(GF("+SQNSD="), mux, ",0,", port, ',', GF("\""), host, GF("\""), ",0,0,1"); rsp = waitResponse(75000L, GF("OK" GSM_NL), @@ -751,25 +655,15 @@ protected: int modemSend(const void* buff, size_t len, uint8_t mux) { - bool success = false; - uint8_t retries = 0; - while ((!success) && (retries < 5)) { - sendAT(GF("+SQNSSENDEXT="), mux, ',', len); - if (waitResponse(5000, GF(GSM_NL "> ")) != 1) { - DBG("no prompt!"); - retries++; - delay(50); - } else { - success = true; - } + sendAT(GF("+SQNSSENDEXT="), mux, ',', len); + if (waitResponse(5000, GF(GSM_NL "> ")) != 1) { + return 0; } - if (success) { - stream.write((uint8_t*)buff, len); - stream.flush(); - if (waitResponse() != 1) { - DBG("no OK after send"); - return 0; - } + stream.write((uint8_t*)buff, len); + stream.flush(); + if (waitResponse() != 1) { + DBG("no OK after send"); + return 0; } return len; } @@ -782,7 +676,6 @@ protected: } streamSkipUntil(','); // Skip mux size_t len = stream.readStringUntil('\n').toInt(); - for (size_t i=0; i= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) { sockets[mux]->got_data = true; } + stream.readStringUntil('\n'); data = ""; } else if (data.endsWith(GF("SQNSH: "))) { int mux = stream.readStringUntil('\n').toInt(); From afd96430e39274f8768393a80deeae3143aca05b Mon Sep 17 00:00:00 2001 From: Michael Krumpus Date: Sun, 3 Feb 2019 11:19:59 -0600 Subject: [PATCH 05/46] Refined SSL implementation. --- src/TinyGsmClientSequansMonarch.h | 90 +++++++++++++------------------ 1 file changed, 37 insertions(+), 53 deletions(-) diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index ddba239..480ab16 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -204,14 +204,40 @@ public: : GsmClient(modem, mux) {} +protected: + bool strictSSL = false; + public: virtual int connect(const char *host, uint16_t port) { if (sock_connected) stop(); TINY_GSM_YIELD(); rx.clear(); + + // configure security profile 1 with parameters: + if (strictSSL) { + // require minimum of TLS 1.2 (3) + // only support cipher suite 0x3D: TLS_RSA_WITH_AES_256_CBC_SHA256 + // verify server certificate against imported CA certs 0 and enforce validity period (3) + at->sendAT(GF("+SQNSPCFG=1,3,\"0x3D\",3,0,,,\"\",\"\"")); + } else { + // use TLS 1.0 or higher (1) + // support wider variety of cipher suites + // do not verify server certificate (0) + at->sendAT(GF("+SQNSPCFG=1,1,\"0x2F;0x35;0x3C;0x3D\",0,,,,\"\",\"\"")); + } + if (at->waitResponse() != 1) { + DBG("failed to configure security profile"); + return false; + } + sock_connected = at->modemConnect(host, port, mux, true); return sock_connected; } + + void setStrictSSL(bool strict) { + strictSSL = strict; + } + }; public: @@ -299,11 +325,7 @@ public: } bool hasSSL() { - sendAT(GF("+SQNSPCFG=1")); - if (waitResponse(GFP(GSM_OK), GF(GSM_NL "+SQNSPCFG:")) != 2) { - return false; - } - return waitResponse() == 1; + return true; } /* @@ -559,57 +581,27 @@ public: /* * Location functions */ - - // TODO - String getGsmLocation() { - sendAT(GF("+CIPGSMLOC=1,1")); - if (waitResponse(10000L, GF(GSM_NL "+CIPGSMLOC:")) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } + String getGsmLocation() TINY_GSM_ATTR_NOT_AVAILABLE; /* * Battery functions */ - // Use: float vBatt = modem.getBattVoltage() / 1000.0; - // TODO - uint16_t getBattVoltage() { - sendAT(GF("+CBC")); - if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { - return 0; - } - streamSkipUntil(','); // Skip - streamSkipUntil(','); // Skip + uint16_t getBattVoltage() TINY_GSM_ATTR_NOT_AVAILABLE; - uint16_t res = stream.readStringUntil(',').toInt(); - waitResponse(); - return res; - } - - // TODO - int getBattPercent() { - sendAT(GF("+CBC")); - if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { - return false; - } - stream.readStringUntil(','); - int res = stream.readStringUntil(',').toInt(); - waitResponse(); - return res; - } + int getBattPercent() TINY_GSM_ATTR_NOT_AVAILABLE; protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) { int rsp; - if ((ssl) && (!hasSSL())) { - DBG("SSL not configured. Use AT+SQNSPCFG to configure security profile 1"); - return false; + if (ssl) { + // enable SSl and use security profile 1 + sendAT(GF("+SQNSSCFG="), mux, GF(",1,1")); + if (waitResponse() != 1) { + DBG("failed to configure secure socket"); + return false; + } } sendAT(GF("+SQNSCFG="), mux, GF(",3,300,90,600,50")); @@ -618,14 +610,6 @@ protected: sendAT(GF("+SQNSCFGEXT="), mux, GF(",1,0,0,0,0")); waitResponse(); - if (ssl) { - // enable SSl and use security profile 1 - sendAT(GF("+SQNSSCFG="), mux, GF(",1,1")); - if (waitResponse() != 1) { - return false; - } - } - sendAT(GF("+SQNSD="), mux, ",0,", port, ',', GF("\""), host, GF("\""), ",0,0,1"); rsp = waitResponse(75000L, GF("OK" GSM_NL), From f3a18828d791597091f597f12d076b88bfae9acb Mon Sep 17 00:00:00 2001 From: Michael Krumpus Date: Sat, 30 Mar 2019 13:18:51 -0500 Subject: [PATCH 06/46] Fixed shutdown command. --- src/TinyGsmClientSequansMonarch.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 480ab16..935b38b 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -351,7 +351,7 @@ public: } bool poweroff() { - sendAT(GF("+SQNSSHDN=?")); + sendAT(GF("+SQNSSHDN")); return waitResponse(); } From 71dd56ce274592133d7995342a5f666d07d4c4f2 Mon Sep 17 00:00:00 2001 From: Michael Krumpus Date: Sat, 30 Mar 2019 13:53:43 -0500 Subject: [PATCH 07/46] Added debug print of version. --- src/TinyGsmClientSequansMonarch.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 935b38b..02cd12b 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -256,6 +256,7 @@ public: } bool init() { + DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { return false; } From 22dfff5052995606fb63cb69b32b18c1feaa899a Mon Sep 17 00:00:00 2001 From: Michael Krumpus Date: Sat, 30 Mar 2019 14:00:57 -0500 Subject: [PATCH 08/46] Added Sequans Monarch AT Commands Manual. --- .../Sequans Monarch AT Commands Manual.pdf | Bin 0 -> 1717563 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 extras/AT Command Manuals/Sequans Monarch AT Commands Manual.pdf diff --git a/extras/AT Command Manuals/Sequans Monarch AT Commands Manual.pdf b/extras/AT Command Manuals/Sequans Monarch AT Commands Manual.pdf new file mode 100644 index 0000000000000000000000000000000000000000..84c8f7c80849ef470c056014296a5d8a1e2a770d GIT binary patch literal 1717563 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�cx_=e#i>Bhxw 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%0Dm5oVy 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 >7H10QRHQzGZzVEds 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

gH(HWDBMVw_~QqH$j13SCfa^2qn}A0q1{BAM?(L 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

>haqGL=uogCE)nm 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

;O|Kw9;WM=!1{5;eA#5%BOEXFu+ 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%0D~!Hg7^g(s;3mkvO(FgdZvgv5+^e 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%0AhuE1u~A}8D8&TdL3F6$xF%q)w_fc_tGHV4q@ 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

D&>K>f%+foAFmOL#B}-%1 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 w*mJS4M=sU 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

BwuNZ(At3G^Xd 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 z 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�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 Xm}o$LAb?Nc4JH}`gS4^?Cfff3u`7?o literal 0 HcmV?d00001 From 43cd516d1ffb382525fbe9bbe326504104afd06b Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Wed, 8 May 2019 13:08:40 -0400 Subject: [PATCH 09/46] (Hopefully) better wait for close on SARA R410 --- src/TinyGsmClientBG96.h | 2 +- src/TinyGsmClientM95.h | 2 +- src/TinyGsmClientMC60.h | 2 +- src/TinyGsmClientUBLOX.h | 22 ++++++++++------------ 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index 02a8269..e24d718 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -668,7 +668,7 @@ protected: streamSkipUntil(','); // Skip total received streamSkipUntil(','); // Skip have read result = stream.readStringUntil('\n').toInt(); - DBG("### DATA AVAILABLE:", result, "on", mux); + if (result) DBG("### DATA AVAILABLE:", result, "on", mux); waitResponse(); } if (!result) { diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 39022a9..170f764 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -723,7 +723,7 @@ protected: streamSkipUntil(','); // Skip total received streamSkipUntil(','); // Skip have read result = stream.readStringUntil('\n').toInt(); - DBG("### DATA AVAILABLE:", result, "on", mux); + if (result) DBG("### DATA AVAILABLE:", result, "on", mux); waitResponse(); } if (!result) { diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 8b6e021..583a9b7 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -752,7 +752,7 @@ protected: streamSkipUntil(','); // Skip total received streamSkipUntil(','); // Skip have read result = stream.readStringUntil('\n').toInt(); - DBG("### DATA AVAILABLE:", result, "on", mux); + if (result) DBG("### DATA AVAILABLE:", result, "on", mux); waitResponse(); } if (!result) { diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index 9d938f0..4d4e0f9 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -71,17 +71,15 @@ public: public: virtual int connect(const char *host, uint16_t port) { - if (sock_connected) { - stop(); - // If we're creating a new connection on the same client, we need to wait - // until the async close has finished on Cat-M modems. - // After close has completed, the +UUSOCL should appear. - if (at->isCatM) { - DBG("Waiting for +UUSOCL URC on", mux); - for (unsigned long start = millis(); millis() - start < 120000L; ) { - at->maintain(); - if (!sock_connected) break; - } + stop(); + // If we're creating a new connection on the same client, we need to wait + // until the async close has finished on Cat-M modems. + // After close has completed, the +UUSOCL should appear. + if (at->isCatM && sock_connected) { + DBG("Waiting for +UUSOCL URC on", mux); + for (unsigned long start = millis(); millis() - start < 120000L; ) { + at->maintain(); + if (!sock_connected) break; } } TINY_GSM_YIELD(); @@ -844,7 +842,7 @@ protected: if (res == 1) { streamSkipUntil(','); // Skip mux result = stream.readStringUntil('\n').toInt(); - DBG("### DATA AVAILABLE:", result, "on", mux); + if (result) DBG("### DATA AVAILABLE:", result, "on", mux); waitResponse(); } if (!result && res != 2 && res != 3) { // Don't check modemGetConnected after an error From 7bbe045c78702ddc8a90c7206911b21172f3790a Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Wed, 8 May 2019 18:25:49 -0400 Subject: [PATCH 10/46] Trying to work better with the "async" close on the UBLOX SARA R410 --- src/TinyGsmClientA6.h | 2 +- src/TinyGsmClientBG96.h | 2 +- src/TinyGsmClientESP8266.h | 4 ++-- src/TinyGsmClientM590.h | 2 +- src/TinyGsmClientM95.h | 2 +- src/TinyGsmClientMC60.h | 2 +- src/TinyGsmClientSIM7000.h | 2 +- src/TinyGsmClientSIM800.h | 2 +- src/TinyGsmClientUBLOX.h | 29 ++++++++++++++++++++--------- 9 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index 6f892a5..b90d1c2 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -75,7 +75,7 @@ public: if (sock_connected) { mux = newMux; at->sockets[mux] = this; - // ^^ TODO: attach the socet after attempting connection or above at init? + // ^^ TODO: attach the socket after attempting connection or above at init? // Currently done inconsistently between modems } return sock_connected; diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index e24d718..281689c 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -76,7 +76,7 @@ public: sock_connected = at->modemConnect(host, port, mux); // sock_connected = at->modemConnect(host, port, &mux); // at->sockets[mux] = this; - // ^^ TODO: attach the socet after attempting connection or above at init? + // ^^ TODO: attach the socket after attempting connection or above at init? // Currently done inconsistently between modems return sock_connected; } diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index a18dfbd..9f8e333 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -73,7 +73,7 @@ public: sock_connected = at->modemConnect(host, port, mux); // sock_connected = at->modemConnect(host, port, &mux); // at->sockets[mux] = this; - // ^^ TODO: attach the socet after attempting connection or above at init? + // ^^ TODO: attach the socket after attempting connection or above at init? // Currently done inconsistently between modems return sock_connected; } @@ -191,7 +191,7 @@ public: sock_connected = at->modemConnect(host, port, mux, true); // sock_connected = at->modemConnect(host, port, &mux); // at->sockets[mux] = this; - // ^^ TODO: attach the socet after attempting connection or above at init? + // ^^ TODO: attach the socket after attempting connection or above at init? // Currently done inconsistently between modems return sock_connected; } diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index 7eeb917..c16b9c0 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -73,7 +73,7 @@ public: sock_connected = at->modemConnect(host, port, mux); // sock_connected = at->modemConnect(host, port, &mux); // at->sockets[mux] = this; - // ^^ TODO: attach the socet after attempting connection or above at init? + // ^^ TODO: attach the socket after attempting connection or above at init? // Currently done inconsistently between modems return sock_connected; } diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 170f764..9027215 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -76,7 +76,7 @@ public: sock_connected = at->modemConnect(host, port, mux); // sock_connected = at->modemConnect(host, port, &mux); // at->sockets[mux] = this; - // ^^ TODO: attach the socet after attempting connection or above at init? + // ^^ TODO: attach the socket after attempting connection or above at init? // Currently done inconsistently between modems return sock_connected; } diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 583a9b7..591355a 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -80,7 +80,7 @@ public: sock_connected = at->modemConnect(host, port, mux); // sock_connected = at->modemConnect(host, port, &mux); // at->sockets[mux] = this; - // ^^ TODO: attach the socet after attempting connection or above at init? + // ^^ TODO: attach the socket after attempting connection or above at init? // Currently done inconsistently between modems return sock_connected; } diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 90634aa..fd0cbd6 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -85,7 +85,7 @@ public: sock_connected = at->modemConnect(host, port, mux); // sock_connected = at->modemConnect(host, port, &mux); // at->sockets[mux] = this; - // ^^ TODO: attach the socet after attempting connection or above at init? + // ^^ TODO: attach the socket after attempting connection or above at init? // Currently done inconsistently between modems return sock_connected; } diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 13b94b4..e613d0d 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -82,7 +82,7 @@ public: sock_connected = at->modemConnect(host, port, mux); // sock_connected = at->modemConnect(host, port, &mux); // at->sockets[mux] = this; - // ^^ TODO: attach the socet after attempting connection or above at init? + // ^^ TODO: attach the socket after attempting connection or above at init? // Currently done inconsistently between modems return sock_connected; } diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index 4d4e0f9..9fefc3d 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -75,7 +75,13 @@ public: // If we're creating a new connection on the same client, we need to wait // until the async close has finished on Cat-M modems. // After close has completed, the +UUSOCL should appear. - if (at->isCatM && sock_connected) { + // Without this wait, there might be unexpected behaviors when the same + // client instance attempts to move from one socket to another. + // This is only a problem for the LTE-M modules that take painfully long + // to open and close sockets. For those modules, when connecting to multple + // locations, remember to create multiple clients with different mux numbers. + // TODO: Re-evaluate this! + if (at->isCatM && at->modemGetConnected(mux)) { DBG("Waiting for +UUSOCL URC on", mux); for (unsigned long start = millis(); millis() - start < 120000L; ) { at->maintain(); @@ -87,7 +93,7 @@ public: // sock_connected = at->modemConnect(host, port, mux); sock_connected = at->modemConnect(host, port, &mux); at->sockets[mux] = this; - // ^^ TODO: attach the socet after attempting connection or above at init? + // ^^ TODO: attach the socket after attempting connection or above at init? // Currently done inconsistently between modems at->maintain(); return sock_connected; @@ -120,9 +126,6 @@ public: at->maintain(); } at->modemDisconnect(mux); - // We don't actually know if the CatM modem has finished closing because - // we're using an "asynchronous" close - if (!at->isCatM) sock_connected = false; } virtual size_t write(const uint8_t *buf, size_t size) { @@ -780,16 +783,24 @@ protected: bool modemDisconnect(uint8_t mux) { TINY_GSM_YIELD(); - if (!modemGetConnected(mux)) return true; + if (!modemGetConnected(mux)) { + sockets[mux]->sock_connected = false; + return true; + } + bool success; if (isCatM) { // These modems allow a faster "asynchronous" close sendAT(GF("+USOCL="), mux, GF(",1")); - int rsp = waitResponse(120000L); - return (1 == rsp); // but it still can take up to 120s to get a response + success = 1 == waitResponse(120000L); // but it still can take up to 120s to get a response + // TODO: Evaluate whether the speed bump by allowing the async close is worth it } else { // no async close sendAT(GF("+USOCL="), mux); - return (1 == waitResponse()); + success = 1 == waitResponse(); // others should return within 1s + if (success) { + sockets[mux]->sock_connected = false; + } } + return success; } int16_t modemSend(const void* buff, size_t len, uint8_t mux) { From a5cada3bab086dd928102a38acbdcb345bdbfa43 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Thu, 9 May 2019 11:39:43 -0400 Subject: [PATCH 11/46] Fewer trips in and out of command mode with XBee --- src/TinyGsmClientXBee.h | 60 ++++++++++++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 16 deletions(-) diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index fc8d1ae..9bddc5b 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -262,6 +262,7 @@ public: resetPin = -1; savedIP = IPAddress(0,0,0,0); savedHost = ""; + inCommandMode = false; memset(sockets, 0, sizeof(sockets)); } @@ -273,6 +274,7 @@ public: this->resetPin = resetPin; savedIP = IPAddress(0,0,0,0); savedHost = ""; + inCommandMode = false; memset(sockets, 0, sizeof(sockets)); } @@ -335,27 +337,36 @@ public: } bool testAT(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - if (commandMode()) - { + unsigned long start = millis(); + bool success = false; + while (!success && millis() - start < timeout) { + if (!inCommandMode) { + success = commandMode(); + if (success) exitCommand(); + } + else { sendAT(); if (waitResponse(200) == 1) { + success = true; exitCommand(); - return true; } + // if we didn't respond to the AT, must not be in command mode + else inCommandMode = false; } - delay(100); + delay(250); } - return false; + return success; } void maintain() { // this only happens OUTSIDE command mode, so if we're getting characters // they should be data received from the TCP connection // TINY_GSM_YIELD(); - // while (stream.available()) { - // char c = stream.read(); - // if (c > 0) sockets[0]->rx.put(c); + // if (!inCommandMode) { + // while (stream.available()) { + // char c = stream.read(); + // if (c > 0) sockets[0]->rx.put(c); + // } // } } @@ -521,7 +532,13 @@ public: } RegStatus getRegistrationStatus() { - if (!commandMode()) return REG_UNKNOWN; // Return immediately + + bool wasInCommandMode = inCommandMode; + if (!wasInCommandMode) { // don't re-enter command mode if already in it + commandMode(); + } + + if (!inCommandMode) return REG_UNKNOWN; // Return immediately if (beeType == XBEE_UNKNOWN) getSeries(); // Need to know the bee type to interpret response @@ -598,7 +615,9 @@ public: } } - exitCommand(); + if (!wasInCommandMode) { // only exit if we weren't in command mode + exitCommand(); + } return stat; } @@ -632,12 +651,17 @@ public: } bool waitForNetwork(unsigned long timeout = 60000L) { + // Enter command mode at the start so we don't have to go in and out of it + // The cellular Bee's often freeze up and won't respond when attempting + // to enter command mode too many times. + commandMode(); for (unsigned long start = millis(); millis() - start < timeout; ) { if (isNetworkConnected()) { return true; } delay(250); // per Neil H. - more stable with delay } + exitCommand(); return false; } @@ -985,28 +1009,30 @@ finish: return waitResponse(1000, r1, r2, r3, r4, r5); } - bool commandMode(uint8_t retries = 3) { + bool commandMode(uint8_t retries = 5) { uint8_t triesMade = 0; - uint8_t triesUntilReset = 2; // only reset after 2 failures + uint8_t triesUntilReset = 4; // only reset after 4 failures bool success = false; streamClear(); // Empty everything in the buffer before starting while (!success and triesMade < retries) { // Cannot send anything for 1 "guard time" before entering command mode // Default guard time is 1s, but the init fxn decreases it to 100 ms - delay(guardTime + 50); + delay(guardTime + 10); streamWrite(GF("+++")); // enter command mode int res = waitResponse(guardTime*2); success = (1 == res); if (0 == res) { triesUntilReset--; if (triesUntilReset == 0) { - triesUntilReset = 2; + triesUntilReset = 4; pinReset(); // if it's unresponsive, reset - delay(250); // a short delay to allow it to come back up TODO-optimize this + delay(250); // a short delay to allow it to come back up + // TODO-optimize this } } triesMade ++; } + if (success) inCommandMode = true; return success; } @@ -1021,6 +1047,7 @@ finish: void exitCommand(void) { sendAT(GF("CN")); // Exit command mode waitResponse(); + inCommandMode = false; } bool exitAndFail(void) { @@ -1061,6 +1088,7 @@ protected: XBeeType beeType; IPAddress savedIP; String savedHost; + bool inCommandMode; GsmClient* sockets[TINY_GSM_MUX_COUNT]; }; From eeffd92674fb9efcebc20d7f58f10f2c3f0c6472 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Mon, 13 May 2019 18:01:40 -0400 Subject: [PATCH 12/46] Another xbee function to check if we have ip saved --- src/TinyGsmClientXBee.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index 9bddc5b..4d9efa8 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -1079,6 +1079,11 @@ finish: return intRes; } + bool gotIPforSavedHost() { + if (savedHost != "" && savedIP != IPAddress(0,0,0,0)) return true; + else return false; + } + public: Stream& stream; From f2aca3b6b60a7995abeb7dde1928d095dbcf9051 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Tue, 14 May 2019 16:20:48 -0400 Subject: [PATCH 13/46] Removed parent class --- library.json | 2 +- library.properties | 2 +- src/TinyGsmClientA6.h | 46 ++++++++++- src/TinyGsmClientBG96.h | 46 ++++++++++- src/TinyGsmClientESP8266.h | 36 +++++++- src/TinyGsmClientM590.h | 46 ++++++++++- src/TinyGsmClientM95.h | 46 ++++++++++- src/TinyGsmClientMC60.h | 46 ++++++++++- src/TinyGsmClientSIM7000.h | 46 ++++++++++- src/TinyGsmClientSIM800.h | 46 ++++++++++- src/TinyGsmClientSequansMonarch.h | 42 +++++----- src/TinyGsmClientUBLOX.h | 46 ++++++++++- src/TinyGsmClientXBee.h | 38 ++++++++- src/TinyGsmCommon.h | 133 +----------------------------- 14 files changed, 445 insertions(+), 176 deletions(-) diff --git a/library.json b/library.json index 906750b..91b9eaa 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "TinyGSM", - "version": "0.6.2", + "version": "0.7.0", "description": "A small Arduino library for GPRS modules, that just works. Includes examples for Blynk, MQTT, File Download, and Web Client. Supports many GSM, LTE, and WiFi modules with AT command interfaces.", "keywords": "GSM, AT commands, AT, SIM800, SIM900, A6, A7, M590, ESP8266, SIM7000, SIM800A, SIM800C, SIM800L, SIM800H, SIM808, SIM868, SIM900A, SIM900D, SIM908, SIM968, M95, MC60, MC60E, BG96, ublox, Quectel, SIMCOM, AI Thinker, LTE, LTE-M", "authors": diff --git a/library.properties b/library.properties index b1423a1..2a9c4d3 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=TinyGSM -version=0.6.2 +version=0.7.0 author=Volodymyr Shymanskyy maintainer=Volodymyr Shymanskyy sentence=A small Arduino library for GPRS modules, that just works. diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index b90d1c2..afb0f21 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -36,7 +36,7 @@ enum RegStatus { }; -class TinyGsmA6 : public TinyGsmModem +class TinyGsmA6 { public: @@ -180,7 +180,7 @@ private: public: TinyGsmA6(Stream& stream) - : TinyGsmModem(stream), stream(stream) + : stream(stream) { memset(sockets, 0, sizeof(sockets)); } @@ -207,6 +207,10 @@ public: return true; } + bool begin(const char* pin = NULL) { + return init(pin); + } + String getModemName() { #if defined(TINY_GSM_MODEM_A6) return "AI-Thinker A6"; @@ -380,6 +384,16 @@ public: return (s == REG_OK_HOME || s == REG_OK_ROAMING); } + bool waitForNetwork(unsigned long timeout = 60000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + if (isNetworkConnected()) { + return true; + } + delay(250); + } + return false; + } + /* * GPRS functions */ @@ -454,6 +468,10 @@ public: return res; } + IPAddress localIP() { + return TinyGsmIpFromString(getLocalIP()); + } + /* * Phone Call functions */ @@ -655,6 +673,17 @@ public: Utilities */ + template + void streamWrite(T last) { + stream.print(last); + } + + template + void streamWrite(T head, Args... tail) { + stream.print(head); + streamWrite(tail...); + } + template void sendAT(Args... cmd) { streamWrite("AT", cmd..., GSM_NL); @@ -663,6 +692,19 @@ public: //DBG("### AT:", cmd...); } + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { + unsigned long startMillis = millis(); + while (millis() - startMillis < timeout) { + while (millis() - startMillis < timeout && !stream.available()) { + TINY_GSM_YIELD(); + } + if (stream.read() == c) { + return true; + } + } + return false; + } + // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index 281689c..6352c81 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -37,7 +37,7 @@ enum RegStatus { }; -class TinyGsmBG96 : public TinyGsmModem +class TinyGsmBG96 { public: @@ -216,7 +216,7 @@ private: public: TinyGsmBG96(Stream& stream) - : TinyGsmModem(stream), stream(stream) + : stream(stream) { memset(sockets, 0, sizeof(sockets)); } @@ -239,6 +239,10 @@ public: return true; } + bool begin(const char* pin = NULL) { + return init(pin); + } + String getModemName() { return "Quectel BG96"; } @@ -424,6 +428,16 @@ public: return (s == REG_OK_HOME || s == REG_OK_ROAMING); } + bool waitForNetwork(unsigned long timeout = 60000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + if (isNetworkConnected()) { + return true; + } + delay(250); + } + return false; + } + /* * GPRS functions */ @@ -486,6 +500,10 @@ public: return res; } + IPAddress localIP() { + return TinyGsmIpFromString(getLocalIP()); + } + /* * Phone Call functions */ @@ -705,6 +723,17 @@ public: Utilities */ + template + void streamWrite(T last) { + stream.print(last); + } + + template + void streamWrite(T head, Args... tail) { + stream.print(head); + streamWrite(tail...); + } + template void sendAT(Args... cmd) { streamWrite("AT", cmd..., GSM_NL); @@ -713,6 +742,19 @@ public: //DBG("### AT:", cmd...); } + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { + unsigned long startMillis = millis(); + while (millis() - startMillis < timeout) { + while (millis() - startMillis < timeout && !stream.available()) { + TINY_GSM_YIELD(); + } + if (stream.read() == c) { + return true; + } + } + return false; + } + // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index 9f8e333..c9ba8cb 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -36,7 +36,7 @@ enum RegStatus { -class TinyGsmESP8266 : public TinyGsmModem +class TinyGsmESP8266 { public: @@ -201,7 +201,7 @@ public: public: TinyGsmESP8266(Stream& stream) - : TinyGsmModem(stream), stream(stream) + : stream(stream) { memset(sockets, 0, sizeof(sockets)); } @@ -231,6 +231,10 @@ public: return true; } + bool begin(const char* pin = NULL) { + return init(pin); + } + String getModemName() { return "ESP8266"; } @@ -395,6 +399,10 @@ public: return res2; } + IPAddress localIP() { + return TinyGsmIpFromString(getLocalIP()); + } + /* * Client related functions */ @@ -440,6 +448,17 @@ public: Utilities */ + template + void streamWrite(T last) { + stream.print(last); + } + + template + void streamWrite(T head, Args... tail) { + stream.print(head); + streamWrite(tail...); + } + template void sendAT(Args... cmd) { streamWrite("AT", cmd..., GSM_NL); @@ -448,6 +467,19 @@ public: //DBG("### AT:", cmd...); } + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { + unsigned long startMillis = millis(); + while (millis() - startMillis < timeout) { + while (millis() - startMillis < timeout && !stream.available()) { + TINY_GSM_YIELD(); + } + if (stream.read() == c) { + return true; + } + } + return false; + } + // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index c16b9c0..fde7f87 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -36,7 +36,7 @@ enum RegStatus { }; -class TinyGsmM590 : public TinyGsmModem +class TinyGsmM590 { public: @@ -177,7 +177,7 @@ private: public: TinyGsmM590(Stream& stream) - : TinyGsmModem(stream), stream(stream) + : stream(stream) { memset(sockets, 0, sizeof(sockets)); } @@ -204,6 +204,10 @@ public: return true; } + bool begin(const char* pin = NULL) { + return init(pin); + } + String getModemName() { return "Neoway M590"; } @@ -384,6 +388,16 @@ public: return (s == REG_OK_HOME || s == REG_OK_ROAMING); } + bool waitForNetwork(unsigned long timeout = 60000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + if (isNetworkConnected()) { + return true; + } + delay(250); + } + return false; + } + /* * GPRS functions */ @@ -456,6 +470,10 @@ public: return res; } + IPAddress localIP() { + return TinyGsmIpFromString(getLocalIP()); + } + /* * Phone Call functions */ @@ -596,6 +614,17 @@ public: Utilities */ + template + void streamWrite(T last) { + stream.print(last); + } + + template + void streamWrite(T head, Args... tail) { + stream.print(head); + streamWrite(tail...); + } + template void sendAT(Args... cmd) { streamWrite("AT", cmd..., GSM_NL); @@ -604,6 +633,19 @@ public: //DBG("### AT:", cmd...); } + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { + unsigned long startMillis = millis(); + while (millis() - startMillis < timeout) { + while (millis() - startMillis < timeout && !stream.available()) { + TINY_GSM_YIELD(); + } + if (stream.read() == c) { + return true; + } + } + return false; + } + // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 9027215..1f30240 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -37,7 +37,7 @@ enum RegStatus { }; -class TinyGsmM95 : public TinyGsmModem +class TinyGsmM95 { public: @@ -216,7 +216,7 @@ private: public: TinyGsmM95(Stream& stream) - : TinyGsmModem(stream), stream(stream) + : stream(stream) { memset(sockets, 0, sizeof(sockets)); } @@ -243,6 +243,10 @@ public: return true; } + bool begin(const char* pin = NULL) { + return init(pin); + } + String getModemName() { return "Quectel M95"; } @@ -441,6 +445,16 @@ public: waitResponse(); } + bool waitForNetwork(unsigned long timeout = 60000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + if (isNetworkConnected()) { + return true; + } + delay(250); + } + return false; + } + /* * GPRS functions */ @@ -522,6 +536,10 @@ public: return res; } + IPAddress localIP() { + return TinyGsmIpFromString(getLocalIP()); + } + /* * Messaging functions */ @@ -760,6 +778,17 @@ public: Utilities */ + template + void streamWrite(T last) { + stream.print(last); + } + + template + void streamWrite(T head, Args... tail) { + stream.print(head); + streamWrite(tail...); + } + template void sendAT(Args... cmd) { streamWrite("AT", cmd..., GSM_NL); @@ -768,6 +797,19 @@ public: //DBG("### AT:", cmd...); } + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { + unsigned long startMillis = millis(); + while (millis() - startMillis < timeout) { + while (millis() - startMillis < timeout && !stream.available()) { + TINY_GSM_YIELD(); + } + if (stream.read() == c) { + return true; + } + } + return false; + } + // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 591355a..f2283fb 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -41,7 +41,7 @@ enum RegStatus { }; -class TinyGsmMC60 : public TinyGsmModem +class TinyGsmMC60 { public: @@ -220,7 +220,7 @@ private: public: TinyGsmMC60(Stream& stream) - : TinyGsmModem(stream), stream(stream) + : stream(stream) { memset(sockets, 0, sizeof(sockets)); } @@ -245,6 +245,10 @@ public: return true; } + bool begin(const char* pin = NULL) { + return init(pin); + } + String getModemName() { #if defined(TINY_GSM_MODEM_MC60) return "Quectel MC60"; @@ -456,6 +460,16 @@ public: return (s == REG_OK_HOME || s == REG_OK_ROAMING); } + bool waitForNetwork(unsigned long timeout = 60000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + if (isNetworkConnected()) { + return true; + } + delay(250); + } + return false; + } + /* * GPRS functions */ @@ -550,6 +564,10 @@ public: return res; } + IPAddress localIP() { + return TinyGsmIpFromString(getLocalIP()); + } + /* * Messaging functions */ @@ -789,6 +807,17 @@ public: Utilities */ + template + void streamWrite(T last) { + stream.print(last); + } + + template + void streamWrite(T head, Args... tail) { + stream.print(head); + streamWrite(tail...); + } + template void sendAT(Args... cmd) { streamWrite("AT", cmd..., GSM_NL); @@ -797,6 +826,19 @@ public: //DBG("### AT:", cmd...); } + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { + unsigned long startMillis = millis(); + while (millis() - startMillis < timeout) { + while (millis() - startMillis < timeout && !stream.available()) { + TINY_GSM_YIELD(); + } + if (stream.read() == c) { + return true; + } + } + return false; + } + // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index fd0cbd6..8f8024a 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -45,7 +45,7 @@ enum TinyGSMDateTimeFormat { DATE_DATE = 2 }; -class TinyGsmSim7000 : public TinyGsmModem +class TinyGsmSim7000 { public: @@ -245,7 +245,7 @@ public: public: TinyGsmSim7000(Stream& stream) - : TinyGsmModem(stream), stream(stream) + : stream(stream) { memset(sockets, 0, sizeof(sockets)); } @@ -268,6 +268,10 @@ public: return true; } + bool begin(const char* pin = NULL) { + return init(pin); + } + String getModemName() { return "SIMCom SIM7000"; } @@ -480,6 +484,16 @@ public: return res; } + bool waitForNetwork(unsigned long timeout = 60000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + if (isNetworkConnected()) { + return true; + } + delay(250); + } + return false; + } + String setNetworkMode(uint8_t mode) { sendAT(GF("+CNMP="), mode); if (waitResponse(GF(GSM_NL "+CNMP:")) != 1) { @@ -641,6 +655,10 @@ public: return res; } + IPAddress localIP() { + return TinyGsmIpFromString(getLocalIP()); + } + /* * Phone Call functions @@ -1019,6 +1037,17 @@ public: Utilities */ + template + void streamWrite(T last) { + stream.print(last); + } + + template + void streamWrite(T head, Args... tail) { + stream.print(head); + streamWrite(tail...); + } + template void sendAT(Args... cmd) { streamWrite("AT", cmd..., GSM_NL); @@ -1027,6 +1056,19 @@ public: //DBG("### AT:", cmd...); } + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { + unsigned long startMillis = millis(); + while (millis() - startMillis < timeout) { + while (millis() - startMillis < timeout && !stream.available()) { + TINY_GSM_YIELD(); + } + if (stream.read() == c) { + return true; + } + } + return false; + } + // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index e613d0d..e05c97a 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -42,7 +42,7 @@ enum TinyGSMDateTimeFormat { DATE_DATE = 2 }; -class TinyGsmSim800 : public TinyGsmModem +class TinyGsmSim800 { public: @@ -240,7 +240,7 @@ public: public: TinyGsmSim800(Stream& stream) - : TinyGsmModem(stream), stream(stream) + : stream(stream) { memset(sockets, 0, sizeof(sockets)); } @@ -265,6 +265,10 @@ public: return true; } + bool begin(const char* pin = NULL) { + return init(pin); + } + String getModemName() { #if defined(TINY_GSM_MODEM_SIM800) return "SIMCom SIM800"; @@ -495,6 +499,16 @@ public: return (s == REG_OK_HOME || s == REG_OK_ROAMING); } + bool waitForNetwork(unsigned long timeout = 60000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + if (isNetworkConnected()) { + return true; + } + delay(250); + } + return false; + } + /* * GPRS functions */ @@ -632,6 +646,10 @@ public: return res; } + IPAddress localIP() { + return TinyGsmIpFromString(getLocalIP()); + } + /* * Phone Call functions @@ -941,6 +959,17 @@ public: Utilities */ + template + void streamWrite(T last) { + stream.print(last); + } + + template + void streamWrite(T head, Args... tail) { + stream.print(head); + streamWrite(tail...); + } + template void sendAT(Args... cmd) { streamWrite("AT", cmd..., GSM_NL); @@ -949,6 +978,19 @@ public: //DBG("### AT:", cmd...); } + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { + unsigned long startMillis = millis(); + while (millis() - startMillis < timeout) { + while (millis() - startMillis < timeout && !stream.available()) { + TINY_GSM_YIELD(); + } + if (stream.read() == c) { + return true; + } + } + return false; + } + // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 02cd12b..26f0b31 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -20,7 +20,7 @@ #include -#define GSM_NL "\r\n" +#define GSM_NL "\r" static const char GSM_OK[] TINY_GSM_PROGMEM = "OK" GSM_NL; static const char GSM_ERROR[] TINY_GSM_PROGMEM = "ERROR" GSM_NL; @@ -251,11 +251,8 @@ public: /* * Basic functions */ - bool begin() { - return init(); - } - bool init() { + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { return false; @@ -268,6 +265,10 @@ public: return true; } + bool begin(const char* pin = NULL) { + return init(pin); + } + void setBaud(unsigned long baud) { sendAT(GF("+IPR="), baud); } @@ -710,11 +711,6 @@ public: /* Utilities */ - bool commandMode(int retries = 2) { - streamWrite(GF("+++")); // enter command mode - return true; - } - template void streamWrite(T last) { stream.print(last); @@ -726,21 +722,25 @@ public: streamWrite(tail...); } - bool streamSkipUntil(char c) { //TODO: timeout - while (true) { - while (!stream.available()) { TINY_GSM_YIELD(); } - if (stream.read() == c) - return true; - } - return false; - } - template void sendAT(Args... cmd) { - streamWrite("AT", cmd..., '\r'); + streamWrite("AT", cmd..., GSM_NL); stream.flush(); TINY_GSM_YIELD(); - DBG("### AT:", cmd...); + //DBG("### AT:", cmd...); + } + + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { + unsigned long startMillis = millis(); + while (millis() - startMillis < timeout) { + while (millis() - startMillis < timeout && !stream.available()) { + TINY_GSM_YIELD(); + } + if (stream.read() == c) { + return true; + } + } + return false; } // TODO: Optimize this! diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index c54c60c..63caa35 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -37,7 +37,7 @@ enum RegStatus { }; -class TinyGsmUBLOX : public TinyGsmModem +class TinyGsmUBLOX { public: @@ -249,7 +249,7 @@ public: public: TinyGsmUBLOX(Stream& stream) - : TinyGsmModem(stream), stream(stream) + : stream(stream) { memset(sockets, 0, sizeof(sockets)); isCatM = false; // For SARA R4 and N4 series @@ -296,6 +296,10 @@ public: } } + bool begin(const char* pin = NULL) { + return init(pin); + } + String getModemName() { sendAT(GF("+CGMI")); String res1; @@ -521,6 +525,16 @@ public: else return false; } + bool waitForNetwork(unsigned long timeout = 60000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + if (isNetworkConnected()) { + return true; + } + delay(250); + } + return false; + } + bool setURAT( uint8_t urat ) { // AT+URAT=[,[,<2ndPreferredAct>]] @@ -677,6 +691,10 @@ public: } } + IPAddress localIP() { + return TinyGsmIpFromString(getLocalIP()); + } + /* * Phone Call functions */ @@ -893,6 +911,17 @@ public: Utilities */ + template + void streamWrite(T last) { + stream.print(last); + } + + template + void streamWrite(T head, Args... tail) { + stream.print(head); + streamWrite(tail...); + } + template void sendAT(Args... cmd) { streamWrite("AT", cmd..., GSM_NL); @@ -901,6 +930,19 @@ public: //DBG("### AT:", cmd...); } + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { + unsigned long startMillis = millis(); + while (millis() - startMillis < timeout) { + while (millis() - startMillis < timeout && !stream.available()) { + TINY_GSM_YIELD(); + } + if (stream.read() == c) { + return true; + } + } + return false; + } + // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index 4d9efa8..4cd0605 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -49,7 +49,7 @@ enum XBeeType { }; -class TinyGsmXBee : public TinyGsmModem +class TinyGsmXBee { public: @@ -255,7 +255,7 @@ public: public: TinyGsmXBee(Stream& stream) - : TinyGsmModem(stream), stream(stream) + : stream(stream) { beeType = XBEE_UNKNOWN; // Start not knowing what kind of bee it is guardTime = TINY_GSM_XBEE_GUARD_TIME; // Start with the default guard time of 1 second @@ -267,7 +267,7 @@ public: } TinyGsmXBee(Stream& stream, int8_t resetPin) - : TinyGsmModem(stream), stream(stream) + : stream(stream) { beeType = XBEE_UNKNOWN; // Start not knowing what kind of bee it is guardTime = TINY_GSM_XBEE_GUARD_TIME; // Start with the default guard time of 1 second @@ -307,6 +307,10 @@ public: return ret_val; } + bool begin(const char* pin = NULL) { + return init(pin); + } + String getModemName() { return getBeeName(); } @@ -719,6 +723,10 @@ public: return IPaddr; } + IPAddress localIP() { + return TinyGsmIpFromString(getLocalIP()); + } + /* * GPRS functions */ @@ -925,6 +933,17 @@ public: } } + template + void streamWrite(T last) { + stream.print(last); + } + + template + void streamWrite(T head, Args... tail) { + stream.print(head); + streamWrite(tail...); + } + template void sendAT(Args... cmd) { streamWrite("AT", cmd..., GSM_NL); @@ -933,6 +952,19 @@ public: //DBG("### AT:", cmd...); } + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { + unsigned long startMillis = millis(); + while (millis() - startMillis < timeout) { + while (millis() - startMillis < timeout && !stream.available()) { + TINY_GSM_YIELD(); + } + if (stream.read() == c) { + return true; + } + } + return false; + } + // TODO: Optimize this! // NOTE: This function is used while INSIDE command mode, so we're only // waiting for requested responses. The XBee has no unsoliliced responses diff --git a/src/TinyGsmCommon.h b/src/TinyGsmCommon.h index 68bf900..3247dac 100644 --- a/src/TinyGsmCommon.h +++ b/src/TinyGsmCommon.h @@ -10,7 +10,7 @@ #define TinyGsmCommon_h // The current library version number -#define TINYGSM_VERSION "0.6.2" +#define TINYGSM_VERSION "0.7.0" #if defined(SPARK) || defined(PARTICLE) #include "Particle.h" @@ -202,135 +202,4 @@ String TinyGsmDecodeHex16bit(String &instr) { return result; } - -class TinyGsmModem -{ - -public: - - TinyGsmModem(Stream& stream) - : stream(stream) - {} - - /* - * Basic functions - */ - - // Prepare the modem for further functionality - virtual bool init(const char* pin = NULL) = 0; - // Begin is redundant with init - virtual bool begin(const char* pin = NULL) { - return init(pin); - } - // Returns a string with the chip name - virtual String getModemName() = 0; - // Sets the serial communication baud rate - virtual void setBaud(unsigned long baud) = 0; - // Checks that the modem is responding to standard AT commands - virtual bool testAT(unsigned long timeout = 10000L) = 0; - // Holds open communication with the modem waiting for data to come in - virtual void maintain() = 0; - // Resets all modem chip settings to factor defaults - virtual bool factoryDefault() = 0; - // Returns the response to a get info request. The format varies by modem. - virtual String getModemInfo() = 0; - // Answers whether types of communication are available on this modem - virtual bool hasSSL() = 0; - virtual bool hasWifi() = 0; - virtual bool hasGPRS() = 0; - - /* - * Power functions - */ - - virtual bool restart() = 0; - virtual bool poweroff() = 0; - - /* - * SIM card functions - only apply to cellular modems - */ - - virtual bool simUnlock(const char *pin) { return false; } - virtual String getSimCCID() { return ""; } - virtual String getIMEI() { return ""; } - virtual String getOperator() { return ""; } - - /* - * Generic network functions - */ - - virtual int16_t getSignalQuality() = 0; - // NOTE: this returns whether the modem is registered on the cellular or WiFi - // network NOT whether GPRS or other internet connections are available - virtual bool isNetworkConnected() = 0; - virtual bool waitForNetwork(unsigned long timeout = 60000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - if (isNetworkConnected()) { - return true; - } - delay(250); - } - return false; - } - - /* - * WiFi functions - only apply to WiFi modems - */ - - virtual bool networkConnect(const char* ssid, const char* pwd) { return false; } - virtual bool networkDisconnect() { return false; } - - /* - * GPRS functions - only apply to cellular modems - */ - - virtual bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { - return false; - } - virtual bool gprsDisconnect() { return false; } - virtual bool isGprsConnected() { return false; } - - /* - * IP Address functions - */ - - virtual String getLocalIP() = 0; - virtual IPAddress localIP() { - return TinyGsmIpFromString(getLocalIP()); - } - - /* - Utilities - */ - - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) - return true; - } - return false; - } - -public: - Stream& stream; -}; - - - - #endif From ea8d43df8805e4f5ca9b5e02094c904714b8c644 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Tue, 14 May 2019 17:26:49 -0400 Subject: [PATCH 14/46] Added Sequans modem name --- src/TinyGsmClientSIM800.h | 1 + src/TinyGsmClientSequansMonarch.h | 65 ++++++++++++++++++++++--------- 2 files changed, 47 insertions(+), 19 deletions(-) diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index e05c97a..d3c699f 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -630,6 +630,7 @@ public: return true; } + /* * IP Address functions */ diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 26f0b31..70d34c3 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -105,10 +105,21 @@ public: virtual void stop() { TINY_GSM_YIELD(); + // Read and dump anything remaining in the modem's internal buffer. + // The socket will appear open in response to connected() even after it + // closes until all data is read from the buffer. + // Doing it this way allows the external mcu to find and get all of the data + // that it wants from the socket even if it was closed externally. + rx.clear(); + at->maintain(); + while (sock_available > 0) { + at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); + rx.clear(); + at->maintain(); + } at->sendAT(GF("+SQNSH="), mux); sock_connected = false; at->waitResponse(); - rx.clear(); } virtual size_t write(const uint8_t *buf, size_t size) { @@ -125,7 +136,7 @@ public: TINY_GSM_YIELD(); if (!rx.size()) { // Workaround: sometimes unsolicited SQNSSRING notifications do not arrive. - if (millis() - prev_check > 500) { + if (millis() - prev_check > 250) { got_data = true; prev_check = millis(); } @@ -145,11 +156,16 @@ public: buf += chunk; cnt += chunk; continue; + } + // Workaround: sometimes unsolicited SQNSSRING notifications do not arrive. + if (millis() - prev_check > 250) { + got_data = true; + prev_check = millis(); } // TODO: Read directly into user buffer? at->maintain(); if (sock_available > 0) { - int n = at->modemRead(rx.free(), mux); + int n = at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); if (n == 0) break; } else { break; @@ -167,15 +183,13 @@ public: } virtual int peek() { return -1; } //TODO - virtual void flush() { - at->stream.flush(); - } + virtual void flush() { at->stream.flush(); } virtual uint8_t connected() { if (available()) { return true; } - return got_data || sock_connected; + return sock_connected; } virtual operator bool() { return connected(); } @@ -187,14 +201,15 @@ public: private: TinyGsmSequansMonarch* at; - uint8_t mux; - uint16_t sock_available; - uint32_t prev_check; - bool sock_connected; - bool got_data; - RxFifo rx; + uint8_t mux; + uint16_t sock_available; + uint32_t prev_check; + bool sock_connected; + bool got_data; + RxFifo rx; }; + class GsmClientSecure : public GsmClient { public: @@ -209,7 +224,7 @@ protected: public: virtual int connect(const char *host, uint16_t port) { - if (sock_connected) stop(); + stop(); TINY_GSM_YIELD(); rx.clear(); @@ -269,6 +284,10 @@ public: return init(pin); } + String getModemName() { + return "Sequans Monarch"; + } + void setBaud(unsigned long baud) { sendAT(GF("+IPR="), baud); } @@ -293,7 +312,6 @@ public: sock->sock_available = modemGetAvailable(mux); } } - while (stream.available()) { waitResponse(10, NULL, NULL); } @@ -453,7 +471,7 @@ public: * Generic network functions */ - int getSignalQuality() { + int16_t getSignalQuality() { sendAT(GF("+CSQ")); if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { return 99; @@ -518,7 +536,6 @@ public: return true; } - bool isGprsConnected() { sendAT(GF("+CGATT?")); if (waitResponse(GF(GSM_NL "+CGATT:")) != 1) { @@ -532,6 +549,11 @@ public: return true; } + + /* + * IP Address functions + */ + String getLocalIP() { sendAT(GF("+CGPADDR=3")); @@ -547,6 +569,7 @@ public: return TinyGsmIpFromString(getLocalIP()); } + /* * Phone Call functions */ @@ -567,7 +590,6 @@ public: //Set GSM 7 bit default alphabet (3GPP TS 23.038) sendAT(GF("+CSCS=\"GSM\"")); waitResponse(); - sendAT(GF("+CMGS=\""), number, GF("\"")); if (waitResponse(GF(">")) != 1) { return false; @@ -583,11 +605,14 @@ public: /* * Location functions */ + String getGsmLocation() TINY_GSM_ATTR_NOT_AVAILABLE; + /* * Battery functions */ + uint16_t getBattVoltage() TINY_GSM_ATTR_NOT_AVAILABLE; int getBattPercent() TINY_GSM_ATTR_NOT_AVAILABLE; @@ -709,7 +734,9 @@ protected: public: - /* Utilities */ + /* + Utilities + */ template void streamWrite(T last) { From 090e0163c5b11d760bc64cf34c482a388eda83e5 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Wed, 15 May 2019 16:47:07 -0400 Subject: [PATCH 15/46] Name print --- src/TinyGsmClientUBLOX.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index 63caa35..ff29ae7 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -279,6 +279,7 @@ public: String name = getModemName(); DBG(GF("### Modem:"), name); if (name.startsWith("u-blox SARA-R4") or name.startsWith("u-blox SARA-N4")) { + DBG(GF("### This is an LTE-M modem!"), name); isCatM = true; } else if (name.startsWith("u-blox SARA-N2")) { @@ -833,7 +834,7 @@ protected: } streamSkipUntil(','); // Skip mux int sent = stream.readStringUntil('\n').toInt(); - waitResponse(); + waitResponse(); // sends back OK after the confirmation of number sent maintain(); // look for a very quick response from the remote return sent; } From 99a5b3938cca348c50d356cfa1ca57cea9f814f7 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 10:50:44 -0400 Subject: [PATCH 16/46] Removed recursive calls to maitain (shouldn't I have leared) --- src/TinyGsmClientBG96.h | 4 ---- src/TinyGsmClientM95.h | 4 ---- src/TinyGsmClientMC60.h | 4 ---- src/TinyGsmClientSIM7000.h | 4 ---- src/TinyGsmClientSIM800.h | 4 ---- src/TinyGsmClientUBLOX.h | 40 ++++++++++++++++++++------------------ 6 files changed, 21 insertions(+), 39 deletions(-) diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index 6352c81..f0c987a 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -656,7 +656,6 @@ protected: return 0; } // TODO: Wait for ACK? AT+QISEND=id,0 - maintain(); // look for a very quick response from the remote return len; } @@ -675,7 +674,6 @@ protected: } waitResponse(); DBG("### READ:", len, "from", mux); - maintain(); // Listen for a close or other URC return len; } @@ -692,7 +690,6 @@ protected: if (!result) { sockets[mux]->sock_connected = modemGetConnected(mux); } - maintain(); // Listen for a close or other URC return result; } @@ -711,7 +708,6 @@ protected: int res = stream.readStringUntil(',').toInt(); // socket state waitResponse(); - maintain(); // Listen for a close or other URC // 0 Initial, 1 Opening, 2 Connected, 3 Listening, 4 Closing return 2 == res; diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 1f30240..4c51eaa 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -708,7 +708,6 @@ protected: } } waitResponse(5000L); - maintain(); // look for a very quick response from the remote // streamSkipUntil(','); // Skip mux // return stream.readStringUntil('\n').toInt(); @@ -730,7 +729,6 @@ protected: } waitResponse(); DBG("### READ:", len, "from", mux); - maintain(); // Listen for a close or other URC return len; } @@ -747,7 +745,6 @@ protected: if (!result) { sockets[mux]->sock_connected = modemGetConnected(mux); } - maintain(); // Listen for a close or other URC return result; } @@ -766,7 +763,6 @@ protected: int res = stream.readStringUntil(',').toInt(); // socket state waitResponse(); - maintain(); // Listen for a close or other URC // 0 Initial, 1 Opening, 2 Connected, 3 Listening, 4 Closing return 2 == res; diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index f2283fb..902ec72 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -740,7 +740,6 @@ protected: // streamSkipUntil(','); // Skip mux // return stream.readStringUntil('\n').toInt(); - maintain(); // look for a very quick response from the remote return len; // TODO } @@ -759,7 +758,6 @@ protected: } waitResponse(); DBG("### READ:", len, "from", mux); - maintain(); // Listen for a close or other URC return len; } @@ -776,7 +774,6 @@ protected: if (!result) { sockets[mux]->sock_connected = modemGetConnected(mux); } - maintain(); // Listen for a close or other URC return result; } @@ -795,7 +792,6 @@ protected: int res = stream.readStringUntil(',').toInt(); // socket state waitResponse(); - maintain(); // Listen for a close or other URC // 0 Initial, 1 Opening, 2 Connected, 3 Listening, 4 Closing return 2 == res; diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 8f8024a..53468cf 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -960,7 +960,6 @@ protected: return 0; } streamSkipUntil(','); // Skip mux - maintain(); // look for a very quick response from the remote return stream.readStringUntil('\n').toInt(); } @@ -1003,7 +1002,6 @@ protected: } waitResponse(); DBG("### READ:", len_confirmed, "from", mux); - maintain(); // Listen for a close or other URC return len_confirmed; } @@ -1019,7 +1017,6 @@ protected: if (!result) { sockets[mux]->sock_connected = modemGetConnected(mux); } - maintain(); // Listen for a close or other URC return result; } @@ -1027,7 +1024,6 @@ protected: sendAT(GF("+CIPSTATUS="), mux); int res = waitResponse(GF(",\"CONNECTED\""), GF(",\"CLOSED\""), GF(",\"CLOSING\""), GF(",\"INITIAL\"")); waitResponse(); - maintain(); // Listen for a close or other URC return 1 == res; } diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index d3c699f..20a2b61 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -883,7 +883,6 @@ protected: return 0; } streamSkipUntil(','); // Skip mux - maintain(); // look for a very quick response from the remote return stream.readStringUntil('\n').toInt(); } @@ -926,7 +925,6 @@ protected: } waitResponse(); DBG("### READ:", len_confirmed, "from", mux); - maintain(); // Listen for a close or other URC return len_confirmed; } @@ -942,7 +940,6 @@ protected: if (!result) { sockets[mux]->sock_connected = modemGetConnected(mux); } - maintain(); // Listen for a close or other URC return result; } @@ -950,7 +947,6 @@ protected: sendAT(GF("+CIPSTATUS="), mux); int res = waitResponse(GF(",\"CONNECTED\""), GF(",\"CLOSED\""), GF(",\"CLOSING\""), GF(",\"INITIAL\"")); waitResponse(); - maintain(); // Listen for a close or other URC return 1 == res; } diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index ff29ae7..e52b30e 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -62,8 +62,8 @@ public: sock_connected = false; got_data = false; - // Don't attach the socket here because we won't know the mux channel number - // until the u-blox assigns it upon opening the socket + at->sockets[mux] = this; + return true; } @@ -88,11 +88,14 @@ public: } TINY_GSM_YIELD(); rx.clear(); - // sock_connected = at->modemConnect(host, port, mux); + + uint8_t oldMux = mux; sock_connected = at->modemConnect(host, port, &mux); + if (mux != oldMux) { + DBG("WARNING: Mux number changed from", oldMux, "to", mux); + at->sockets[oldMux] = NULL; + } at->sockets[mux] = this; - // Attach the socket after attempting connection because u-blox will assign - // whatever mux number is next regardless of the number requested. at->maintain(); return sock_connected; } @@ -276,15 +279,8 @@ public: #endif waitResponse(); - String name = getModemName(); - DBG(GF("### Modem:"), name); - if (name.startsWith("u-blox SARA-R4") or name.startsWith("u-blox SARA-N4")) { - DBG(GF("### This is an LTE-M modem!"), name); - isCatM = true; - } - else if (name.startsWith("u-blox SARA-N2")) { - DBG(GF("### SARA N2 NB-IoT modems not supported!"), name); - } + getModemName(); + int ret = getSimStatus(); // if the sim isn't ready and a pin has been provided, try to unlock the sim if (ret != SIM_READY && pin != NULL && strlen(pin) > 0) { @@ -317,8 +313,18 @@ public: } res2.replace(GSM_NL "OK" GSM_NL, ""); res2.trim(); + + String name = res1 + String(' ') + res2; + DBG("### Modem:", name); + if (name.startsWith("u-blox SARA-R4") or name.startsWith("u-blox SARA-N4")) { + DBG("### This is an LTE-M modem!"); + isCatM = true; + } + else if (name.startsWith("u-blox SARA-N2")) { + DBG("### SARA N2 NB-IoT modems not supported!"); + } - return res1 + String(' ') + res2; + return name; } void setBaud(unsigned long baud) { @@ -835,7 +841,6 @@ protected: streamSkipUntil(','); // Skip mux int sent = stream.readStringUntil('\n').toInt(); waitResponse(); // sends back OK after the confirmation of number sent - maintain(); // look for a very quick response from the remote return sent; } @@ -857,7 +862,6 @@ protected: streamSkipUntil('\"'); waitResponse(); DBG("### READ:", len, "from", mux); - maintain(); // Listen for a close or other URC return len; } @@ -876,7 +880,6 @@ protected: if (!result && res != 2 && res != 3) { // Don't check modemGetConnected after an error sockets[mux]->sock_connected = modemGetConnected(mux); } - maintain(); // Listen for a close or other URC return result; } @@ -902,7 +905,6 @@ protected: // 9: the socket is in LAST_ACK status // 10: the socket is in TIME_WAIT status waitResponse(); - maintain(); // Listen for a close or other URC return (result != 0); } From 4c8104dfb66fc2b966893cdab0208e1f286b38a6 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 11:11:10 -0400 Subject: [PATCH 17/46] Split out SARAR4 --- src/TinyGsmClientSaraR4.h | 941 ++++++++++++++++++++++++++++++++++++++ src/TinyGsmClientUBLOX.h | 222 +++------ 2 files changed, 997 insertions(+), 166 deletions(-) create mode 100644 src/TinyGsmClientSaraR4.h diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h new file mode 100644 index 0000000..b5cdf7a --- /dev/null +++ b/src/TinyGsmClientSaraR4.h @@ -0,0 +1,941 @@ +/** + * @file TinyGsmClientSaraR4.h + * @author Volodymyr Shymanskyy + * @license LGPL-3.0 + * @copyright Copyright (c) 2016 Volodymyr Shymanskyy + * @date Nov 2016 + */ + +#ifndef TinyGsmClientSaraR4_h +#define TinyGsmClientSaraR4_h +//#pragma message("TinyGSM: TinyGsmClientSaraR4") + +//#define TINY_GSM_DEBUG Serial + +#define TINY_GSM_MUX_COUNT 7 + +#include + +#define GSM_NL "\r\n" +static const char GSM_OK[] TINY_GSM_PROGMEM = "OK" GSM_NL; +static const char GSM_ERROR[] TINY_GSM_PROGMEM = "ERROR" GSM_NL; +static const char GSM_CME_ERROR[] TINY_GSM_PROGMEM = GSM_NL "+CME ERROR:"; + +enum SimStatus { + SIM_ERROR = 0, + SIM_READY = 1, + SIM_LOCKED = 2, +}; + +enum RegStatus { + REG_UNREGISTERED = 0, + REG_SEARCHING = 2, + REG_DENIED = 3, + REG_OK_HOME = 1, + REG_OK_ROAMING = 5, + REG_UNKNOWN = 4, +}; + + +class TinyGsmSaraR4 +{ + +public: + +class GsmClient : public Client +{ + friend class TinyGsmSaraR4; + typedef TinyGsmFifo RxFifo; + +public: + GsmClient() {} + + GsmClient(TinyGsmSaraR4& modem, uint8_t mux = 0) { + init(&modem, mux); + } + + bool init(TinyGsmSaraR4* modem, uint8_t mux = 0) { + this->at = modem; + this->mux = mux; + sock_available = 0; + prev_check = 0; + sock_connected = false; + got_data = false; + + at->sockets[mux] = this; + + return true; + } + +public: + virtual int connect(const char *host, uint16_t port) { + stop(); + // If we're creating a new connection on the same client, we need to wait + // until the async close has finished on Cat-M modems. + // After close has completed, the +UUSOCL should appear. + // Without this wait, there might be unexpected behaviors when the same + // client instance attempts to move from one socket to another. + // This is only a problem for the LTE-M modules that take painfully long + // to open and close sockets. For those modules, when connecting to multple + // locations, remember to create multiple clients with different mux numbers. + // TODO: Re-evaluate this! + if (at->modemGetConnected(mux)) { + DBG("Waiting for +UUSOCL URC on", mux); + for (unsigned long start = millis(); millis() - start < 120000L; ) { + at->maintain(); + if (!sock_connected) break; + } + } + TINY_GSM_YIELD(); + rx.clear(); + + uint8_t oldMux = mux; + sock_connected = at->modemConnect(host, port, &mux); + if (mux != oldMux) { + DBG("WARNING: Mux number changed from", oldMux, "to", mux); + at->sockets[oldMux] = NULL; + } + at->sockets[mux] = this; + at->maintain(); + + return sock_connected; + } + + virtual int connect(IPAddress ip, uint16_t port) { + String host; host.reserve(16); + host += ip[0]; + host += "."; + host += ip[1]; + host += "."; + host += ip[2]; + host += "."; + host += ip[3]; + return connect(host.c_str(), port); + } + + virtual void stop() { + TINY_GSM_YIELD(); + // Read and dump anything remaining in the modem's internal buffer. + // The socket will appear open in response to connected() even after it + // closes until all data is read from the buffer. + // Doing it this way allows the external mcu to find and get all of the data + // that it wants from the socket even if it was closed externally. + rx.clear(); + at->maintain(); + while (sock_available > 0) { + at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); + rx.clear(); + at->maintain(); + } + at->modemDisconnect(mux); + } + + virtual size_t write(const uint8_t *buf, size_t size) { + TINY_GSM_YIELD(); + at->maintain(); + return at->modemSend(buf, size, mux); + } + + virtual size_t write(uint8_t c) { + return write(&c, 1); + } + + virtual size_t write(const char *str) { + if (str == NULL) return 0; + return write((const uint8_t *)str, strlen(str)); + } + + virtual int available() { + TINY_GSM_YIELD(); + if (!rx.size()) { + // Workaround: sometimes SARA R410 forgets to notify about data arrival. + // TODO: Currently we ping the module periodically, + // but maybe there's a better indicator that we need to poll + if (millis() - prev_check > 250) { + got_data = true; + prev_check = millis(); + } + at->maintain(); + } + return rx.size() + sock_available; + } + + virtual int read(uint8_t *buf, size_t size) { + TINY_GSM_YIELD(); + at->maintain(); + size_t cnt = 0; + while (cnt < size) { + size_t chunk = TinyGsmMin(size-cnt, rx.size()); + if (chunk > 0) { + rx.get(buf, chunk); + buf += chunk; + cnt += chunk; + continue; + } + // Workaround: sometimes SARA R410 forgets to notify about data arrival. + // TODO: Currently we ping the module periodically, + // but maybe there's a better indicator that we need to poll + if (millis() - prev_check > 250) { + got_data = true; + prev_check = millis(); + } + // TODO: Read directly into user buffer? + at->maintain(); + if (sock_available > 0) { + at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); + } else { + break; + } + } + return cnt; + } + + virtual int read() { + uint8_t c; + if (read(&c, 1) == 1) { + return c; + } + return -1; + } + + virtual int peek() { return -1; } //TODO + virtual void flush() { at->stream.flush(); } + + virtual uint8_t connected() { + if (available()) { + return true; + } + return sock_connected; + } + virtual operator bool() { return connected(); } + + /* + * Extended API + */ + + String remoteIP() TINY_GSM_ATTR_NOT_IMPLEMENTED; + +private: + TinyGsmSaraR4* at; + uint8_t mux; + uint16_t sock_available; + uint32_t prev_check; + bool sock_connected; + bool got_data; + RxFifo rx; +}; + + +class GsmClientSecure : public GsmClient +{ +public: + GsmClientSecure() {} + + GsmClientSecure(TinyGsmSaraR4& modem, uint8_t mux = 1) + : GsmClient(modem, mux) + {} + +public: + virtual int connect(const char *host, uint16_t port) { + stop(); + TINY_GSM_YIELD(); + rx.clear(); + // sock_connected = at->modemConnect(host, port, mux, true); + sock_connected = at->modemConnect(host, port, &mux, true); + at->sockets[mux] = this; + // TODO: When is the socket attached? + at->maintain(); + return sock_connected; + } +}; + + +public: + + TinyGsmSaraR4(Stream& stream) + : stream(stream) + { + memset(sockets, 0, sizeof(sockets)); + } + + /* + * Basic functions + */ + + bool init(const char* pin = NULL) { + DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); + if (!testAT()) { + return false; + } + sendAT(GF("E0")); // Echo Off + if (waitResponse() != 1) { + return false; + } + +#ifdef TINY_GSM_DEBUG + sendAT(GF("+CMEE=2")); // turn on verbose error codes +#else + sendAT(GF("+CMEE=0")); // turn off error codes +#endif + waitResponse(); + + getModemName(); + + int ret = getSimStatus(); + // if the sim isn't ready and a pin has been provided, try to unlock the sim + if (ret != SIM_READY && pin != NULL && strlen(pin) > 0) { + simUnlock(pin); + return (getSimStatus() == SIM_READY); + } + // if the sim is ready, or it's locked but no pin has been provided, return true + else { + return (ret == SIM_READY || ret == SIM_LOCKED); + } + } + + bool begin(const char* pin = NULL) { + return init(pin); + } + + String getModemName() { + sendAT(GF("+CGMI")); + String res1; + if (waitResponse(1000L, res1) != 1) { + return "u-blox Cellular Modem"; + } + res1.replace(GSM_NL "OK" GSM_NL, ""); + res1.trim(); + + sendAT(GF("+GMM")); + String res2; + if (waitResponse(1000L, res2) != 1) { + return "u-blox Cellular Modem"; + } + res2.replace(GSM_NL "OK" GSM_NL, ""); + res2.trim(); + + String name = res1 + String(' ') + res2; + DBG("### Modem:", name); + if (!name.startsWith("u-blox SARA-R4") && !name.startsWith("u-blox SARA-N4")) { + DBG("### WARNING: You are using the wrong TinyGSM modem!"); + } + + return name; + } + + void setBaud(unsigned long baud) { + sendAT(GF("+IPR="), baud); + } + + bool testAT(unsigned long timeout = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + sendAT(GF("")); + if (waitResponse(200) == 1) return true; + delay(100); + } + return false; + } + + void maintain() { + for (int mux = 0; mux < TINY_GSM_MUX_COUNT; mux++) { + GsmClient* sock = sockets[mux]; + if (sock && sock->got_data) { + sock->got_data = false; + sock->sock_available = modemGetAvailable(mux); + } + } + while (stream.available()) { + waitResponse(15, NULL, NULL); + } + } + + bool factoryDefault() { + sendAT(GF("&F")); // Resets the current profile, other NVM not affected + return waitResponse() == 1; + } + + String getModemInfo() { + sendAT(GF("I")); + String res; + if (waitResponse(1000L, res) != 1) { + return ""; + } + res.replace(GSM_NL "OK" GSM_NL, ""); + res.replace(GSM_NL, " "); + res.trim(); + return res; + } + + bool hasSSL() { + return true; + } + + bool hasWifi() { + return false; + } + + bool hasGPRS() { + return true; + } + + /* + * Power functions + */ + + bool restart() { + if (!testAT()) { + return false; + } + sendAT(GF("+CFUN=15")); + if (waitResponse(10000L) != 1) { + return false; + } + delay(3000); // TODO: Verify delay timing here + return init(); + } + + bool poweroff() { + sendAT(GF("+CPWROFF")); + return waitResponse(40000L) == 1; + } + + bool radioOff() { + sendAT(GF("+CFUN=0")); + if (waitResponse(10000L) != 1) { + return false; + } + delay(3000); + return true; + } + + bool sleepEnable(bool enable = true) TINY_GSM_ATTR_NOT_IMPLEMENTED; + + /* + * SIM card functions + */ + + bool simUnlock(const char *pin) { + sendAT(GF("+CPIN=\""), pin, GF("\"")); + return waitResponse() == 1; + } + + String getSimCCID() { + sendAT(GF("+CCID")); + if (waitResponse(GF(GSM_NL "+CCID:")) != 1) { + return ""; + } + String res = stream.readStringUntil('\n'); + waitResponse(); + res.trim(); + return res; + } + + String getIMEI() { + sendAT(GF("+CGSN")); + if (waitResponse(GF(GSM_NL)) != 1) { + return ""; + } + String res = stream.readStringUntil('\n'); + waitResponse(); + res.trim(); + return res; + } + + SimStatus getSimStatus(unsigned long timeout = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + sendAT(GF("+CPIN?")); + if (waitResponse(GF(GSM_NL "+CPIN:")) != 1) { + delay(1000); + continue; + } + int status = waitResponse(GF("READY"), GF("SIM PIN"), GF("SIM PUK"), GF("NOT INSERTED")); + waitResponse(); + switch (status) { + case 2: + case 3: return SIM_LOCKED; + case 1: return SIM_READY; + default: return SIM_ERROR; + } + } + return SIM_ERROR; + } + + RegStatus getRegistrationStatus() { + // Check EPS registration for LTE modules + sendAT(GF("+CEREG?")); + if (waitResponse(GF(GSM_NL "+CEREG:")) != 1) { + return REG_UNKNOWN; + } + streamSkipUntil(','); // Skip format (0) + int status = stream.readStringUntil('\n').toInt(); + waitResponse(); + return (RegStatus)status; + } + + String getOperator() { + sendAT(GF("+COPS?")); + if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { + return ""; + } + streamSkipUntil('"'); // Skip mode and format + String res = stream.readStringUntil('"'); + waitResponse(); + return res; + } + + /* + * Generic network functions + */ + + int16_t getSignalQuality() { + sendAT(GF("+CSQ")); + if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { + return 99; + } + int res = stream.readStringUntil(',').toInt(); + waitResponse(); + return res; + } + + bool isNetworkConnected() { + RegStatus s = getRegistrationStatus(); + if (s == REG_OK_HOME || s == REG_OK_ROAMING) + return true; + else if (s == REG_UNKNOWN) // for some reason, it can hang at unknown.. + return isGprsConnected(); + else return false; + } + + bool waitForNetwork(unsigned long timeout = 60000L) { + for (unsigned long start = millis(); millis() - start < timeout; ) { + if (isNetworkConnected()) { + return true; + } + delay(250); + } + return false; + } + + bool setURAT( uint8_t urat ) { + // AT+URAT=[,[,<2ndPreferredAct>]] + + sendAT(GF("+COPS=2")); // Deregister from network + if (waitResponse() != 1) { + return false; + } + sendAT(GF("+URAT="), urat); // Radio Access Technology (RAT) selection + if (waitResponse() != 1) { + return false; + } + sendAT(GF("+COPS=0")); // Auto-register to the network + if (waitResponse() != 1) { + return false; + } + return restart(); + } + + /* + * GPRS functions + */ + + bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { + gprsDisconnect(); + + sendAT(GF("+CGATT=1")); // attach to GPRS + if (waitResponse(360000L) != 1) { + return false; + } + + // Using CGDCONT sets up an "external" PCP context, i.e. a data connection + // using the external IP stack (e.g. Windows dial up) and PPP link over the + // serial interface. This is the only command set supported by the LTE-M + // and LTE NB-IoT modules (SARA-R4xx, SARA-N4xx) + + if (user && strlen(user) > 0) { + sendAT(GF("+CGAUTH=1,0,\""), user, GF("\",\""), pwd, '"'); // Set the authentication + waitResponse(); + } + + sendAT(GF("+CGDCONT=1,\"IP\",\""), apn, '"'); // Define PDP context 1 + waitResponse(); + + sendAT(GF("+CGACT=1,1")); // activate PDP profile/context 1 + if (waitResponse(150000L) != 1) { + return false; + } + + return true; + } + + bool gprsDisconnect() { + sendAT(GF("+CGACT=1,0")); // Deactivate PDP context 1 + if (waitResponse(40000L) != 1) { + return false; + } + + sendAT(GF("+CGATT=0")); // detach from GPRS + if (waitResponse(360000L) != 1) { + return false; + } + + return true; + } + + bool isGprsConnected() { + sendAT(GF("+CGATT?")); + if (waitResponse(GF(GSM_NL "+CGATT:")) != 1) { + return false; + } + int res = stream.readStringUntil('\n').toInt(); + waitResponse(); + if (res != 1) + return false; + + return localIP() != IPAddress(0,0,0,0); + } + + /* + * IP Address functions + */ + + String getLocalIP() { + sendAT(GF("+CGPADDR")); + if (waitResponse(GF(GSM_NL "+CGPADDR:")) != 1) { + return ""; + } + streamSkipUntil(','); // Skip context id + String res = stream.readStringUntil('\r'); + if (waitResponse() != 1) { + return ""; + } + return res; + } + + IPAddress localIP() { + return TinyGsmIpFromString(getLocalIP()); + } + + /* + * Phone Call functions + */ + + bool setGsmBusy(bool busy = true) TINY_GSM_ATTR_NOT_AVAILABLE; + + bool callAnswer() TINY_GSM_ATTR_NOT_IMPLEMENTED; + + bool callNumber(const String& number) TINY_GSM_ATTR_NOT_IMPLEMENTED; + + bool callHangup() TINY_GSM_ATTR_NOT_IMPLEMENTED; + + /* + * Messaging functions + */ + + String sendUSSD(const String& code) TINY_GSM_ATTR_NOT_IMPLEMENTED; + + bool sendSMS(const String& number, const String& text) { + sendAT(GF("+CSCS=\"GSM\"")); // Set GSM default alphabet + waitResponse(); + sendAT(GF("+CMGF=1")); // Set preferred message format to text mode + waitResponse(); + sendAT(GF("+CMGS=\""), number, GF("\"")); // set the phone number + if (waitResponse(GF(">")) != 1) { + return false; + } + stream.print(text); // Actually send the message + stream.write((char)0x1A); + stream.flush(); + return waitResponse(60000L) == 1; + } + + bool sendSMS_UTF16(const String& number, const void* text, size_t len) TINY_GSM_ATTR_NOT_IMPLEMENTED; + + + /* + * Location functions + */ + + String getGsmLocation() { + sendAT(GF("+ULOC=2,3,0,120,1")); + if (waitResponse(30000L, GF(GSM_NL "+UULOC:")) != 1) { + return ""; + } + String res = stream.readStringUntil('\n'); + waitResponse(); + res.trim(); + return res; + } + + /* + * Battery functions + */ + + uint16_t getBattVoltage() TINY_GSM_ATTR_NOT_AVAILABLE; + + int8_t getBattPercent() { + sendAT(GF("+CIND?")); + if (waitResponse(GF(GSM_NL "+CIND:")) != 1) { + return 0; + } + + int res = stream.readStringUntil(',').toInt(); + waitResponse(); + return res; + } + + /* + * Client related functions + */ + +protected: + + bool modemConnect(const char* host, uint16_t port, uint8_t* mux, bool ssl = false) { + sendAT(GF("+USOCR=6")); // create a socket + if (waitResponse(GF(GSM_NL "+USOCR:")) != 1) { // reply is +USOCR: ## of socket created + return false; + } + *mux = stream.readStringUntil('\n').toInt(); + waitResponse(); + + if (ssl) { + sendAT(GF("+USOSEC="), *mux, ",1"); + waitResponse(); + } + + // Enable NODELAY + sendAT(GF("+USOSO="), *mux, GF(",6,1,1")); + waitResponse(); + + // Enable KEEPALIVE, 30 sec + //sendAT(GF("+USOSO="), *mux, GF(",6,2,30000")); + //waitResponse(); + + // connect on the allocated socket + // TODO: Use faster "asynchronous" connection? + // We would have to wait for the +UUSOCO URC to verify connection + sendAT(GF("+USOCO="), *mux, ",\"", host, "\",", port); + int rsp = waitResponse(120000L); + return (1 == rsp); + } + + bool modemDisconnect(uint8_t mux) { + TINY_GSM_YIELD(); + if (!modemGetConnected(mux)) { + sockets[mux]->sock_connected = false; + return true; + } + bool success; + // These modems allow a faster "asynchronous" close + sendAT(GF("+USOCL="), mux, GF(",1")); + return 1 == waitResponse(120000L); // but it still can take up to 120s to get a response + // TODO: Evaluate whether the speed bump by allowing the async close is worth it + } + + int16_t modemSend(const void* buff, size_t len, uint8_t mux) { + sendAT(GF("+USOWR="), mux, ',', len); + if (waitResponse(GF("@")) != 1) { + return 0; + } + // 50ms delay, see AT manual section 25.10.4 + delay(50); + stream.write((uint8_t*)buff, len); + stream.flush(); + if (waitResponse(GF(GSM_NL "+USOWR:")) != 1) { + return 0; + } + streamSkipUntil(','); // Skip mux + int sent = stream.readStringUntil('\n').toInt(); + waitResponse(); // sends back OK after the confirmation of number sent + return sent; + } + + size_t modemRead(size_t size, uint8_t mux) { + sendAT(GF("+USORD="), mux, ',', size); + if (waitResponse(GF(GSM_NL "+USORD:")) != 1) { + return 0; + } + streamSkipUntil(','); // Skip mux + size_t len = stream.readStringUntil(',').toInt(); + sockets[mux]->sock_available = len; + streamSkipUntil('\"'); + + for (size_t i=0; irx.put(c); + } + streamSkipUntil('\"'); + waitResponse(); + DBG("### READ:", len, "from", mux); + return len; + } + + size_t modemGetAvailable(uint8_t mux) { + sendAT(GF("+USORD="), mux, ",0"); + size_t result = 0; + uint8_t res = waitResponse(GF(GSM_NL "+USORD:")); + // Will give error "operation not allowed" when attempting to read a socket + // that you have already told to close + if (res == 1) { + streamSkipUntil(','); // Skip mux + result = stream.readStringUntil('\n').toInt(); + // if (result) DBG("### DATA AVAILABLE:", result, "on", mux); + waitResponse(); + } + if (!result && res != 2 && res != 3) { // Don't check modemGetConnected after an error + sockets[mux]->sock_connected = modemGetConnected(mux); + } + return result; + } + + bool modemGetConnected(uint8_t mux) { + sendAT(GF("+USOCTL="), mux, ",10"); + uint8_t res = waitResponse(GF(GSM_NL "+USOCTL:")); + if (res != 1) + return false; + + streamSkipUntil(','); // Skip mux + streamSkipUntil(','); // Skip type + int result = stream.readStringUntil('\n').toInt(); + // 0: the socket is in INACTIVE status (it corresponds to CLOSED status + // defined in RFC793 "TCP Protocol Specification" [112]) + // 1: the socket is in LISTEN status + // 2: the socket is in SYN_SENT status + // 3: the socket is in SYN_RCVD status + // 4: the socket is in ESTABILISHED status + // 5: the socket is in FIN_WAIT_1 status + // 6: the socket is in FIN_WAIT_2 status + // 7: the sokcet is in CLOSE_WAIT status + // 8: the socket is in CLOSING status + // 9: the socket is in LAST_ACK status + // 10: the socket is in TIME_WAIT status + waitResponse(); + return (result != 0); + } + +public: + + /* + Utilities + */ + + template + void streamWrite(T last) { + stream.print(last); + } + + template + void streamWrite(T head, Args... tail) { + stream.print(head); + streamWrite(tail...); + } + + template + void sendAT(Args... cmd) { + streamWrite("AT", cmd..., GSM_NL); + stream.flush(); + TINY_GSM_YIELD(); + //DBG("### AT:", cmd...); + } + + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { + unsigned long startMillis = millis(); + while (millis() - startMillis < timeout) { + while (millis() - startMillis < timeout && !stream.available()) { + TINY_GSM_YIELD(); + } + if (stream.read() == c) { + return true; + } + } + return false; + } + + // TODO: Optimize this! + uint8_t waitResponse(uint32_t timeout, String& data, + GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), + GsmConstStr r3=GFP(GSM_CME_ERROR), GsmConstStr r4=NULL, GsmConstStr r5=NULL) + { + /*String r1s(r1); r1s.trim(); + String r2s(r2); r2s.trim(); + String r3s(r3); r3s.trim(); + String r4s(r4); r4s.trim(); + String r5s(r5); r5s.trim(); + DBG("### ..:", r1s, ",", r2s, ",", r3s, ",", r4s, ",", r5s);*/ + data.reserve(64); + int index = 0; + unsigned long startMillis = millis(); + do { + TINY_GSM_YIELD(); + while (stream.available() > 0) { + int a = stream.read(); + if (a <= 0) continue; // Skip 0x00 bytes, just in case + data += (char)a; + if (r1 && data.endsWith(r1)) { + index = 1; + goto finish; + } else if (r2 && data.endsWith(r2)) { + index = 2; + goto finish; + } else if (r3 && data.endsWith(r3)) { + index = 3; + goto finish; + } else if (r4 && data.endsWith(r4)) { + index = 4; + goto finish; + } else if (r5 && data.endsWith(r5)) { + index = 5; + goto finish; + } else if (data.endsWith(GF(GSM_NL "+UUSORD:"))) { + int mux = stream.readStringUntil(',').toInt(); + int len = stream.readStringUntil('\n').toInt(); + if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) { + sockets[mux]->got_data = true; + sockets[mux]->sock_available = len; + } + data = ""; + DBG("### Got Data:", len, "on", mux); + } else if (data.endsWith(GF(GSM_NL "+UUSOCL:"))) { + int mux = stream.readStringUntil('\n').toInt(); + if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) { + sockets[mux]->sock_connected = false; + } + data = ""; + DBG("### Closed: ", mux); + } + } + } while (millis() - startMillis < timeout); +finish: + if (!index) { + data.trim(); + if (data.length()) { + DBG("### Unhandled:", data); + } + data = ""; + } + //DBG('<', index, '>'); + return index; + } + + uint8_t waitResponse(uint32_t timeout, + GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), + GsmConstStr r3=GFP(GSM_CME_ERROR), GsmConstStr r4=NULL, GsmConstStr r5=NULL) + { + String data; + return waitResponse(timeout, data, r1, r2, r3, r4, r5); + } + + uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), + GsmConstStr r3=GFP(GSM_CME_ERROR), GsmConstStr r4=NULL, GsmConstStr r5=NULL) + { + return waitResponse(1000, r1, r2, r3, r4, r5); + } + +public: + Stream& stream; + +protected: + GsmClient* sockets[TINY_GSM_MUX_COUNT]; +}; + +#endif diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index e52b30e..a450b9b 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -70,22 +70,6 @@ public: public: virtual int connect(const char *host, uint16_t port) { stop(); - // If we're creating a new connection on the same client, we need to wait - // until the async close has finished on Cat-M modems. - // After close has completed, the +UUSOCL should appear. - // Without this wait, there might be unexpected behaviors when the same - // client instance attempts to move from one socket to another. - // This is only a problem for the LTE-M modules that take painfully long - // to open and close sockets. For those modules, when connecting to multple - // locations, remember to create multiple clients with different mux numbers. - // TODO: Re-evaluate this! - if (at->isCatM && at->modemGetConnected(mux)) { - DBG("Waiting for +UUSOCL URC on", mux); - for (unsigned long start = millis(); millis() - start < 120000L; ) { - at->maintain(); - if (!sock_connected) break; - } - } TINY_GSM_YIELD(); rx.clear(); @@ -97,6 +81,7 @@ public: } at->sockets[mux] = this; at->maintain(); + return sock_connected; } @@ -255,7 +240,6 @@ public: : stream(stream) { memset(sockets, 0, sizeof(sockets)); - isCatM = false; // For SARA R4 and N4 series } /* @@ -313,12 +297,11 @@ public: } res2.replace(GSM_NL "OK" GSM_NL, ""); res2.trim(); - + String name = res1 + String(' ') + res2; DBG("### Modem:", name); - if (name.startsWith("u-blox SARA-R4") or name.startsWith("u-blox SARA-N4")) { - DBG("### This is an LTE-M modem!"); - isCatM = true; + if (name.startsWith("u-blox SARA-R4") || name.startsWith("u-blox SARA-N4")) { + DBG("### WARNING: You are using the wrong TinyGSM modem!"); } else if (name.startsWith("u-blox SARA-N2")) { DBG("### SARA N2 NB-IoT modems not supported!"); @@ -354,16 +337,10 @@ public: } bool factoryDefault() { - if (!isCatM) { - sendAT(GF("+UFACTORY=0,1")); // No factory restore, erase NVM - waitResponse(); - sendAT(GF("+CFUN=16")); // Reset - return waitResponse() == 1; - } - else { - sendAT(GF("&F")); // Resets the current profile, other NVM not affected - return waitResponse() == 1; - } + sendAT(GF("+UFACTORY=0,1")); // No factory restore, erase NVM + waitResponse(); + sendAT(GF("+CFUN=16")); // Reset + return waitResponse() == 1; } String getModemInfo() { @@ -398,14 +375,7 @@ public: if (!testAT()) { return false; } - if (!isCatM) - { - sendAT(GF("+CFUN=16")); - } - else - { - sendAT(GF("+CFUN=15")); - } + sendAT(GF("+CFUN=16")); if (waitResponse(10000L) != 1) { return false; } @@ -480,17 +450,10 @@ public: } RegStatus getRegistrationStatus() { - if (isCatM) { // Check EPS registration for LTE modules - sendAT(GF("+CEREG?")); - if (waitResponse(GF(GSM_NL "+CEREG:")) != 1) { - return REG_UNKNOWN; - } - } - else { - sendAT(GF("+CGREG?")); // Check GPRS registration for others - if (waitResponse(GF(GSM_NL "+CGREG:")) != 1) { - return REG_UNKNOWN; - } + // Check GPRS registration + sendAT(GF("+CGREG?")); + if (waitResponse(GF(GSM_NL "+CGREG:")) != 1) { + return REG_UNKNOWN; } streamSkipUntil(','); // Skip format (0) int status = stream.readStringUntil('\n').toInt(); @@ -542,27 +505,10 @@ public: return false; } - bool setURAT( uint8_t urat ) { - // AT+URAT=[,[,<2ndPreferredAct>]] - - sendAT(GF("+COPS=2")); // Deregister from network - if (waitResponse() != 1) { - return false; - } - sendAT(GF("+URAT="), urat); // Radio Access Technology (RAT) selection - if (waitResponse() != 1) { - return false; - } - sendAT(GF("+COPS=0")); // Auto-register to the network - if (waitResponse() != 1) { - return false; - } - return restart(); - } - /* * GPRS functions */ + bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { gprsDisconnect(); @@ -571,83 +517,49 @@ public: return false; } - // Using CGDCONT sets up an "external" PCP context, i.e. a data connection - // using the external IP stack (e.g. Windows dial up) and PPP link over the - // serial interface. This is the only command set supported by the LTE-M - // and LTE NB-IoT modules (SARA-R4xx, SARA-N4xx) - // Setting up the PSD profile/PDP context with the UPSD commands sets up an // "internal" PDP context, i.e. a data connection using the internal IP - // stack and related AT commands for sockets. This is what we're using for - // all of the other modules. + // stack and related AT commands for sockets. - if (isCatM) { - if (user && strlen(user) > 0) { - sendAT(GF("+CGAUTH=1,0,\""), user, GF("\",\""), pwd, '"'); // Set the authentication - waitResponse(); - } + sendAT(GF("+UPSD=0,1,\""), apn, '"'); // Set APN for PSD profile 0 + waitResponse(); - sendAT(GF("+CGDCONT=1,\"IP\",\""), apn, '"'); // Define PDP context 1 + if (user && strlen(user) > 0) { + sendAT(GF("+UPSD=0,2,\""), user, '"'); // Set user for PSD profile 0 + waitResponse(); + } + if (pwd && strlen(pwd) > 0) { + sendAT(GF("+UPSD=0,3,\""), pwd, '"'); // Set password for PSD profile 0 waitResponse(); - - sendAT(GF("+CGACT=1,1")); // activate PDP profile/context 1 - if (waitResponse(150000L) != 1) { - return false; - } - - return true; } - else { - sendAT(GF("+UPSD=0,1,\""), apn, '"'); // Set APN for PSD profile 0 - waitResponse(); + sendAT(GF("+UPSD=0,7,\"0.0.0.0\"")); // Dynamic IP on PSD profile 0 + waitResponse(); - if (user && strlen(user) > 0) { - sendAT(GF("+UPSD=0,2,\""), user, '"'); // Set user for PSD profile 0 - waitResponse(); - } - if (pwd && strlen(pwd) > 0) { - sendAT(GF("+UPSD=0,3,\""), pwd, '"'); // Set password for PSD profile 0 - waitResponse(); - } - - sendAT(GF("+UPSD=0,7,\"0.0.0.0\"")); // Dynamic IP on PSD profile 0 - waitResponse(); - - sendAT(GF("+UPSDA=0,3")); // Activate the PDP context associated with profile 0 - if (waitResponse(360000L) != 1) { - return false; - } - - sendAT(GF("+UPSND=0,8")); // Activate PSD profile 0 - if (waitResponse(GF(",8,1")) != 1) { - return false; - } - waitResponse(); - - return true; + sendAT(GF("+UPSDA=0,3")); // Activate the PDP context associated with profile 0 + if (waitResponse(360000L) != 1) { + return false; } + + sendAT(GF("+UPSND=0,8")); // Activate PSD profile 0 + if (waitResponse(GF(",8,1")) != 1) { + return false; + } + waitResponse(); + + return true; } bool gprsDisconnect() { - - // LTE-M and NB-IoT modules do not support UPSx commands - if (isCatM) { - sendAT(GF("+CGACT=1,0")); // Deactivate PDP context 1 - if (waitResponse(40000L) != 1) { - return false; - } - } - - else { - sendAT(GF("+UPSDA=0,4")); // Deactivate the PDP context associated with profile 0 - if (waitResponse(360000L) != 1) - return false; + sendAT(GF("+UPSDA=0,4")); // Deactivate the PDP context associated with profile 0 + if (waitResponse(360000L) != 1) { + return false; } sendAT(GF("+CGATT=0")); // detach from GPRS - if (waitResponse(360000L) != 1) + if (waitResponse(360000L) != 1) { return false; + } return true; } @@ -670,32 +582,17 @@ public: */ String getLocalIP() { - // LTE-M and NB-IoT modules do not support UPSx commands - if (isCatM) { - sendAT(GF("+CGPADDR")); - if (waitResponse(GF(GSM_NL "+CGPADDR:")) != 1) { - return ""; - } - streamSkipUntil(','); // Skip context id - String res = stream.readStringUntil('\r'); - if (waitResponse() != 1) { - return ""; - } - return res; + sendAT(GF("+UPSND=0,0")); + if (waitResponse(GF(GSM_NL "+UPSND:")) != 1) { + return ""; } - else { - 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; + streamSkipUntil(','); // Skip PSD profile + streamSkipUntil('\"'); // Skip request type + String res = stream.readStringUntil('\"'); + if (waitResponse() != 1) { + return ""; } + return res; } IPAddress localIP() { @@ -756,6 +653,7 @@ public: /* * Battery functions */ + uint16_t getBattVoltage() TINY_GSM_ATTR_NOT_AVAILABLE; int8_t getBattPercent() { @@ -811,17 +709,10 @@ protected: return true; } bool success; - if (isCatM) { // These modems allow a faster "asynchronous" close - sendAT(GF("+USOCL="), mux, GF(",1")); - success = 1 == waitResponse(120000L); // but it still can take up to 120s to get a response - // TODO: Evaluate whether the speed bump by allowing the async close is worth it - } - else { // no async close - sendAT(GF("+USOCL="), mux); - success = 1 == waitResponse(); // others should return within 1s - if (success) { - sockets[mux]->sock_connected = false; - } + sendAT(GF("+USOCL="), mux); + success = 1 == waitResponse(); // should return within 1s + if (success) { + sockets[mux]->sock_connected = false; } return success; } @@ -874,7 +765,7 @@ protected: if (res == 1) { streamSkipUntil(','); // Skip mux result = stream.readStringUntil('\n').toInt(); - if (result) DBG("### DATA AVAILABLE:", result, "on", mux); + // if (result) DBG("### DATA AVAILABLE:", result, "on", mux); waitResponse(); } if (!result && res != 2 && res != 3) { // Don't check modemGetConnected after an error @@ -1031,7 +922,6 @@ public: protected: GsmClient* sockets[TINY_GSM_MUX_COUNT]; - bool isCatM; }; #endif From 85d309621d2a122b39e1279ba53c1a22e8a13ec8 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 12:23:35 -0400 Subject: [PATCH 18/46] Condensed client functions into pre-processor macros --- src/TinyGsmClientA6.h | 80 +----------- src/TinyGsmClientBG96.h | 83 +------------ src/TinyGsmClientESP8266.h | 80 +----------- src/TinyGsmClientM590.h | 83 ++----------- src/TinyGsmClientM95.h | 83 +------------ src/TinyGsmClientMC60.h | 83 +------------ src/TinyGsmClientSIM7000.h | 99 +-------------- src/TinyGsmClientSIM800.h | 97 +-------------- src/TinyGsmClientSaraR4.h | 91 +------------- src/TinyGsmClientSequansMonarch.h | 83 +------------ src/TinyGsmClientUBLOX.h | 91 +------------- src/TinyGsmClientXBee.h | 2 +- src/TinyGsmCommon.h | 200 ++++++++++++++++++++++++++++++ 13 files changed, 258 insertions(+), 897 deletions(-) diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index afb0f21..080af74 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -58,10 +58,6 @@ public: this->mux = -1; sock_connected = false; - // at->sockets[mux] = this; - // ^^ TODO: attach the socket here at init? Or later at connect? - // Currently done inconsistently between modems - return true; } @@ -75,23 +71,11 @@ public: if (sock_connected) { mux = newMux; at->sockets[mux] = this; - // ^^ TODO: attach the socket after attempting connection or above at init? - // Currently done inconsistently between modems } return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port) { - String host; host.reserve(16); - host += ip[0]; - host += "."; - host += ip[1]; - host += "."; - host += ip[2]; - host += "."; - host += ip[3]; - return connect(host.c_str(), port); - } +TINY_GSM_CLIENT_CONNECT_TO_IP() virtual void stop() { TINY_GSM_YIELD(); @@ -101,67 +85,13 @@ public: rx.clear(); } - virtual size_t write(const uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - //at->maintain(); - return at->modemSend(buf, size, mux); - } +TINY_GSM_CLIENT_WRITE() - virtual size_t write(uint8_t c) { - return write(&c, 1); - } +TINY_GSM_CLIENT_AVAILABLE_NO_MODEM_FIFO() - virtual size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } +TINY_GSM_CLIENT_READ_NO_MODEM_FIFO() - virtual int available() { - TINY_GSM_YIELD(); - if (!rx.size() && sock_connected) { - at->maintain(); - } - return rx.size(); - } - - virtual int read(uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - size_t cnt = 0; - uint32_t _startMillis = millis(); - while (cnt < size && millis() - _startMillis < _timeout) { - size_t chunk = TinyGsmMin(size-cnt, rx.size()); - if (chunk > 0) { - rx.get(buf, chunk); - buf += chunk; - cnt += chunk; - continue; - } - // TODO: Read directly into user buffer? - if (!rx.size() && sock_connected) { - at->maintain(); - } - } - return cnt; - } - - virtual int read() { - uint8_t c; - if (read(&c, 1) == 1) { - return c; - } - return -1; - } - - virtual int peek() { return -1; } //TODO - virtual void flush() { at->stream.flush(); } - - virtual uint8_t connected() { - if (available()) { - return true; - } - return sock_connected; - } - virtual operator bool() { return connected(); } +TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() /* * Extended API diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index f0c987a..3d6c323 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -62,8 +62,6 @@ public: got_data = false; at->sockets[mux] = this; - // ^^ TODO: attach the socket here at init? Or later at connect? - // Currently done inconsistently between modems return true; } @@ -74,24 +72,10 @@ public: TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux); - // sock_connected = at->modemConnect(host, port, &mux); - // at->sockets[mux] = this; - // ^^ TODO: attach the socket after attempting connection or above at init? - // Currently done inconsistently between modems return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port) { - String host; host.reserve(16); - host += ip[0]; - host += "."; - host += ip[1]; - host += "."; - host += ip[2]; - host += "."; - host += ip[3]; - return connect(host.c_str(), port); - } +TINY_GSM_CLIENT_CONNECT_TO_IP() virtual void stop() { TINY_GSM_YIELD(); @@ -112,70 +96,13 @@ public: at->waitResponse(); } - virtual size_t write(const uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - return at->modemSend(buf, size, mux); - } +TINY_GSM_CLIENT_WRITE() - virtual size_t write(uint8_t c) { - return write(&c, 1); - } +TINY_GSM_CLIENT_AVAILABLE_NO_BUFFER_CHECK() - virtual size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } +TINY_GSM_CLIENT_READ_NO_BUFFER_CHECK() - virtual int available() { - TINY_GSM_YIELD(); - if (!rx.size()) { - at->maintain(); - } - return rx.size() + sock_available; - } - - virtual int read(uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - size_t cnt = 0; - while (cnt < size) { - size_t chunk = TinyGsmMin(size-cnt, rx.size()); - if (chunk > 0) { - rx.get(buf, chunk); - buf += chunk; - cnt += chunk; - continue; - } - // TODO: Read directly into user buffer? - at->maintain(); - if (sock_available > 0) { - at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); - } else { - break; - } - } - return cnt; - } - - virtual int read() { - uint8_t c; - if (read(&c, 1) == 1) { - return c; - } - return -1; - } - - virtual int peek() { return -1; } //TODO - virtual void flush() { at->stream.flush(); } - - virtual uint8_t connected() { - if (available()) { - return true; - } - return sock_connected; - } - virtual operator bool() { return connected(); } +TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() /* * Extended API diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index c9ba8cb..5d14ed6 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -59,8 +59,6 @@ public: sock_connected = false; at->sockets[mux] = this; - // ^^ TODO: attach the socket here at init? Or later at connect? - // Currently done inconsistently between modems return true; } @@ -71,24 +69,10 @@ public: TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux); - // sock_connected = at->modemConnect(host, port, &mux); - // at->sockets[mux] = this; - // ^^ TODO: attach the socket after attempting connection or above at init? - // Currently done inconsistently between modems return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port) { - String host; host.reserve(16); - host += ip[0]; - host += "."; - host += ip[1]; - host += "."; - host += ip[2]; - host += "."; - host += ip[3]; - return connect(host.c_str(), port); - } +TINY_GSM_CLIENT_CONNECT_TO_IP() virtual void stop() { TINY_GSM_YIELD(); @@ -98,67 +82,13 @@ public: rx.clear(); } - virtual size_t write(const uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - //at->maintain(); - return at->modemSend(buf, size, mux); - } +TINY_GSM_CLIENT_WRITE() - virtual size_t write(uint8_t c) { - return write(&c, 1); - } +TINY_GSM_CLIENT_AVAILABLE_NO_MODEM_FIFO() - virtual size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } +TINY_GSM_CLIENT_READ_NO_MODEM_FIFO() - virtual int available() { - TINY_GSM_YIELD(); - if (!rx.size() && sock_connected) { - at->maintain(); - } - return rx.size(); - } - - virtual int read(uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - size_t cnt = 0; - uint32_t _startMillis = millis(); - while (cnt < size && millis() - _startMillis < _timeout) { - size_t chunk = TinyGsmMin(size-cnt, rx.size()); - if (chunk > 0) { - rx.get(buf, chunk); - buf += chunk; - cnt += chunk; - continue; - } - // TODO: Read directly into user buffer? - if (!rx.size() && sock_connected) { - at->maintain(); - } - } - return cnt; - } - - virtual int read() { - uint8_t c; - if (read(&c, 1) == 1) { - return c; - } - return -1; - } - - virtual int peek() { return -1; } //TODO - virtual void flush() { at->stream.flush(); } - - virtual uint8_t connected() { - if (available()) { - return true; - } - return sock_connected; - } - virtual operator bool() { return connected(); } +TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() /* * Extended API diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index fde7f87..52a2507 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -59,8 +59,6 @@ public: sock_connected = false; at->sockets[mux] = this; - // ^^ TODO: attach the socket here at init? Or later at connect? - // Currently done inconsistently between modems return true; } @@ -71,24 +69,11 @@ public: TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux); - // sock_connected = at->modemConnect(host, port, &mux); - // at->sockets[mux] = this; - // ^^ TODO: attach the socket after attempting connection or above at init? - // Currently done inconsistently between modems + return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port) { - String host; host.reserve(16); - host += ip[0]; - host += "."; - host += ip[1]; - host += "."; - host += ip[2]; - host += "."; - host += ip[3]; - return connect(host.c_str(), port); - } +TINY_GSM_CLIENT_CONNECT_TO_IP() virtual void stop() { TINY_GSM_YIELD(); @@ -98,67 +83,13 @@ public: rx.clear(); } - virtual size_t write(const uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - //at->maintain(); - return at->modemSend(buf, size, mux); - } +TINY_GSM_CLIENT_WRITE() - virtual size_t write(uint8_t c) { - return write(&c, 1); - } +TINY_GSM_CLIENT_AVAILABLE_NO_MODEM_FIFO() - virtual size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } +TINY_GSM_CLIENT_READ_NO_MODEM_FIFO() - virtual int available() { - TINY_GSM_YIELD(); - if (!rx.size() && sock_connected) { - at->maintain(); - } - return rx.size(); - } - - virtual int read(uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - size_t cnt = 0; - uint32_t _startMillis = millis(); - while (cnt < size && millis() - _startMillis < _timeout) { - size_t chunk = TinyGsmMin(size-cnt, rx.size()); - if (chunk > 0) { - rx.get(buf, chunk); - buf += chunk; - cnt += chunk; - continue; - } - // TODO: Read directly into user buffer? - if (!rx.size() && sock_connected) { - at->maintain(); - } - } - return cnt; - } - - virtual int read() { - uint8_t c; - if (read(&c, 1) == 1) { - return c; - } - return -1; - } - - virtual int peek() { return -1; } //TODO - virtual void flush() { at->stream.flush(); } - - virtual uint8_t connected() { - if (available()) { - return true; - } - return sock_connected; - } - virtual operator bool() { return connected(); } +TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() /* * Extended API @@ -167,7 +98,7 @@ public: String remoteIP() TINY_GSM_ATTR_NOT_IMPLEMENTED; private: - TinyGsmM590* at; + TinyGsmM590* at; uint8_t mux; bool sock_connected; RxFifo rx; diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 4c51eaa..03225cc 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -62,8 +62,6 @@ public: got_data = false; at->sockets[mux] = this; - // ^^ TODO: attach the socket here at init? Or later at connect? - // Currently done inconsistently between modems return true; } @@ -74,24 +72,10 @@ public: TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux); - // sock_connected = at->modemConnect(host, port, &mux); - // at->sockets[mux] = this; - // ^^ TODO: attach the socket after attempting connection or above at init? - // Currently done inconsistently between modems return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port) { - String host; host.reserve(16); - host += ip[0]; - host += "."; - host += ip[1]; - host += "."; - host += ip[2]; - host += "."; - host += ip[3]; - return connect(host.c_str(), port); - } +TINY_GSM_CLIENT_CONNECT_TO_IP() virtual void stop() { TINY_GSM_YIELD(); @@ -112,70 +96,13 @@ public: at->waitResponse(60000L, GF("CLOSED"), GF("CLOSE OK"), GF("ERROR")); } - virtual size_t write(const uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - return at->modemSend(buf, size, mux); - } +TINY_GSM_CLIENT_WRITE() - virtual size_t write(uint8_t c) { - return write(&c, 1); - } +TINY_GSM_CLIENT_AVAILABLE_NO_BUFFER_CHECK() - virtual size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } +TINY_GSM_CLIENT_READ_NO_BUFFER_CHECK() - virtual int available() { - TINY_GSM_YIELD(); - if (!rx.size()) { - at->maintain(); - } - return rx.size() + sock_available; - } - - virtual int read(uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - size_t cnt = 0; - while (cnt < size) { - size_t chunk = TinyGsmMin(size-cnt, rx.size()); - if (chunk > 0) { - rx.get(buf, chunk); - buf += chunk; - cnt += chunk; - continue; - } - // TODO: Read directly into user buffer? - at->maintain(); - if (sock_available > 0) { - at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); - } else { - break; - } - } - return cnt; - } - - virtual int read() { - uint8_t c; - if (read(&c, 1) == 1) { - return c; - } - return -1; - } - - virtual int peek() { return -1; } //TODO - virtual void flush() { at->stream.flush(); } - - virtual uint8_t connected() { - if (available()) { - return true; - } - return sock_connected; - } - virtual operator bool() { return connected(); } +TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() /* * Extended API diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 902ec72..b0d3901 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -66,8 +66,6 @@ public: got_data = false; at->sockets[mux] = this; - // ^^ TODO: attach the socket here at init? Or later at connect? - // Currently done inconsistently between modems return true; } @@ -78,24 +76,10 @@ public: TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux); - // sock_connected = at->modemConnect(host, port, &mux); - // at->sockets[mux] = this; - // ^^ TODO: attach the socket after attempting connection or above at init? - // Currently done inconsistently between modems return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port) { - String host; host.reserve(16); - host += ip[0]; - host += "."; - host += ip[1]; - host += "."; - host += ip[2]; - host += "."; - host += ip[3]; - return connect(host.c_str(), port); - } +TINY_GSM_CLIENT_CONNECT_TO_IP() virtual void stop() { TINY_GSM_YIELD(); @@ -116,70 +100,13 @@ public: at->waitResponse(60000L, GF("CLOSED"), GF("CLOSE OK"), GF("ERROR")); } - virtual size_t write(const uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - return at->modemSend(buf, size, mux); - } +TINY_GSM_CLIENT_WRITE() - virtual size_t write(uint8_t c) { - return write(&c, 1); - } +TINY_GSM_CLIENT_AVAILABLE_NO_BUFFER_CHECK() - virtual size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } +TINY_GSM_CLIENT_READ_NO_BUFFER_CHECK() - virtual int available() { - TINY_GSM_YIELD(); - if (!rx.size()) { - at->maintain(); - } - return rx.size() + sock_available; - } - - virtual int read(uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - size_t cnt = 0; - while (cnt < size) { - size_t chunk = TinyGsmMin(size-cnt, rx.size()); - if (chunk > 0) { - rx.get(buf, chunk); - buf += chunk; - cnt += chunk; - continue; - } - // TODO: Read directly into user buffer? - at->maintain(); - if (sock_available > 0) { - at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); - } else { - break; - } - } - return cnt; - } - - virtual int read() { - uint8_t c; - if (read(&c, 1) == 1) { - return c; - } - return -1; - } - - virtual int peek() { return -1; } //TODO - virtual void flush() { at->stream.flush(); } - - virtual uint8_t connected() { - if (available()) { - return true; - } - return sock_connected; - } - virtual operator bool() { return connected(); } +TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() /* * Extended API diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 53468cf..9b7d543 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -71,8 +71,6 @@ public: got_data = false; at->sockets[mux] = this; - // ^^ TODO: attach the socket here at init? Or later at connect? - // Currently done inconsistently between modems return true; } @@ -83,24 +81,10 @@ public: TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux); - // sock_connected = at->modemConnect(host, port, &mux); - // at->sockets[mux] = this; - // ^^ TODO: attach the socket after attempting connection or above at init? - // Currently done inconsistently between modems return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port) { - String host; host.reserve(16); - host += ip[0]; - host += "."; - host += ip[1]; - host += "."; - host += ip[2]; - host += "."; - host += ip[3]; - return connect(host.c_str(), port); - } +TINY_GSM_CLIENT_CONNECT_TO_IP() virtual void stop() { TINY_GSM_YIELD(); @@ -121,86 +105,13 @@ public: at->waitResponse(); } - virtual size_t write(const uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - return at->modemSend(buf, size, mux); - } +TINY_GSM_CLIENT_WRITE() - virtual size_t write(uint8_t c) { - return write(&c, 1); - } +TINY_GSM_CLIENT_AVAILABLE_WITH_BUFFER_CHECK() - virtual size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } +TINY_GSM_CLIENT_READ_WITH_BUFFER_CHECK() - virtual int available() { - TINY_GSM_YIELD(); - if (!rx.size()) { - // TODO: Is this needed for SIM7000? - // Workaround: sometimes SIM7000 forgets to notify about data arrival. - // TODO: Currently we ping the module periodically, - // but maybe there's a better indicator that we need to poll - if (millis() - prev_check > 250) { - got_data = true; - prev_check = millis(); - } - at->maintain(); - } - return rx.size() + sock_available; - } - - virtual int read(uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - size_t cnt = 0; - while (cnt < size) { - size_t chunk = TinyGsmMin(size-cnt, rx.size()); - if (chunk > 0) { - rx.get(buf, chunk); - buf += chunk; - cnt += chunk; - continue; - } - // TODO: Is this needed for SIM7000? - // Workaround: sometimes SIM7000 forgets to notify about data arrival. - // TODO: Currently we ping the module periodically, - // but maybe there's a better indicator that we need to poll - if (millis() - prev_check > 250) { - got_data = true; - prev_check = millis(); - } - // TODO: Read directly into user buffer? - at->maintain(); - if (sock_available > 0) { - at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); - } else { - break; - } - } - return cnt; - } - - virtual int read() { - uint8_t c; - if (read(&c, 1) == 1) { - return c; - } - return -1; - } - - virtual int peek() { return -1; } //TODO - virtual void flush() { at->stream.flush(); } - - virtual uint8_t connected() { - if (available()) { - return true; - } - return sock_connected; - } - virtual operator bool() { return connected(); } +TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() /* * Extended API diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 20a2b61..5746db8 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -68,8 +68,6 @@ public: got_data = false; at->sockets[mux] = this; - // ^^ TODO: attach the socket here at init? Or later at connect? - // Currently done inconsistently between modems return true; } @@ -80,24 +78,10 @@ public: TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux); - // sock_connected = at->modemConnect(host, port, &mux); - // at->sockets[mux] = this; - // ^^ TODO: attach the socket after attempting connection or above at init? - // Currently done inconsistently between modems return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port) { - String host; host.reserve(16); - host += ip[0]; - host += "."; - host += ip[1]; - host += "."; - host += ip[2]; - host += "."; - host += ip[3]; - return connect(host.c_str(), port); - } +TINY_GSM_CLIENT_CONNECT_TO_IP() virtual void stop() { TINY_GSM_YIELD(); @@ -118,84 +102,13 @@ public: at->waitResponse(); } - virtual size_t write(const uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - return at->modemSend(buf, size, mux); - } +TINY_GSM_CLIENT_WRITE() - virtual size_t write(uint8_t c) { - return write(&c, 1); - } +TINY_GSM_CLIENT_AVAILABLE_WITH_BUFFER_CHECK() - virtual size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } +TINY_GSM_CLIENT_READ_WITH_BUFFER_CHECK() - virtual int available() { - TINY_GSM_YIELD(); - if (!rx.size()) { - // Workaround: sometimes SIM800 forgets to notify about data arrival. - // TODO: Currently we ping the module periodically, - // but maybe there's a better indicator that we need to poll - if (millis() - prev_check > 250) { - got_data = true; - prev_check = millis(); - } - at->maintain(); - } - return rx.size() + sock_available; - } - - virtual int read(uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - size_t cnt = 0; - while (cnt < size) { - size_t chunk = TinyGsmMin(size-cnt, rx.size()); - if (chunk > 0) { - rx.get(buf, chunk); - buf += chunk; - cnt += chunk; - continue; - } - // Workaround: sometimes SIM800 forgets to notify about data arrival. - // TODO: Currently we ping the module periodically, - // but maybe there's a better indicator that we need to poll - if (millis() - prev_check > 250) { - got_data = true; - prev_check = millis(); - } - // TODO: Read directly into user buffer? - at->maintain(); - if (sock_available > 0) { - at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); - } else { - break; - } - } - return cnt; - } - - virtual int read() { - uint8_t c; - if (read(&c, 1) == 1) { - return c; - } - return -1; - } - - virtual int peek() { return -1; } //TODO - virtual void flush() { at->stream.flush(); } - - virtual uint8_t connected() { - if (available()) { - return true; - } - return sock_connected; - } - virtual operator bool() { return connected(); } +TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() /* * Extended API diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index b5cdf7a..fd2b797 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -101,17 +101,7 @@ public: return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port) { - String host; host.reserve(16); - host += ip[0]; - host += "."; - host += ip[1]; - host += "."; - host += ip[2]; - host += "."; - host += ip[3]; - return connect(host.c_str(), port); - } +TINY_GSM_CLIENT_CONNECT_TO_IP() virtual void stop() { TINY_GSM_YIELD(); @@ -130,84 +120,13 @@ public: at->modemDisconnect(mux); } - virtual size_t write(const uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - return at->modemSend(buf, size, mux); - } +TINY_GSM_CLIENT_WRITE() - virtual size_t write(uint8_t c) { - return write(&c, 1); - } +TINY_GSM_CLIENT_AVAILABLE_WITH_BUFFER_CHECK() - virtual size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } +TINY_GSM_CLIENT_READ_WITH_BUFFER_CHECK() - virtual int available() { - TINY_GSM_YIELD(); - if (!rx.size()) { - // Workaround: sometimes SARA R410 forgets to notify about data arrival. - // TODO: Currently we ping the module periodically, - // but maybe there's a better indicator that we need to poll - if (millis() - prev_check > 250) { - got_data = true; - prev_check = millis(); - } - at->maintain(); - } - return rx.size() + sock_available; - } - - virtual int read(uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - size_t cnt = 0; - while (cnt < size) { - size_t chunk = TinyGsmMin(size-cnt, rx.size()); - if (chunk > 0) { - rx.get(buf, chunk); - buf += chunk; - cnt += chunk; - continue; - } - // Workaround: sometimes SARA R410 forgets to notify about data arrival. - // TODO: Currently we ping the module periodically, - // but maybe there's a better indicator that we need to poll - if (millis() - prev_check > 250) { - got_data = true; - prev_check = millis(); - } - // TODO: Read directly into user buffer? - at->maintain(); - if (sock_available > 0) { - at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); - } else { - break; - } - } - return cnt; - } - - virtual int read() { - uint8_t c; - if (read(&c, 1) == 1) { - return c; - } - return -1; - } - - virtual int peek() { return -1; } //TODO - virtual void flush() { at->stream.flush(); } - - virtual uint8_t connected() { - if (available()) { - return true; - } - return sock_connected; - } - virtual operator bool() { return connected(); } +TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() /* * Extended API diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 70d34c3..339ca7b 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -91,17 +91,7 @@ public: return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port) { - String host; host.reserve(16); - host += ip[0]; - host += "."; - host += ip[1]; - host += "."; - host += ip[2]; - host += "."; - host += ip[3]; - return connect(host.c_str(), port); - } +TINY_GSM_CLIENT_CONNECT_TO_IP() virtual void stop() { TINY_GSM_YIELD(); @@ -122,76 +112,13 @@ public: at->waitResponse(); } - virtual size_t write(const uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - return at->modemSend(buf, size, mux); - } +TINY_GSM_CLIENT_WRITE() - virtual size_t write(uint8_t c) { - return write(&c, 1); - } +TINY_GSM_CLIENT_AVAILABLE_WITH_BUFFER_CHECK() - virtual int available() { - TINY_GSM_YIELD(); - if (!rx.size()) { - // Workaround: sometimes unsolicited SQNSSRING notifications do not arrive. - if (millis() - prev_check > 250) { - got_data = true; - prev_check = millis(); - } - at->maintain(); - } - return rx.size() + sock_available; - } +TINY_GSM_CLIENT_READ_WITH_BUFFER_CHECK() - virtual int read(uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - size_t cnt = 0; - while (cnt < size) { - size_t chunk = TinyGsmMin(size-cnt, rx.size()); - if (chunk > 0) { - rx.get(buf, chunk); - buf += chunk; - cnt += chunk; - continue; - } - // Workaround: sometimes unsolicited SQNSSRING notifications do not arrive. - if (millis() - prev_check > 250) { - got_data = true; - prev_check = millis(); - } - // TODO: Read directly into user buffer? - at->maintain(); - if (sock_available > 0) { - int n = at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); - if (n == 0) break; - } else { - break; - } - } - return cnt; - } - - virtual int read() { - uint8_t c; - if (read(&c, 1) == 1) { - return c; - } - return -1; - } - - virtual int peek() { return -1; } //TODO - virtual void flush() { at->stream.flush(); } - - virtual uint8_t connected() { - if (available()) { - return true; - } - return sock_connected; - } - virtual operator bool() { return connected(); } +TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() /* * Extended API diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index a450b9b..5feb2d7 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -85,17 +85,7 @@ public: return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port) { - String host; host.reserve(16); - host += ip[0]; - host += "."; - host += ip[1]; - host += "."; - host += ip[2]; - host += "."; - host += ip[3]; - return connect(host.c_str(), port); - } +TINY_GSM_CLIENT_CONNECT_TO_IP() virtual void stop() { TINY_GSM_YIELD(); @@ -114,84 +104,13 @@ public: at->modemDisconnect(mux); } - virtual size_t write(const uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - return at->modemSend(buf, size, mux); - } +TINY_GSM_CLIENT_WRITE() ; - virtual size_t write(uint8_t c) { - return write(&c, 1); - } +TINY_GSM_CLIENT_AVAILABLE_WITH_BUFFER_CHECK() ; - virtual size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } +TINY_GSM_CLIENT_READ_WITH_BUFFER_CHECK() ; - virtual int available() { - TINY_GSM_YIELD(); - if (!rx.size()) { - // Workaround: sometimes SARA R410 forgets to notify about data arrival. - // TODO: Currently we ping the module periodically, - // but maybe there's a better indicator that we need to poll - if (millis() - prev_check > 250) { - got_data = true; - prev_check = millis(); - } - at->maintain(); - } - return rx.size() + sock_available; - } - - virtual int read(uint8_t *buf, size_t size) { - TINY_GSM_YIELD(); - at->maintain(); - size_t cnt = 0; - while (cnt < size) { - size_t chunk = TinyGsmMin(size-cnt, rx.size()); - if (chunk > 0) { - rx.get(buf, chunk); - buf += chunk; - cnt += chunk; - continue; - } - // Workaround: sometimes SARA R410 forgets to notify about data arrival. - // TODO: Currently we ping the module periodically, - // but maybe there's a better indicator that we need to poll - if (millis() - prev_check > 250) { - got_data = true; - prev_check = millis(); - } - // TODO: Read directly into user buffer? - at->maintain(); - if (sock_available > 0) { - at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); - } else { - break; - } - } - return cnt; - } - - virtual int read() { - uint8_t c; - if (read(&c, 1) == 1) { - return c; - } - return -1; - } - - virtual int peek() { return -1; } //TODO - virtual void flush() { at->stream.flush(); } - - virtual uint8_t connected() { - if (available()) { - return true; - } - return sock_connected; - } - virtual operator bool() { return connected(); } +TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() /* * Extended API diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index 4cd0605..2a536c7 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -168,7 +168,7 @@ public: cnt += chunk; continue; } - // TODO: Read directly into user buffer? + /* TODO: Read directly into user buffer? */ if (!rx.size() || at->stream.available()) { at->maintain(); } diff --git a/src/TinyGsmCommon.h b/src/TinyGsmCommon.h index 3247dac..789e976 100644 --- a/src/TinyGsmCommon.h +++ b/src/TinyGsmCommon.h @@ -202,4 +202,204 @@ String TinyGsmDecodeHex16bit(String &instr) { return result; } + +// Connect to a IP address given as an IPAddress object by +// converting said IP address to text +#define TINY_GSM_CLIENT_CONNECT_TO_IP() \ + virtual int connect(IPAddress ip, uint16_t port) { \ + String host; host.reserve(16); \ + host += ip[0]; \ + host += "."; \ + host += ip[1]; \ + host += "."; \ + host += ip[2]; \ + host += "."; \ + host += ip[3]; \ + return connect(host.c_str(), port); \ + } + + +// Writes data out on the client using the modem send functionality +#define TINY_GSM_CLIENT_WRITE() \ + virtual size_t write(const uint8_t *buf, size_t size) { \ + TINY_GSM_YIELD(); \ + at->maintain(); \ + return at->modemSend(buf, size, mux); \ + } \ + \ + virtual size_t write(uint8_t c) {\ + return write(&c, 1); \ + }\ + \ + virtual size_t write(const char *str) { \ + if (str == NULL) return 0; \ + return write((const uint8_t *)str, strlen(str)); \ + } + + +// Returns the combined number of characters available in the TinyGSM fifo +// and the modem chips internal fifo, doing an extra check-in with the +// modem to see if anything has arrived without a UURC. +#define TINY_GSM_CLIENT_AVAILABLE_WITH_BUFFER_CHECK() \ + virtual int available() { \ + TINY_GSM_YIELD(); \ + if (!rx.size()) { \ + /* Workaround: sometimes module forgets to notify about data arrival. + TODO: Currently we ping the module periodically, + but maybe there's a better indicator that we need to poll */ \ + if (millis() - prev_check > 250) { \ + got_data = true; \ + prev_check = millis(); \ + } \ + at->maintain(); \ + } \ + return rx.size() + sock_available; \ + } + + +// Returns the combined number of characters available in the TinyGSM fifo and +// the modem chips internal fifo. Use this if you don't expect to miss any URC's. +#define TINY_GSM_CLIENT_AVAILABLE_NO_BUFFER_CHECK() \ + virtual int available() { \ + TINY_GSM_YIELD(); \ + if (!rx.size()) { \ + at->maintain(); \ + } \ + return rx.size() + sock_available; \ + } + + +// Returns the number of characters avaialable in the TinyGSM fifo +// Assumes the modem chip has no internal fifo +#define TINY_GSM_CLIENT_AVAILABLE_NO_MODEM_FIFO() \ + virtual int available() { \ + TINY_GSM_YIELD(); \ + if (!rx.size() && sock_connected) { \ + at->maintain(); \ + } \ + return rx.size(); \ + } + + +#define TINY_GSM_CLIENT_READ_OVERLOAD() \ + virtual int read() { \ + uint8_t c; \ + if (read(&c, 1) == 1) { \ + return c; \ + } \ + return -1; \ + } + +// Reads characters out of the TinyGSM fifo, and from the modem chips internal +// fifo if avaiable, also double checking with the modem if data has arrived +// without issuing a UURC. +#define TINY_GSM_CLIENT_READ_WITH_BUFFER_CHECK() \ + virtual int read(uint8_t *buf, size_t size) { \ + TINY_GSM_YIELD(); \ + at->maintain(); \ + size_t cnt = 0; \ + while (cnt < size) { \ + size_t chunk = TinyGsmMin(size-cnt, rx.size()); \ + if (chunk > 0) { \ + rx.get(buf, chunk); \ + buf += chunk; \ + cnt += chunk; \ + continue; \ + } \ + /* Workaround: sometimes module forgets to notify about data arrival. + TODO: Currently we ping the module periodically, + but maybe there's a better indicator that we need to poll */ \ + if (millis() - prev_check > 250) { \ + got_data = true; \ + prev_check = millis(); \ + } \ + /* TODO: Read directly into user buffer? */ \ + at->maintain(); \ + if (sock_available > 0) { \ + int n = at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); \ + if (n == 0) break; \ + } else { \ + break; \ + } \ + } \ + return cnt; \ + } \ + TINY_GSM_CLIENT_READ_OVERLOAD() + + +// Reads characters out of the TinyGSM fifo, and from the modem chips internal +// fifo if avaiable. Use this if you don't expect to miss any URC's. +#define TINY_GSM_CLIENT_READ_NO_BUFFER_CHECK() \ + virtual int read(uint8_t *buf, size_t size) { \ + TINY_GSM_YIELD(); \ + at->maintain(); \ + size_t cnt = 0; \ + while (cnt < size) { \ + size_t chunk = TinyGsmMin(size-cnt, rx.size()); \ + if (chunk > 0) { \ + rx.get(buf, chunk); \ + buf += chunk; \ + cnt += chunk; \ + continue; \ + } \ + /* TODO: Read directly into user buffer? */ \ + at->maintain(); \ + if (sock_available > 0) { \ + int n = at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); \ + if (n == 0) break; \ + } else { \ + break; \ + } \ + } \ + return cnt; \ + } \ + TINY_GSM_CLIENT_READ_OVERLOAD() + + +// Reads characters out of the TinyGSM fifo, waiting for any URC's from the +// modem for new data if there's nothing in the fifo. This assumes the +//modem chip itself has no fifo. +#define TINY_GSM_CLIENT_READ_NO_MODEM_FIFO() \ + virtual int read(uint8_t *buf, size_t size) { \ + TINY_GSM_YIELD(); \ + size_t cnt = 0; \ + uint32_t _startMillis = millis(); \ + while (cnt < size && millis() - _startMillis < _timeout) { \ + size_t chunk = TinyGsmMin(size-cnt, rx.size()); \ + if (chunk > 0) { \ + rx.get(buf, chunk); \ + buf += chunk; \ + cnt += chunk; \ + continue; \ + } \ + /* TODO: Read directly into user buffer? */ \ + if (!rx.size() && sock_connected) { \ + at->maintain(); \ + } \ + } \ + return cnt; \ + } \ + \ + virtual int read() { \ + uint8_t c; \ + if (read(&c, 1) == 1) { \ + return c; \ + } \ + return -1; \ + } + + +#define TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() \ + virtual int peek() { return -1; } /* TODO */ \ + \ + virtual void flush() { at->stream.flush(); } \ + \ + virtual uint8_t connected() { \ + if (available()) { \ + return true; \ + } \ + return sock_connected; \ + } \ + virtual operator bool() { return connected(); } + #endif From 9a3d4089231ce09fc77dd350bda897d77b6a3d84 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 13:53:38 -0400 Subject: [PATCH 19/46] Moved modem functions to pre-processor macros --- src/TinyGsmClientA6.h | 108 ++-------------- src/TinyGsmClientBG96.h | 145 ++------------------- src/TinyGsmClientESP8266.h | 45 +------ src/TinyGsmClientM590.h | 132 ++----------------- src/TinyGsmClientM95.h | 145 ++------------------- src/TinyGsmClientMC60.h | 152 ++-------------------- src/TinyGsmClientSIM7000.h | 141 ++------------------ src/TinyGsmClientSIM800.h | 140 ++------------------ src/TinyGsmClientSaraR4.h | 143 ++------------------- src/TinyGsmClientSequansMonarch.h | 120 ++--------------- src/TinyGsmClientUBLOX.h | 142 ++------------------ src/TinyGsmClientXBee.h | 32 +---- src/TinyGsmCommon.h | 206 ++++++++++++++++++++++++++++++ 13 files changed, 332 insertions(+), 1319 deletions(-) diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index 080af74..9af1038 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -150,22 +150,11 @@ public: return "AI-Thinker A6"; } - void setBaud(unsigned long baud) { - sendAT(GF("+IPR="), baud); - } +TINY_GSM_MODEM_SET_BAUD_IPR() - bool testAT(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - sendAT(GF("")); - if (waitResponse(200) == 1) return true; - delay(100); - } - return false; - } +TINY_GSM_MODEM_TEST_AT() - void maintain() { - waitResponse(10, NULL, NULL); - } +TINY_GSM_MODEM_MAINTAIN_LISTEN() bool factoryDefault() { sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write @@ -174,17 +163,7 @@ public: return waitResponse() == 1; } - String getModemInfo() { - sendAT(GF("I")); - String res; - if (waitResponse(1000L, res) != 1) { - return ""; - } - res.replace(GSM_NL "OK" GSM_NL, ""); - res.replace(GSM_NL, " "); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_INFO_ATI() bool hasSSL() { return false; @@ -224,10 +203,7 @@ public: * SIM card functions */ - bool simUnlock(const char *pin) { - sendAT(GF("+CPIN=\""), pin, GF("\"")); - return waitResponse() == 1; - } +TINY_GSM_MODEM_SIM_UNLOCK_CPIN() String getSimCCID() { sendAT(GF("+CCID")); @@ -240,16 +216,7 @@ public: return res; } - String getIMEI() { - sendAT(GF("+GSN")); - if (waitResponse(GF(GSM_NL)) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_IMEI_GSN() SimStatus getSimStatus(unsigned long timeout = 10000L) { for (unsigned long start = millis(); millis() - start < timeout; ) { @@ -270,16 +237,7 @@ public: 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; - } +TINY_GSM_MODEM_GET_REGISTRATION_XREG(CREG) String getOperator() { sendAT(GF("+COPS=3,0")); // Set format @@ -299,30 +257,14 @@ public: * Generic network functions */ - int16_t getSignalQuality() { - sendAT(GF("+CSQ")); - if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { - return 99; - } - int res = stream.readStringUntil(',').toInt(); - waitResponse(); - return res; - } +TINY_GSP_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); return (s == REG_OK_HOME || s == REG_OK_ROAMING); } - bool waitForNetwork(unsigned long timeout = 60000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - if (isNetworkConnected()) { - return true; - } - delay(250); - } - return false; - } +TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions @@ -603,37 +545,7 @@ public: Utilities */ - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - template - void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - //DBG("### AT:", cmd...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) { - return true; - } - } - return false; - } +TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index 3d6c323..5907dea 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -174,31 +174,11 @@ public: return "Quectel BG96"; } - void setBaud(unsigned long baud) { - sendAT(GF("+IPR="), baud); - } +TINY_GSM_MODEM_SET_BAUD_IPR() - bool testAT(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - sendAT(GF("")); - if (waitResponse(200) == 1) return true; - delay(100); - } - return false; - } +TINY_GSM_MODEM_TEST_AT() - void maintain() { - for (int mux = 0; mux < TINY_GSM_MUX_COUNT; mux++) { - GsmClient* sock = sockets[mux]; - if (sock && sock->got_data) { - sock->got_data = false; - sock->sock_available = modemGetAvailable(mux); - } - } - while (stream.available()) { - waitResponse(10, NULL, NULL); - } - } +TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS() bool factoryDefault() { sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write @@ -209,17 +189,7 @@ public: return waitResponse() == 1; } - String getModemInfo() { - sendAT(GF("I")); - String res; - if (waitResponse(1000L, res) != 1) { - return ""; - } - res.replace(GSM_NL "OK" GSM_NL, ""); - res.replace(GSM_NL, " "); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_INFO_ATI() bool hasSSL() { return false; // TODO: For now @@ -268,14 +238,11 @@ public: * SIM card functions */ - bool simUnlock(const char *pin) { - sendAT(GF("+CPIN=\""), pin, GF("\"")); - return waitResponse() == 1; - } +TINY_GSM_MODEM_SIM_UNLOCK_CPIN() String getSimCCID() { - sendAT(GF("+ICCID")); - if (waitResponse(GF(GSM_NL "+ICCID:")) != 1) { + sendAT(GF("+QCCID")); + if (waitResponse(GF(GSM_NL "+QCCID:")) != 1) { return ""; } String res = stream.readStringUntil('\n'); @@ -284,16 +251,7 @@ public: return res; } - String getIMEI() { - sendAT(GF("+GSN")); - if (waitResponse(GF(GSM_NL)) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_IMEI_GSN() SimStatus getSimStatus(unsigned long timeout = 10000L) { for (unsigned long start = millis(); millis() - start < timeout; ) { @@ -314,56 +272,22 @@ public: 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; - } +TINY_GSM_MODEM_GET_REGISTRATION_XREG(CREG) - String getOperator() { - sendAT(GF("+COPS?")); - if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { - return ""; - } - streamSkipUntil('"'); // Skip mode and format - String res = stream.readStringUntil('"'); - waitResponse(); - return res; - } +TINY_GSM_MODEM_GET_OPERATOR_COPS() /* * Generic network functions */ - int16_t getSignalQuality() { - sendAT(GF("+CSQ")); - if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { - return 99; - } - int res = stream.readStringUntil(',').toInt(); - waitResponse(); - return res; - } +TINY_GSP_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); return (s == REG_OK_HOME || s == REG_OK_ROAMING); } - bool waitForNetwork(unsigned long timeout = 60000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - if (isNetworkConnected()) { - return true; - } - delay(250); - } - return false; - } +TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions @@ -400,18 +324,7 @@ public: return true; } - bool isGprsConnected() { - sendAT(GF("+CGATT?")); - if (waitResponse(GF(GSM_NL "+CGATT:")) != 1) { - return false; - } - int res = stream.readStringUntil('\n').toInt(); - waitResponse(); - if (res != 1) - return false; - - return localIP() != IPAddress(0,0,0,0); - } +TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() /* * IP Address functions @@ -646,37 +559,7 @@ public: Utilities */ - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - template - void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - //DBG("### AT:", cmd...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) { - return true; - } - } - return false; - } +TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index 5d14ed6..9fb0866 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -173,18 +173,9 @@ public: sendAT(GF("+UART_CUR="), baud, "8,1,0,0"); } - bool testAT(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - sendAT(GF("")); - if (waitResponse(200) == 1) return true; - delay(100); - } - return false; - } +TINY_GSM_MODEM_TEST_AT() - void maintain() { - waitResponse(10, NULL, NULL); - } +TINY_GSM_MODEM_MAINTAIN_LISTEN() bool factoryDefault() { sendAT(GF("+RESTORE")); @@ -378,37 +369,7 @@ public: Utilities */ - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - template - void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - //DBG("### AT:", cmd...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) { - return true; - } - } - return false; - } +TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index 52a2507..e9e232a 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -143,24 +143,11 @@ public: return "Neoway M590"; } - void setBaud(unsigned long baud) { - sendAT(GF("+IPR="), baud); - } +TINY_GSM_MODEM_SET_BAUD_IPR() - bool testAT(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - sendAT(GF("")); - if (waitResponse(200) == 1) return true; - delay(100); - } - return false; - } +TINY_GSM_MODEM_TEST_AT() - void maintain() { - //while (stream.available()) { - waitResponse(10, NULL, NULL); - //} - } +TINY_GSM_MODEM_MAINTAIN_LISTEN() bool factoryDefault() { sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write @@ -175,17 +162,7 @@ public: return waitResponse() == 1; } - String getModemInfo() { - sendAT(GF("I")); - String res; - if (waitResponse(1000L, res) != 1) { - return ""; - } - res.replace(GSM_NL "OK" GSM_NL, ""); - res.replace(GSM_NL, " "); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_INFO_ATI() bool hasSSL() { return false; @@ -232,32 +209,11 @@ public: * SIM card functions */ - bool simUnlock(const char *pin) { - sendAT(GF("+CPIN=\""), pin, GF("\"")); - return waitResponse() == 1; - } +TINY_GSM_MODEM_SIM_UNLOCK_CPIN() - String getSimCCID() { - sendAT(GF("+CCID")); - if (waitResponse(GF(GSM_NL "+CCID:")) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_SIMCCID_CCID() - String getIMEI() { - sendAT(GF("+GSN")); - if (waitResponse(GF(GSM_NL)) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_IMEI_GSN() SimStatus getSimStatus(unsigned long timeout = 10000L) { for (unsigned long start = millis(); millis() - start < timeout; ) { @@ -278,56 +234,22 @@ public: 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; - } +TINY_GSM_MODEM_GET_REGISTRATION_XREG(CREG) - String getOperator() { - sendAT(GF("+COPS?")); - if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { - return ""; - } - streamSkipUntil('"'); // Skip mode and format - String res = stream.readStringUntil('"'); - waitResponse(); - return res; - } +TINY_GSM_MODEM_GET_OPERATOR_COPS() /* * Generic network functions */ - int16_t getSignalQuality() { - sendAT(GF("+CSQ")); - if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { - return 99; - } - int res = stream.readStringUntil(',').toInt(); - waitResponse(); - return res; - } +TINY_GSP_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); return (s == REG_OK_HOME || s == REG_OK_ROAMING); } - bool waitForNetwork(unsigned long timeout = 60000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - if (isNetworkConnected()) { - return true; - } - delay(250); - } - return false; - } +TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions @@ -545,37 +467,7 @@ public: Utilities */ - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - template - void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - //DBG("### AT:", cmd...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) { - return true; - } - } - return false; - } +TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 03225cc..d5e6431 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -178,31 +178,11 @@ public: return "Quectel M95"; } - void setBaud(unsigned long baud) { - sendAT(GF("+IPR="), baud); - } +TINY_GSM_MODEM_SET_BAUD_IPR() - bool testAT(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - sendAT(GF("")); - if (waitResponse(200) == 1) return true; - delay(100); - } - return false; - } +TINY_GSM_MODEM_TEST_AT() - void maintain() { - for (int mux = 0; mux < TINY_GSM_MUX_COUNT; mux++) { - GsmClient* sock = sockets[mux]; - if (sock && sock->got_data) { - sock->got_data = false; - sock->sock_available = modemGetAvailable(mux); - } - } - while (stream.available()) { - waitResponse(10, NULL, NULL); - } - } +TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS() bool factoryDefault() { sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write @@ -213,17 +193,7 @@ public: return waitResponse() == 1; } - String getModemInfo() { - sendAT(GF("I")); - String res; - if (waitResponse(1000L, res) != 1) { - return ""; - } - res.replace(GSM_NL "OK" GSM_NL, ""); - res.replace(GSM_NL, " "); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_INFO_ATI() bool hasSSL() { return false; // TODO: For now @@ -276,14 +246,11 @@ public: * SIM card functions */ - bool simUnlock(const char *pin) { - sendAT(GF("+CPIN=\""), pin, GF("\"")); - return waitResponse() == 1; - } +TINY_GSM_MODEM_SIM_UNLOCK_CPIN() String getSimCCID() { - sendAT(GF("+ICCID")); - if (waitResponse(GF(GSM_NL "+ICCID:")) != 1) { + sendAT(GF("+QCCID")); + if (waitResponse(GF(GSM_NL "+QCCID:")) != 1) { return ""; } String res = stream.readStringUntil('\n'); @@ -292,16 +259,7 @@ public: return res; } - String getIMEI() { - sendAT(GF("+GSN")); - if (waitResponse(GF(GSM_NL)) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_IMEI_GSN() SimStatus getSimStatus(unsigned long timeout = 10000L) { for (unsigned long start = millis(); millis() - start < timeout; ) { @@ -322,41 +280,15 @@ public: 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; - } +TINY_GSM_MODEM_GET_REGISTRATION_XREG(CREG) - String getOperator() { - sendAT(GF("+COPS?")); - if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { - return ""; - } - streamSkipUntil('"'); // Skip mode and format - String res = stream.readStringUntil('"'); - waitResponse(); - return res; - } +TINY_GSM_MODEM_GET_OPERATOR_COPS() /* * Generic network functions */ - int16_t getSignalQuality() { - sendAT(GF("+CSQ")); - if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { - return 99; - } - int res = stream.readStringUntil(',').toInt(); - waitResponse(); - return res; - } +TINY_GSP_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -372,15 +304,7 @@ public: waitResponse(); } - bool waitForNetwork(unsigned long timeout = 60000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - if (isNetworkConnected()) { - return true; - } - delay(250); - } - return false; - } +TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions @@ -438,18 +362,7 @@ public: return waitResponse(60000L, GF("DEACT OK"), GF("ERROR")) == 1; } - bool isGprsConnected() { - sendAT(GF("+CGATT?")); - if (waitResponse(GF(GSM_NL "+CGATT:")) != 1) { - return false; - } - int res = stream.readStringUntil('\n').toInt(); - waitResponse(); - if (res != 1) - return false; - - return localIP() != IPAddress(0,0,0,0); - } +TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() /* * IP Address functions @@ -701,37 +614,7 @@ public: Utilities */ - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - template - void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - //DBG("### AT:", cmd...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) { - return true; - } - } - return false; - } +TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index b0d3901..47976f2 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -185,31 +185,11 @@ public: return "Quectel MC60"; } - void setBaud(unsigned long baud) { - sendAT(GF("+IPR="), baud); - } +TINY_GSM_MODEM_SET_BAUD_IPR() - bool testAT(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - sendAT(GF("")); - if (waitResponse(200) == 1) return true; - delay(100); - } - return false; - } +TINY_GSM_MODEM_TEST_AT() - void maintain() { - for (int mux = 0; mux < TINY_GSM_MUX_COUNT; mux++) { - GsmClient* sock = sockets[mux]; - if (sock && sock->got_data) { - sock->got_data = false; - sock->sock_available = modemGetAvailable(mux); - } - } - while (stream.available()) { - waitResponse(10, NULL, NULL); - } - } +TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS() bool factoryDefault() { sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write @@ -220,17 +200,7 @@ public: return waitResponse() == 1; } - String getModemInfo() { - sendAT(GF("I")); - String res; - if (waitResponse(1000L, res) != 1) { - return ""; - } - res.replace(GSM_NL "OK" GSM_NL, ""); - res.replace(GSM_NL, " "); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_INFO_ATI() /* * under development @@ -298,32 +268,11 @@ public: * SIM card functions */ - bool simUnlock(const char *pin) { - sendAT(GF("+CPIN=\""), pin, GF("\"")); - return waitResponse() == 1; - } +TINY_GSM_MODEM_SIM_UNLOCK_CPIN() - String getSimCCID() { - sendAT(GF("+ICCID")); - if (waitResponse(GF(GSM_NL "+ICCID:")) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_SIMCCID_CCID() - String getIMEI() { - sendAT(GF("+GSN")); - if (waitResponse(GF(GSM_NL)) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_IMEI_GSN() SimStatus getSimStatus(unsigned long timeout = 10000L) { for (unsigned long start = millis(); millis() - start < timeout; ) { @@ -346,56 +295,22 @@ public: 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; - } +TINY_GSM_MODEM_GET_REGISTRATION_XREG(CREG) - String getOperator() { - sendAT(GF("+COPS?")); - if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { - return ""; - } - streamSkipUntil('"'); // Skip mode and format - String res = stream.readStringUntil('"'); - waitResponse(); - return res; - } +TINY_GSM_MODEM_GET_OPERATOR_COPS() /* * Generic network functions */ - int16_t getSignalQuality() { - sendAT(GF("+CSQ")); - if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { - return 99; - } - int res = stream.readStringUntil(',').toInt(); - waitResponse(); - return res; - } +TINY_GSP_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); return (s == REG_OK_HOME || s == REG_OK_ROAMING); } - bool waitForNetwork(unsigned long timeout = 60000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - if (isNetworkConnected()) { - return true; - } - delay(250); - } - return false; - } +TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions @@ -466,18 +381,7 @@ public: return waitResponse(60000L, GF("DEACT OK"), GF("ERROR")) == 1; } - bool isGprsConnected() { - sendAT(GF("+CGATT?")); - if (waitResponse(GF(GSM_NL "+CGATT:")) != 1) { - return false; - } - int res = stream.readStringUntil('\n').toInt(); - waitResponse(); - if (res != 1) - return false; - - return localIP() != IPAddress(0,0,0,0); - } +TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() /* * IP Address functions @@ -730,37 +634,7 @@ public: Utilities */ - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - template - void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - //DBG("### AT:", cmd...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) { - return true; - } - } - return false; - } +TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 9b7d543..8474816 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -187,48 +187,17 @@ public: return "SIMCom SIM7000"; } - void setBaud(unsigned long baud) { - sendAT(GF("+IPR="), baud); - } +TINY_GSM_MODEM_SET_BAUD_IPR() - bool testAT(unsigned long timeout = 10000L) { - //streamWrite(GF("AAAAA" GSM_NL)); // TODO: extra A's to help detect the baud rate - for (unsigned long start = millis(); millis() - start < timeout; ) { - sendAT(GF("")); - if (waitResponse(200) == 1) return true; - delay(100); - } - return false; - } +TINY_GSM_MODEM_TEST_AT() - void maintain() { - for (int mux = 0; mux < TINY_GSM_MUX_COUNT; mux++) { - GsmClient* sock = sockets[mux]; - if (sock && sock->got_data) { - sock->got_data = false; - sock->sock_available = modemGetAvailable(mux); - } - } - while (stream.available()) { - waitResponse(10, NULL, NULL); - } - } +TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS() bool factoryDefault() { // these commands aren't supported return false; } - String getModemInfo() { - sendAT(GF("I")); - String res; - if (waitResponse(1000L, res) != 1) { - return ""; - } - res.replace(GSM_NL "OK" GSM_NL, ""); - res.replace(GSM_NL, " "); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_INFO_ATI() bool hasSSL() { return false; // TODO: Module supports SSL, but not yet implemented @@ -297,32 +266,11 @@ public: * SIM card functions */ - bool simUnlock(const char *pin) { - sendAT(GF("+CPIN=\""), pin, GF("\"")); - return waitResponse() == 1; - } +TINY_GSM_MODEM_SIM_UNLOCK_CPIN() - String getSimCCID() { - sendAT(GF("+ICCID")); - if (waitResponse(GF(GSM_NL "+ICCID:")) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_SIMCCID_CCID() - String getIMEI() { - sendAT(GF("+GSN")); - if (waitResponse(GF(GSM_NL)) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_IMEI_GSN() SimStatus getSimStatus(unsigned long timeout = 10000L) { for (unsigned long start = millis(); millis() - start < timeout; ) { @@ -343,42 +291,15 @@ public: return SIM_ERROR; } - RegStatus getRegistrationStatus() { - sendAT(GF("+CGREG?")); - // TODO: Shouldn't this be CEREG for the EPS status of this 4G module? - if (waitResponse(GF(GSM_NL "+CGREG:")) != 1) { - return REG_UNKNOWN; - } - streamSkipUntil(','); // Skip format (0) - int status = stream.readStringUntil('\n').toInt(); - waitResponse(); - return (RegStatus)status; - } +TINY_GSM_MODEM_GET_REGISTRATION_XREG(CGREG) - String getOperator() { - sendAT(GF("+COPS?")); - if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { - return ""; - } - streamSkipUntil('"'); // Skip mode and format - String res = stream.readStringUntil('"'); - waitResponse(); - return res; - } +TINY_GSM_MODEM_GET_OPERATOR_COPS() /* * Generic network functions */ - int16_t getSignalQuality() { - sendAT(GF("+CSQ")); - if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { - return 99; - } - int res = stream.readStringUntil(',').toInt(); - waitResponse(); - return res; - } +TINY_GSP_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -395,15 +316,7 @@ public: return res; } - bool waitForNetwork(unsigned long timeout = 60000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - if (isNetworkConnected()) { - return true; - } - delay(250); - } - return false; - } +TINY_GSM_MODEM_WAIT_FOR_NETWORK() String setNetworkMode(uint8_t mode) { sendAT(GF("+CNMP="), mode); @@ -944,37 +857,7 @@ public: Utilities */ - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - template - void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - //DBG("### AT:", cmd...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) { - return true; - } - } - return false; - } +TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 5746db8..e417bce 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -195,32 +195,11 @@ public: return "SIMCom SIM800"; } - void setBaud(unsigned long baud) { - sendAT(GF("+IPR="), baud); - } +TINY_GSM_MODEM_SET_BAUD_IPR() - bool testAT(unsigned long timeout = 10000L) { - //streamWrite(GF("AAAAA" GSM_NL)); // TODO: extra A's to help detect the baud rate - for (unsigned long start = millis(); millis() - start < timeout; ) { - sendAT(GF("")); - if (waitResponse(200) == 1) return true; - delay(100); - } - return false; - } +TINY_GSM_MODEM_TEST_AT() - void maintain() { - for (int mux = 0; mux < TINY_GSM_MUX_COUNT; mux++) { - GsmClient* sock = sockets[mux]; - if (sock && sock->got_data) { - sock->got_data = false; - sock->sock_available = modemGetAvailable(mux); - } - } - while (stream.available()) { - waitResponse(10, NULL, NULL); - } - } +TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS() bool factoryDefault() { sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write @@ -237,17 +216,7 @@ public: return waitResponse() == 1; } - String getModemInfo() { - sendAT(GF("I")); - String res; - if (waitResponse(1000L, res) != 1) { - return ""; - } - res.replace(GSM_NL "OK" GSM_NL, ""); - res.replace(GSM_NL, " "); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_INFO_ATI() bool hasSSL() { #if defined(TINY_GSM_MODEM_SIM900) @@ -325,32 +294,11 @@ public: * SIM card functions */ - bool simUnlock(const char *pin) { - sendAT(GF("+CPIN=\""), pin, GF("\"")); - return waitResponse() == 1; - } +TINY_GSM_MODEM_SIM_UNLOCK_CPIN() - String getSimCCID() { - sendAT(GF("+ICCID")); - if (waitResponse(GF(GSM_NL "+ICCID:")) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_SIMCCID_CCID() - String getIMEI() { - sendAT(GF("+GSN")); - if (waitResponse(GF(GSM_NL)) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_IMEI_GSN() SimStatus getSimStatus(unsigned long timeout = 10000L) { for (unsigned long start = millis(); millis() - start < timeout; ) { @@ -371,56 +319,22 @@ public: 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; - } +TINY_GSM_MODEM_GET_REGISTRATION_XREG(CREG) - String getOperator() { - sendAT(GF("+COPS?")); - if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { - return ""; - } - streamSkipUntil('"'); // Skip mode and format - String res = stream.readStringUntil('"'); - waitResponse(); - return res; - } +TINY_GSM_MODEM_GET_OPERATOR_COPS() /* * Generic network functions */ - int16_t getSignalQuality() { - sendAT(GF("+CSQ")); - if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { - return 99; - } - int res = stream.readStringUntil(',').toInt(); - waitResponse(); - return res; - } +TINY_GSP_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); return (s == REG_OK_HOME || s == REG_OK_ROAMING); } - bool waitForNetwork(unsigned long timeout = 60000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - if (isNetworkConnected()) { - return true; - } - delay(250); - } - return false; - } +TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions @@ -869,37 +783,7 @@ public: Utilities */ - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - template - void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - //DBG("### AT:", cmd...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) { - return true; - } - } - return false; - } +TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index fd2b797..6220711 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -242,48 +242,18 @@ public: return name; } - void setBaud(unsigned long baud) { - sendAT(GF("+IPR="), baud); - } +TINY_GSM_MODEM_SET_BAUD_IPR() - bool testAT(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - sendAT(GF("")); - if (waitResponse(200) == 1) return true; - delay(100); - } - return false; - } +TINY_GSM_MODEM_TEST_AT() - void maintain() { - for (int mux = 0; mux < TINY_GSM_MUX_COUNT; mux++) { - GsmClient* sock = sockets[mux]; - if (sock && sock->got_data) { - sock->got_data = false; - sock->sock_available = modemGetAvailable(mux); - } - } - while (stream.available()) { - waitResponse(15, NULL, NULL); - } - } +TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS() bool factoryDefault() { sendAT(GF("&F")); // Resets the current profile, other NVM not affected return waitResponse() == 1; } - String getModemInfo() { - sendAT(GF("I")); - String res; - if (waitResponse(1000L, res) != 1) { - return ""; - } - res.replace(GSM_NL "OK" GSM_NL, ""); - res.replace(GSM_NL, " "); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_INFO_ATI() bool hasSSL() { return true; @@ -333,21 +303,9 @@ public: * SIM card functions */ - bool simUnlock(const char *pin) { - sendAT(GF("+CPIN=\""), pin, GF("\"")); - return waitResponse() == 1; - } +TINY_GSM_MODEM_SIM_UNLOCK_CPIN() - String getSimCCID() { - sendAT(GF("+CCID")); - if (waitResponse(GF(GSM_NL "+CCID:")) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_SIMCCID_CCID() String getIMEI() { sendAT(GF("+CGSN")); @@ -379,42 +337,16 @@ public: return SIM_ERROR; } - RegStatus getRegistrationStatus() { - // Check EPS registration for LTE modules - sendAT(GF("+CEREG?")); - if (waitResponse(GF(GSM_NL "+CEREG:")) != 1) { - return REG_UNKNOWN; - } - streamSkipUntil(','); // Skip format (0) - int status = stream.readStringUntil('\n').toInt(); - waitResponse(); - return (RegStatus)status; - } - String getOperator() { - sendAT(GF("+COPS?")); - if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { - return ""; - } - streamSkipUntil('"'); // Skip mode and format - String res = stream.readStringUntil('"'); - waitResponse(); - return res; - } +TINY_GSM_MODEM_GET_REGISTRATION_XREG(CEREG) + +TINY_GSM_MODEM_GET_OPERATOR_COPS() /* * Generic network functions */ - int16_t getSignalQuality() { - sendAT(GF("+CSQ")); - if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { - return 99; - } - int res = stream.readStringUntil(',').toInt(); - waitResponse(); - return res; - } +TINY_GSP_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -425,15 +357,7 @@ public: else return false; } - bool waitForNetwork(unsigned long timeout = 60000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - if (isNetworkConnected()) { - return true; - } - delay(250); - } - return false; - } +TINY_GSM_MODEM_WAIT_FOR_NETWORK() bool setURAT( uint8_t urat ) { // AT+URAT=[,[,<2ndPreferredAct>]] @@ -500,18 +424,7 @@ public: return true; } - bool isGprsConnected() { - sendAT(GF("+CGATT?")); - if (waitResponse(GF(GSM_NL "+CGATT:")) != 1) { - return false; - } - int res = stream.readStringUntil('\n').toInt(); - waitResponse(); - if (res != 1) - return false; - - return localIP() != IPAddress(0,0,0,0); - } +TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() /* * IP Address functions @@ -738,37 +651,7 @@ public: Utilities */ - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - template - void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - //DBG("### AT:", cmd...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) { - return true; - } - } - return false; - } +TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 339ca7b..516fb61 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -215,9 +215,7 @@ public: return "Sequans Monarch"; } - void setBaud(unsigned long baud) { - sendAT(GF("+IPR="), baud); - } +TINY_GSM_MODEM_SET_BAUD_IPR() bool testAT(unsigned long timeout = 10000L) { for (unsigned long start = millis(); millis() - start < timeout; ) { @@ -231,18 +229,7 @@ public: return false; } - void maintain() { - for (int mux = 0; mux < TINY_GSM_MUX_COUNT; mux++) { - GsmClient* sock = sockets[mux]; - if (sock && sock->got_data) { - sock->got_data = false; - sock->sock_available = modemGetAvailable(mux); - } - } - while (stream.available()) { - waitResponse(10, NULL, NULL); - } - } +TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS() bool factoryDefault() { sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write @@ -259,17 +246,7 @@ public: return waitResponse() == 1; } - String getModemInfo() { - sendAT(GF("I")); - String res; - if (waitResponse(1000L, res) != 1) { - return ""; - } - res.replace(GSM_NL "OK" GSM_NL, ""); - res.replace(GSM_NL, " "); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_INFO_ATI() bool hasSSL() { return true; @@ -325,10 +302,7 @@ public: * SIM card functions */ - bool simUnlock(const char *pin) { - sendAT(GF("+CPIN=\""), pin, GF("\"")); - return waitResponse() == 1; - } +TINY_GSM_MODEM_SIM_UNLOCK_CPIN() String getSimCCID() { sendAT(GF("+SQNCCID")); @@ -341,16 +315,7 @@ public: return res; } - String getIMEI() { - sendAT(GF("+GSN")); - if (waitResponse(GF(GSM_NL)) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_IMEI_GSN() SimStatus getSimStatus(unsigned long timeout = 10000L) { for (unsigned long start = millis(); millis() - start < timeout; ) { @@ -371,42 +336,15 @@ public: return SIM_ERROR; } - RegStatus getRegistrationStatus() { - //sendAT(GF("+CREG?")); - sendAT(GF("+CEREG?")); - if (waitResponse(GF(GSM_NL "+CEREG:")) != 1) { - return REG_UNKNOWN; - } - streamSkipUntil(','); // Skip format (0) - int status = stream.readStringUntil(',').toInt(); - waitResponse(); - return (RegStatus)status; - } +TINY_GSM_MODEM_GET_REGISTRATION_XREG(CEREG) - String getOperator() { - sendAT(GF("+COPS?")); - if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { - return ""; - } - streamSkipUntil('"'); // Skip mode and format - String res = stream.readStringUntil('"'); - waitResponse(); - return res; - } +TINY_GSM_MODEM_GET_OPERATOR_COPS() /* * Generic network functions */ - int16_t getSignalQuality() { - sendAT(GF("+CSQ")); - if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { - return 99; - } - int res = stream.readStringUntil(',').toInt(); - waitResponse(); - return res; - } +TINY_GSP_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -418,15 +356,7 @@ public: } } - bool waitForNetwork(unsigned long timeout = 60000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - if (isNetworkConnected()) { - return true; - } - delay(250); - } - return false; - } +TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions @@ -665,37 +595,7 @@ public: Utilities */ - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - template - void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - //DBG("### AT:", cmd...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) { - return true; - } - } - return false; - } +TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index 5feb2d7..ec43e8b 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -229,31 +229,11 @@ public: return name; } - void setBaud(unsigned long baud) { - sendAT(GF("+IPR="), baud); - } +TINY_GSM_MODEM_SET_BAUD_IPR() - bool testAT(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - sendAT(GF("")); - if (waitResponse(200) == 1) return true; - delay(100); - } - return false; - } +TINY_GSM_MODEM_TEST_AT() - void maintain() { - for (int mux = 0; mux < TINY_GSM_MUX_COUNT; mux++) { - GsmClient* sock = sockets[mux]; - if (sock && sock->got_data) { - sock->got_data = false; - sock->sock_available = modemGetAvailable(mux); - } - } - while (stream.available()) { - waitResponse(15, NULL, NULL); - } - } +TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS() bool factoryDefault() { sendAT(GF("+UFACTORY=0,1")); // No factory restore, erase NVM @@ -262,17 +242,7 @@ public: return waitResponse() == 1; } - String getModemInfo() { - sendAT(GF("I")); - String res; - if (waitResponse(1000L, res) != 1) { - return ""; - } - res.replace(GSM_NL "OK" GSM_NL, ""); - res.replace(GSM_NL, " "); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_INFO_ATI() bool hasSSL() { return true; @@ -322,21 +292,9 @@ public: * SIM card functions */ - bool simUnlock(const char *pin) { - sendAT(GF("+CPIN=\""), pin, GF("\"")); - return waitResponse() == 1; - } +TINY_GSM_MODEM_SIM_UNLOCK_CPIN() - String getSimCCID() { - sendAT(GF("+CCID")); - if (waitResponse(GF(GSM_NL "+CCID:")) != 1) { - return ""; - } - String res = stream.readStringUntil('\n'); - waitResponse(); - res.trim(); - return res; - } +TINY_GSM_MODEM_GET_SIMCCID_CCID() String getIMEI() { sendAT(GF("+CGSN")); @@ -368,42 +326,15 @@ public: return SIM_ERROR; } - RegStatus getRegistrationStatus() { - // Check GPRS registration - 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; - } +TINY_GSM_MODEM_GET_REGISTRATION_XREG(CGREG) - String getOperator() { - sendAT(GF("+COPS?")); - if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { - return ""; - } - streamSkipUntil('"'); // Skip mode and format - String res = stream.readStringUntil('"'); - waitResponse(); - return res; - } +TINY_GSM_MODEM_GET_OPERATOR_COPS() /* * Generic network functions */ - int16_t getSignalQuality() { - sendAT(GF("+CSQ")); - if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { - return 99; - } - int res = stream.readStringUntil(',').toInt(); - waitResponse(); - return res; - } +TINY_GSP_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -414,15 +345,7 @@ public: else return false; } - bool waitForNetwork(unsigned long timeout = 60000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { - if (isNetworkConnected()) { - return true; - } - delay(250); - } - return false; - } +TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions @@ -483,18 +406,7 @@ public: return true; } - bool isGprsConnected() { - sendAT(GF("+CGATT?")); - if (waitResponse(GF(GSM_NL "+CGATT:")) != 1) { - return false; - } - int res = stream.readStringUntil('\n').toInt(); - waitResponse(); - if (res != 1) - return false; - - return localIP() != IPAddress(0,0,0,0); - } +TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() /* * IP Address functions @@ -724,37 +636,7 @@ public: Utilities */ - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - template - void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - //DBG("### AT:", cmd...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) { - return true; - } - } - return false; - } +TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout, String& data, diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index 2a536c7..7a1a671 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -933,37 +933,7 @@ public: } } - template - void streamWrite(T last) { - stream.print(last); - } - - template - void streamWrite(T head, Args... tail) { - stream.print(head); - streamWrite(tail...); - } - - template - void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - //DBG("### AT:", cmd...); - } - - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { - unsigned long startMillis = millis(); - while (millis() - startMillis < timeout) { - while (millis() - startMillis < timeout && !stream.available()) { - TINY_GSM_YIELD(); - } - if (stream.read() == c) { - return true; - } - } - return false; - } +TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! // NOTE: This function is used while INSIDE command mode, so we're only diff --git a/src/TinyGsmCommon.h b/src/TinyGsmCommon.h index 789e976..4a439b4 100644 --- a/src/TinyGsmCommon.h +++ b/src/TinyGsmCommon.h @@ -389,6 +389,7 @@ String TinyGsmDecodeHex16bit(String &instr) { } +// The peek, flush, and connected functions #define TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() \ virtual int peek() { return -1; } /* TODO */ \ \ @@ -402,4 +403,209 @@ String TinyGsmDecodeHex16bit(String &instr) { } \ virtual operator bool() { return connected(); } + +// Set baud rate via the V.25TER standard IPR command +#define TINY_GSM_MODEM_SET_BAUD_IPR() \ + void setBaud(unsigned long baud) { \ + sendAT(GF("+IPR="), baud); \ + } + + +// Test response to AT commands +#define TINY_GSM_MODEM_TEST_AT() \ + bool testAT(unsigned long timeout = 10000L) { \ + for (unsigned long start = millis(); millis() - start < timeout; ) { \ + sendAT(GF("")); \ + if (waitResponse(200) == 1) return true; \ + delay(100); \ + } \ + return false; \ + } + + +// Keeps listening for modem URC's and iterates through sockets +// to see if any data is avaiable +#define TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS() \ + void maintain() { \ + for (int mux = 0; mux < TINY_GSM_MUX_COUNT; mux++) { \ + GsmClient* sock = sockets[mux]; \ + if (sock && sock->got_data) { \ + sock->got_data = false; \ + sock->sock_available = modemGetAvailable(mux); \ + } \ + } \ + while (stream.available()) { \ + waitResponse(15, NULL, NULL); \ + } \ + } + + +// Keeps listening for modem URC's - doesn't check socks because +// modem has no internal fifo +#define TINY_GSM_MODEM_MAINTAIN_LISTEN() \ + void maintain() { \ + waitResponse(10, NULL, NULL); \ + } + + +// Asks for modem information via the V.25TER standard ATI command +// NOTE: The actual value and style of the response is quite varied +#define TINY_GSM_MODEM_GET_INFO_ATI() \ + String getModemInfo() { \ + sendAT(GF("I")); \ + String res; \ + if (waitResponse(1000L, res) != 1) { \ + return ""; \ + } \ + res.replace(GSM_NL "OK" GSM_NL, ""); \ + res.replace(GSM_NL, " "); \ + res.trim(); \ + return res; \ + } + + +// Unlocks a sim via the 3GPP TS command AT+CPIN +#define TINY_GSM_MODEM_SIM_UNLOCK_CPIN() \ + bool simUnlock(const char *pin) { \ + sendAT(GF("+CPIN=\""), pin, GF("\"")); \ + return waitResponse() == 1; \ + } + + +// Gets the CCID of a sim card via AT+CCID +#define TINY_GSM_MODEM_GET_SIMCCID_CCID() \ + String getSimCCID() { \ + sendAT(GF("+CCID")); \ + if (waitResponse(GF(GSM_NL "+CCID:")) != 1) { \ + return ""; \ + } \ + String res = stream.readStringUntil('\n'); \ + waitResponse(); \ + res.trim(); \ + return res; \ + } + + +// Asks for TA Serial Number Identification (IMEI) via the V.25TER standard AT+GSN command +#define TINY_GSM_MODEM_GET_IMEI_GSN() \ + String getIMEI() { \ + sendAT(GF("+GSN")); \ + if (waitResponse(GF(GSM_NL)) != 1) { \ + return ""; \ + } \ + String res = stream.readStringUntil('\n'); \ + waitResponse(); \ + res.trim(); \ + return res; \ + } + + +// Gets the modem's registration status via CREG/CGREG/CEREG +// CREG = Generic network registration +// CGREG = GPRS service registration +// CEREG = EPS registration for LTE modules +#define TINY_GSM_MODEM_GET_REGISTRATION_XREG(regCommand) \ + RegStatus getRegistrationStatus() { \ + sendAT(GF("+" #regCommand "?")); \ + if (waitResponse(GF(GSM_NL "+" #regCommand ":")) != 1) { \ + return REG_UNKNOWN; \ + } \ + streamSkipUntil(','); /* Skip format (0) */ \ + int status = stream.readStringUntil('\n').toInt(); \ + waitResponse(); \ + return (RegStatus)status; \ + } + + +// Gets the current network operator via the 3GPP TS command AT+COPS +#define TINY_GSM_MODEM_GET_OPERATOR_COPS() \ + String getOperator() { \ + sendAT(GF("+COPS?")); \ + if (waitResponse(GF(GSM_NL "+COPS:")) != 1) { \ + return ""; \ + } \ + streamSkipUntil('"'); /* Skip mode and format */ \ + String res = stream.readStringUntil('"'); \ + waitResponse(); \ + return res; \ + } + + +// Waits for network attachment +#define TINY_GSM_MODEM_WAIT_FOR_NETWORK() \ + bool waitForNetwork(unsigned long timeout = 60000L) { \ + for (unsigned long start = millis(); millis() - start < timeout; ) { \ + if (isNetworkConnected()) { \ + return true; \ + } \ + delay(250); \ + } \ + return false; \ + } + + +// Checks if current attached to GPRS/EPS service +#define TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() \ + bool isGprsConnected() { \ + sendAT(GF("+CGATT?")); \ + if (waitResponse(GF(GSM_NL "+CGATT:")) != 1) { \ + return false; \ + } \ + int res = stream.readStringUntil('\n').toInt(); \ + waitResponse(); \ + if (res != 1) \ + return false; \ + \ + return localIP() != IPAddress(0,0,0,0); \ + } + + +// Gets signal quality report according to 3GPP TS command AT+CSQ +#define TINY_GSP_MODEM_GET_CSQ() \ + int16_t getSignalQuality() { \ + sendAT(GF("+CSQ")); \ + if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { \ + return 99; \ + } \ + int res = stream.readStringUntil(',').toInt(); \ + waitResponse(); \ + return res; \ + } + + +// Utility templates for writing/skipping characters on a stream +#define TINY_GSP_MODEM_STREAM_UTILITIES() \ + template \ + void streamWrite(T last) { \ + stream.print(last); \ + } \ + \ + template \ + void streamWrite(T head, Args... tail) { \ + stream.print(head); \ + streamWrite(tail...); \ + } \ + \ + template \ + void sendAT(Args... cmd) { \ + streamWrite("AT", cmd..., GSM_NL); \ + stream.flush(); \ + TINY_GSM_YIELD(); \ + /* DBG("### AT:", cmd...); */ \ + } \ + \ + bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { \ + unsigned long startMillis = millis(); \ + while (millis() - startMillis < timeout) { \ + while (millis() - startMillis < timeout && !stream.available()) { \ + TINY_GSM_YIELD(); \ + } \ + if (stream.read() == c) { \ + return true; \ + } \ + } \ + return false; \ + } + + #endif From d6be99273c74a7a0d8ad820de552c324f27737a4 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 14:02:03 -0400 Subject: [PATCH 20/46] Added SARA R4 to client --- src/TinyGsmClient.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/TinyGsmClient.h b/src/TinyGsmClient.h index 2e4218e..40c1d97 100644 --- a/src/TinyGsmClient.h +++ b/src/TinyGsmClient.h @@ -48,6 +48,14 @@ typedef TinyGsmUBLOX::GsmClient TinyGsmClient; typedef TinyGsmUBLOX::GsmClientSecure TinyGsmClientSecure; +#elif defined(TINY_GSM_MODEM_SARAR4) + #define TINY_GSM_MODEM_HAS_GPRS + #define TINY_GSM_MODEM_HAS_SSL + #include + typedef TinyGsmUBLOX TinyGsm; + typedef TinyGsmSaraR4::GsmClient TinyGsmClient; + typedef TinyGsmSaraR4::GsmClientSecure TinyGsmClientSecure; + #elif defined(TINY_GSM_MODEM_M95) #define TINY_GSM_MODEM_HAS_GPRS #include From 5446e30b1c085f86b0ba12d32cf8a477b5933dd9 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 14:02:52 -0400 Subject: [PATCH 21/46] Removing ESP from travis until they fix client api --- .travis.yml | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9d1fafb..4399f45 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,17 +18,33 @@ env: - PLATFORMIO_CI_SRC=tools/FactoryReset # Arduino test - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_A6' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_BG96' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_ESP8266' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M95' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M590' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_MC60' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM800' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM808' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM7000' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_UBLOX' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_XBEE' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_A6' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_BG96' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_ESP8266' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M95' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M590' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_MC60' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM800' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM808' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM7000' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_UBLOX' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SARAR4' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_XBEE' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SEQUANS_MONARCH' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_A6' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_BG96' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_ESP8266' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M95' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M590' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_MC60' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM800' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM808' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM7000' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_UBLOX' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SARAR4' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_XBEE' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SEQUANS_MONARCH' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" # Energia test - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_A6' --project-option='framework=energia' --board=lplm4f120h5qr" @@ -41,7 +57,9 @@ env: - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM808' --project-option='framework=energia' --board=lplm4f120h5qr" - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM7000' --project-option='framework=energia' --board=lplm4f120h5qr" - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_UBLOX' --project-option='framework=energia' --board=lplm4f120h5qr" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SARAR4' --project-option='framework=energia' --board=lplm4f120h5qr" - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_XBEE' --project-option='framework=energia' --board=lplm4f120h5qr" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SEQUANS_MONARCH' --project-option='framework=energia' --board=lplm4f120h5qr" # Disabled due to a bug in Energia readBytes implementation #- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_XBEE' --project-option='framework=energia' --board=lplm4f120h5qr" From 612451c1b70d2b29383d3b68ada026b1f925a67d Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 14:07:07 -0400 Subject: [PATCH 22/46] Version bump --- README.md | 3 ++- library.json | 2 +- library.properties | 2 +- src/TinyGsmCommon.h | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 22adad6..3adc2d8 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,7 @@ Primary Author/Contributor |[vshymanskyy](https://github.com/vshymanskyy)|[vsh - Quectel M95 ***(alpha)*** - Quectel MC60 ***(alpha)*** - SIMCom SIM7000 series ***(alpha)*** +- Sequans Monarch LTE Cat M1/NB1 ***(alpha)*** ### Supported boards/modules - Arduino MKR GSM 1400 @@ -89,9 +90,9 @@ Primary Author/Contributor |[vshymanskyy](https://github.com/vshymanskyy)|[vsh - ... other modules, based on supported modems. Some boards require [**special configuration**](https://github.com/vshymanskyy/TinyGSM/wiki/Board-configuration). More modems may be supported later: -- [ ] Sequans Monarch LTE Cat M1/NB1 - [ ] Quectel M10, UG95 - [ ] SIMCom SIM5320, SIM5360, SIM5216 +- [ ] SIMCom SIM7020, SIM7100 - [ ] Telit GL865 - [ ] ZTE MG2639 - [ ] Hi-Link HLK-RM04 diff --git a/library.json b/library.json index 91b9eaa..8428499 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "TinyGSM", - "version": "0.7.0", + "version": "0.7.1", "description": "A small Arduino library for GPRS modules, that just works. Includes examples for Blynk, MQTT, File Download, and Web Client. Supports many GSM, LTE, and WiFi modules with AT command interfaces.", "keywords": "GSM, AT commands, AT, SIM800, SIM900, A6, A7, M590, ESP8266, SIM7000, SIM800A, SIM800C, SIM800L, SIM800H, SIM808, SIM868, SIM900A, SIM900D, SIM908, SIM968, M95, MC60, MC60E, BG96, ublox, Quectel, SIMCOM, AI Thinker, LTE, LTE-M", "authors": diff --git a/library.properties b/library.properties index 2a9c4d3..6b94145 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=TinyGSM -version=0.7.0 +version=0.7.1 author=Volodymyr Shymanskyy maintainer=Volodymyr Shymanskyy sentence=A small Arduino library for GPRS modules, that just works. diff --git a/src/TinyGsmCommon.h b/src/TinyGsmCommon.h index 4a439b4..205a824 100644 --- a/src/TinyGsmCommon.h +++ b/src/TinyGsmCommon.h @@ -10,7 +10,7 @@ #define TinyGsmCommon_h // The current library version number -#define TINYGSM_VERSION "0.7.0" +#define TINYGSM_VERSION "0.7.1" #if defined(SPARK) || defined(PARTICLE) #include "Particle.h" From 6ec6df6084a1cce62bbb6671c03015ae4606fec9 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 15:31:45 -0400 Subject: [PATCH 23/46] Minor example update --- examples/AllFunctions/AllFunctions.ino | 39 +++++++++- examples/BlynkClient/BlynkClient.ino | 4 +- examples/FileDownload/FileDownload.ino | 4 +- examples/HttpClient/HttpClient.ino | 5 +- examples/HttpsClient/HttpsClient.ino | 1 + examples/MqttClient/MqttClient.ino | 4 +- examples/WebClient/WebClient.ino | 100 ++++++++++++++----------- src/TinyGsmClient.h | 2 +- 8 files changed, 105 insertions(+), 54 deletions(-) diff --git a/examples/AllFunctions/AllFunctions.ino b/examples/AllFunctions/AllFunctions.ino index 7a417d1..ff44e08 100644 --- a/examples/AllFunctions/AllFunctions.ino +++ b/examples/AllFunctions/AllFunctions.ino @@ -10,11 +10,13 @@ **************************************************************/ // Select your modem: -//#define TINY_GSM_MODEM_SIM800 +#define TINY_GSM_MODEM_SIM800 // #define TINY_GSM_MODEM_SIM808 +// #define TINY_GSM_MODEM_SIM868 // #define TINY_GSM_MODEM_SIM900 -#define TINY_GSM_MODEM_SIM7000 +// #define TINY_GSM_MODEM_SIM7000 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_M95 // #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_A6 @@ -24,8 +26,9 @@ // #define TINY_GSM_MODEM_MC60E // #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SEQUANS_MONARCH -// Set serial for debug console (to the Serial Monitor, speed 115200) +// Set serial for debug console (to the Serial Monitor, default speed 115200) #define SerialMon Serial // Set serial for AT commands (to the module) @@ -36,10 +39,13 @@ //#include //SoftwareSerial SerialAT(2, 3); // RX, TX - +// See all AT commands, if wanted //#define DUMP_AT_COMMANDS + +// See the debugging, if wanted #define TINY_GSM_DEBUG SerialMon +// Range to attempt to autobaud #define GSM_AUTOBAUD_MIN 9600 #define GSM_AUTOBAUD_MAX 38400 @@ -47,6 +53,7 @@ * Test enabled */ #define TINY_GSM_USE_GPRS true +#define TINY_GSM_USE_WIFI false #define TINY_GSM_USE_CALL true #define TINY_GSM_USE_SMS true #define TINY_GSM_USE_USSD true @@ -65,6 +72,8 @@ const char apn[] = "YourAPN"; const char user[] = ""; const char pass[] = ""; +const char wifiSSID[] = "YourSSID"; +const char wifiPass[] = "SSIDpw"; #include @@ -82,11 +91,18 @@ void setup() { delay(10); // Set your reset, enable, power pins here + pinMode(20, OUTPUT); + digitalWrite(20, HIGH); + pinMode(23, OUTPUT); + digitalWrite(23, HIGH); + + DBG("Wait..."); delay(3000); // Set GSM module baud rate TinyGsmAutoBaud(SerialAT,GSM_AUTOBAUD_MIN,GSM_AUTOBAUD_MAX); + // SerialAT.begin(9600); } void loop() { @@ -111,6 +127,16 @@ void loop() { modem.simUnlock(GSM_PIN); } +#if TINY_GSM_USE_WIFI + SerialMon.print(F("Setting SSID/password...")); + if (!modem.networkConnect(wifiSSID, wifiPass)) { + SerialMon.println(" fail"); + delay(10000); + return; + } + SerialMon.println(" OK"); +#endif + DBG("Waiting for network..."); if (!modem.waitForNetwork()) { delay(10000); @@ -221,6 +247,11 @@ void loop() { } #endif +#if TINY_GSM_USE_WIFI + modem.networkDisconnect(); + DBG("WiFi disconnected"); +#endif + #if TINY_GSM_POWERDOWN // Try to power-off (modem may decide to restart automatically) // To turn off modem completely, please use Reset/Enable pins diff --git a/examples/BlynkClient/BlynkClient.ino b/examples/BlynkClient/BlynkClient.ino index 95f8163..8b17772 100644 --- a/examples/BlynkClient/BlynkClient.ino +++ b/examples/BlynkClient/BlynkClient.ino @@ -30,11 +30,12 @@ // Select your modem: #define TINY_GSM_MODEM_SIM800 -// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 +// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM7000 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_M95 // #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_A6 @@ -44,6 +45,7 @@ // #define TINY_GSM_MODEM_MC60E // #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SEQUANS_MONARCH #include #include diff --git a/examples/FileDownload/FileDownload.ino b/examples/FileDownload/FileDownload.ino index e42629a..966e2d7 100644 --- a/examples/FileDownload/FileDownload.ino +++ b/examples/FileDownload/FileDownload.ino @@ -15,11 +15,12 @@ // Select your modem: #define TINY_GSM_MODEM_SIM800 -// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 +// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM7000 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_M95 // #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_A6 @@ -29,6 +30,7 @@ // #define TINY_GSM_MODEM_MC60E // #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SEQUANS_MONARCH // Increase RX buffer if needed #define TINY_GSM_RX_BUFFER 1024 diff --git a/examples/HttpClient/HttpClient.ino b/examples/HttpClient/HttpClient.ino index f699167..25a622d 100644 --- a/examples/HttpClient/HttpClient.ino +++ b/examples/HttpClient/HttpClient.ino @@ -19,11 +19,12 @@ // Select your modem: #define TINY_GSM_MODEM_SIM800 -// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 +// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM7000 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_M95 // #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_A6 @@ -32,6 +33,8 @@ // #define TINY_GSM_MODEM_MC60 // #define TINY_GSM_MODEM_MC60E // #define TINY_GSM_MODEM_ESP8266 +// #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SEQUANS_MONARCH // Increase RX buffer to capture the entire response // Chips without internal buffering (A6/A7, ESP8266, M590) diff --git a/examples/HttpsClient/HttpsClient.ino b/examples/HttpsClient/HttpsClient.ino index 40287a1..0299805 100644 --- a/examples/HttpsClient/HttpsClient.ino +++ b/examples/HttpsClient/HttpsClient.ino @@ -21,6 +21,7 @@ // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_ESP8266 // Increase RX buffer to capture the entire response diff --git a/examples/MqttClient/MqttClient.ino b/examples/MqttClient/MqttClient.ino index b7bbd8d..1bea009 100644 --- a/examples/MqttClient/MqttClient.ino +++ b/examples/MqttClient/MqttClient.ino @@ -29,11 +29,12 @@ // Select your modem: #define TINY_GSM_MODEM_SIM800 -// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 +// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM7000 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_M95 // #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_A6 @@ -43,6 +44,7 @@ // #define TINY_GSM_MODEM_MC60E // #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SEQUANS_MONARCH #include #include diff --git a/examples/WebClient/WebClient.ino b/examples/WebClient/WebClient.ino index e773b81..314c3ad 100644 --- a/examples/WebClient/WebClient.ino +++ b/examples/WebClient/WebClient.ino @@ -10,11 +10,12 @@ // Select your modem: #define TINY_GSM_MODEM_SIM800 -// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 +// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM7000 // #define TINY_GSM_MODEM_UBLOX +// #define TINY_GSM_MODEM_SARAR4 // #define TINY_GSM_MODEM_M95 // #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_A6 @@ -24,21 +25,13 @@ // #define TINY_GSM_MODEM_MC60E // #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SEQUANS_MONARCH // Increase RX buffer if needed -//#define TINY_GSM_RX_BUFFER 512 - -// See the debugging, if wanted -//#define TINY_GSM_DEBUG Serial -//#define LOGGING +#define TINY_GSM_RX_BUFFER 512 // Add a reception delay, if needed -//#define TINY_GSM_YIELD() { delay(1); } - -#include - -// Uncomment this if you want to see all AT commands -//#define DUMP_AT_COMMANDS +#define TINY_GSM_YIELD() { delay(1); } // Uncomment this if you want to use SSL //#define USE_SSL @@ -46,6 +39,7 @@ // Set serial for debug console (to the Serial Monitor, default speed 115200) #define SerialMon Serial +// Set serial for AT commands (to the module) // Use Hardware Serial on Mega, Leonardo, Micro #define SerialAT Serial1 @@ -53,6 +47,21 @@ //#include //SoftwareSerial SerialAT(2, 3); // RX, TX +// See all AT commands, if wanted +//#define DUMP_AT_COMMANDS + +// See the debugging, if wanted +#define TINY_GSM_DEBUG SerialMon + +// Range to attempt to autobaud +#define GSM_AUTOBAUD_MIN 9600 +#define GSM_AUTOBAUD_MAX 38400 + +#define TINY_GSM_USE_GPRS true +#define TINY_GSM_USE_WIFI false + +// set GSM PIN, if any +#define GSM_PIN "" // Your GPRS credentials // Leave empty, if missing user or pass @@ -66,6 +75,8 @@ const char wifiPass[] = "SSIDpw"; const char server[] = "vsh.pp.ua"; const char resource[] = "/TinyGSM/logo.txt"; +#include + #ifdef DUMP_AT_COMMANDS #include StreamDebugger debugger(SerialAT, SerialMon); @@ -86,22 +97,28 @@ void setup() { // Set console baud rate SerialMon.begin(115200); delay(10); - SerialMon.println(F("Wait...")); + + // Set your reset, enable, power pins here + pinMode(20, OUTPUT); + digitalWrite(20, HIGH); pinMode(23, OUTPUT); - digitalWrite(23, LOW); + digitalWrite(23, HIGH); + + SerialMon.println("Wait..."); + delay(3000); // Set GSM module baud rate + // TinyGsmAutoBaud(SerialAT,GSM_AUTOBAUD_MIN,GSM_AUTOBAUD_MAX); SerialAT.begin(9600); - delay(3000); // Restart takes quite some time // To skip it, call init() instead of restart() - SerialMon.println(F("Initializing modem...")); + SerialMon.println("Initializing modem..."); modem.restart(); String modemInfo = modem.getModemInfo(); - SerialMon.print(F("Modem: ")); + SerialMon.print("Modem: "); SerialMon.println(modemInfo); // Unlock your SIM card with a PIN @@ -110,34 +127,27 @@ void setup() { void loop() { - if (modem.hasWifi()) { - SerialMon.print(F("Setting SSID/password...")); - if (!modem.networkConnect(wifiSSID, wifiPass)) { - SerialMon.println(" fail"); - delay(10000); - return; - } - SerialMon.println(" OK"); - } - else if (modem.getModemName().indexOf("XBee") >= 0) { - SerialMon.print(F("Setting APN")); - if (!modem.gprsConnect(apn)) { - SerialMon.println(" fail"); - delay(10000); - return; - } - SerialMon.println(" OK"); - } - - SerialMon.print(F("Waiting for network...")); - if (!modem.waitForNetwork()) { +#if TINY_GSM_USE_WIFI + SerialMon.print(F("Setting SSID/password...")); + if (!modem.networkConnect(wifiSSID, wifiPass)) { SerialMon.println(" fail"); delay(10000); return; } SerialMon.println(" OK"); +#endif - if (modem.hasGPRS()) { + SerialMon.print("Waiting for network..."); + if (!modem.waitForNetwork()) { + delay(10000); + return; + } + + if (modem.isNetworkConnected()) { + SerialMon.print("Network connected"); + } + +#if TINY_GSM_USE_GPRS SerialMon.print(F("Connecting to ")); SerialMon.print(apn); if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { @@ -146,9 +156,9 @@ void loop() { return; } SerialMon.println(" OK"); - } +#endif - SerialMon.print(F("Connecting to ")); + SerialMon.print("Connecting to "); SerialMon.print(server); if (!client.connect(server, port)) { SerialMon.println(" fail"); @@ -178,14 +188,14 @@ void loop() { client.stop(); SerialMon.println(F("Server disconnected")); - if (modem.hasWifi()) { +#if TINY_GSM_USE_WIFI modem.networkDisconnect(); SerialMon.println(F("WiFi disconnected")); - } - else { +#endif +#if TINY_GSM_USE_GPRS modem.gprsDisconnect(); SerialMon.println(F("GPRS disconnected")); - } +#endif // Do nothing forevermore while (true) { diff --git a/src/TinyGsmClient.h b/src/TinyGsmClient.h index 40c1d97..cb18c82 100644 --- a/src/TinyGsmClient.h +++ b/src/TinyGsmClient.h @@ -52,7 +52,7 @@ #define TINY_GSM_MODEM_HAS_GPRS #define TINY_GSM_MODEM_HAS_SSL #include - typedef TinyGsmUBLOX TinyGsm; + typedef TinyGsmSaraR4 TinyGsm; typedef TinyGsmSaraR4::GsmClient TinyGsmClient; typedef TinyGsmSaraR4::GsmClientSecure TinyGsmClientSecure; From 541153587056589a217d8b416c197a9a4f2ae140 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 15:45:58 -0400 Subject: [PATCH 24/46] Fix XBee --- src/TinyGsmClientXBee.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index 7a1a671..4797ad6 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -168,7 +168,7 @@ public: cnt += chunk; continue; } - /* TODO: Read directly into user buffer? */ + // TODO: Read directly into user buffer? if (!rx.size() || at->stream.available()) { at->maintain(); } From 70ca06dc9dabd85058643ec8d63e2ee34fbd4886 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 16:40:01 -0400 Subject: [PATCH 25/46] Moved begin above init, reset historic buffer sizes --- examples/HttpClient/HttpClient.ino | 62 +++++++++++++++++++--------- examples/HttpsClient/HttpsClient.ino | 62 +++++++++++++++++++--------- examples/WebClient/WebClient.ino | 8 ++-- src/TinyGsmClientA6.h | 13 ++++-- src/TinyGsmClientBG96.h | 13 ++++-- src/TinyGsmClientESP8266.h | 17 ++++---- src/TinyGsmClientM590.h | 13 ++++-- src/TinyGsmClientM95.h | 13 ++++-- src/TinyGsmClientMC60.h | 13 ++++-- src/TinyGsmClientSIM7000.h | 11 +++-- src/TinyGsmClientSIM800.h | 14 +++++-- src/TinyGsmClientSaraR4.h | 12 ++++-- src/TinyGsmClientSequansMonarch.h | 9 ++-- src/TinyGsmClientUBLOX.h | 12 ++++-- src/TinyGsmClientXBee.h | 10 +++-- src/TinyGsmCommon.h | 4 -- 16 files changed, 189 insertions(+), 97 deletions(-) diff --git a/examples/HttpClient/HttpClient.ino b/examples/HttpClient/HttpClient.ino index 25a622d..9f8d107 100644 --- a/examples/HttpClient/HttpClient.ino +++ b/examples/HttpClient/HttpClient.ino @@ -42,6 +42,9 @@ // else data will be lost (and the http library will fail). #define TINY_GSM_RX_BUFFER 650 +// See all AT commands, if wanted +//#define DUMP_AT_COMMANDS + // See the debugging, if wanted //#define TINY_GSM_DEBUG Serial //#define LOGGING @@ -52,12 +55,10 @@ #include #include -// Uncomment this if you want to see all AT commands -//#define DUMP_AT_COMMANDS - // Set serial for debug console (to the Serial Monitor, default speed 115200) #define SerialMon Serial +// Set serial for AT commands (to the module) // Use Hardware Serial on Mega, Leonardo, Micro #define SerialAT Serial1 @@ -65,6 +66,11 @@ //#include //SoftwareSerial SerialAT(2, 3); // RX, TX +#define TINY_GSM_USE_GPRS true +#define TINY_GSM_USE_WIFI false + +// set GSM PIN, if any +#define GSM_PIN "" // Your GPRS credentials // Leave empty, if missing user or pass @@ -94,7 +100,15 @@ void setup() { // Set console baud rate SerialMon.begin(115200); delay(10); - SerialMon.println(F("Wait...")); + + // Set your reset, enable, power pins here + pinMode(20, OUTPUT); + digitalWrite(20, HIGH); + + pinMode(23, OUTPUT); + digitalWrite(23, HIGH); + + SerialMon.println("Wait..."); // Set GSM module baud rate SerialAT.begin(115200); @@ -102,11 +116,11 @@ void setup() { // Restart takes quite some time // To skip it, call init() instead of restart() - SerialMon.println(F("Initializing modem...")); + SerialMon.println("Initializing modem..."); modem.restart(); String modemInfo = modem.getModemInfo(); - SerialMon.print(F("Modem: ")); + SerialMon.print("Modem: "); SerialMon.println(modemInfo); // Unlock your SIM card with a PIN @@ -115,17 +129,17 @@ void setup() { void loop() { - if (modem.hasWifi()) { - SerialMon.print(F("Setting SSID/password...")); - if (!modem.networkConnect(wifiSSID, wifiPass)) { - SerialMon.println(" fail"); - delay(10000); - return; - } - SerialMon.println(" OK"); +#if TINY_GSM_USE_WIFI + SerialMon.print(F("Setting SSID/password...")); + if (!modem.networkConnect(wifiSSID, wifiPass)) { + SerialMon.println(" fail"); + delay(10000); + return; } + SerialMon.println(" OK"); +#endif - SerialMon.print(F("Waiting for network...")); + SerialMon.print("Waiting for network..."); if (!modem.waitForNetwork()) { SerialMon.println(" fail"); delay(10000); @@ -133,7 +147,11 @@ void loop() { } SerialMon.println(" OK"); - if (modem.hasGPRS()) { + if (modem.isNetworkConnected()) { + SerialMon.print("Network connected"); + } + +#if TINY_GSM_USE_GPRS SerialMon.print(F("Connecting to ")); SerialMon.print(apn); if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { @@ -142,7 +160,7 @@ void loop() { return; } SerialMon.println(" OK"); - } +#endif SerialMon.print(F("Performing HTTP GET request... ")); int err = http.get(resource); @@ -188,8 +206,14 @@ void loop() { http.stop(); SerialMon.println(F("Server disconnected")); - modem.gprsDisconnect(); - SerialMon.println(F("GPRS disconnected")); +#if TINY_GSM_USE_WIFI + modem.networkDisconnect(); + SerialMon.println(F("WiFi disconnected")); +#endif +#if TINY_GSM_USE_GPRS + modem.gprsDisconnect(); + SerialMon.println(F("GPRS disconnected")); +#endif // Do nothing forevermore while (true) { diff --git a/examples/HttpsClient/HttpsClient.ino b/examples/HttpsClient/HttpsClient.ino index 0299805..324e5c2 100644 --- a/examples/HttpsClient/HttpsClient.ino +++ b/examples/HttpsClient/HttpsClient.ino @@ -30,6 +30,9 @@ // else data will be lost (and the http library will fail). #define TINY_GSM_RX_BUFFER 650 +// See all AT commands, if wanted +//#define DUMP_AT_COMMANDS + // See the debugging, if wanted //#define TINY_GSM_DEBUG Serial //#define LOGGING @@ -40,12 +43,10 @@ #include #include -// Uncomment this if you want to see all AT commands -//#define DUMP_AT_COMMANDS - // Set serial for debug console (to the Serial Monitor, default speed 115200) #define SerialMon Serial +// Set serial for AT commands (to the module) // Use Hardware Serial on Mega, Leonardo, Micro #define SerialAT Serial1 @@ -53,6 +54,11 @@ //#include //SoftwareSerial SerialAT(2, 3); // RX, TX +#define TINY_GSM_USE_GPRS true +#define TINY_GSM_USE_WIFI false + +// set GSM PIN, if any +#define GSM_PIN "" // Your GPRS credentials // Leave empty, if missing user or pass @@ -82,7 +88,15 @@ void setup() { // Set console baud rate SerialMon.begin(115200); delay(10); - SerialMon.println(F("Wait...")); + + // Set your reset, enable, power pins here + pinMode(20, OUTPUT); + digitalWrite(20, HIGH); + + pinMode(23, OUTPUT); + digitalWrite(23, HIGH); + + SerialMon.println("Wait..."); // Set GSM module baud rate SerialAT.begin(115200); @@ -90,11 +104,11 @@ void setup() { // Restart takes quite some time // To skip it, call init() instead of restart() - SerialMon.println(F("Initializing modem...")); + SerialMon.println("Initializing modem..."); modem.restart(); String modemInfo = modem.getModemInfo(); - SerialMon.print(F("Modem: ")); + SerialMon.print("Modem: "); SerialMon.println(modemInfo); // Unlock your SIM card with a PIN @@ -108,17 +122,17 @@ void setup() { void loop() { - if (modem.hasWifi()) { - SerialMon.print(F("Setting SSID/password...")); - if (!modem.networkConnect(wifiSSID, wifiPass)) { - SerialMon.println(" fail"); - delay(10000); - return; - } - SerialMon.println(" OK"); +#if TINY_GSM_USE_WIFI + SerialMon.print(F("Setting SSID/password...")); + if (!modem.networkConnect(wifiSSID, wifiPass)) { + SerialMon.println(" fail"); + delay(10000); + return; } + SerialMon.println(" OK"); +#endif - SerialMon.print(F("Waiting for network...")); + SerialMon.print("Waiting for network..."); if (!modem.waitForNetwork()) { SerialMon.println(" fail"); delay(10000); @@ -126,7 +140,11 @@ void loop() { } SerialMon.println(" OK"); - if (modem.hasGPRS()) { + if (modem.isNetworkConnected()) { + SerialMon.print("Network connected"); + } + +#if TINY_GSM_USE_GPRS SerialMon.print(F("Connecting to ")); SerialMon.print(apn); if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { @@ -135,7 +153,7 @@ void loop() { return; } SerialMon.println(" OK"); - } +#endif SerialMon.print(F("Performing HTTPS GET request... ")); http.connectionKeepAlive(); // Currently, this is needed for HTTPS @@ -182,8 +200,14 @@ void loop() { http.stop(); SerialMon.println(F("Server disconnected")); - modem.gprsDisconnect(); - SerialMon.println(F("GPRS disconnected")); +#if TINY_GSM_USE_WIFI + modem.networkDisconnect(); + SerialMon.println(F("WiFi disconnected")); +#endif +#if TINY_GSM_USE_GPRS + modem.gprsDisconnect(); + SerialMon.println(F("GPRS disconnected")); +#endif // Do nothing forevermore while (true) { diff --git a/examples/WebClient/WebClient.ino b/examples/WebClient/WebClient.ino index 314c3ad..2109d58 100644 --- a/examples/WebClient/WebClient.ino +++ b/examples/WebClient/WebClient.ino @@ -9,7 +9,7 @@ **************************************************************/ // Select your modem: -#define TINY_GSM_MODEM_SIM800 +// #define TINY_GSM_MODEM_SIM800 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 // #define TINY_GSM_MODEM_SIM900 @@ -65,7 +65,7 @@ // Your GPRS credentials // Leave empty, if missing user or pass -const char apn[] = "YourAPN"; +const char apn[] = "hologram"; const char gprsUser[] = ""; const char gprsPass[] = ""; const char wifiSSID[] = "YourSSID"; @@ -106,11 +106,11 @@ void setup() { digitalWrite(23, HIGH); SerialMon.println("Wait..."); - delay(3000); // Set GSM module baud rate // TinyGsmAutoBaud(SerialAT,GSM_AUTOBAUD_MIN,GSM_AUTOBAUD_MAX); SerialAT.begin(9600); + delay(3000); // Restart takes quite some time // To skip it, call init() instead of restart() @@ -139,9 +139,11 @@ void loop() { SerialMon.print("Waiting for network..."); if (!modem.waitForNetwork()) { + SerialMon.println(" fail"); delay(10000); return; } + SerialMon.println(" OK"); if (modem.isNetworkConnected()) { SerialMon.print("Network connected"); diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index 9af1038..42f5265 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -12,6 +12,10 @@ //#define TINY_GSM_DEBUG Serial +#if !defined(TINY_GSM_RX_BUFFER) + #define TINY_GSM_RX_BUFFER 256 +#endif + #define TINY_GSM_MUX_COUNT 8 #include @@ -119,6 +123,10 @@ public: * Basic functions */ + bool begin(const char* pin = NULL) { + return init(pin); + } + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { @@ -137,10 +145,6 @@ public: return true; } - bool begin(const char* pin = NULL) { - return init(pin); - } - String getModemName() { #if defined(TINY_GSM_MODEM_A6) return "AI-Thinker A6"; @@ -269,6 +273,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions */ + bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { gprsDisconnect(); diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index 5907dea..49e4427 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -13,6 +13,10 @@ //#define TINY_GSM_DEBUG Serial //#define TINY_GSM_USE_HEX +#if !defined(TINY_GSM_RX_BUFFER) + #define TINY_GSM_RX_BUFFER 64 +#endif + #define TINY_GSM_MUX_COUNT 12 #include @@ -152,6 +156,10 @@ public: * Basic functions */ + bool begin(const char* pin = NULL) { + return init(pin); + } + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { @@ -166,10 +174,6 @@ public: return true; } - bool begin(const char* pin = NULL) { - return init(pin); - } - String getModemName() { return "Quectel BG96"; } @@ -292,6 +296,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions */ + bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { gprsDisconnect(); diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index 9fb0866..685493d 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -12,6 +12,10 @@ //#define TINY_GSM_DEBUG Serial +#if !defined(TINY_GSM_RX_BUFFER) + #define TINY_GSM_RX_BUFFER 512 +#endif + #define TINY_GSM_MUX_COUNT 5 #include @@ -119,10 +123,6 @@ public: TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux, true); - // sock_connected = at->modemConnect(host, port, &mux); - // at->sockets[mux] = this; - // ^^ TODO: attach the socket after attempting connection or above at init? - // Currently done inconsistently between modems return sock_connected; } }; @@ -140,6 +140,10 @@ public: * Basic functions */ + bool begin(const char* pin = NULL) { + return init(pin); + } + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { @@ -161,10 +165,6 @@ public: return true; } - bool begin(const char* pin = NULL) { - return init(pin); - } - String getModemName() { return "ESP8266"; } @@ -289,6 +289,7 @@ TINY_GSM_MODEM_MAINTAIN_LISTEN() /* * 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) { diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index e9e232a..2530525 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -12,6 +12,10 @@ //#define TINY_GSM_DEBUG Serial +#if !defined(TINY_GSM_RX_BUFFER) + #define TINY_GSM_RX_BUFFER 256 +#endif + #define TINY_GSM_MUX_COUNT 2 #include @@ -117,6 +121,10 @@ public: * Basic functions */ + bool begin(const char* pin = NULL) { + return init(pin); + } + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { @@ -135,10 +143,6 @@ public: return true; } - bool begin(const char* pin = NULL) { - return init(pin); - } - String getModemName() { return "Neoway M590"; } @@ -254,6 +258,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions */ + bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { gprsDisconnect(); diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index d5e6431..87dc3e0 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -13,6 +13,10 @@ //#define TINY_GSM_DEBUG Serial //#define TINY_GSM_USE_HEX +#if !defined(TINY_GSM_RX_BUFFER) + #define TINY_GSM_RX_BUFFER 64 +#endif + #define TINY_GSM_MUX_COUNT 6 #include @@ -152,6 +156,10 @@ public: * Basic functions */ + bool begin(const char* pin = NULL) { + return init(pin); + } + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { @@ -170,10 +178,6 @@ public: return true; } - bool begin(const char* pin = NULL) { - return init(pin); - } - String getModemName() { return "Quectel M95"; } @@ -309,6 +313,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions */ + bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { gprsDisconnect(); diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 47976f2..0157f53 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -16,6 +16,10 @@ //#define TINY_GSM_DEBUG Serial //#define TINY_GSM_USE_HEX +#if !defined(TINY_GSM_RX_BUFFER) + #define TINY_GSM_RX_BUFFER 64 +#endif + #define TINY_GSM_MUX_COUNT 6 #include @@ -156,6 +160,10 @@ public: * Basic functions */ + bool begin(const char* pin = NULL) { + return init(pin); + } + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { @@ -172,10 +180,6 @@ public: return true; } - bool begin(const char* pin = NULL) { - return init(pin); - } - String getModemName() { #if defined(TINY_GSM_MODEM_MC60) return "Quectel MC60"; @@ -315,6 +319,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions */ + bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { gprsDisconnect(); diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 8474816..ff25f1e 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -165,6 +165,10 @@ public: * Basic functions */ + bool begin(const char* pin = NULL) { + return init(pin); + } + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { @@ -179,10 +183,6 @@ public: return true; } - bool begin(const char* pin = NULL) { - return init(pin); - } - String getModemName() { return "SIMCom SIM7000"; } @@ -352,6 +352,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions */ + bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { gprsDisconnect(); @@ -656,6 +657,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * Time functions */ + String getGSMDateTime(TinyGSMDateTimeFormat format) { sendAT(GF("+CCLK?")); if (waitResponse(2000L, GF(GSM_NL "+CCLK: \"")) != 1) { @@ -729,6 +731,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * Battery functions */ + // Use: float vBatt = modem.getBattVoltage() / 1000.0; uint16_t getBattVoltage() { sendAT(GF("+CBC")); diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index e417bce..76dd497 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -13,6 +13,10 @@ //#define TINY_GSM_DEBUG Serial //#define TINY_GSM_USE_HEX +#if !defined(TINY_GSM_RX_BUFFER) + #define TINY_GSM_RX_BUFFER 64 +#endif + #define TINY_GSM_MUX_COUNT 5 #include @@ -162,6 +166,10 @@ public: * Basic functions */ + bool begin(const char* pin = NULL) { + return init(pin); + } + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { @@ -178,10 +186,6 @@ public: return true; } - bool begin(const char* pin = NULL) { - return init(pin); - } - String getModemName() { #if defined(TINY_GSM_MODEM_SIM800) return "SIMCom SIM800"; @@ -339,6 +343,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions */ + bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { gprsDisconnect(); @@ -621,6 +626,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * Time functions */ + String getGSMDateTime(TinyGSMDateTimeFormat format) { sendAT(GF("+CCLK?")); if (waitResponse(2000L, GF(GSM_NL "+CCLK: \"")) != 1) { diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index 6220711..197000c 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -12,6 +12,10 @@ //#define TINY_GSM_DEBUG Serial +#if !defined(TINY_GSM_RX_BUFFER) + #define TINY_GSM_RX_BUFFER 64 +#endif + #define TINY_GSM_MUX_COUNT 7 #include @@ -181,6 +185,10 @@ public: * Basic functions */ + bool begin(const char* pin = NULL) { + return init(pin); + } + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { @@ -212,10 +220,6 @@ public: } } - bool begin(const char* pin = NULL) { - return init(pin); - } - String getModemName() { sendAT(GF("+CGMI")); String res1; diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 516fb61..720653a 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -194,6 +194,10 @@ public: * Basic functions */ + bool begin(const char* pin = NULL) { + return init(pin); + } + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { @@ -207,10 +211,6 @@ public: return true; } - bool begin(const char* pin = NULL) { - return init(pin); - } - String getModemName() { return "Sequans Monarch"; } @@ -361,6 +361,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* * GPRS functions */ + bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { gprsDisconnect(); diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index ec43e8b..bc5b961 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -12,6 +12,10 @@ //#define TINY_GSM_DEBUG Serial +#if !defined(TINY_GSM_RX_BUFFER) + #define TINY_GSM_RX_BUFFER 64 +#endif + #define TINY_GSM_MUX_COUNT 7 #include @@ -165,6 +169,10 @@ public: * Basic functions */ + bool begin(const char* pin = NULL) { + return init(pin); + } + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); if (!testAT()) { @@ -196,10 +204,6 @@ public: } } - bool begin(const char* pin = NULL) { - return init(pin); - } - String getModemName() { sendAT(GF("+CGMI")); String res1; diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index 4797ad6..63a8003 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -282,6 +282,10 @@ public: * Basic functions */ + bool begin(const char* pin = NULL) { + return init(pin); + } + bool init(const char* pin = NULL) { DBG(GF("### TinyGSM Version:"), TINYGSM_VERSION); @@ -307,10 +311,6 @@ public: return ret_val; } - bool begin(const char* pin = NULL) { - return init(pin); - } - String getModemName() { return getBeeName(); } @@ -672,6 +672,7 @@ public: /* * WiFi functions */ + bool networkConnect(const char* ssid, const char* pwd) { if (!commandMode()) return false; // return immediately @@ -730,6 +731,7 @@ public: /* * GPRS functions */ + bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { if (!commandMode()) return false; // Return immediately sendAT(GF("AN"), apn); // Set the APN diff --git a/src/TinyGsmCommon.h b/src/TinyGsmCommon.h index 205a824..70667e5 100644 --- a/src/TinyGsmCommon.h +++ b/src/TinyGsmCommon.h @@ -34,10 +34,6 @@ #define TINY_GSM_YIELD() { delay(0); } #endif -#if !defined(TINY_GSM_RX_BUFFER) - #define TINY_GSM_RX_BUFFER 64 -#endif - #define TINY_GSM_ATTR_NOT_AVAILABLE __attribute__((error("Not available on this modem type"))) #define TINY_GSM_ATTR_NOT_IMPLEMENTED __attribute__((error("Not implemented"))) From 6cf9ed3ae639deb38dfd1f0e27d3cad30f863f18 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 16:48:34 -0400 Subject: [PATCH 26/46] Default webclient buffer --- examples/WebClient/WebClient.ino | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/WebClient/WebClient.ino b/examples/WebClient/WebClient.ino index 2109d58..485081d 100644 --- a/examples/WebClient/WebClient.ino +++ b/examples/WebClient/WebClient.ino @@ -28,10 +28,10 @@ // #define TINY_GSM_MODEM_SEQUANS_MONARCH // Increase RX buffer if needed -#define TINY_GSM_RX_BUFFER 512 +// #define TINY_GSM_RX_BUFFER 512 // Add a reception delay, if needed -#define TINY_GSM_YIELD() { delay(1); } +// #define TINY_GSM_YIELD() { delay(1); } // Uncomment this if you want to use SSL //#define USE_SSL @@ -51,7 +51,7 @@ //#define DUMP_AT_COMMANDS // See the debugging, if wanted -#define TINY_GSM_DEBUG SerialMon +// #define TINY_GSM_DEBUG SerialMon // Range to attempt to autobaud #define GSM_AUTOBAUD_MIN 9600 From b70de126f51e202e7a9db56249af69ef11c8d531 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 16:50:08 -0400 Subject: [PATCH 27/46] Webclient needs a modem --- examples/WebClient/WebClient.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/WebClient/WebClient.ino b/examples/WebClient/WebClient.ino index 485081d..3b4b92d 100644 --- a/examples/WebClient/WebClient.ino +++ b/examples/WebClient/WebClient.ino @@ -9,7 +9,7 @@ **************************************************************/ // Select your modem: -// #define TINY_GSM_MODEM_SIM800 +#define TINY_GSM_MODEMs_SIM800 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 // #define TINY_GSM_MODEM_SIM900 From 96c1fed3ef8afed0778ddc61aaa31d51f91e2559 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Fri, 17 May 2019 17:15:31 -0400 Subject: [PATCH 28/46] Typo --- examples/WebClient/WebClient.ino | 4 ++-- src/TinyGsmClientSIM7000.h | 3 --- src/TinyGsmClientSIM800.h | 4 ---- src/TinyGsmClientSaraR4.h | 7 +++++-- src/TinyGsmClientUBLOX.h | 7 +++++-- 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/examples/WebClient/WebClient.ino b/examples/WebClient/WebClient.ino index 3b4b92d..53095ef 100644 --- a/examples/WebClient/WebClient.ino +++ b/examples/WebClient/WebClient.ino @@ -9,7 +9,7 @@ **************************************************************/ // Select your modem: -#define TINY_GSM_MODEMs_SIM800 +#define TINY_GSM_MODEM_SIM800 // #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM868 // #define TINY_GSM_MODEM_SIM900 @@ -65,7 +65,7 @@ // Your GPRS credentials // Leave empty, if missing user or pass -const char apn[] = "hologram"; +const char apn[] = "YourAPN"; const char gprsUser[] = ""; const char gprsPass[] = ""; const char wifiSSID[] = "YourSSID"; diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index ff25f1e..3abeae3 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -145,9 +145,6 @@ public: TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux, true); - // sock_connected = at->modemConnect(host, port, &mux, true); - // at->sockets[mux] = this; - // TODO: When is the socket attached? return sock_connected; } }; diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 76dd497..6a6fd51 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -146,9 +146,6 @@ public: TINY_GSM_YIELD(); rx.clear(); sock_connected = at->modemConnect(host, port, mux, true); - // sock_connected = at->modemConnect(host, port, &mux, true); - // at->sockets[mux] = this; - // TODO: When is the socket attached? return sock_connected; } }; @@ -483,7 +480,6 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() return TinyGsmIpFromString(getLocalIP()); } - /* * Phone Call functions */ diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index 197000c..8f628fc 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -163,10 +163,13 @@ public: stop(); TINY_GSM_YIELD(); rx.clear(); - // sock_connected = at->modemConnect(host, port, mux, true); + uint8_t oldMux = mux; sock_connected = at->modemConnect(host, port, &mux, true); + if (mux != oldMux) { + DBG("WARNING: Mux number changed from", oldMux, "to", mux); + at->sockets[oldMux] = NULL; + } at->sockets[mux] = this; - // TODO: When is the socket attached? at->maintain(); return sock_connected; } diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index bc5b961..74c0206 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -147,10 +147,13 @@ public: stop(); TINY_GSM_YIELD(); rx.clear(); - // sock_connected = at->modemConnect(host, port, mux, true); + uint8_t oldMux = mux; sock_connected = at->modemConnect(host, port, &mux, true); + if (mux != oldMux) { + DBG("WARNING: Mux number changed from", oldMux, "to", mux); + at->sockets[oldMux] = NULL; + } at->sockets[mux] = this; - // TODO: When is the socket attached? at->maintain(); return sock_connected; } From 4ba8306880ba5da727d69581ce60339030349524 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Mon, 20 May 2019 09:21:08 -0400 Subject: [PATCH 29/46] Implement connect with timeout, XBee improvements --- .travis.yml | 40 ++--- src/TinyGsmClientA6.h | 15 +- src/TinyGsmClientBG96.h | 16 +- src/TinyGsmClientESP8266.h | 19 ++- src/TinyGsmClientM590.h | 10 +- src/TinyGsmClientM95.h | 16 +- src/TinyGsmClientMC60.h | 16 +- src/TinyGsmClientSIM7000.h | 16 +- src/TinyGsmClientSIM800.h | 16 +- src/TinyGsmClientSaraR4.h | 16 +- src/TinyGsmClientSequansMonarch.h | 28 ++- src/TinyGsmClientUBLOX.h | 16 +- src/TinyGsmClientXBee.h | 275 +++++++++++++++++------------- src/TinyGsmCommon.h | 12 +- 14 files changed, 275 insertions(+), 236 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4399f45..4e2ef4f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,33 +18,19 @@ env: - PLATFORMIO_CI_SRC=tools/FactoryReset # Arduino test - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_A6' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_BG96' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_ESP8266' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M95' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M590' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_MC60' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM800' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM808' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM7000' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_UBLOX' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SARAR4' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_XBEE' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - # - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SEQUANS_MONARCH' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" - - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_A6' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_BG96' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_ESP8266' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M95' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M590' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_MC60' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM800' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM808' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM7000' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_UBLOX' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SARAR4' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_XBEE' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" - - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SEQUANS_MONARCH' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_A6' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_BG96' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_ESP8266' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M95' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M590' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_MC60' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM800' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM808' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM7000' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_UBLOX' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SARAR4' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_XBEE' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" + - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SEQUANS_MONARCH' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev" # Energia test - PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_A6' --project-option='framework=energia' --board=lplm4f120h5qr" diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index 42f5265..1883145 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -66,12 +66,12 @@ public: } public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); uint8_t newMux = -1; - sock_connected = at->modemConnect(host, port, &newMux); + sock_connected = at->modemConnect(host, port, &newMux, timeout) if (sock_connected) { mux = newMux; at->sockets[mux] = this; @@ -79,7 +79,7 @@ public: return sock_connected; } -TINY_GSM_CLIENT_CONNECT_TO_IP() +TINY_GSM_CLIENT_CONNECT_OVERLOADS() virtual void stop() { TINY_GSM_YIELD(); @@ -504,15 +504,16 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t* mux) { - sendAT(GF("+CIPSTART="), GF("\"TCP"), GF("\",\""), host, GF("\","), port); + bool modemConnect(const char* host, uint16_t port, uint8_t* mux, int timeout = 75000L) { + unsigned long startMillis = millis(); - if (waitResponse(75000L, GF(GSM_NL "+CIPNUM:")) != 1) { + sendAT(GF("+CIPSTART="), GF("\"TCP"), GF("\",\""), host, GF("\","), port); + if (waitResponse(timeout, GF(GSM_NL "+CIPNUM:")) != 1) { return false; } int newMux = stream.readStringUntil('\n').toInt(); - int rsp = waitResponse(75000L, + int rsp = waitResponse((timeout - (millis() - startMillis)), GF("CONNECT OK" GSM_NL), GF("CONNECT FAIL" GSM_NL), GF("ALREADY CONNECT" GSM_NL)); diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index 49e4427..00c7543 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -71,15 +71,15 @@ public: } public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux); + sock_connected = at->modemConnect(host, port, mux, timeout); return sock_connected; } -TINY_GSM_CLIENT_CONNECT_TO_IP() +TINY_GSM_CLIENT_CONNECT_OVERLOADS() virtual void stop() { TINY_GSM_YIELD(); @@ -134,11 +134,11 @@ private: // {} // // public: -// virtual int connect(const char *host, uint16_t port) { +// virtual int connect(const char *host, uint16_t port, int timeout) { // stop(); // TINY_GSM_YIELD(); // rx.clear(); -// sock_connected = at->modemConnect(host, port, mux, true); +// sock_connected = at->modemConnect(host, port, mux, true, timeout); // return sock_connected; // } // }; @@ -470,14 +470,16 @@ TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) { + bool modemConnect(const char* host, uint16_t port, uint8_t mux, + bool ssl = false, int timeout = 20000L) + { int rsp; // (1-16), (0-11),"TCP/UDP/TCP LISTENER/UDP SERVICE", // "/",,,(0-2 0=buffer) sendAT(GF("+QIOPEN=1,"), mux, ',', GF("\"TCP"), GF("\",\""), host, GF("\","), port, GF(",0,0")); rsp = waitResponse(); - if (waitResponse(20000L, GF(GSM_NL "+QIOPEN:")) != 1) { + if (waitResponse(timeout, GF(GSM_NL "+QIOPEN:")) != 1) { return false; } diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index 685493d..77737fc 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -68,15 +68,15 @@ public: } public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux); + sock_connected = at->modemConnect(host, port, mux, timeout); return sock_connected; } -TINY_GSM_CLIENT_CONNECT_TO_IP() +TINY_GSM_CLIENT_CONNECT_OVERLOADS() virtual void stop() { TINY_GSM_YIELD(); @@ -118,11 +118,11 @@ public: {} public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, true); + sock_connected = at->modemConnect(host, port, mux, true, timeout); return sock_connected; } }; @@ -331,14 +331,17 @@ TINY_GSM_MODEM_MAINTAIN_LISTEN() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) { + bool modemConnect(const char* host, uint16_t port, uint8_t mux, + bool ssl = false, int timeout = 75000L) + { if (ssl) { sendAT(GF("+CIPSSLSIZE=4096")); waitResponse(); } - sendAT(GF("+CIPSTART="), mux, ',', ssl ? GF("\"SSL") : GF("\"TCP"), GF("\",\""), host, GF("\","), port, GF(","), TINY_GSM_TCP_KEEP_ALIVE); + sendAT(GF("+CIPSTART="), mux, ',', ssl ? GF("\"SSL") : GF("\"TCP"), + GF("\",\""), host, GF("\","), port, GF(","), TINY_GSM_TCP_KEEP_ALIVE); // TODO: Check mux - int rsp = waitResponse(75000L, + int rsp = waitResponse(timeout, GFP(GSM_OK), GFP(GSM_ERROR), GF("ALREADY CONNECT")); diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index 2530525..941c462 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -68,16 +68,16 @@ public: } public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux); + sock_connected = at->modemConnect(host, port, mux, timeout); return sock_connected; } -TINY_GSM_CLIENT_CONNECT_TO_IP() +TINY_GSM_CLIENT_CONNECT_OVERLOADS() virtual void stop() { TINY_GSM_YIELD(); @@ -413,12 +413,12 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t mux) { + bool modemConnect(const char* host, uint16_t port, uint8_t mux, int timeout = 75000L) { for (int i=0; i<3; i++) { // TODO: no need for loop? String ip = dnsIpQuery(host); sendAT(GF("+TCPSETUP="), mux, GF(","), ip, GF(","), port); - int rsp = waitResponse(75000L, + int rsp = waitResponse(timeout, GF(",OK" GSM_NL), GF(",FAIL" GSM_NL), GF("+TCPSETUP:Error" GSM_NL)); diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 87dc3e0..e45bc46 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -71,15 +71,15 @@ public: } public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux); + sock_connected = at->modemConnect(host, port, mux, timeout); return sock_connected; } -TINY_GSM_CLIENT_CONNECT_TO_IP() +TINY_GSM_CLIENT_CONNECT_OVERLOADS() virtual void stop() { TINY_GSM_YIELD(); @@ -134,11 +134,11 @@ private: // {} // // public: -// virtual int connect(const char *host, uint16_t port) { +// virtual int connect(const char *host, uint16_t port, int timeout) { // stop(); // TINY_GSM_YIELD(); // rx.clear(); -// sock_connected = at->modemConnect(host, port, mux, true); +// sock_connected = at->modemConnect(host, port, mux, true, timeout); // return sock_connected; // } // }; @@ -518,9 +518,11 @@ TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) { + bool modemConnect(const char* host, uint16_t port, uint8_t mux, + bool ssl = false, int timeout = 75000L) + { sendAT(GF("+QIOPEN="), mux, GF("\"TCP"), GF("\",\""), host, GF("\","), port); - int rsp = waitResponse(75000L, + int rsp = waitResponse(timeout, GF("CONNECT OK" GSM_NL), GF("CONNECT FAIL" GSM_NL), GF("ALREADY CONNECT" GSM_NL)); diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 0157f53..0135942 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -75,15 +75,15 @@ public: } public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux); + sock_connected = at->modemConnect(host, port, mux, timeout); return sock_connected; } -TINY_GSM_CLIENT_CONNECT_TO_IP() +TINY_GSM_CLIENT_CONNECT_OVERLOADS() virtual void stop() { TINY_GSM_YIELD(); @@ -138,11 +138,11 @@ private: // {} // // public: -// virtual int connect(const char *host, uint16_t port) { +// virtual int connect(const char *host, uint16_t port, int timeout) { // stop(); // TINY_GSM_YIELD(); // rx.clear(); -// sock_connected = at->modemConnect(host, port, mux, true); +// sock_connected = at->modemConnect(host, port, mux, true, timeout); // return sock_connected; // } // }; @@ -537,9 +537,11 @@ TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) { + bool modemConnect(const char* host, uint16_t port, uint8_t mux, + bool ssl = false, int timeout = 75000L) + { sendAT(GF("+QIOPEN="), mux, GF("\"TCP"), GF("\",\""), host, GF("\","), port); - int rsp = waitResponse(75000L, + int rsp = waitResponse(timeout, GF("CONNECT OK" GSM_NL), GF("CONNECT FAIL" GSM_NL), GF("ALREADY CONNECT" GSM_NL)); diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 3abeae3..322ce4a 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -76,15 +76,15 @@ public: } public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux); + sock_connected = at->modemConnect(host, port, mux, timeout); return sock_connected; } -TINY_GSM_CLIENT_CONNECT_TO_IP() +TINY_GSM_CLIENT_CONNECT_OVERLOADS() virtual void stop() { TINY_GSM_YIELD(); @@ -140,11 +140,11 @@ public: {} public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, true); + sock_connected = at->modemConnect(host, port, mux, true, timeout); return sock_connected; } }; @@ -760,10 +760,12 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) { + bool modemConnect(const char* host, uint16_t port, uint8_t mux, + bool ssl = false, int timeout = 75000L) + { int rsp; sendAT(GF("+CIPSTART="), mux, ',', GF("\"TCP"), GF("\",\""), host, GF("\","), port); - rsp = waitResponse(75000L, + rsp = waitResponse(timeout, GF("CONNECT OK" GSM_NL), GF("CONNECT FAIL" GSM_NL), GF("ALREADY CONNECT" GSM_NL), diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 6a6fd51..e366d86 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -77,15 +77,15 @@ public: } public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux); + sock_connected = at->modemConnect(host, port, mux, timeout); return sock_connected; } -TINY_GSM_CLIENT_CONNECT_TO_IP() +TINY_GSM_CLIENT_CONNECT_OVERLOADS() virtual void stop() { TINY_GSM_YIELD(); @@ -141,11 +141,11 @@ public: {} public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, true); + sock_connected = at->modemConnect(host, port, mux, true, timeout); return sock_connected; } }; @@ -681,7 +681,9 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) { + bool modemConnect(const char* host, uint16_t port, uint8_t mux, + bool ssl = false, int timeout = 75000L) + { int rsp; #if !defined(TINY_GSM_MODEM_SIM900) sendAT(GF("+CIPSSL="), ssl); @@ -691,7 +693,7 @@ protected: } #endif sendAT(GF("+CIPSTART="), mux, ',', GF("\"TCP"), GF("\",\""), host, GF("\","), port); - rsp = waitResponse(75000L, + rsp = waitResponse(timeout, GF("CONNECT OK" GSM_NL), GF("CONNECT FAIL" GSM_NL), GF("ALREADY CONNECT" GSM_NL), diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index 8f628fc..00b6ffc 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -72,7 +72,7 @@ public: } public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); // If we're creating a new connection on the same client, we need to wait // until the async close has finished on Cat-M modems. @@ -94,7 +94,7 @@ public: rx.clear(); uint8_t oldMux = mux; - sock_connected = at->modemConnect(host, port, &mux); + sock_connected = at->modemConnect(host, port, &mux, timeout); if (mux != oldMux) { DBG("WARNING: Mux number changed from", oldMux, "to", mux); at->sockets[oldMux] = NULL; @@ -105,7 +105,7 @@ public: return sock_connected; } -TINY_GSM_CLIENT_CONNECT_TO_IP() +TINY_GSM_CLIENT_CONNECT_OVERLOADS() virtual void stop() { TINY_GSM_YIELD(); @@ -159,12 +159,12 @@ public: {} public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); uint8_t oldMux = mux; - sock_connected = at->modemConnect(host, port, &mux, true); + sock_connected = at->modemConnect(host, port, &mux, true, timeout); if (mux != oldMux) { DBG("WARNING: Mux number changed from", oldMux, "to", mux); at->sockets[oldMux] = NULL; @@ -528,7 +528,9 @@ TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t* mux, bool ssl = false) { + bool modemConnect(const char* host, uint16_t port, uint8_t* mux, + bool ssl = false, int timeout = 120000L) + { sendAT(GF("+USOCR=6")); // create a socket if (waitResponse(GF(GSM_NL "+USOCR:")) != 1) { // reply is +USOCR: ## of socket created return false; @@ -553,7 +555,7 @@ protected: // TODO: Use faster "asynchronous" connection? // We would have to wait for the +UUSOCO URC to verify connection sendAT(GF("+USOCO="), *mux, ",\"", host, "\",", port); - int rsp = waitResponse(120000L); + int rsp = waitResponse(timeout); return (1 == rsp); } diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 720653a..c84c081 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -83,15 +83,15 @@ public: } public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { if (sock_connected) stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux); + sock_connected = at->modemConnect(host, port, mux, timeout); return sock_connected; } -TINY_GSM_CLIENT_CONNECT_TO_IP() +TINY_GSM_CLIENT_CONNECT_OVERLOADS() virtual void stop() { TINY_GSM_YIELD(); @@ -150,7 +150,7 @@ protected: bool strictSSL = false; public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); @@ -172,7 +172,7 @@ public: return false; } - sock_connected = at->modemConnect(host, port, mux, true); + sock_connected = at->modemConnect(host, port, mux, true, timeout); return sock_connected; } @@ -477,8 +477,11 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) { + bool modemConnect(const char* host, uint16_t port, uint8_t mux, + bool ssl = false, int timeout = 75000L) + { int rsp; + unsigned long startMillis = millis(); if (ssl) { // enable SSl and use security profile 1 @@ -496,7 +499,7 @@ protected: waitResponse(); sendAT(GF("+SQNSD="), mux, ",0,", port, ',', GF("\""), host, GF("\""), ",0,0,1"); - rsp = waitResponse(75000L, + rsp = waitResponse((timeout - (millis() - startMillis)), GF("OK" GSM_NL), GF("NO CARRIER" GSM_NL) ); @@ -505,19 +508,10 @@ protected: if (rsp != 1) return rsp; // wait until we get a good status - unsigned long timeout = 5000; - unsigned long startMillis = millis(); bool connected = false; - while (!connected) { + while (!connected && ((millis() - startMillis) < timeout)) { connected = modemGetConnected(mux); - if (connected) { - delay(50); - break; - } delay(100); // socket may be in opening state - if (millis() - startMillis < timeout) { - break; - } } return connected; } diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index 74c0206..e4235e8 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -72,13 +72,13 @@ public: } public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); uint8_t oldMux = mux; - sock_connected = at->modemConnect(host, port, &mux); + sock_connected = at->modemConnect(host, port, &mux, timeout); if (mux != oldMux) { DBG("WARNING: Mux number changed from", oldMux, "to", mux); at->sockets[oldMux] = NULL; @@ -89,7 +89,7 @@ public: return sock_connected; } -TINY_GSM_CLIENT_CONNECT_TO_IP() +TINY_GSM_CLIENT_CONNECT_OVERLOADS() virtual void stop() { TINY_GSM_YIELD(); @@ -143,12 +143,12 @@ public: {} public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { stop(); TINY_GSM_YIELD(); rx.clear(); uint8_t oldMux = mux; - sock_connected = at->modemConnect(host, port, &mux, true); + sock_connected = at->modemConnect(host, port, &mux, true, timeout); if (mux != oldMux) { DBG("WARNING: Mux number changed from", oldMux, "to", mux); at->sockets[oldMux] = NULL; @@ -511,7 +511,9 @@ TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t* mux, bool ssl = false) { + bool modemConnect(const char* host, uint16_t port, uint8_t* mux, + bool ssl = false, int timeout = 120000L) + { sendAT(GF("+USOCR=6")); // create a socket if (waitResponse(GF(GSM_NL "+USOCR:")) != 1) { // reply is +USOCR: ## of socket created return false; @@ -536,7 +538,7 @@ protected: // TODO: Use faster "asynchronous" connection? // We would have to wait for the +UUSOCO URC to verify connection sendAT(GF("+USOCO="), *mux, ",\"", host, "\",", port); - int rsp = waitResponse(120000L); + int rsp = waitResponse(timeout); return (1 == rsp); } diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index 63a8003..7e8b19f 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -24,6 +24,20 @@ static const char GSM_OK[] TINY_GSM_PROGMEM = "OK" GSM_NL; static const char GSM_ERROR[] TINY_GSM_PROGMEM = "ERROR" GSM_NL; +// Use this to avoid too many entrances and exits from command mode. +// The cellular Bee's often freeze up and won't respond when attempting +// to enter command mode too many times. +#define XBEE_COMMAND_START_DECORATOR(nAttempts, failureReturn) \ + bool wasInCommandMode = inCommandMode; \ + if (!wasInCommandMode) { /* don't re-enter command mode if already in it */ \ + if (!commandMode(nAttempts)) return failureReturn; /* Return immediately if fails */ \ + } +#define XBEE_COMMAND_END_DECORATOR \ + if (!wasInCommandMode) { /* only exit if we weren't in command mode */ \ + exitCommand(); \ + } + + enum SimStatus { SIM_ERROR = 0, SIM_READY = 1, @@ -77,31 +91,30 @@ public: } public: - // NOTE: The XBee saves all paramter information in flash. When you turn it - // on it immediately prepares to re-connect to whatever was last connected to. - // All the modemConnect() function does is tell it the paramters to put into - // flash. The connection itself is not opened until you attempt to send data. + // NOTE: The XBee saves all connection information (ssid/pwd or apn AND last used IP address) + // in flash (NVM). When you turn it on it immediately prepares to re-connect to whatever was + // last set. The TCP connection itself is not opened until you attempt to send data. // Because all settings are saved to flash, it is possible (or likely) that - // you could send out data even if you haven't "made" any connection. - virtual int connect(const char *host, uint16_t port) { + // you could send data even if you haven't "made" any connection. + virtual int connect(const char *host, uint16_t port, int timeout) { + // NOTE: Not caling stop() or yeild() here at->streamClear(); // Empty anything in the buffer before starting - if (at->commandMode()) { // Don't try if we didn't successfully get into command mode - sock_connected = at->modemConnect(host, port, mux, false); - at->writeChanges(); - at->exitCommand(); - } + sock_connected = at->modemConnect(host, port, mux, timeout); return sock_connected; } + virtual int connect(const char *host, uint16_t port) { + return connect(host, port, 75000L); + } - virtual int connect(IPAddress ip, uint16_t port) { + virtual int connect(IPAddress ip, uint16_t port, int timeout) { + // NOTE: Not caling stop() or yeild() here at->streamClear(); // Empty anything in the buffer before starting - if (at->commandMode()) { // Don't try if we didn't successfully get into command mode - sock_connected = at->modemConnect(ip, port, mux, false); - at->writeChanges(); - at->exitCommand(); - } + sock_connected = at->modemConnect(ip, port, mux, timeout); return sock_connected; } + virtual int connect(IPAddress ip, uint16_t port) { + return connect(ip, port, 75000L); + } virtual void stop() { at->streamClear(); // Empty anything in the buffer @@ -196,12 +209,6 @@ public: if (available()) { return true; } - // Double check that we don't know it's closed - // NOTE: modemGetConnected() is likely to return a "false" true because - // it will return unknown until after data is sent over the connection. - // If the socket is definitely closed, modemGetConnected() will set - // sock_connected to false; - at->modemGetConnected(); return sock_connected; } virtual operator bool() { return connected(); } @@ -230,23 +237,17 @@ public: {} public: - virtual int connect(const char *host, uint16_t port) { + virtual int connect(const char *host, uint16_t port, int timeout) { + // NOTE: Not caling stop() or yeild() here at->streamClear(); // Empty anything in the buffer before starting - if (at->commandMode()) { // Don't try if we didn't successfully get into command mode - sock_connected = at->modemConnect(host, port, mux, true); - at->writeChanges(); - at->exitCommand(); - } + sock_connected = at->modemConnect(host, port, mux, true, timeout); return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port) { + virtual int connect(IPAddress ip, uint16_t port, int timeout) { + // NOTE: Not caling stop() or yeild() here at->streamClear(); // Empty anything in the buffer before starting - if (at->commandMode()) { // Don't try if we didn't successfully get into command mode - sock_connected = at->modemConnect(ip, port, mux, false); - at->writeChanges(); - at->exitCommand(); - } + sock_connected = at->modemConnect(ip, port, mux, timeout); return sock_connected; } }; @@ -294,20 +295,26 @@ public: digitalWrite(resetPin, HIGH); } - if (!commandMode(10)) return false; // Try up to 10 times for the init + XBEE_COMMAND_START_DECORATOR(10, false) sendAT(GF("AP0")); // Put in transparent mode bool ret_val = waitResponse() == 1; - ret_val &= writeChanges(); sendAT(GF("GT64")); // shorten the guard time to 100ms - ret_val &= waitResponse(); - ret_val &= writeChanges(); + ret_val &= waitResponse() == 1; if (ret_val) guardTime = 110; + // Make sure the command mode drop-out time is long enough that we won't fall + // out of command mode without intentionally leaving it. This is the default + // drop out time of 0x64 x 100ms (10 seconds) + sendAT(GF("CT64")); + ret_val &= waitResponse() == 1; + ret_val &= writeChanges(); + getSeries(); // Get the "Hardware Series"; - exitCommand(); + XBEE_COMMAND_END_DECORATOR + return ret_val; } @@ -316,7 +323,7 @@ public: } void setBaud(unsigned long baud) { - if (!commandMode()) return; + XBEE_COMMAND_START_DECORATOR(5, ) switch(baud) { case 2400: sendAT(GF("BD1")); break; @@ -337,7 +344,7 @@ public: } waitResponse(); writeChanges(); - exitCommand(); + XBEE_COMMAND_END_DECORATOR } bool testAT(unsigned long timeout = 10000L) { @@ -352,9 +359,8 @@ public: sendAT(); if (waitResponse(200) == 1) { success = true; - exitCommand(); } - // if we didn't respond to the AT, must not be in command mode + // if we didn't respond to the AT, assume we're not in command mode else inCommandMode = false; } delay(250); @@ -375,11 +381,11 @@ public: } bool factoryDefault() { - if (!commandMode()) return false; // Return immediately + XBEE_COMMAND_START_DECORATOR(5, false) sendAT(GF("RE")); bool ret_val = waitResponse() == 1; ret_val &= writeChanges(); - exitCommand(); + XBEE_COMMAND_END_DECORATOR // Make sure the guard time for the modem object is set back to default // otherwise communication would fail after the reset guardTime = 1010; @@ -387,14 +393,7 @@ public: } String getModemInfo() { - String modemInf = ""; - if (!commandMode()) return modemInf; // Try up to 10 times for the init - - sendAT(GF("HS")); // Get the "Hardware Series" - modemInf += readResponseString(); - - exitCommand(); - return modemInf; + return sendATGetString(GF("HS")); } bool hasSSL() { @@ -443,7 +442,9 @@ public: } bool restart() { + if (!commandMode()) return false; // Return immediately + if (beeType == XBEE_UNKNOWN) getSeries(); // how we restart depends on this if (beeType != XBEE_S6B_WIFI) { @@ -455,9 +456,10 @@ public: sendAT(GF("FR")); if (waitResponse() != 1) return exitAndFail(); + else inCommandMode = false; // Reset effectively exits command mode if (beeType == XBEE_S6B_WIFI) delay(2000); // Wifi module actually resets about 2 seconds later - else delay(100); // cellular modules wait 100ms before reset happes + else delay(100); // cellular modules wait 100ms before reset happens // Wait until reboot complete and responds to command mode call again for (unsigned long start = millis(); millis() - start < 60000L; ) { @@ -477,7 +479,7 @@ public: } void setupPinSleep(bool maintainAssociation = false) { - if (!commandMode()) return; // Return immediately + XBEE_COMMAND_START_DECORATOR(5, ) if (beeType == XBEE_UNKNOWN) getSeries(); // Command depends on series @@ -496,7 +498,7 @@ public: } writeChanges(); - exitCommand(); + XBEE_COMMAND_END_DECORATOR } bool poweroff() { // Not supported @@ -516,19 +518,11 @@ public: } String getSimCCID() { - if (!commandMode()) return ""; // Return immediately - sendAT(GF("S#")); - String res = readResponseString(); - exitCommand(); - return res; + return sendATGetString(GF("S#")); } String getIMEI() { - if (!commandMode()) return ""; // Return immediately - sendAT(GF("IM")); - String res = readResponseString(); - exitCommand(); - return res; + return sendATGetString(GF("IM")); } SimStatus getSimStatus(unsigned long timeout = 10000L) { @@ -537,10 +531,7 @@ public: RegStatus getRegistrationStatus() { - bool wasInCommandMode = inCommandMode; - if (!wasInCommandMode) { // don't re-enter command mode if already in it - commandMode(); - } + XBEE_COMMAND_START_DECORATOR(5, REG_UNKNOWN) if (!inCommandMode) return REG_UNKNOWN; // Return immediately @@ -619,18 +610,12 @@ public: } } - if (!wasInCommandMode) { // only exit if we weren't in command mode - exitCommand(); - } + XBEE_COMMAND_END_DECORATOR return stat; } String getOperator() { - if (!commandMode()) return ""; // Return immediately - sendAT(GF("MN")); - String res = readResponseString(); - exitCommand(); - return res; + return sendATGetString(GF("MN")); } /* @@ -638,12 +623,17 @@ public: */ int16_t getSignalQuality() { - if (!commandMode()) return 0; // Return immediately + + XBEE_COMMAND_START_DECORATOR(5, 0); + if (beeType == XBEE_UNKNOWN) getSeries(); // Need to know what type of bee so we know how to ask + if (beeType == XBEE_S6B_WIFI) sendAT(GF("LM")); // ask for the "link margin" - the dB above sensitivity else sendAT(GF("DB")); // ask for the cell strength in dBm int16_t intRes = readResponseInt(); - exitCommand(); + + XBEE_COMMAND_END_DECORATOR + if (beeType == XBEE3_LTEM_ATT && intRes == 105) intRes = 0; // tends to reply with "69" when signal is unknown if (beeType == XBEE_S6B_WIFI) return -93 + intRes; // the maximum sensitivity is -93dBm else return -1*intRes; // need to convert to negative number @@ -655,17 +645,14 @@ public: } bool waitForNetwork(unsigned long timeout = 60000L) { - // Enter command mode at the start so we don't have to go in and out of it - // The cellular Bee's often freeze up and won't respond when attempting - // to enter command mode too many times. - commandMode(); + XBEE_COMMAND_START_DECORATOR(5, false) for (unsigned long start = millis(); millis() - start < timeout; ) { if (isNetworkConnected()) { return true; } delay(250); // per Neil H. - more stable with delay } - exitCommand(); + XBEE_COMMAND_END_DECORATOR return false; } @@ -675,7 +662,8 @@ public: bool networkConnect(const char* ssid, const char* pwd) { - if (!commandMode()) return false; // return immediately + XBEE_COMMAND_START_DECORATOR(5, false) + //nh For no pwd don't set setscurity or pwd if (NULL == ssid ) return exitAndFail(); @@ -693,19 +681,19 @@ public: if (waitResponse() != 1) return exitAndFail(); if (!writeChanges()) return exitAndFail(); - exitCommand(); + XBEE_COMMAND_END_DECORATOR return true; } bool networkDisconnect() { - if (!commandMode()) return false; // return immediately + XBEE_COMMAND_START_DECORATOR(5, false) sendAT(GF("NR0")); // Do a network reset in order to disconnect - // NOTE: On wifi modules, using a network reset will not + // WARNING: On wifi modules, using a network reset will not // allow the same ssid to re-join without rebooting the module. int8_t res = (1 == waitResponse(5000)); writeChanges(); - exitCommand(); + XBEE_COMMAND_END_DECORATOR return res; } @@ -714,12 +702,12 @@ public: */ String getLocalIP() { - if (!commandMode()) return ""; // Return immediately + XBEE_COMMAND_START_DECORATOR(5, "") sendAT(GF("MY")); String IPaddr; IPaddr.reserve(16); // wait for the response - this response can be very slow IPaddr = readResponseString(30000); - exitCommand(); + XBEE_COMMAND_END_DECORATOR IPaddr.trim(); return IPaddr; } @@ -733,23 +721,23 @@ public: */ bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { - if (!commandMode()) return false; // Return immediately + XBEE_COMMAND_START_DECORATOR(5, false) sendAT(GF("AN"), apn); // Set the APN - waitResponse(); + bool success = waitResponse() == 1; writeChanges(); - exitCommand(); - return true; + XBEE_COMMAND_END_DECORATOR + return success; } bool gprsDisconnect() { - if (!commandMode()) return false; // return immediately + XBEE_COMMAND_START_DECORATOR(5, false) sendAT(GF("AM1")); // Cheating and disconnecting by turning on airplane mode int8_t res = (1 == waitResponse(5000)); writeChanges(); sendAT(GF("AM0")); // Airplane mode off waitResponse(5000); writeChanges(); - exitCommand(); + XBEE_COMMAND_END_DECORATOR return res; } @@ -772,11 +760,14 @@ public: if (waitResponse() !=1) return exitAndFail(); sendAT(GF("TDD")); // Set the text delimiter to the standard 0x0D (carriage return) if (waitResponse() !=1) return exitAndFail(); - if (!writeChanges()) return exitAndFail(); + if (!writeChanges()) return exitAndFail(); + // Get out of command mode to actually send the text exitCommand(); + streamWrite(text); stream.write((char)0x0D); // close off with the carriage return + return true; } @@ -800,16 +791,17 @@ public: protected: - IPAddress getHostIP(const char* host) { + IPAddress getHostIP(const char* host, int timeout = 45000L) { String strIP; strIP.reserve(16); unsigned long startMillis = millis(); bool gotIP = false; + XBEE_COMMAND_START_DECORATOR(5, IPAddress(0,0,0,0)) // XBee's require a numeric IP address for connection, but do provide the // functionality to look up the IP address from a fully qualified domain name - while (millis() - startMillis < 45000L) // the lookup can take a while + while (millis() - startMillis < timeout) // the lookup can take a while { sendAT(GF("LA"), host); - while (stream.available() < 4 && (millis() - startMillis < 45000L)) {}; // wait for any response + while (stream.available() < 4 && (millis() - startMillis < timeout)) {}; // wait for any response strIP = stream.readStringUntil('\r'); // read result strIP.trim(); if (!strIP.endsWith(GF("ERROR"))) { @@ -818,33 +810,44 @@ protected: } delay(2500); // wait a bit before trying again } - if (gotIP) { // No reason to continue if we don't know the IP address + + XBEE_COMMAND_END_DECORATOR + + if (gotIP) { return TinyGsmIpFromString(strIP); } else return IPAddress(0,0,0,0); } - bool modemConnect(const char* host, uint16_t port, uint8_t mux = 0, bool ssl = false) { - // If requested host is the same as the previous one and we already - // have a valid IP address, we don't have to do anything. - if (this->savedHost == String(host) && savedIP != IPAddress(0,0,0,0)) { - return true; - } + bool modemConnect(const char* host, uint16_t port, uint8_t mux = 0, + bool ssl = false, int timeout = 75000L) + { + unsigned long startMillis = millis(); + bool retVal = false; + XBEE_COMMAND_START_DECORATOR(5, false) - // Otherwise, set the new host and mark the IP as invalid - this->savedHost = String(host); - savedIP = getHostIP(host); // This will return 0.0.0.0 if lookup fails + // If it's a new host or we dont' have a good IP, we need to do a DNS + // search for the IP to connect to + if (this->savedHost != String(host) || savedIP == IPAddress(0,0,0,0)) { + this->savedHost = String(host); + savedIP = getHostIP(host, timeout); // This will return 0.0.0.0 if lookup fails + } // If we now have a valid IP address, use it to connect if (savedIP != IPAddress(0,0,0,0)) { // Only re-set connection information if we have an IP address - return modemConnect(savedIP, port, mux, ssl); + retVal = modemConnect(savedIP, port, mux, ssl, timeout - (millis() - startMillis)); } - else return false; + + XBEE_COMMAND_END_DECORATOR + + return retVal; } - bool modemConnect(IPAddress ip, uint16_t port, uint8_t mux = 0, bool ssl = false) { + bool modemConnect(IPAddress ip, uint16_t port, uint8_t mux = 0, bool ssl = false, int timeout = 75000L) { + savedIP = ip; // Set the newly requested IP address bool success = true; + XBEE_COMMAND_START_DECORATOR(5, false) String host; host.reserve(16); host += ip[0]; host += "."; @@ -853,6 +856,7 @@ protected: host += ip[2]; host += "."; host += ip[3]; + if (ssl) { sendAT(GF("IP"), 4); // Put in SSL over TCP communication mode success &= (1 == waitResponse()); @@ -860,10 +864,21 @@ protected: sendAT(GF("IP"), 1); // Put in TCP mode success &= (1 == waitResponse()); } + sendAT(GF("DL"), host); // Set the "Destination Address Low" success &= (1 == waitResponse()); sendAT(GF("DE"), String(port, HEX)); // Set the destination port success &= (1 == waitResponse()); + + for (unsigned long start = millis(); millis() - start < timeout; ) { + if (modemGetConnected()) { + sockets[mux]->sock_connected = true; + break; + } + } + + XBEE_COMMAND_END_DECORATOR + return success; } @@ -879,7 +894,7 @@ protected: // as true so there's a possibility it's wrong. bool modemGetConnected() { - if (!commandMode()) return false; // Return immediately + XBEE_COMMAND_START_DECORATOR(5, false) // If the IP address is 0, it's not valid so we can't be connected if (savedIP == IPAddress(0,0,0,0)) return false; @@ -898,14 +913,14 @@ protected: case XBEE_S6B_WIFI: { RegStatus s = getRegistrationStatus(); if (s != REG_OK) { - sockets[0]->sock_connected = false; + sockets[0]->sock_connected = false; // no multiplex } return (s == REG_OK); // if it's connected, we hope the sockets are too } default: { // Cellular XBee's sendAT(GF("CI")); int16_t intRes = readResponseInt(); - exitCommand(); + XBEE_COMMAND_END_DECORATOR switch(intRes) { case 0x00: // 0x00 = The socket is definitely open case 0xFF: // 0xFF = No known status - this is always returned prior to sending data @@ -1014,10 +1029,15 @@ finish: } bool commandMode(uint8_t retries = 5) { + + // If we're already in command mode, move on + if (inCommandMode && (millis() - lastCommandModeMillis) < 10000L) return true; + uint8_t triesMade = 0; uint8_t triesUntilReset = 4; // only reset after 4 failures bool success = false; streamClear(); // Empty everything in the buffer before starting + while (!success and triesMade < retries) { // Cannot send anything for 1 "guard time" before entering command mode // Default guard time is 1s, but the init fxn decreases it to 100 ms @@ -1036,7 +1056,11 @@ finish: } triesMade ++; } - if (success) inCommandMode = true; + + if (success) { + inCommandMode = true; + lastCommandModeMillis = millis(); + } return success; } @@ -1049,6 +1073,8 @@ finish: } void exitCommand(void) { + // NOTE: Here we explicitely try to exit command mode + // even if the internal flag inCommandMode was already false sendAT(GF("CN")); // Exit command mode waitResponse(); inCommandMode = false; @@ -1083,6 +1109,14 @@ finish: return intRes; } + String sendATGetString(GsmConstStr cmd) { + XBEE_COMMAND_START_DECORATOR(5, "") + sendAT(cmd); + String res = readResponseString(); + XBEE_COMMAND_END_DECORATOR + return res; + } + bool gotIPforSavedHost() { if (savedHost != "" && savedIP != IPAddress(0,0,0,0)) return true; else return false; @@ -1098,6 +1132,7 @@ protected: IPAddress savedIP; String savedHost; bool inCommandMode; + uint32_t lastCommandModeMillis; GsmClient* sockets[TINY_GSM_MUX_COUNT]; }; diff --git a/src/TinyGsmCommon.h b/src/TinyGsmCommon.h index 70667e5..29dd28c 100644 --- a/src/TinyGsmCommon.h +++ b/src/TinyGsmCommon.h @@ -201,8 +201,8 @@ String TinyGsmDecodeHex16bit(String &instr) { // Connect to a IP address given as an IPAddress object by // converting said IP address to text -#define TINY_GSM_CLIENT_CONNECT_TO_IP() \ - virtual int connect(IPAddress ip, uint16_t port) { \ +#define TINY_GSM_CLIENT_CONNECT_OVERLOADS() \ + virtual int connect(IPAddress ip, uint16_t port, int timeout) { \ String host; host.reserve(16); \ host += ip[0]; \ host += "."; \ @@ -211,7 +211,13 @@ String TinyGsmDecodeHex16bit(String &instr) { host += ip[2]; \ host += "."; \ host += ip[3]; \ - return connect(host.c_str(), port); \ + return connect(host.c_str(), port, timeout); \ + } \ + virtual int connect(const char *host, uint16_t port) \ + return connect(host, port, 75000L); \ + } \ + virtual int connect(IPAddress ip, uint16_t port) \ + return connect(ip, port, 75000L); \ } From ff4fa1e042fe761eb729a4e3dcf5d78d57eba23d Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Mon, 20 May 2019 10:24:27 -0400 Subject: [PATCH 30/46] Clarify units of timeouts --- src/TinyGsmClientA6.h | 23 ++++++------ src/TinyGsmClientBG96.h | 26 +++++++------ src/TinyGsmClientESP8266.h | 25 +++++++------ src/TinyGsmClientM590.h | 25 +++++++------ src/TinyGsmClientM95.h | 25 +++++++------ src/TinyGsmClientMC60.h | 25 +++++++------ src/TinyGsmClientSIM7000.h | 25 +++++++------ src/TinyGsmClientSIM800.h | 25 +++++++------ src/TinyGsmClientSaraR4.h | 25 +++++++------ src/TinyGsmClientSequansMonarch.h | 31 ++++++++-------- src/TinyGsmClientUBLOX.h | 25 +++++++------ src/TinyGsmClientXBee.h | 61 ++++++++++++++++--------------- src/TinyGsmCommon.h | 26 ++++++------- 13 files changed, 191 insertions(+), 176 deletions(-) diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index 1883145..3ca5228 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -66,12 +66,12 @@ public: } public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); uint8_t newMux = -1; - sock_connected = at->modemConnect(host, port, &newMux, timeout) + sock_connected = at->modemConnect(host, port, &newMux, timeout_s) if (sock_connected) { mux = newMux; at->sockets[mux] = this; @@ -222,8 +222,8 @@ TINY_GSM_MODEM_SIM_UNLOCK_CPIN() TINY_GSM_MODEM_GET_IMEI_GSN() - SimStatus getSimStatus(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { + SimStatus getSimStatus(unsigned long timeout_ms = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { sendAT(GF("+CPIN?")); if (waitResponse(GF(GSM_NL "+CPIN:")) != 1) { delay(1000); @@ -504,16 +504,17 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t* mux, int timeout = 75000L) { + bool modemConnect(const char* host, uint16_t port, uint8_t* mux, int timeout_s = 75) { unsigned long startMillis = millis(); + uint32_t timeout_ms = timeout_s*1000; sendAT(GF("+CIPSTART="), GF("\"TCP"), GF("\",\""), host, GF("\","), port); - if (waitResponse(timeout, GF(GSM_NL "+CIPNUM:")) != 1) { + if (waitResponse(timeout_ms, GF(GSM_NL "+CIPNUM:")) != 1) { return false; } int newMux = stream.readStringUntil('\n').toInt(); - int rsp = waitResponse((timeout - (millis() - startMillis)), + int rsp = waitResponse((timeout_ms- (millis() - startMillis)), GF("CONNECT OK" GSM_NL), GF("CONNECT FAIL" GSM_NL), GF("ALREADY CONNECT" GSM_NL)); @@ -554,7 +555,7 @@ public: TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! - uint8_t waitResponse(uint32_t timeout, String& data, + uint8_t waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { @@ -614,7 +615,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Closed: ", mux); } } - } while (millis() - startMillis < timeout); + } while (millis() - startMillis < timeout_ms); finish: if (!index) { data.trim(); @@ -627,12 +628,12 @@ finish: return index; } - uint8_t waitResponse(uint32_t timeout, + uint8_t waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { String data; - return waitResponse(timeout, data, r1, r2, r3, r4, r5); + return waitResponse(timeout_ms, data, r1, r2, r3, r4, r5); } uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index 00c7543..55782e4 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -71,11 +71,11 @@ public: } public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout); + sock_connected = at->modemConnect(host, port, mux, timeout_s); return sock_connected; } @@ -134,11 +134,11 @@ private: // {} // // public: -// virtual int connect(const char *host, uint16_t port, int timeout) { +// virtual int connect(const char *host, uint16_t port, int timeout_s) { // stop(); // TINY_GSM_YIELD(); // rx.clear(); -// sock_connected = at->modemConnect(host, port, mux, true, timeout); +// sock_connected = at->modemConnect(host, port, mux, true, timeout_s); // return sock_connected; // } // }; @@ -257,8 +257,8 @@ TINY_GSM_MODEM_SIM_UNLOCK_CPIN() TINY_GSM_MODEM_GET_IMEI_GSN() - SimStatus getSimStatus(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { + SimStatus getSimStatus(unsigned long timeout_ms = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { sendAT(GF("+CPIN?")); if (waitResponse(GF(GSM_NL "+CPIN:")) != 1) { delay(1000); @@ -471,15 +471,17 @@ TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, - bool ssl = false, int timeout = 20000L) + bool ssl = false, int timeout_s = 20) { int rsp; + uint32_t timeout_ms = timeout_s*1000; + // (1-16), (0-11),"TCP/UDP/TCP LISTENER/UDP SERVICE", // "/",,,(0-2 0=buffer) sendAT(GF("+QIOPEN=1,"), mux, ',', GF("\"TCP"), GF("\",\""), host, GF("\","), port, GF(",0,0")); rsp = waitResponse(); - if (waitResponse(timeout, GF(GSM_NL "+QIOPEN:")) != 1) { + if (waitResponse(timeout_ms, GF(GSM_NL "+QIOPEN:")) != 1) { return false; } @@ -569,7 +571,7 @@ public: TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! - uint8_t waitResponse(uint32_t timeout, String& data, + uint8_t waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { @@ -625,7 +627,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() data = ""; } } - } while (millis() - startMillis < timeout); + } while (millis() - startMillis < timeout_ms); finish: if (!index) { data.trim(); @@ -638,12 +640,12 @@ finish: return index; } - uint8_t waitResponse(uint32_t timeout, + uint8_t waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { String data; - return waitResponse(timeout, data, r1, r2, r3, r4, r5); + return waitResponse(timeout_ms, data, r1, r2, r3, r4, r5); } uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index 77737fc..3ceefc2 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -68,11 +68,11 @@ public: } public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout); + sock_connected = at->modemConnect(host, port, mux, timeout_s); return sock_connected; } @@ -118,11 +118,11 @@ public: {} public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, true, timeout); + sock_connected = at->modemConnect(host, port, mux, true, timeout_s); return sock_connected; } }; @@ -270,8 +270,8 @@ TINY_GSM_MODEM_MAINTAIN_LISTEN() return (s == REG_OK_IP || s == REG_OK_TCP); } - bool waitForNetwork(unsigned long timeout = 60000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { + bool waitForNetwork(unsigned long timeout_ms = 60000L) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { sendAT(GF("+CIPSTATUS")); int res1 = waitResponse(3000, GF("busy p..."), GF("STATUS:")); if (res1 == 2) { @@ -332,8 +332,9 @@ TINY_GSM_MODEM_MAINTAIN_LISTEN() protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, - bool ssl = false, int timeout = 75000L) + bool ssl = false, int timeout_s = 75) { + uint32_t timeout_ms = timeout_s*1000; if (ssl) { sendAT(GF("+CIPSSLSIZE=4096")); waitResponse(); @@ -341,7 +342,7 @@ protected: sendAT(GF("+CIPSTART="), mux, ',', ssl ? GF("\"SSL") : GF("\"TCP"), GF("\",\""), host, GF("\","), port, GF(","), TINY_GSM_TCP_KEEP_ALIVE); // TODO: Check mux - int rsp = waitResponse(timeout, + int rsp = waitResponse(timeout_ms, GFP(GSM_OK), GFP(GSM_ERROR), GF("ALREADY CONNECT")); @@ -376,7 +377,7 @@ public: TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! - uint8_t waitResponse(uint32_t timeout, String& data, + uint8_t waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { @@ -438,7 +439,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Closed: ", mux); } } - } while (millis() - startMillis < timeout); + } while (millis() - startMillis < timeout_ms); finish: if (!index) { data.trim(); @@ -451,12 +452,12 @@ finish: return index; } - uint8_t waitResponse(uint32_t timeout, + uint8_t waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { String data; - return waitResponse(timeout, data, r1, r2, r3, r4, r5); + return waitResponse(timeout_ms, data, r1, r2, r3, r4, r5); } uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index 941c462..890cd07 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -68,11 +68,11 @@ public: } public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout); + sock_connected = at->modemConnect(host, port, mux, timeout_s); return sock_connected; } @@ -219,8 +219,8 @@ TINY_GSM_MODEM_GET_SIMCCID_CCID() TINY_GSM_MODEM_GET_IMEI_GSN() - SimStatus getSimStatus(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { + SimStatus getSimStatus(unsigned long timeout_ms = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { sendAT(GF("+CPIN?")); if (waitResponse(GF(GSM_NL "+CPIN:")) != 1) { delay(1000); @@ -276,8 +276,8 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() sendAT(GF("+XIIC=1")); waitResponse(); - const unsigned long timeout = 60000L; - for (unsigned long start = millis(); millis() - start < timeout; ) { + const unsigned long timeout_ms = 60000L; + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { if (isGprsConnected()) { //goto set_dns; // TODO return true; @@ -413,12 +413,13 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() protected: - bool modemConnect(const char* host, uint16_t port, uint8_t mux, int timeout = 75000L) { + bool modemConnect(const char* host, uint16_t port, uint8_t mux, int timeout_s = 75) { + uint32_t timeout_ms = timeout_s*1000; for (int i=0; i<3; i++) { // TODO: no need for loop? String ip = dnsIpQuery(host); sendAT(GF("+TCPSETUP="), mux, GF(","), ip, GF(","), port); - int rsp = waitResponse(timeout, + int rsp = waitResponse(timeout_ms, GF(",OK" GSM_NL), GF(",FAIL" GSM_NL), GF("+TCPSETUP:Error" GSM_NL)); @@ -475,7 +476,7 @@ public: TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! - uint8_t waitResponse(uint32_t timeout, String& data, + uint8_t waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { @@ -536,7 +537,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Closed: ", mux); } } - } while (millis() - startMillis < timeout); + } while (millis() - startMillis < timeout_ms); finish: if (!index) { data.trim(); @@ -549,12 +550,12 @@ finish: return index; } - uint8_t waitResponse(uint32_t timeout, + uint8_t waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { String data; - return waitResponse(timeout, data, r1, r2, r3, r4, r5); + return waitResponse(timeout_ms, data, r1, r2, r3, r4, r5); } uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index e45bc46..9754668 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -71,11 +71,11 @@ public: } public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout); + sock_connected = at->modemConnect(host, port, mux, timeout_s); return sock_connected; } @@ -134,11 +134,11 @@ private: // {} // // public: -// virtual int connect(const char *host, uint16_t port, int timeout) { +// virtual int connect(const char *host, uint16_t port, int timeout_s) { // stop(); // TINY_GSM_YIELD(); // rx.clear(); -// sock_connected = at->modemConnect(host, port, mux, true, timeout); +// sock_connected = at->modemConnect(host, port, mux, true, timeout_s); // return sock_connected; // } // }; @@ -265,8 +265,8 @@ TINY_GSM_MODEM_SIM_UNLOCK_CPIN() TINY_GSM_MODEM_GET_IMEI_GSN() - SimStatus getSimStatus(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { + SimStatus getSimStatus(unsigned long timeout_ms = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { sendAT(GF("+CPIN?")); if (waitResponse(GF(GSM_NL "+CPIN:")) != 1) { delay(1000); @@ -519,10 +519,11 @@ TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, - bool ssl = false, int timeout = 75000L) + bool ssl = false, int timeout_s = 75) { + uint32_t timeout_ms = timeout_s*1000; sendAT(GF("+QIOPEN="), mux, GF("\"TCP"), GF("\",\""), host, GF("\","), port); - int rsp = waitResponse(timeout, + int rsp = waitResponse(timeout_ms, GF("CONNECT OK" GSM_NL), GF("CONNECT FAIL" GSM_NL), GF("ALREADY CONNECT" GSM_NL)); @@ -624,7 +625,7 @@ public: TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! - uint8_t waitResponse(uint32_t timeout, String& data, + uint8_t waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { @@ -677,7 +678,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Closed: ", mux); } } - } while (millis() - startMillis < timeout); + } while (millis() - startMillis < timeout_ms); finish: if (!index) { data.trim(); @@ -690,12 +691,12 @@ finish: return index; } - uint8_t waitResponse(uint32_t timeout, + uint8_t waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { String data; - return waitResponse(timeout, data, r1, r2, r3, r4, r5); + return waitResponse(timeout_ms, data, r1, r2, r3, r4, r5); } uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 0135942..81648d2 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -75,11 +75,11 @@ public: } public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout); + sock_connected = at->modemConnect(host, port, mux, timeout_s); return sock_connected; } @@ -138,11 +138,11 @@ private: // {} // // public: -// virtual int connect(const char *host, uint16_t port, int timeout) { +// virtual int connect(const char *host, uint16_t port, int timeout_s) { // stop(); // TINY_GSM_YIELD(); // rx.clear(); -// sock_connected = at->modemConnect(host, port, mux, true, timeout); +// sock_connected = at->modemConnect(host, port, mux, true, timeout_s); // return sock_connected; // } // }; @@ -278,8 +278,8 @@ TINY_GSM_MODEM_GET_SIMCCID_CCID() TINY_GSM_MODEM_GET_IMEI_GSN() - SimStatus getSimStatus(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { + SimStatus getSimStatus(unsigned long timeout_ms = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { sendAT(GF("+CPIN?")); if (waitResponse(GF(GSM_NL "+CPIN:")) != 1) { delay(1000); @@ -538,10 +538,11 @@ TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, - bool ssl = false, int timeout = 75000L) + bool ssl = false, int timeout_s = 75) { + uint32_t timeout_ms = timeout_s*1000; sendAT(GF("+QIOPEN="), mux, GF("\"TCP"), GF("\",\""), host, GF("\","), port); - int rsp = waitResponse(timeout, + int rsp = waitResponse(timeout_ms, GF("CONNECT OK" GSM_NL), GF("CONNECT FAIL" GSM_NL), GF("ALREADY CONNECT" GSM_NL)); @@ -644,7 +645,7 @@ public: TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! - uint8_t waitResponse(uint32_t timeout, String& data, + uint8_t waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL, GsmConstStr r6=NULL) { @@ -701,7 +702,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Closed: ", mux); } } - } while (millis() - startMillis < timeout); + } while (millis() - startMillis < timeout_ms); finish: if (!index) { data.trim(); @@ -714,12 +715,12 @@ finish: return index; } - uint8_t waitResponse(uint32_t timeout, + uint8_t waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL, GsmConstStr r6=NULL) { String data; - return waitResponse(timeout, data, r1, r2, r3, r4, r5, r6); + return waitResponse(timeout_ms, data, r1, r2, r3, r4, r5, r6); } uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 322ce4a..9fbda33 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -76,11 +76,11 @@ public: } public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout); + sock_connected = at->modemConnect(host, port, mux, timeout_s); return sock_connected; } @@ -140,11 +140,11 @@ public: {} public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, true, timeout); + sock_connected = at->modemConnect(host, port, mux, true, timeout_s); return sock_connected; } }; @@ -269,8 +269,8 @@ TINY_GSM_MODEM_GET_SIMCCID_CCID() TINY_GSM_MODEM_GET_IMEI_GSN() - SimStatus getSimStatus(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { + SimStatus getSimStatus(unsigned long timeout_ms = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { sendAT(GF("+CPIN?")); if (waitResponse(GF(GSM_NL "+CPIN:")) != 1) { delay(1000); @@ -761,11 +761,12 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, - bool ssl = false, int timeout = 75000L) + bool ssl = false, int timeout_s = 75) { int rsp; + uint32_t timeout_ms = timeout_s*1000; sendAT(GF("+CIPSTART="), mux, ',', GF("\"TCP"), GF("\",\""), host, GF("\","), port); - rsp = waitResponse(timeout, + rsp = waitResponse(timeout_ms, GF("CONNECT OK" GSM_NL), GF("CONNECT FAIL" GSM_NL), GF("ALREADY CONNECT" GSM_NL), @@ -862,7 +863,7 @@ public: TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! - uint8_t waitResponse(uint32_t timeout, String& data, + uint8_t waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { @@ -928,7 +929,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Closed: ", mux); } } - } while (millis() - startMillis < timeout); + } while (millis() - startMillis < timeout_ms); finish: if (!index) { data.trim(); @@ -941,12 +942,12 @@ finish: return index; } - uint8_t waitResponse(uint32_t timeout, + uint8_t waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { String data; - return waitResponse(timeout, data, r1, r2, r3, r4, r5); + return waitResponse(timeout_ms, data, r1, r2, r3, r4, r5); } uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index e366d86..4987f07 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -77,11 +77,11 @@ public: } public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout); + sock_connected = at->modemConnect(host, port, mux, timeout_s); return sock_connected; } @@ -141,11 +141,11 @@ public: {} public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, true, timeout); + sock_connected = at->modemConnect(host, port, mux, true, timeout_s); return sock_connected; } }; @@ -301,8 +301,8 @@ TINY_GSM_MODEM_GET_SIMCCID_CCID() TINY_GSM_MODEM_GET_IMEI_GSN() - SimStatus getSimStatus(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { + SimStatus getSimStatus(unsigned long timeout_ms = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { sendAT(GF("+CPIN?")); if (waitResponse(GF(GSM_NL "+CPIN:")) != 1) { delay(1000); @@ -682,9 +682,10 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, - bool ssl = false, int timeout = 75000L) + bool ssl = false, int timeout_s = 75) { int rsp; + uint32_t timeout_ms = timeout_s*1000; #if !defined(TINY_GSM_MODEM_SIM900) sendAT(GF("+CIPSSL="), ssl); rsp = waitResponse(); @@ -693,7 +694,7 @@ protected: } #endif sendAT(GF("+CIPSTART="), mux, ',', GF("\"TCP"), GF("\",\""), host, GF("\","), port); - rsp = waitResponse(timeout, + rsp = waitResponse(timeout_ms, GF("CONNECT OK" GSM_NL), GF("CONNECT FAIL" GSM_NL), GF("ALREADY CONNECT" GSM_NL), @@ -790,7 +791,7 @@ public: TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! - uint8_t waitResponse(uint32_t timeout, String& data, + uint8_t waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { @@ -856,7 +857,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Closed: ", mux); } } - } while (millis() - startMillis < timeout); + } while (millis() - startMillis < timeout_ms); finish: if (!index) { data.trim(); @@ -869,12 +870,12 @@ finish: return index; } - uint8_t waitResponse(uint32_t timeout, + uint8_t waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { String data; - return waitResponse(timeout, data, r1, r2, r3, r4, r5); + return waitResponse(timeout_ms, data, r1, r2, r3, r4, r5); } uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index 00b6ffc..b0e2cd0 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -72,7 +72,7 @@ public: } public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); // If we're creating a new connection on the same client, we need to wait // until the async close has finished on Cat-M modems. @@ -94,7 +94,7 @@ public: rx.clear(); uint8_t oldMux = mux; - sock_connected = at->modemConnect(host, port, &mux, timeout); + sock_connected = at->modemConnect(host, port, &mux, timeout_s); if (mux != oldMux) { DBG("WARNING: Mux number changed from", oldMux, "to", mux); at->sockets[oldMux] = NULL; @@ -159,12 +159,12 @@ public: {} public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); uint8_t oldMux = mux; - sock_connected = at->modemConnect(host, port, &mux, true, timeout); + sock_connected = at->modemConnect(host, port, &mux, true, timeout_s); if (mux != oldMux) { DBG("WARNING: Mux number changed from", oldMux, "to", mux); at->sockets[oldMux] = NULL; @@ -325,8 +325,8 @@ TINY_GSM_MODEM_GET_SIMCCID_CCID() return res; } - SimStatus getSimStatus(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { + SimStatus getSimStatus(unsigned long timeout_ms = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { sendAT(GF("+CPIN?")); if (waitResponse(GF(GSM_NL "+CPIN:")) != 1) { delay(1000); @@ -529,8 +529,9 @@ TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() protected: bool modemConnect(const char* host, uint16_t port, uint8_t* mux, - bool ssl = false, int timeout = 120000L) + bool ssl = false, int timeout_s = 120) { + uint32_t timeout_ms = timeout_s*1000; sendAT(GF("+USOCR=6")); // create a socket if (waitResponse(GF(GSM_NL "+USOCR:")) != 1) { // reply is +USOCR: ## of socket created return false; @@ -555,7 +556,7 @@ protected: // TODO: Use faster "asynchronous" connection? // We would have to wait for the +UUSOCO URC to verify connection sendAT(GF("+USOCO="), *mux, ",\"", host, "\",", port); - int rsp = waitResponse(timeout); + int rsp = waitResponse(timeout_ms); return (1 == rsp); } @@ -663,7 +664,7 @@ public: TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! - uint8_t waitResponse(uint32_t timeout, String& data, + uint8_t waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=GFP(GSM_CME_ERROR), GsmConstStr r4=NULL, GsmConstStr r5=NULL) { @@ -715,7 +716,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Closed: ", mux); } } - } while (millis() - startMillis < timeout); + } while (millis() - startMillis < timeout_ms); finish: if (!index) { data.trim(); @@ -728,12 +729,12 @@ finish: return index; } - uint8_t waitResponse(uint32_t timeout, + uint8_t waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=GFP(GSM_CME_ERROR), GsmConstStr r4=NULL, GsmConstStr r5=NULL) { String data; - return waitResponse(timeout, data, r1, r2, r3, r4, r5); + return waitResponse(timeout_ms, data, r1, r2, r3, r4, r5); } uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index c84c081..892120c 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -83,11 +83,11 @@ public: } public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { if (sock_connected) stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout); + sock_connected = at->modemConnect(host, port, mux, timeout_s); return sock_connected; } @@ -150,7 +150,7 @@ protected: bool strictSSL = false; public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); @@ -172,7 +172,7 @@ public: return false; } - sock_connected = at->modemConnect(host, port, mux, true, timeout); + sock_connected = at->modemConnect(host, port, mux, true, timeout_s); return sock_connected; } @@ -217,8 +217,8 @@ public: TINY_GSM_MODEM_SET_BAUD_IPR() - bool testAT(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { + bool testAT(unsigned long timeout_ms = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { sendAT(GF("")); if (waitResponse(200) == 1) { delay(100); @@ -317,8 +317,8 @@ TINY_GSM_MODEM_SIM_UNLOCK_CPIN() TINY_GSM_MODEM_GET_IMEI_GSN() - SimStatus getSimStatus(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { + SimStatus getSimStatus(unsigned long timeout_ms = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { sendAT(GF("+CPIN?")); if (waitResponse(GF(GSM_NL "+CPIN:")) != 1) { delay(1000); @@ -478,10 +478,11 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, - bool ssl = false, int timeout = 75000L) + bool ssl = false, int timeout_s = 75) { int rsp; unsigned long startMillis = millis(); + uint32_t timeout_ms = timeout_s*1000; if (ssl) { // enable SSl and use security profile 1 @@ -499,7 +500,7 @@ protected: waitResponse(); sendAT(GF("+SQNSD="), mux, ",0,", port, ',', GF("\""), host, GF("\""), ",0,0,1"); - rsp = waitResponse((timeout - (millis() - startMillis)), + rsp = waitResponse((timeout_ms - (millis() - startMillis)), GF("OK" GSM_NL), GF("NO CARRIER" GSM_NL) ); @@ -509,7 +510,7 @@ protected: // wait until we get a good status bool connected = false; - while (!connected && ((millis() - startMillis) < timeout)) { + while (!connected && ((millis() - startMillis) < timeout_ms)) { connected = modemGetConnected(mux); delay(100); // socket may be in opening state } @@ -593,7 +594,7 @@ public: TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! - uint8_t waitResponse(uint32_t timeout, String& data, + uint8_t waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { @@ -643,7 +644,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Closed: ", mux); } } - } while (millis() - startMillis < timeout); + } while (millis() - startMillis < timeout_ms); finish: if (!index) { data.trim(); @@ -655,12 +656,12 @@ finish: return index; } - uint8_t waitResponse(uint32_t timeout, + uint8_t waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { String data; - return waitResponse(timeout, data, r1, r2, r3, r4, r5); + return waitResponse(timeout_ms, data, r1, r2, r3, r4, r5); } uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index e4235e8..eef2fa1 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -72,13 +72,13 @@ public: } public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); uint8_t oldMux = mux; - sock_connected = at->modemConnect(host, port, &mux, timeout); + sock_connected = at->modemConnect(host, port, &mux, timeout_s); if (mux != oldMux) { DBG("WARNING: Mux number changed from", oldMux, "to", mux); at->sockets[oldMux] = NULL; @@ -143,12 +143,12 @@ public: {} public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); TINY_GSM_YIELD(); rx.clear(); uint8_t oldMux = mux; - sock_connected = at->modemConnect(host, port, &mux, true, timeout); + sock_connected = at->modemConnect(host, port, &mux, true, timeout_s); if (mux != oldMux) { DBG("WARNING: Mux number changed from", oldMux, "to", mux); at->sockets[oldMux] = NULL; @@ -314,8 +314,8 @@ TINY_GSM_MODEM_GET_SIMCCID_CCID() return res; } - SimStatus getSimStatus(unsigned long timeout = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout; ) { + SimStatus getSimStatus(unsigned long timeout_ms = 10000L) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { sendAT(GF("+CPIN?")); if (waitResponse(GF(GSM_NL "+CPIN:")) != 1) { delay(1000); @@ -512,8 +512,9 @@ TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() protected: bool modemConnect(const char* host, uint16_t port, uint8_t* mux, - bool ssl = false, int timeout = 120000L) + bool ssl = false, int timeout_s = 120) { + uint32_t timeout_ms = timeout_s*1000; sendAT(GF("+USOCR=6")); // create a socket if (waitResponse(GF(GSM_NL "+USOCR:")) != 1) { // reply is +USOCR: ## of socket created return false; @@ -538,7 +539,7 @@ protected: // TODO: Use faster "asynchronous" connection? // We would have to wait for the +UUSOCO URC to verify connection sendAT(GF("+USOCO="), *mux, ",\"", host, "\",", port); - int rsp = waitResponse(timeout); + int rsp = waitResponse(timeout_ms); return (1 == rsp); } @@ -648,7 +649,7 @@ public: TINY_GSP_MODEM_STREAM_UTILITIES() // TODO: Optimize this! - uint8_t waitResponse(uint32_t timeout, String& data, + uint8_t waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=GFP(GSM_CME_ERROR), GsmConstStr r4=NULL, GsmConstStr r5=NULL) { @@ -700,7 +701,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Closed: ", mux); } } - } while (millis() - startMillis < timeout); + } while (millis() - startMillis < timeout_ms); finish: if (!index) { data.trim(); @@ -713,12 +714,12 @@ finish: return index; } - uint8_t waitResponse(uint32_t timeout, + uint8_t waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=GFP(GSM_CME_ERROR), GsmConstStr r4=NULL, GsmConstStr r5=NULL) { String data; - return waitResponse(timeout, data, r1, r2, r3, r4, r5); + return waitResponse(timeout_ms, data, r1, r2, r3, r4, r5); } uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index 7e8b19f..8f812d9 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -96,20 +96,20 @@ public: // last set. The TCP connection itself is not opened until you attempt to send data. // Because all settings are saved to flash, it is possible (or likely) that // you could send data even if you haven't "made" any connection. - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { // NOTE: Not caling stop() or yeild() here at->streamClear(); // Empty anything in the buffer before starting - sock_connected = at->modemConnect(host, port, mux, timeout); + sock_connected = at->modemConnect(host, port, mux, timeout_s); return sock_connected; } virtual int connect(const char *host, uint16_t port) { return connect(host, port, 75000L); } - virtual int connect(IPAddress ip, uint16_t port, int timeout) { + virtual int connect(IPAddress ip, uint16_t port, int timeout_s) { // NOTE: Not caling stop() or yeild() here at->streamClear(); // Empty anything in the buffer before starting - sock_connected = at->modemConnect(ip, port, mux, timeout); + sock_connected = at->modemConnect(ip, port, mux, timeout_s); return sock_connected; } virtual int connect(IPAddress ip, uint16_t port) { @@ -237,17 +237,17 @@ public: {} public: - virtual int connect(const char *host, uint16_t port, int timeout) { + virtual int connect(const char *host, uint16_t port, int timeout_s) { // NOTE: Not caling stop() or yeild() here at->streamClear(); // Empty anything in the buffer before starting - sock_connected = at->modemConnect(host, port, mux, true, timeout); + sock_connected = at->modemConnect(host, port, mux, true, timeout_s); return sock_connected; } - virtual int connect(IPAddress ip, uint16_t port, int timeout) { + virtual int connect(IPAddress ip, uint16_t port, int timeout_s) { // NOTE: Not caling stop() or yeild() here at->streamClear(); // Empty anything in the buffer before starting - sock_connected = at->modemConnect(ip, port, mux, timeout); + sock_connected = at->modemConnect(ip, port, mux, timeout_s); return sock_connected; } }; @@ -347,10 +347,10 @@ public: XBEE_COMMAND_END_DECORATOR } - bool testAT(unsigned long timeout = 10000L) { + bool testAT(unsigned long timeout_ms = 10000L) { unsigned long start = millis(); bool success = false; - while (!success && millis() - start < timeout) { + while (!success && millis() - start < timeout_ms) { if (!inCommandMode) { success = commandMode(); if (success) exitCommand(); @@ -525,7 +525,7 @@ public: return sendATGetString(GF("IM")); } - SimStatus getSimStatus(unsigned long timeout = 10000L) { + SimStatus getSimStatus(unsigned long timeout_ms = 10000L) { return SIM_READY; // unsupported } @@ -644,9 +644,9 @@ public: return (s == REG_OK); } - bool waitForNetwork(unsigned long timeout = 60000L) { + bool waitForNetwork(unsigned long timeout_ms = 60000L) { XBEE_COMMAND_START_DECORATOR(5, false) - for (unsigned long start = millis(); millis() - start < timeout; ) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { if (isNetworkConnected()) { return true; } @@ -791,17 +791,18 @@ public: protected: - IPAddress getHostIP(const char* host, int timeout = 45000L) { + IPAddress getHostIP(const char* host, int timeout_s = 45) { String strIP; strIP.reserve(16); unsigned long startMillis = millis(); + uint32_t timeout_ms = timeout_s*1000; bool gotIP = false; XBEE_COMMAND_START_DECORATOR(5, IPAddress(0,0,0,0)) // XBee's require a numeric IP address for connection, but do provide the // functionality to look up the IP address from a fully qualified domain name - while (millis() - startMillis < timeout) // the lookup can take a while + while (millis() - startMillis < timeout_ms) // the lookup can take a while { sendAT(GF("LA"), host); - while (stream.available() < 4 && (millis() - startMillis < timeout)) {}; // wait for any response + while (stream.available() < 4 && (millis() - startMillis < timeout_ms)) {}; // wait for any response strIP = stream.readStringUntil('\r'); // read result strIP.trim(); if (!strIP.endsWith(GF("ERROR"))) { @@ -820,9 +821,10 @@ protected: } bool modemConnect(const char* host, uint16_t port, uint8_t mux = 0, - bool ssl = false, int timeout = 75000L) + bool ssl = false, int timeout_s = 75) { unsigned long startMillis = millis(); + uint32_t timeout_ms = timeout_s*1000; bool retVal = false; XBEE_COMMAND_START_DECORATOR(5, false) @@ -830,12 +832,12 @@ protected: // search for the IP to connect to if (this->savedHost != String(host) || savedIP == IPAddress(0,0,0,0)) { this->savedHost = String(host); - savedIP = getHostIP(host, timeout); // This will return 0.0.0.0 if lookup fails + savedIP = getHostIP(host, timeout_s); // This will return 0.0.0.0 if lookup fails } // If we now have a valid IP address, use it to connect if (savedIP != IPAddress(0,0,0,0)) { // Only re-set connection information if we have an IP address - retVal = modemConnect(savedIP, port, mux, ssl, timeout - (millis() - startMillis)); + retVal = modemConnect(savedIP, port, mux, ssl, timeout_ms - (millis() - startMillis)); } XBEE_COMMAND_END_DECORATOR @@ -843,10 +845,11 @@ protected: return retVal; } - bool modemConnect(IPAddress ip, uint16_t port, uint8_t mux = 0, bool ssl = false, int timeout = 75000L) { + bool modemConnect(IPAddress ip, uint16_t port, uint8_t mux = 0, bool ssl = false, int timeout_s = 75) { savedIP = ip; // Set the newly requested IP address bool success = true; + uint32_t timeout_ms = timeout_s*1000; XBEE_COMMAND_START_DECORATOR(5, false) String host; host.reserve(16); host += ip[0]; @@ -870,7 +873,7 @@ protected: sendAT(GF("DE"), String(port, HEX)); // Set the destination port success &= (1 == waitResponse()); - for (unsigned long start = millis(); millis() - start < timeout; ) { + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { if (modemGetConnected()) { sockets[mux]->sock_connected = true; break; @@ -956,7 +959,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() // NOTE: This function is used while INSIDE command mode, so we're only // waiting for requested responses. The XBee has no unsoliliced responses // (URC's) when in command mode. - uint8_t waitResponse(uint32_t timeout, String& data, + uint8_t waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { @@ -992,7 +995,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() goto finish; } } - } while (millis() - startMillis < timeout); + } while (millis() - startMillis < timeout_ms); finish: if (!index) { data.trim(); @@ -1014,12 +1017,12 @@ finish: return index; } - uint8_t waitResponse(uint32_t timeout, + uint8_t waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), GsmConstStr r3=NULL, GsmConstStr r4=NULL, GsmConstStr r5=NULL) { String data; - return waitResponse(timeout, data, r1, r2, r3, r4, r5); + return waitResponse(timeout_ms, data, r1, r2, r3, r4, r5); } uint8_t waitResponse(GsmConstStr r1=GFP(GSM_OK), GsmConstStr r2=GFP(GSM_ERROR), @@ -1092,17 +1095,17 @@ finish: DBG(GF("### Modem: "), getModemName()); } - String readResponseString(uint32_t timeout = 1000) { + String readResponseString(uint32_t timeout_ms = 1000) { TINY_GSM_YIELD(); unsigned long startMillis = millis(); - while (!stream.available() && millis() - startMillis < timeout) {}; + while (!stream.available() && millis() - startMillis < timeout_ms) {}; String res = stream.readStringUntil('\r'); // lines end with carriage returns res.trim(); return res; } - int16_t readResponseInt(uint32_t timeout = 1000) { - String res = readResponseString(timeout); // it just works better reading a string first + int16_t readResponseInt(uint32_t timeout_ms = 1000) { + String res = readResponseString(timeout_ms); // it just works better reading a string first char buf[5] = {0,}; res.toCharArray(buf, 5); int16_t intRes = strtol(buf, 0, 16); diff --git a/src/TinyGsmCommon.h b/src/TinyGsmCommon.h index 29dd28c..54408b8 100644 --- a/src/TinyGsmCommon.h +++ b/src/TinyGsmCommon.h @@ -202,7 +202,7 @@ String TinyGsmDecodeHex16bit(String &instr) { // Connect to a IP address given as an IPAddress object by // converting said IP address to text #define TINY_GSM_CLIENT_CONNECT_OVERLOADS() \ - virtual int connect(IPAddress ip, uint16_t port, int timeout) { \ + virtual int connect(IPAddress ip, uint16_t port, int timeout_s) { \ String host; host.reserve(16); \ host += ip[0]; \ host += "."; \ @@ -211,13 +211,13 @@ String TinyGsmDecodeHex16bit(String &instr) { host += ip[2]; \ host += "."; \ host += ip[3]; \ - return connect(host.c_str(), port, timeout); \ + return connect(host.c_str(), port, timeout_s); \ } \ - virtual int connect(const char *host, uint16_t port) \ - return connect(host, port, 75000L); \ + virtual int connect(const char *host, uint16_t port) { \ + return connect(host, port, 75); \ } \ - virtual int connect(IPAddress ip, uint16_t port) \ - return connect(ip, port, 75000L); \ + virtual int connect(IPAddress ip, uint16_t port) { \ + return connect(ip, port, 75); \ } @@ -415,8 +415,8 @@ String TinyGsmDecodeHex16bit(String &instr) { // Test response to AT commands #define TINY_GSM_MODEM_TEST_AT() \ - bool testAT(unsigned long timeout = 10000L) { \ - for (unsigned long start = millis(); millis() - start < timeout; ) { \ + bool testAT(unsigned long timeout_ms = 10000L) { \ + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { \ sendAT(GF("")); \ if (waitResponse(200) == 1) return true; \ delay(100); \ @@ -535,8 +535,8 @@ String TinyGsmDecodeHex16bit(String &instr) { // Waits for network attachment #define TINY_GSM_MODEM_WAIT_FOR_NETWORK() \ - bool waitForNetwork(unsigned long timeout = 60000L) { \ - for (unsigned long start = millis(); millis() - start < timeout; ) { \ + bool waitForNetwork(unsigned long timeout_ms = 60000L) { \ + for (unsigned long start = millis(); millis() - start < timeout_ms; ) { \ if (isNetworkConnected()) { \ return true; \ } \ @@ -596,10 +596,10 @@ String TinyGsmDecodeHex16bit(String &instr) { /* DBG("### AT:", cmd...); */ \ } \ \ - bool streamSkipUntil(const char c, const unsigned long timeout = 1000L) { \ + bool streamSkipUntil(const char c, const unsigned long timeout_ms = 1000L) { \ unsigned long startMillis = millis(); \ - while (millis() - startMillis < timeout) { \ - while (millis() - startMillis < timeout && !stream.available()) { \ + while (millis() - startMillis < timeout_ms) { \ + while (millis() - startMillis < timeout_ms && !stream.available()) { \ TINY_GSM_YIELD(); \ } \ if (stream.read() == c) { \ From 2e03cdeaba8791dbbc0ba2ba067d92a283006246 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Mon, 20 May 2019 10:37:30 -0400 Subject: [PATCH 31/46] Correct non-ssl connection --- examples/WebClient/WebClient.ino | 9 +++++---- src/TinyGsmClientBG96.h | 2 +- src/TinyGsmClientESP8266.h | 2 +- src/TinyGsmClientM95.h | 2 +- src/TinyGsmClientMC60.h | 2 +- src/TinyGsmClientSIM7000.h | 2 +- src/TinyGsmClientSIM800.h | 2 +- src/TinyGsmClientSaraR4.h | 2 +- src/TinyGsmClientSequansMonarch.h | 2 +- src/TinyGsmClientUBLOX.h | 2 +- src/TinyGsmClientXBee.h | 2 +- 11 files changed, 15 insertions(+), 14 deletions(-) diff --git a/examples/WebClient/WebClient.ino b/examples/WebClient/WebClient.ino index 53095ef..6bce77d 100644 --- a/examples/WebClient/WebClient.ino +++ b/examples/WebClient/WebClient.ino @@ -138,7 +138,7 @@ void loop() { #endif SerialMon.print("Waiting for network..."); - if (!modem.waitForNetwork()) { + if (!modem.waitForNetwork(240000L)) { SerialMon.println(" fail"); delay(10000); return; @@ -146,12 +146,12 @@ void loop() { SerialMon.println(" OK"); if (modem.isNetworkConnected()) { - SerialMon.print("Network connected"); + SerialMon.println("Network connected"); } #if TINY_GSM_USE_GPRS SerialMon.print(F("Connecting to ")); - SerialMon.print(apn); + SerialMon.println(apn); if (!modem.gprsConnect(apn, gprsUser, gprsPass)) { SerialMon.println(" fail"); delay(10000); @@ -161,7 +161,7 @@ void loop() { #endif SerialMon.print("Connecting to "); - SerialMon.print(server); + SerialMon.println(server); if (!client.connect(server, port)) { SerialMon.println(" fail"); delay(10000); @@ -170,6 +170,7 @@ void loop() { SerialMon.println(" OK"); // Make a HTTP GET request: + SerialMon.println("Performing HTTP GET request..."); client.print(String("GET ") + resource + " HTTP/1.0\r\n"); client.print(String("Host: ") + server + "\r\n"); client.print("Connection: close\r\n\r\n"); diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index 55782e4..c1f7e2c 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -75,7 +75,7 @@ public: stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout_s); + sock_connected = at->modemConnect(host, port, mux, false, timeout_s); return sock_connected; } diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index 3ceefc2..e1f6608 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -72,7 +72,7 @@ public: stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout_s); + sock_connected = at->modemConnect(host, port, mux, false, timeout_s); return sock_connected; } diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 9754668..18c90d7 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -75,7 +75,7 @@ public: stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout_s); + sock_connected = at->modemConnect(host, port, mux, false, timeout_s); return sock_connected; } diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 81648d2..cef00d6 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -79,7 +79,7 @@ public: stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout_s); + sock_connected = at->modemConnect(host, port, mux, false, timeout_s); return sock_connected; } diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 9fbda33..dfb259f 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -80,7 +80,7 @@ public: stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout_s); + sock_connected = at->modemConnect(host, port, mux, false, timeout_s); return sock_connected; } diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 4987f07..934dc81 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -81,7 +81,7 @@ public: stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout_s); + sock_connected = at->modemConnect(host, port, mux, false, timeout_s); return sock_connected; } diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index b0e2cd0..72fce09 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -94,7 +94,7 @@ public: rx.clear(); uint8_t oldMux = mux; - sock_connected = at->modemConnect(host, port, &mux, timeout_s); + sock_connected = at->modemConnect(host, port, &mux, false, timeout_s); if (mux != oldMux) { DBG("WARNING: Mux number changed from", oldMux, "to", mux); at->sockets[oldMux] = NULL; diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 892120c..1fb2615 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -87,7 +87,7 @@ public: if (sock_connected) stop(); TINY_GSM_YIELD(); rx.clear(); - sock_connected = at->modemConnect(host, port, mux, timeout_s); + sock_connected = at->modemConnect(host, port, mux, false, timeout_s); return sock_connected; } diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index eef2fa1..f86d1d6 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -78,7 +78,7 @@ public: rx.clear(); uint8_t oldMux = mux; - sock_connected = at->modemConnect(host, port, &mux, timeout_s); + sock_connected = at->modemConnect(host, port, &mux, false, timeout_s); if (mux != oldMux) { DBG("WARNING: Mux number changed from", oldMux, "to", mux); at->sockets[oldMux] = NULL; diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index 8f812d9..2a1c1c1 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -99,7 +99,7 @@ public: virtual int connect(const char *host, uint16_t port, int timeout_s) { // NOTE: Not caling stop() or yeild() here at->streamClear(); // Empty anything in the buffer before starting - sock_connected = at->modemConnect(host, port, mux, timeout_s); + sock_connected = at->modemConnect(host, port, mux, false, timeout_s); return sock_connected; } virtual int connect(const char *host, uint16_t port) { From 9201cbde86c150ef03707265825e7e7af9711399 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Mon, 20 May 2019 10:45:08 -0400 Subject: [PATCH 32/46] Fix SIMCOM length read/confirmed/requested --- src/TinyGsmClientSIM7000.h | 27 ++++++++------------------- src/TinyGsmClientSIM800.h | 12 ++++++++---- 2 files changed, 16 insertions(+), 23 deletions(-) diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index dfb259f..5ca038f 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -807,44 +807,33 @@ protected: size_t len_requested = stream.readStringUntil(',').toInt(); // ^^ Requested number of data bytes (1-1460 bytes)to be read size_t len_confirmed = stream.readStringUntil('\n').toInt(); - if (len_confirmed > len_requested) { + if (len_confirmed < len_requested) { DBG(len_requested - len_confirmed, "fewer bytes confirmed than requested!"); } sockets[mux]->sock_available = len_confirmed; // ^^ Confirmed number of data bytes to be read, which may be less than requested. // 0 indicates that no data can be read. - for (size_t i=0; irx.put(c); } waitResponse(); - DBG("### READ:", len_confirmed, "from", mux); - return len_confirmed; - } - - size_t modemGetAvailable(uint8_t mux) { - sendAT(GF("+CIPRXGET=4,"), mux); - size_t result = 0; - if (waitResponse(GF("+CIPRXGET:")) == 1) { - streamSkipUntil(','); // Skip mode 4 - streamSkipUntil(','); // Skip mux - result = stream.readStringUntil('\n').toInt(); - waitResponse(); - } - if (!result) { - sockets[mux]->sock_connected = modemGetConnected(mux); - } - return result; + DBG("### READ:", len_read, "from", mux); + return len_read; } bool modemGetConnected(uint8_t mux) { diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 934dc81..e6603ad 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -735,29 +735,33 @@ protected: size_t len_requested = stream.readStringUntil(',').toInt(); // ^^ Requested number of data bytes (1-1460 bytes)to be read size_t len_confirmed = stream.readStringUntil('\n').toInt(); - if (len_confirmed > len_requested) { + if (len_confirmed < len_requested) { DBG(len_requested - len_confirmed, "fewer bytes confirmed than requested!"); } sockets[mux]->sock_available = len_confirmed; // ^^ Confirmed number of data bytes to be read, which may be less than requested. // 0 indicates that no data can be read. - for (size_t i=0; irx.put(c); } waitResponse(); - DBG("### READ:", len_confirmed, "from", mux); - return len_confirmed; + DBG("### READ:", len_read, "from", mux); + return len_read; } size_t modemGetAvailable(uint8_t mux) { From db456b53453b02848fa5ceba7f4191726fa91569 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Mon, 20 May 2019 12:38:37 -0400 Subject: [PATCH 33/46] Fixes --- library.json | 2 +- library.properties | 2 +- src/TinyGsmClientA6.h | 2 +- src/TinyGsmClientMC60.h | 2 +- src/TinyGsmClientSIM7000.h | 21 ++++++++++++++++----- src/TinyGsmClientSIM800.h | 6 +----- src/TinyGsmCommon.h | 2 +- 7 files changed, 22 insertions(+), 15 deletions(-) diff --git a/library.json b/library.json index 8428499..53f87cd 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "TinyGSM", - "version": "0.7.1", + "version": "0.7.3", "description": "A small Arduino library for GPRS modules, that just works. Includes examples for Blynk, MQTT, File Download, and Web Client. Supports many GSM, LTE, and WiFi modules with AT command interfaces.", "keywords": "GSM, AT commands, AT, SIM800, SIM900, A6, A7, M590, ESP8266, SIM7000, SIM800A, SIM800C, SIM800L, SIM800H, SIM808, SIM868, SIM900A, SIM900D, SIM908, SIM968, M95, MC60, MC60E, BG96, ublox, Quectel, SIMCOM, AI Thinker, LTE, LTE-M", "authors": diff --git a/library.properties b/library.properties index 6b94145..f7e6ba8 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=TinyGSM -version=0.7.1 +version=0.7.3 author=Volodymyr Shymanskyy maintainer=Volodymyr Shymanskyy sentence=A small Arduino library for GPRS modules, that just works. diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index 3ca5228..7030526 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -71,7 +71,7 @@ public: TINY_GSM_YIELD(); rx.clear(); uint8_t newMux = -1; - sock_connected = at->modemConnect(host, port, &newMux, timeout_s) + sock_connected = at->modemConnect(host, port, &newMux, timeout_s); if (sock_connected) { mux = newMux; at->sockets[mux] = this; diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index cef00d6..e356f47 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -374,7 +374,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() } // Check that we have a local IP address - if (localIP() != 0) { + if (localIP() != IPAddress(0,0,0,0)) { return true; } diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 5ca038f..e812c26 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -814,26 +814,37 @@ protected: // ^^ Confirmed number of data bytes to be read, which may be less than requested. // 0 indicates that no data can be read. - size_t len_read = 0; for (size_t i=0; irx.put(c); } waitResponse(); DBG("### READ:", len_read, "from", mux); - return len_read; + return TinyGsmMin(len_confirmed, len_requested); + } + + size_t modemGetAvailable(uint8_t mux) { + sendAT(GF("+CIPRXGET=4,"), mux); + size_t result = 0; + if (waitResponse(GF("+CIPRXGET:")) == 1) { + streamSkipUntil(','); // Skip mode 4 + streamSkipUntil(','); // Skip mux + result = stream.readStringUntil('\n').toInt(); + waitResponse(); + } + if (!result) { + sockets[mux]->sock_connected = modemGetConnected(mux); + } + return result; } bool modemGetConnected(uint8_t mux) { diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index e6603ad..6b1face 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -742,26 +742,22 @@ protected: // ^^ Confirmed number of data bytes to be read, which may be less than requested. // 0 indicates that no data can be read. - size_t len_read = 0; for (size_t i=0; irx.put(c); } waitResponse(); DBG("### READ:", len_read, "from", mux); - return len_read; + return TinyGsmMin(len_confirmed, len_requested); } size_t modemGetAvailable(uint8_t mux) { diff --git a/src/TinyGsmCommon.h b/src/TinyGsmCommon.h index 54408b8..4c65b55 100644 --- a/src/TinyGsmCommon.h +++ b/src/TinyGsmCommon.h @@ -10,7 +10,7 @@ #define TinyGsmCommon_h // The current library version number -#define TINYGSM_VERSION "0.7.1" +#define TINYGSM_VERSION "0.7.3" #if defined(SPARK) || defined(PARTICLE) #include "Particle.h" From b96c866badfe027d89a96cde91a0df569eb6cfee Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Mon, 20 May 2019 12:45:17 -0400 Subject: [PATCH 34/46] Fix inside debug statement --- src/TinyGsmClientSIM7000.h | 2 +- src/TinyGsmClientSIM800.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index e812c26..4b2c914 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -828,7 +828,7 @@ protected: sockets[mux]->rx.put(c); } waitResponse(); - DBG("### READ:", len_read, "from", mux); + DBG("### READ:", TinyGsmMin(len_confirmed, len_requested), "from", mux); return TinyGsmMin(len_confirmed, len_requested); } diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 6b1face..63882eb 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -756,7 +756,7 @@ protected: sockets[mux]->rx.put(c); } waitResponse(); - DBG("### READ:", len_read, "from", mux); + DBG("### READ:", TinyGsmMin(len_confirmed, len_requested), "from", mux); return TinyGsmMin(len_confirmed, len_requested); } From 7f7a7563cffa1909eb65609fb1d43a31eef096a2 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Mon, 20 May 2019 13:12:09 -0400 Subject: [PATCH 35/46] Ensure that ALL variants of read respect timeout --- src/TinyGsmClientA6.h | 3 ++- src/TinyGsmClientBG96.h | 3 ++- src/TinyGsmClientESP8266.h | 3 ++- src/TinyGsmClientM590.h | 3 ++- src/TinyGsmClientM95.h | 3 ++- src/TinyGsmClientMC60.h | 3 ++- src/TinyGsmClientSIM7000.h | 7 ++++--- src/TinyGsmClientSIM800.h | 5 +++-- src/TinyGsmClientSaraR4.h | 4 ++-- src/TinyGsmClientSequansMonarch.h | 3 ++- src/TinyGsmClientUBLOX.h | 3 ++- src/TinyGsmClientXBee.h | 4 ++-- 12 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index 7030526..939be0e 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -599,7 +599,8 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Got: ", len, "->", sockets[mux]->rx.free()); } while (len--) { - while (!stream.available()) { TINY_GSM_YIELD(); } + startMillis = millis(); + while (!stream.available() && (millis() - startMillis < sockets[mux]->_timeout)) { TINY_GSM_YIELD(); } sockets[mux]->rx.put(stream.read()); } if (len_orig > sockets[mux]->available()) { // TODO diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index c1f7e2c..e5ba25d 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -517,7 +517,8 @@ protected: sockets[mux]->sock_available = len; for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } char c = stream.read(); sockets[mux]->rx.put(c); } diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index e1f6608..aeaa0d9 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -421,7 +421,8 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Got: ", len, "->", sockets[mux]->rx.free()); } while (len--) { - while (!stream.available()) { TINY_GSM_YIELD(); } + startMillis = millis(); + while (!stream.available() && (millis() - startMillis < sockets[mux]->_timeout)) { TINY_GSM_YIELD(); } sockets[mux]->rx.put(stream.read()); } if (len_orig > sockets[mux]->available()) { // TODO diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index 890cd07..b057596 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -520,7 +520,8 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Got: ", len, "->", sockets[mux]->rx.free()); } while (len--) { - while (!stream.available()) { TINY_GSM_YIELD(); } + uint32_t startMillis = millis(); + while (!stream.available() && (millis() - startMillis < sockets[mux]->_timeout)) { TINY_GSM_YIELD(); } sockets[mux]->rx.put(stream.read()); } if (len_orig > sockets[mux]->available()) { // TODO diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 18c90d7..4f4f3bf 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -571,7 +571,8 @@ protected: sockets[mux]->sock_available = len; for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } char c = stream.read(); sockets[mux]->rx.put(c); } diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index e356f47..8d49875 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -591,7 +591,8 @@ protected: sockets[mux]->sock_available = len; for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } char c = stream.read(); sockets[mux]->rx.put(c); } diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 4b2c914..e547540 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -9,7 +9,7 @@ #ifndef TinyGsmClientSIM7000_h #define TinyGsmClientSIM7000_h -#define TINY_GSM_DEBUG Serial +// #define TINY_GSM_DEBUG Serial //#define TINY_GSM_USE_HEX #if !defined(TINY_GSM_RX_BUFFER) @@ -815,14 +815,15 @@ protected: // 0 indicates that no data can be read. for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } char buf[4] = { 0, }; buf[0] = stream.read(); buf[1] = stream.read(); char c = strtol(buf, NULL, 16); #else - while (!stream.available()) { TINY_GSM_YIELD(); } + while (!stream.available() && (millis() - startMillis < sockets[mux]->_timeout)) { TINY_GSM_YIELD(); } char c = stream.read(); #endif sockets[mux]->rx.put(c); diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 63882eb..0a8abf1 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -743,14 +743,15 @@ protected: // 0 indicates that no data can be read. for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } char buf[4] = { 0, }; buf[0] = stream.read(); buf[1] = stream.read(); char c = strtol(buf, NULL, 16); #else - while (!stream.available()) { TINY_GSM_YIELD(); } + while (!stream.available() && (millis() - startMillis < sockets[mux]->_timeout)) { TINY_GSM_YIELD(); } char c = stream.read(); #endif sockets[mux]->rx.put(c); diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index 72fce09..bd26733 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -566,7 +566,6 @@ protected: sockets[mux]->sock_connected = false; return true; } - bool success; // These modems allow a faster "asynchronous" close sendAT(GF("+USOCL="), mux, GF(",1")); return 1 == waitResponse(120000L); // but it still can take up to 120s to get a response @@ -602,7 +601,8 @@ protected: streamSkipUntil('\"'); for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } char c = stream.read(); sockets[mux]->rx.put(c); } diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 1fb2615..9c75ee1 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -541,7 +541,8 @@ protected: streamSkipUntil(','); // Skip mux size_t len = stream.readStringUntil('\n').toInt(); for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } char c = stream.read(); sockets[mux]->rx.put(c); } diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index f86d1d6..7a56ace 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -587,7 +587,8 @@ protected: streamSkipUntil('\"'); for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } char c = stream.read(); sockets[mux]->rx.put(c); } diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index 2a1c1c1..f080aa7 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -103,7 +103,7 @@ public: return sock_connected; } virtual int connect(const char *host, uint16_t port) { - return connect(host, port, 75000L); + return connect(host, port, 75); } virtual int connect(IPAddress ip, uint16_t port, int timeout_s) { @@ -113,7 +113,7 @@ public: return sock_connected; } virtual int connect(IPAddress ip, uint16_t port) { - return connect(ip, port, 75000L); + return connect(ip, port, 75); } virtual void stop() { From e35e4afce0a48a0a96b7a480b3defad8c6a1aff1 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Mon, 20 May 2019 13:49:12 -0400 Subject: [PATCH 36/46] Fix typos, tweak to timeout --- src/TinyGsmClientA6.h | 8 +++----- src/TinyGsmClientBG96.h | 11 ++++------- src/TinyGsmClientESP8266.h | 6 ++---- src/TinyGsmClientM590.h | 8 +++----- src/TinyGsmClientM95.h | 11 ++++------- src/TinyGsmClientMC60.h | 11 ++++------- src/TinyGsmClientSIM7000.h | 4 ++-- src/TinyGsmClientSIM800.h | 4 ++-- src/TinyGsmClientSaraR4.h | 11 ++++------- src/TinyGsmClientSequansMonarch.h | 9 +++------ src/TinyGsmClientUBLOX.h | 11 ++++------- src/TinyGsmClientXBee.h | 2 +- src/TinyGsmCommon.h | 16 +++++++++++++--- 13 files changed, 49 insertions(+), 63 deletions(-) diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index 939be0e..847de75 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -261,7 +261,7 @@ TINY_GSM_MODEM_GET_REGISTRATION_XREG(CREG) * Generic network functions */ -TINY_GSP_MODEM_GET_CSQ() +TINY_GSM_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -552,7 +552,7 @@ public: Utilities */ -TINY_GSP_MODEM_STREAM_UTILITIES() +TINY_GSM_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout_ms, String& data, @@ -599,9 +599,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Got: ", len, "->", sockets[mux]->rx.free()); } while (len--) { - startMillis = millis(); - while (!stream.available() && (millis() - startMillis < sockets[mux]->_timeout)) { TINY_GSM_YIELD(); } - sockets[mux]->rx.put(stream.read()); + TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT } if (len_orig > sockets[mux]->available()) { // TODO DBG("### Fewer characters received than expected: ", sockets[mux]->available(), " vs ", len_orig); diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index e5ba25d..6902250 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -284,7 +284,7 @@ TINY_GSM_MODEM_GET_OPERATOR_COPS() * Generic network functions */ -TINY_GSP_MODEM_GET_CSQ() +TINY_GSM_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -329,7 +329,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() return true; } -TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() +TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() /* * IP Address functions @@ -517,10 +517,7 @@ protected: sockets[mux]->sock_available = len; for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } - char c = stream.read(); - sockets[mux]->rx.put(c); + TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT } waitResponse(); DBG("### READ:", len, "from", mux); @@ -569,7 +566,7 @@ public: Utilities */ -TINY_GSP_MODEM_STREAM_UTILITIES() +TINY_GSM_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout_ms, String& data, diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index aeaa0d9..62ee45a 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -374,7 +374,7 @@ public: Utilities */ -TINY_GSP_MODEM_STREAM_UTILITIES() +TINY_GSM_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout_ms, String& data, @@ -421,9 +421,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Got: ", len, "->", sockets[mux]->rx.free()); } while (len--) { - startMillis = millis(); - while (!stream.available() && (millis() - startMillis < sockets[mux]->_timeout)) { TINY_GSM_YIELD(); } - sockets[mux]->rx.put(stream.read()); + TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT } if (len_orig > sockets[mux]->available()) { // TODO DBG("### Fewer characters received than expected: ", sockets[mux]->available(), " vs ", len_orig); diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index b057596..e2a047d 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -246,7 +246,7 @@ TINY_GSM_MODEM_GET_OPERATOR_COPS() * Generic network functions */ -TINY_GSP_MODEM_GET_CSQ() +TINY_GSM_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -473,7 +473,7 @@ public: Utilities */ -TINY_GSP_MODEM_STREAM_UTILITIES() +TINY_GSM_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout_ms, String& data, @@ -520,9 +520,7 @@ TINY_GSP_MODEM_STREAM_UTILITIES() DBG("### Got: ", len, "->", sockets[mux]->rx.free()); } while (len--) { - uint32_t startMillis = millis(); - while (!stream.available() && (millis() - startMillis < sockets[mux]->_timeout)) { TINY_GSM_YIELD(); } - sockets[mux]->rx.put(stream.read()); + TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT } if (len_orig > sockets[mux]->available()) { // TODO DBG("### Fewer characters received than expected: ", sockets[mux]->available(), " vs ", len_orig); diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 4f4f3bf..8121d8b 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -292,7 +292,7 @@ TINY_GSM_MODEM_GET_OPERATOR_COPS() * Generic network functions */ -TINY_GSP_MODEM_GET_CSQ() +TINY_GSM_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -367,7 +367,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() return waitResponse(60000L, GF("DEACT OK"), GF("ERROR")) == 1; } -TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() +TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() /* * IP Address functions @@ -571,10 +571,7 @@ protected: sockets[mux]->sock_available = len; for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } - char c = stream.read(); - sockets[mux]->rx.put(c); + TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT } waitResponse(); DBG("### READ:", len, "from", mux); @@ -623,7 +620,7 @@ public: Utilities */ -TINY_GSP_MODEM_STREAM_UTILITIES() +TINY_GSM_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout_ms, String& data, diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 8d49875..997b489 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -307,7 +307,7 @@ TINY_GSM_MODEM_GET_OPERATOR_COPS() * Generic network functions */ -TINY_GSP_MODEM_GET_CSQ() +TINY_GSM_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -386,7 +386,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() return waitResponse(60000L, GF("DEACT OK"), GF("ERROR")) == 1; } -TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() +TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() /* * IP Address functions @@ -591,10 +591,7 @@ protected: sockets[mux]->sock_available = len; for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } - char c = stream.read(); - sockets[mux]->rx.put(c); + TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT } waitResponse(); DBG("### READ:", len, "from", mux); @@ -643,7 +640,7 @@ public: Utilities */ -TINY_GSP_MODEM_STREAM_UTILITIES() +TINY_GSM_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout_ms, String& data, diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index e547540..96a9b34 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -296,7 +296,7 @@ TINY_GSM_MODEM_GET_OPERATOR_COPS() * Generic network functions */ -TINY_GSP_MODEM_GET_CSQ() +TINY_GSM_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -861,7 +861,7 @@ public: Utilities */ -TINY_GSP_MODEM_STREAM_UTILITIES() +TINY_GSM_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout_ms, String& data, diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 0a8abf1..816a530 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -328,7 +328,7 @@ TINY_GSM_MODEM_GET_OPERATOR_COPS() * Generic network functions */ -TINY_GSP_MODEM_GET_CSQ() +TINY_GSM_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -789,7 +789,7 @@ public: Utilities */ -TINY_GSP_MODEM_STREAM_UTILITIES() +TINY_GSM_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout_ms, String& data, diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index bd26733..34f9688 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -353,7 +353,7 @@ TINY_GSM_MODEM_GET_OPERATOR_COPS() * Generic network functions */ -TINY_GSP_MODEM_GET_CSQ() +TINY_GSM_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -431,7 +431,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() return true; } -TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() +TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() /* * IP Address functions @@ -601,10 +601,7 @@ protected: streamSkipUntil('\"'); for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } - char c = stream.read(); - sockets[mux]->rx.put(c); + TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT } streamSkipUntil('\"'); waitResponse(); @@ -661,7 +658,7 @@ public: Utilities */ -TINY_GSP_MODEM_STREAM_UTILITIES() +TINY_GSM_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout_ms, String& data, diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 9c75ee1..1401c10 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -344,7 +344,7 @@ TINY_GSM_MODEM_GET_OPERATOR_COPS() * Generic network functions */ -TINY_GSP_MODEM_GET_CSQ() +TINY_GSM_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -541,10 +541,7 @@ protected: streamSkipUntil(','); // Skip mux size_t len = stream.readStringUntil('\n').toInt(); for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } - char c = stream.read(); - sockets[mux]->rx.put(c); + TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT } waitResponse(); sockets[mux]->sock_available = modemGetAvailable(mux); @@ -592,7 +589,7 @@ public: Utilities */ -TINY_GSP_MODEM_STREAM_UTILITIES() +TINY_GSM_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout_ms, String& data, diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index 7a56ace..3a259e4 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -341,7 +341,7 @@ TINY_GSM_MODEM_GET_OPERATOR_COPS() * Generic network functions */ -TINY_GSP_MODEM_GET_CSQ() +TINY_GSM_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); @@ -413,7 +413,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() return true; } -TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() +TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() /* * IP Address functions @@ -587,10 +587,7 @@ protected: streamSkipUntil('\"'); for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } - char c = stream.read(); - sockets[mux]->rx.put(c); + TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT } streamSkipUntil('\"'); waitResponse(); @@ -647,7 +644,7 @@ public: Utilities */ -TINY_GSP_MODEM_STREAM_UTILITIES() +TINY_GSM_MODEM_STREAM_UTILITIES() // TODO: Optimize this! uint8_t waitResponse(uint32_t timeout_ms, String& data, diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index f080aa7..c29364f 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -953,7 +953,7 @@ public: } } -TINY_GSP_MODEM_STREAM_UTILITIES() +TINY_GSM_MODEM_STREAM_UTILITIES() // TODO: Optimize this! // NOTE: This function is used while INSIDE command mode, so we're only diff --git a/src/TinyGsmCommon.h b/src/TinyGsmCommon.h index 4c65b55..35e5454 100644 --- a/src/TinyGsmCommon.h +++ b/src/TinyGsmCommon.h @@ -547,7 +547,7 @@ String TinyGsmDecodeHex16bit(String &instr) { // Checks if current attached to GPRS/EPS service -#define TINY_GSP_MODEM_GET_GPRS_IP_CONNECTED() \ +#define TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() \ bool isGprsConnected() { \ sendAT(GF("+CGATT?")); \ if (waitResponse(GF(GSM_NL "+CGATT:")) != 1) { \ @@ -563,7 +563,7 @@ String TinyGsmDecodeHex16bit(String &instr) { // Gets signal quality report according to 3GPP TS command AT+CSQ -#define TINY_GSP_MODEM_GET_CSQ() \ +#define TINY_GSM_MODEM_GET_CSQ() \ int16_t getSignalQuality() { \ sendAT(GF("+CSQ")); \ if (waitResponse(GF(GSM_NL "+CSQ:")) != 1) { \ @@ -575,8 +575,18 @@ String TinyGsmDecodeHex16bit(String &instr) { } +// Yields up to a time-out period and then reads a character from the stream into the mux FIFO +// TODO: Do we need to wait two _timeout periods for no character return? Will wait once in the first +// "while !stream.available()" and then will wait again in the stream.read() function. +#define TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT \ + uint32_t startMillis = millis(); \ + while (!stream.available() && (millis() - startMillis < sockets[mux]->_timeout)) { TINY_GSM_YIELD(); } \ + char c = stream.read(); \ + sockets[mux]->rx.put(c); + + // Utility templates for writing/skipping characters on a stream -#define TINY_GSP_MODEM_STREAM_UTILITIES() \ +#define TINY_GSM_MODEM_STREAM_UTILITIES() \ template \ void streamWrite(T last) { \ stream.print(last); \ From 19dd23882f0e74ab4e075a7fd260dbc2cff84453 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Mon, 20 May 2019 14:49:52 -0400 Subject: [PATCH 37/46] Keep XBee from thinking no response means connected --- src/TinyGsmClientXBee.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index c29364f..3a71f8a 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -538,7 +538,7 @@ public: if (beeType == XBEE_UNKNOWN) getSeries(); // Need to know the bee type to interpret response sendAT(GF("AI")); - int16_t intRes = readResponseInt(); + int16_t intRes = readResponseInt(10000L); RegStatus stat = REG_UNKNOWN; switch (beeType){ @@ -1106,6 +1106,7 @@ finish: int16_t readResponseInt(uint32_t timeout_ms = 1000) { String res = readResponseString(timeout_ms); // it just works better reading a string first + if (res == "") res = "FF"; char buf[5] = {0,}; res.toCharArray(buf, 5); int16_t intRes = strtol(buf, 0, 16); From 09725ba8e69854075b062b95aa13b5d0c078feae Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Mon, 20 May 2019 16:13:05 -0400 Subject: [PATCH 38/46] Fixed upcase, other XBee fixes --- src/TinyGsmClientA6.h | 2 +- src/TinyGsmClientBG96.h | 2 +- src/TinyGsmClientESP8266.h | 2 +- src/TinyGsmClientM590.h | 2 +- src/TinyGsmClientM95.h | 2 +- src/TinyGsmClientMC60.h | 2 +- src/TinyGsmClientSIM7000.h | 2 +- src/TinyGsmClientSIM800.h | 2 +- src/TinyGsmClientSaraR4.h | 2 +- src/TinyGsmClientSequansMonarch.h | 2 +- src/TinyGsmClientUBLOX.h | 2 +- src/TinyGsmClientXBee.h | 49 +++++++++++++++++-------------- 12 files changed, 38 insertions(+), 33 deletions(-) diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index 847de75..d701446 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -506,7 +506,7 @@ protected: bool modemConnect(const char* host, uint16_t port, uint8_t* mux, int timeout_s = 75) { unsigned long startMillis = millis(); - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; sendAT(GF("+CIPSTART="), GF("\"TCP"), GF("\",\""), host, GF("\","), port); if (waitResponse(timeout_ms, GF(GSM_NL "+CIPNUM:")) != 1) { diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index 6902250..b36f16b 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -474,7 +474,7 @@ protected: bool ssl = false, int timeout_s = 20) { int rsp; - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; // (1-16), (0-11),"TCP/UDP/TCP LISTENER/UDP SERVICE", // "/",,,(0-2 0=buffer) diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index 62ee45a..af8df8f 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -334,7 +334,7 @@ protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false, int timeout_s = 75) { - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; if (ssl) { sendAT(GF("+CIPSSLSIZE=4096")); waitResponse(); diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index e2a047d..f08b8c8 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -414,7 +414,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, int timeout_s = 75) { - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; for (int i=0; i<3; i++) { // TODO: no need for loop? String ip = dnsIpQuery(host); diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 8121d8b..1f83b22 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -521,7 +521,7 @@ protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false, int timeout_s = 75) { - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; sendAT(GF("+QIOPEN="), mux, GF("\"TCP"), GF("\",\""), host, GF("\","), port); int rsp = waitResponse(timeout_ms, GF("CONNECT OK" GSM_NL), diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 997b489..4f62903 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -540,7 +540,7 @@ protected: bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false, int timeout_s = 75) { - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; sendAT(GF("+QIOPEN="), mux, GF("\"TCP"), GF("\",\""), host, GF("\","), port); int rsp = waitResponse(timeout_ms, GF("CONNECT OK" GSM_NL), diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 96a9b34..8e6878d 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -764,7 +764,7 @@ protected: bool ssl = false, int timeout_s = 75) { int rsp; - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; sendAT(GF("+CIPSTART="), mux, ',', GF("\"TCP"), GF("\",\""), host, GF("\","), port); rsp = waitResponse(timeout_ms, GF("CONNECT OK" GSM_NL), diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 816a530..cd1b9fa 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -685,7 +685,7 @@ protected: bool ssl = false, int timeout_s = 75) { int rsp; - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; #if !defined(TINY_GSM_MODEM_SIM900) sendAT(GF("+CIPSSL="), ssl); rsp = waitResponse(); diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index 34f9688..5e3f058 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -531,7 +531,7 @@ protected: bool modemConnect(const char* host, uint16_t port, uint8_t* mux, bool ssl = false, int timeout_s = 120) { - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; sendAT(GF("+USOCR=6")); // create a socket if (waitResponse(GF(GSM_NL "+USOCR:")) != 1) { // reply is +USOCR: ## of socket created return false; diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 1401c10..286840d 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -482,7 +482,7 @@ protected: { int rsp; unsigned long startMillis = millis(); - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; if (ssl) { // enable SSl and use security profile 1 diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index 3a259e4..e1ca4d7 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -514,7 +514,7 @@ protected: bool modemConnect(const char* host, uint16_t port, uint8_t* mux, bool ssl = false, int timeout_s = 120) { - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; sendAT(GF("+USOCR=6")); // create a socket if (waitResponse(GF(GSM_NL "+USOCR:")) != 1) { // reply is +USOCR: ## of socket created return false; diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index 3a71f8a..e018353 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -645,15 +645,17 @@ public: } bool waitForNetwork(unsigned long timeout_ms = 60000L) { + bool retVal = false; XBEE_COMMAND_START_DECORATOR(5, false) for (unsigned long start = millis(); millis() - start < timeout_ms; ) { if (isNetworkConnected()) { - return true; + retVal = true; + break; } delay(250); // per Neil H. - more stable with delay } XBEE_COMMAND_END_DECORATOR - return false; + return retVal; } /* @@ -662,28 +664,30 @@ public: bool networkConnect(const char* ssid, const char* pwd) { + bool retVal = true; XBEE_COMMAND_START_DECORATOR(5, false) //nh For no pwd don't set setscurity or pwd - if (NULL == ssid ) return exitAndFail(); + if (ssid == NULL) retVal = false;; - if (NULL != pwd) + if (pwd != NULL) { sendAT(GF("EE"), 2); // Set security to WPA2 - if (waitResponse() != 1) return exitAndFail(); + if (waitResponse() != 1) retVal = false; sendAT(GF("PK"), pwd); } else { sendAT(GF("EE"), 0); // Set No security } - if (waitResponse() != 1) return exitAndFail(); + if (waitResponse() != 1) retVal = false; sendAT(GF("ID"), ssid); - if (waitResponse() != 1) return exitAndFail(); + if (waitResponse() != 1) retVal = false; + + if (!writeChanges()) retVal = false; - if (!writeChanges()) return exitAndFail(); XBEE_COMMAND_END_DECORATOR - return true; + return retVal; } bool networkDisconnect() { @@ -794,18 +798,18 @@ protected: IPAddress getHostIP(const char* host, int timeout_s = 45) { String strIP; strIP.reserve(16); unsigned long startMillis = millis(); - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; bool gotIP = false; XBEE_COMMAND_START_DECORATOR(5, IPAddress(0,0,0,0)) // XBee's require a numeric IP address for connection, but do provide the // functionality to look up the IP address from a fully qualified domain name - while (millis() - startMillis < timeout_ms) // the lookup can take a while + while ((millis() - startMillis) < timeout_ms) // the lookup can take a while { sendAT(GF("LA"), host); - while (stream.available() < 4 && (millis() - startMillis < timeout_ms)) {}; // wait for any response + while (stream.available() < 4 && (millis() - startMillis < timeout_ms)) {TINY_GSM_YIELD()}; strIP = stream.readStringUntil('\r'); // read result strIP.trim(); - if (!strIP.endsWith(GF("ERROR"))) { + if (strIP != "" && strIP != GF("ERROR")) { gotIP = true; break; } @@ -824,7 +828,7 @@ protected: bool ssl = false, int timeout_s = 75) { unsigned long startMillis = millis(); - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; bool retVal = false; XBEE_COMMAND_START_DECORATOR(5, false) @@ -849,7 +853,7 @@ protected: savedIP = ip; // Set the newly requested IP address bool success = true; - uint32_t timeout_ms = timeout_s*1000; + uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; XBEE_COMMAND_START_DECORATOR(5, false) String host; host.reserve(16); host += ip[0]; @@ -896,25 +900,25 @@ protected: // really be open, but no data has yet been sent. We return this unknown value // as true so there's a possibility it's wrong. bool modemGetConnected() { - - XBEE_COMMAND_START_DECORATOR(5, false) - // If the IP address is 0, it's not valid so we can't be connected if (savedIP == IPAddress(0,0,0,0)) return false; + XBEE_COMMAND_START_DECORATOR(5, false) + // Verify that we're connected to the *right* IP address // We might be connected - but to the wrong thing // NOTE: In transparent mode, there is only one connection possible - no multiplex - String strIP; strIP.reserve(16); - sendAT(GF("DL")); - strIP = stream.readStringUntil('\r'); // read result - if (TinyGsmIpFromString(strIP) != savedIP) return exitAndFail(); + // String strIP; strIP.reserve(16); + // sendAT(GF("DL")); + // strIP = stream.readStringUntil('\r'); // read result + // if (TinyGsmIpFromString(strIP) != savedIP) return exitAndFail(); if (beeType == XBEE_UNKNOWN) getSeries(); // Need to know the bee type to interpret response switch (beeType){ // The wifi be can only say if it's connected to the netowrk case XBEE_S6B_WIFI: { RegStatus s = getRegistrationStatus(); + XBEE_COMMAND_END_DECORATOR if (s != REG_OK) { sockets[0]->sock_connected = false; // no multiplex } @@ -926,6 +930,7 @@ protected: XBEE_COMMAND_END_DECORATOR switch(intRes) { case 0x00: // 0x00 = The socket is definitely open + case 0x28: // 0x28 = "Unknown." case 0xFF: // 0xFF = No known status - this is always returned prior to sending data return true; case 0x02: // 0x02 = Invalid parameters (bad IP/host) From 363f2c5e89a9984af97de13608cae2096a9720eb Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Mon, 20 May 2019 17:47:11 -0400 Subject: [PATCH 39/46] No async close for ublox SARA R4, it just doesn't work --- src/TinyGsmClientSaraR4.h | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index 5e3f058..6a4e55e 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -74,22 +74,6 @@ public: public: virtual int connect(const char *host, uint16_t port, int timeout_s) { stop(); - // If we're creating a new connection on the same client, we need to wait - // until the async close has finished on Cat-M modems. - // After close has completed, the +UUSOCL should appear. - // Without this wait, there might be unexpected behaviors when the same - // client instance attempts to move from one socket to another. - // This is only a problem for the LTE-M modules that take painfully long - // to open and close sockets. For those modules, when connecting to multple - // locations, remember to create multiple clients with different mux numbers. - // TODO: Re-evaluate this! - if (at->modemGetConnected(mux)) { - DBG("Waiting for +UUSOCL URC on", mux); - for (unsigned long start = millis(); millis() - start < 120000L; ) { - at->maintain(); - if (!sock_connected) break; - } - } TINY_GSM_YIELD(); rx.clear(); @@ -553,8 +537,6 @@ protected: //waitResponse(); // connect on the allocated socket - // TODO: Use faster "asynchronous" connection? - // We would have to wait for the +UUSOCO URC to verify connection sendAT(GF("+USOCO="), *mux, ",\"", host, "\",", port); int rsp = waitResponse(timeout_ms); return (1 == rsp); @@ -566,10 +548,8 @@ protected: sockets[mux]->sock_connected = false; return true; } - // These modems allow a faster "asynchronous" close - sendAT(GF("+USOCL="), mux, GF(",1")); - return 1 == waitResponse(120000L); // but it still can take up to 120s to get a response - // TODO: Evaluate whether the speed bump by allowing the async close is worth it + sendAT(GF("+USOCL="), mux); + return 1 == waitResponse(120000L); // can take up to 120s to get a response } int16_t modemSend(const void* buff, size_t len, uint8_t mux) { From 7de65e40d256beb3874fc0ba0aff0df2f184aaa1 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Tue, 21 May 2019 16:27:30 -0400 Subject: [PATCH 40/46] Sequans modifications after testing --- src/TinyGsmClientSequansMonarch.h | 173 ++++++++++++++++++++---------- 1 file changed, 114 insertions(+), 59 deletions(-) diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 286840d..21c2f0a 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -16,11 +16,11 @@ #define TINY_GSM_RX_BUFFER 64 #endif -#define TINY_GSM_MUX_COUNT 5 +#define TINY_GSM_MUX_COUNT 6 #include -#define GSM_NL "\r" +#define GSM_NL "\r\n" static const char GSM_OK[] TINY_GSM_PROGMEM = "OK" GSM_NL; static const char GSM_ERROR[] TINY_GSM_PROGMEM = "ERROR" GSM_NL; @@ -39,8 +39,6 @@ enum RegStatus { REG_UNKNOWN = 4, }; -#define NUM_SOCKETS 6 - enum SocketStatus { SOCK_CLOSED = 0, SOCK_ACTIVE_DATA = 1, @@ -77,7 +75,9 @@ public: sock_connected = false; got_data = false; - at->sockets[mux] = this; + // adjust for zero indexed socket array vs Sequans' 1 indexed mux numbers + // using modulus will force 6 back to 0 + at->sockets[mux % TINY_GSM_MUX_COUNT] = this; return true; } @@ -217,19 +217,22 @@ public: TINY_GSM_MODEM_SET_BAUD_IPR() - bool testAT(unsigned long timeout_ms = 10000L) { - for (unsigned long start = millis(); millis() - start < timeout_ms; ) { - sendAT(GF("")); - if (waitResponse(200) == 1) { - delay(100); - return true; - } - delay(100); - } - return false; - } +TINY_GSM_MODEM_TEST_AT() -TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS() + void maintain() { + for (int mux = 1; mux <= TINY_GSM_MUX_COUNT; mux++) { + GsmClient* sock = sockets[mux % TINY_GSM_MUX_COUNT]; + if (sock && sock->got_data) { + sock->got_data = false; + sock->sock_available = modemGetAvailable(mux); + // modemGetConnected() always checks the state of ALL socks + modemGetConnected(); + } + } + while (stream.available()) { + waitResponse(15, NULL, NULL); + } + } bool factoryDefault() { sendAT(GF("&FZE0&W")); // Factory + Reset + Echo Off + Write @@ -262,12 +265,14 @@ TINY_GSM_MODEM_GET_INFO_ATI() } sendAT(GF("+CFUN=0")); - if (waitResponse(10000L) != 1) { + int res = waitResponse(20000L, GFP(GSM_OK), GFP(GSM_ERROR), GF("+SYSSTART")) ; + if (res != 1 && res != 3) { return false; } sendAT(GF("+CFUN=1,1")); - if (waitResponse(60000L, GF("+SYSSTART")) != 1) { + res = waitResponse(20000L, GF("+SYSSTART"), GFP(GSM_ERROR)) ; + if (res != 1 && res != 3) { return false; } delay(1000); @@ -289,12 +294,14 @@ TINY_GSM_MODEM_GET_INFO_ATI() } /* - During sleep, the SIM800 module has its serial communication disabled. In order to reestablish communication - pull the DRT-pin of the SIM800 module LOW for at least 50ms. Then use this function to disable sleep mode. - The DTR-pin can then be released again. + When power saving is enabled, UART0 interface is activated with sleep mode support. + Module power state is controlled by RTS0 line. When no activity on UART, CTS line + will be set to OFF state (driven high level) milliseconds (100ms to 10s, + default 5s) after the last sent character, then module will go to sleep mode as soon + as DTE set RTS line to OFF state (driver high level). */ bool sleepEnable(bool enable = true) { - sendAT(GF("+CSCLK="), enable); + sendAT(GF("+SQNIPSCFG="), enable); return waitResponse() == 1; } @@ -349,7 +356,7 @@ TINY_GSM_MODEM_GET_CSQ() bool isNetworkConnected() { RegStatus s = getRegistrationStatus(); if (s == REG_OK_HOME || s == REG_OK_ROAMING) { - DBG(F("connected with status:"), s); + // DBG(F("connected with status:"), s); return true; } else { return false; @@ -365,10 +372,11 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) { gprsDisconnect(); - // Define the PDP context + // Define the PDP context (This uses context #3!) sendAT(GF("+CGDCONT=3,\"IPV4V6\",\""), apn, '"'); waitResponse(); + // Set authentication if (user && strlen(user) > 0) { sendAT(GF("+CGAUTH=3,1,\""), user, GF("\",\""), pwd, GF("\"")); waitResponse(); @@ -486,27 +494,55 @@ protected: if (ssl) { // enable SSl and use security profile 1 + //AT+SQNSSCFG=,, sendAT(GF("+SQNSSCFG="), mux, GF(",1,1")); if (waitResponse() != 1) { - DBG("failed to configure secure socket"); + DBG("### WARNING: failed to configure secure socket"); return false; } } + // Socket configuration + //AT+SQNSCFG:, , , , , + // = Connection ID = mux + // = PDP context ID = 3 - this is number set up above in the GprsConnect function + // = Packet Size, used for online data mode only = 300 (default) + // = Max timeout in seconds = 90 (default) + // = Connection timeout in hundreds of milliseconds = 600 (default) + // = Data sending timeout in hundreds of milliseconds, used for online data mode only = 50 (default) sendAT(GF("+SQNSCFG="), mux, GF(",3,300,90,600,50")); - waitResponse(); + waitResponse(5000L); + // Socket configuration extended + //AT+SQNSCFGEXT:, , , , , + // = Connection ID = mux + // = Send/Receive URC model = 1 - data amount mode + // = Receive data mode = 0 - data as text (1 would be as hex) + // = unused = 0 + // = Listen auto-response mode = 0 - deactivated + // = Send data mode = 0 - data as text (1 would be as hex) sendAT(GF("+SQNSCFGEXT="), mux, GF(",1,0,0,0,0")); - waitResponse(); + waitResponse(5000L); + // Socket dial + //AT+SQNSD=,,,[,[,[,[,acceptAnyRemote]]]] + // = Connection ID = mux + // = Transmission protocol = 0 - TCP (1 for UDP) + // = Remote host port to contact + // = Any valid IP address in the format “xxx.xxx.xxx.xxx” or any host name solved with a DNS query + // = Socket closure behaviour for TCP, has no effect for UDP = 0 - local port closes when remote does (default) + // = UDP connection local port, has no effect for TCP connections. + // = Connection mode = 1 - command mode connection + // = Applies to UDP only sendAT(GF("+SQNSD="), mux, ",0,", port, ',', GF("\""), host, GF("\""), ",0,0,1"); rsp = waitResponse((timeout_ms - (millis() - startMillis)), - GF("OK" GSM_NL), + GFP(GSM_OK), + GFP(GSM_ERROR), GF("NO CARRIER" GSM_NL) ); // creation of socket failed immediately. - if (rsp != 1) return rsp; + if (rsp != 1) return false; // wait until we get a good status bool connected = false; @@ -519,14 +555,17 @@ protected: int modemSend(const void* buff, size_t len, uint8_t mux) { - sendAT(GF("+SQNSSENDEXT="), mux, ',', len); - if (waitResponse(5000, GF(GSM_NL "> ")) != 1) { + if (sockets[mux % TINY_GSM_MUX_COUNT]->sock_connected == false) { + DBG("### Sock closed, cannot send data!"); return 0; } + + sendAT(GF("+SQNSSENDEXT="), mux, ',', len); + waitResponse(10000L, GF(GSM_NL "> ")); stream.write((uint8_t*)buff, len); stream.flush(); if (waitResponse() != 1) { - DBG("no OK after send"); + DBG("### no OK after send"); return 0; } return len; @@ -541,10 +580,14 @@ protected: streamSkipUntil(','); // Skip mux size_t len = stream.readStringUntil('\n').toInt(); for (size_t i=0; i_timeout)) { TINY_GSM_YIELD(); } \ + char c = stream.read(); \ + sockets[mux % TINY_GSM_MUX_COUNT]->rx.put(c); } + // DBG("### Read:", len, "from", mux); waitResponse(); - sockets[mux]->sock_available = modemGetAvailable(mux); + sockets[mux % TINY_GSM_MUX_COUNT]->sock_available = modemGetAvailable(mux); return len; } @@ -553,34 +596,44 @@ protected: size_t result = 0; if (waitResponse(GF("+SQNSI:")) == 1) { streamSkipUntil(','); // Skip mux - streamSkipUntil(','); // Skip sent - streamSkipUntil(','); // Skip received - result = stream.readStringUntil(',').toInt(); + streamSkipUntil(','); // Skip total sent + streamSkipUntil(','); // Skip total received + result = stream.readStringUntil(',').toInt(); // keep data not yet read waitResponse(); } - if (!result) { - sockets[mux]->sock_connected = modemGetConnected(mux); - } + // DBG("### Available:", result, "on", mux); return result; } - bool modemGetConnected(uint8_t mux) { + bool modemGetConnected(uint8_t mux = 1) { + // This single command always returns the connection status of all + // six possible sockets. sendAT(GF("+SQNSS")); - uint8_t m = 0; - uint8_t status = 0; - - while (true) { + for (int muxNo = 1; muxNo <= TINY_GSM_MUX_COUNT; muxNo++) { if (waitResponse(GFP(GSM_OK), GF(GSM_NL "+SQNSS: ")) != 2) { break; }; - m = stream.readStringUntil(',').toInt(); - if (m == mux) { - status = stream.readStringUntil(',').toInt(); - } - streamSkipUntil('\n'); // Skip + uint8_t status = 0; + // if (stream.readStringUntil(',').toInt() != muxNo) { // check the mux no + // DBG("### Warning: misaligned mux numbers!"); + // } + streamSkipUntil(','); // skip mux [use muxNo] + status = stream.parseInt(); // Read the status + // if mux is in use, will have comma then other info after the status + // if not, there will be new line immediately after status + // streamSkipUntil('\n'); // Skip port and IP info + // SOCK_CLOSED = 0, + // SOCK_ACTIVE_DATA = 1, + // SOCK_SUSPENDED = 2, + // SOCK_SUSPENDED_PENDING_DATA = 3, + // SOCK_LISTENING = 4, + // SOCK_INCOMING = 5, + // SOCK_OPENING = 6, + sockets[muxNo % TINY_GSM_MUX_COUNT]->sock_connected = \ + ((status != SOCK_CLOSED) && (status != SOCK_INCOMING) && (status != SOCK_OPENING)); } - - return ((status != SOCK_CLOSED) && (status != SOCK_INCOMING) && (status != SOCK_OPENING)); + waitResponse(); // Should be an OK at the end + return sockets[mux % TINY_GSM_MUX_COUNT]->sock_connected; } public: @@ -628,18 +681,20 @@ TINY_GSM_MODEM_STREAM_UTILITIES() goto finish; } else if (data.endsWith(GF(GSM_NL "+SQNSRING:"))) { int mux = stream.readStringUntil(',').toInt(); - if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) { - sockets[mux]->got_data = true; + int len = stream.readStringUntil('\n').toInt(); + if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux % TINY_GSM_MUX_COUNT]) { + sockets[mux % TINY_GSM_MUX_COUNT]->got_data = true; + sockets[mux % TINY_GSM_MUX_COUNT]->sock_available = len; } - stream.readStringUntil('\n'); data = ""; + DBG("### URC Data Received:", len, "on", mux); } else if (data.endsWith(GF("SQNSH: "))) { int mux = stream.readStringUntil('\n').toInt(); - if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) { - sockets[mux]->sock_connected = false; + if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux % TINY_GSM_MUX_COUNT]) { + sockets[mux % TINY_GSM_MUX_COUNT]->sock_connected = false; } data = ""; - DBG("### Closed: ", mux); + DBG("### URC Sock Closed: ", mux); } } } while (millis() - startMillis < timeout_ms); From 39beba60b13bc9b47185ea40c5500cc2da8f9f38 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Tue, 21 May 2019 17:23:01 -0400 Subject: [PATCH 41/46] Don't query closed sock --- src/TinyGsmClientSaraR4.h | 8 ++++++-- src/TinyGsmClientUBLOX.h | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index 6a4e55e..49eaf2a 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -590,6 +590,8 @@ protected: } size_t modemGetAvailable(uint8_t mux) { + // Querying a closed socket gives an error "operation not allowed" + if (!sockets[mux]->sock_connected) return 0; sendAT(GF("+USORD="), mux, ",0"); size_t result = 0; uint8_t res = waitResponse(GF(GSM_NL "+USORD:")); @@ -608,6 +610,8 @@ protected: } bool modemGetConnected(uint8_t mux) { + // Querying a closed socket gives an error "operation not allowed" + if (!sockets[mux]->sock_connected) return false; sendAT(GF("+USOCTL="), mux, ",10"); uint8_t res = waitResponse(GF(GSM_NL "+USOCTL:")); if (res != 1) @@ -683,14 +687,14 @@ TINY_GSM_MODEM_STREAM_UTILITIES() sockets[mux]->sock_available = len; } data = ""; - DBG("### Got Data:", len, "on", mux); + DBG("### URC Data Received:", len, "on", mux); } else if (data.endsWith(GF(GSM_NL "+UUSOCL:"))) { int mux = stream.readStringUntil('\n').toInt(); if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) { sockets[mux]->sock_connected = false; } data = ""; - DBG("### Closed: ", mux); + DBG("### URC Sock Closed:", mux); } } } while (millis() - startMillis < timeout_ms); diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index e1ca4d7..0d60e13 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -596,6 +596,8 @@ protected: } size_t modemGetAvailable(uint8_t mux) { + // Querying a closed socket gives an error "operation not allowed" + if (!sockets[mux]->sock_connected) return 0; sendAT(GF("+USORD="), mux, ",0"); size_t result = 0; uint8_t res = waitResponse(GF(GSM_NL "+USORD:")); @@ -614,6 +616,8 @@ protected: } bool modemGetConnected(uint8_t mux) { + // Querying a closed socket gives an error "operation not allowed" + if (!sockets[mux]->sock_connected) return false; sendAT(GF("+USOCTL="), mux, ",10"); uint8_t res = waitResponse(GF(GSM_NL "+USOCTL:")); if (res != 1) @@ -689,14 +693,14 @@ TINY_GSM_MODEM_STREAM_UTILITIES() sockets[mux]->sock_available = len; } data = ""; - DBG("### Got Data:", len, "on", mux); + DBG("### URC Data Received:", len, "on", mux); } else if (data.endsWith(GF(GSM_NL "+UUSOCL:"))) { int mux = stream.readStringUntil('\n').toInt(); if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) { sockets[mux]->sock_connected = false; } data = ""; - DBG("### Closed: ", mux); + DBG("### URC Sock Closed: ", mux); } } } while (millis() - startMillis < timeout_ms); From 96bbf381ad979814a72c4f5b2e656db71c8bb1c4 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Tue, 21 May 2019 18:35:37 -0400 Subject: [PATCH 42/46] Safer to query the closed sock and get an error --- src/TinyGsmClientSaraR4.h | 6 ++---- src/TinyGsmClientUBLOX.h | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index 49eaf2a..cb45109 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -590,8 +590,7 @@ protected: } size_t modemGetAvailable(uint8_t mux) { - // Querying a closed socket gives an error "operation not allowed" - if (!sockets[mux]->sock_connected) return 0; + // NOTE: Querying a closed socket gives an error "operation not allowed" sendAT(GF("+USORD="), mux, ",0"); size_t result = 0; uint8_t res = waitResponse(GF(GSM_NL "+USORD:")); @@ -610,8 +609,7 @@ protected: } bool modemGetConnected(uint8_t mux) { - // Querying a closed socket gives an error "operation not allowed" - if (!sockets[mux]->sock_connected) return false; + // NOTE: Querying a closed socket gives an error "operation not allowed" sendAT(GF("+USOCTL="), mux, ",10"); uint8_t res = waitResponse(GF(GSM_NL "+USOCTL:")); if (res != 1) diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index 0d60e13..53be58d 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -596,8 +596,7 @@ protected: } size_t modemGetAvailable(uint8_t mux) { - // Querying a closed socket gives an error "operation not allowed" - if (!sockets[mux]->sock_connected) return 0; + // NOTE: Querying a closed socket gives an error "operation not allowed" sendAT(GF("+USORD="), mux, ",0"); size_t result = 0; uint8_t res = waitResponse(GF(GSM_NL "+USORD:")); @@ -616,8 +615,7 @@ protected: } bool modemGetConnected(uint8_t mux) { - // Querying a closed socket gives an error "operation not allowed" - if (!sockets[mux]->sock_connected) return false; + // NOTE: Querying a closed socket gives an error "operation not allowed" sendAT(GF("+USOCTL="), mux, ",10"); uint8_t res = waitResponse(GF(GSM_NL "+USOCTL:")); if (res != 1) From 880c4614e471d1cd26828f4e24367a87b7eb82d9 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Wed, 22 May 2019 12:03:09 -0400 Subject: [PATCH 43/46] Added battery and temperature functions --- examples/AllFunctions/AllFunctions.ino | 3 ++ examples/WebClient/WebClient.ino | 1 + src/TinyGsmClientA6.h | 33 +++++++++++++++- src/TinyGsmClientBG96.h | 40 +++++++++++++++++--- src/TinyGsmClientESP8266.h | 11 ++++++ src/TinyGsmClientM590.h | 6 ++- src/TinyGsmClientM95.h | 52 +++++++++++++++++++++++--- src/TinyGsmClientMC60.h | 40 +++++++++++++++++--- src/TinyGsmClientSIM7000.h | 36 ++++++++++++++++-- src/TinyGsmClientSIM800.h | 40 +++++++++++++++++--- src/TinyGsmClientSaraR4.h | 34 +++++++++++++++-- src/TinyGsmClientSequansMonarch.h | 43 +++++++++++++++++++-- src/TinyGsmClientUBLOX.h | 12 +++++- src/TinyGsmClientXBee.h | 17 ++++++++- 14 files changed, 331 insertions(+), 37 deletions(-) diff --git a/examples/AllFunctions/AllFunctions.ino b/examples/AllFunctions/AllFunctions.ino index ff44e08..7447b73 100644 --- a/examples/AllFunctions/AllFunctions.ino +++ b/examples/AllFunctions/AllFunctions.ino @@ -111,6 +111,7 @@ void loop() { // To skip it, call init() instead of restart() DBG("Initializing modem..."); if (!modem.restart()) { + // if (!modem.init()) { DBG("Failed to restart modem, delaying 10s and retrying"); delay(3000); // restart autobaud in case GSM just rebooted @@ -122,10 +123,12 @@ void loop() { String modemInfo = modem.getModemInfo(); DBG("Modem:", modemInfo); +#if TINY_GSM_USE_GPRS // Unlock your SIM card with a PIN if needed if ( GSM_PIN && modem.getSimStatus() != 3 ) { modem.simUnlock(GSM_PIN); } +#endif #if TINY_GSM_USE_WIFI SerialMon.print(F("Setting SSID/password...")); diff --git a/examples/WebClient/WebClient.ino b/examples/WebClient/WebClient.ino index 6bce77d..bf3b843 100644 --- a/examples/WebClient/WebClient.ino +++ b/examples/WebClient/WebClient.ino @@ -116,6 +116,7 @@ void setup() { // To skip it, call init() instead of restart() SerialMon.println("Initializing modem..."); modem.restart(); + // modem.init(); String modemInfo = modem.getModemInfo(); SerialMon.print("Modem: "); diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index d701446..a552c43 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -482,7 +482,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() String getGsmLocation() TINY_GSM_ATTR_NOT_AVAILABLE; /* - * Battery functions + * Battery & temperature functions */ uint16_t getBattVoltage() TINY_GSM_ATTR_NOT_AVAILABLE; @@ -492,12 +492,41 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return false; } - stream.readStringUntil(','); + streamSkipUntil(','); // Skip battery charge status + // Read battery charge level int res = stream.readStringUntil('\n').toInt(); + // Wait for final OK waitResponse(); return res; } + uint8_t getBattChargeState() + sendAT(GF("+CBC?")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + // Read battery charge status + int res = stream.readStringUntil(',').toInt(); + // Wait for final OK + waitResponse(); + return res; + } + + bool getBattStats(uint8_t &chargeState, int8_t &percent, uint16_t &milliVolts) { + sendAT(GF("+CBC?")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + chargeState = stream.readStringUntil(',').toInt(); + percent = stream.readStringUntil('\n').toInt(); + // Wait for final OK + waitResponse(); + return true; + } + + + float getTemperature() TINY_GSM_ATTR_NOT_AVAILABLE; + /* * Client related functions */ diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index b36f16b..3cbe153 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -436,7 +436,7 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() String getGsmLocation() TINY_GSM_ATTR_NOT_AVAILABLE; /* - * Battery functions + * Battery & temperature functions */ // Use: float vBatt = modem.getBattVoltage() / 1000.0; @@ -445,10 +445,11 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return 0; } - streamSkipUntil(','); // Skip - streamSkipUntil(','); // Skip - + streamSkipUntil(','); // Skip battery charge status + streamSkipUntil(','); // Skip battery charge level + // return voltage in mV uint16_t res = stream.readStringUntil(',').toInt(); + // Wait for final OK waitResponse(); return res; } @@ -458,12 +459,41 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return false; } - stream.readStringUntil(','); + streamSkipUntil(','); // Skip battery charge status + // Read battery charge level int res = stream.readStringUntil(',').toInt(); + // Wait for final OK waitResponse(); return res; } + uint8_t getBattChargeState() + sendAT(GF("+CBC?")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + // Read battery charge status + int res = stream.readStringUntil(',').toInt(); + // Wait for final OK + waitResponse(); + return res; + } + + bool getBattStats(uint8_t &chargeState, int8_t &percent, uint16_t &milliVolts) { + sendAT(GF("+CBC?")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + chargeState = stream.readStringUntil(',').toInt(); + percent = stream.readStringUntil(',').toInt(); + milliVolts = stream.readStringUntil('\n').toInt(); + // Wait for final OK + waitResponse(); + return true; + } + + float getTemperature() TINY_GSM_ATTR_NOT_AVAILABLE; + /* * Client related functions */ diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index af8df8f..f736166 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -325,6 +325,17 @@ TINY_GSM_MODEM_MAINTAIN_LISTEN() return TinyGsmIpFromString(getLocalIP()); } + /* + * Battery & temperature functions + */ + + // Use: float vBatt = modem.getBattVoltage() / 1000.0; + uint16_t getBattVoltage() TINY_GSM_ATTR_NOT_AVAILABLE; + int8_t getBattPercent() TINY_GSM_ATTR_NOT_AVAILABLE; + uint8_t getBattChargeState() TINY_GSM_ATTR_NOT_AVAILABLE; + bool getBattStats(uint8_t &chargeState, int8_t &percent, uint16_t &milliVolts) TINY_GSM_ATTR_NOT_AVAILABLE; + float getTemperature() TINY_GSM_ATTR_NOT_AVAILABLE; + /* * Client related functions */ diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index f08b8c8..b2f9673 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -400,12 +400,14 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() String getGsmLocation() TINY_GSM_ATTR_NOT_AVAILABLE; /* - * Battery functions + * Battery & temperature functions */ uint16_t getBattVoltage() TINY_GSM_ATTR_NOT_AVAILABLE; - int8_t getBattPercent() TINY_GSM_ATTR_NOT_AVAILABLE; + uint8_t getBattChargeState() TINY_GSM_ATTR_NOT_AVAILABLE; + bool getBattStats(uint8_t &chargeState, int8_t &percent, uint16_t &milliVolts) TINY_GSM_ATTR_NOT_AVAILABLE; + float getTemperature() TINY_GSM_ATTR_NOT_AVAILABLE; /* * Client related functions diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 1f83b22..6fe2885 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -484,7 +484,7 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() String getGsmLocation() TINY_GSM_ATTR_NOT_AVAILABLE; /* - * Battery functions + * Battery & temperature functions */ // Use: float vBatt = modem.getBattVoltage() / 1000.0; @@ -493,10 +493,11 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return 0; } - streamSkipUntil(','); // Skip - streamSkipUntil(','); // Skip - + streamSkipUntil(','); // Skip battery charge status + streamSkipUntil(','); // Skip battery charge level + // return voltage in mV uint16_t res = stream.readStringUntil(',').toInt(); + // Wait for final OK waitResponse(); return res; } @@ -506,12 +507,53 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return false; } - stream.readStringUntil(','); + streamSkipUntil(','); // Skip battery charge status + // Read battery charge level int res = stream.readStringUntil(',').toInt(); + // Wait for final OK waitResponse(); return res; } + uint8_t getBattChargeState() + sendAT(GF("+CBC?")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + // Read battery charge status + int res = stream.readStringUntil(',').toInt(); + // Wait for final OK + waitResponse(); + return res; + } + + bool getBattStats(uint8_t &chargeState, int8_t &percent, uint16_t &milliVolts) { + sendAT(GF("+CBC?")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + chargeState = stream.readStringUntil(',').toInt(); + percent = stream.readStringUntil(',').toInt(); + milliVolts = stream.readStringUntil('\n').toInt(); + // Wait for final OK + waitResponse(); + return true; + } + + float getTemperature(uint16_t &milliVolts = 0) { + sendAT(GF("+QTEMP")); + if (waitResponse(GF(GSM_NL "+QTEMP:")) != 1) { + return (float)-9999; + } + streamSkipUntil(','); // Skip mode + // Read charge of thermistor + milliVolts = stream.readStringUntil(',').toInt(); + float temp = stream.readStringUntil('\n').toFloat(); + // Wait for final OK + waitResponse(); + return temp; + } + /* * Client related functions */ diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 4f62903..4f06c97 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -503,7 +503,7 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() } /* - * Battery functions + * Battery & temperature functions */ // Use: float vBatt = modem.getBattVoltage() / 1000.0; @@ -512,10 +512,11 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return 0; } - streamSkipUntil(','); // Skip - streamSkipUntil(','); // Skip - + streamSkipUntil(','); // Skip battery charge status + streamSkipUntil(','); // Skip battery charge level + // return voltage in mV uint16_t res = stream.readStringUntil(',').toInt(); + // Wait for final OK waitResponse(); return res; } @@ -525,12 +526,41 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return false; } - stream.readStringUntil(','); + streamSkipUntil(','); // Skip battery charge status + // Read battery charge level int res = stream.readStringUntil(',').toInt(); + // Wait for final OK waitResponse(); return res; } + uint8_t getBattChargeState() + sendAT(GF("+CBC?")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + // Read battery charge status + int res = stream.readStringUntil(',').toInt(); + // Wait for final OK + waitResponse(); + return res; + } + + bool getBattStats(uint8_t &chargeState, int8_t &percent, uint16_t &milliVolts) { + sendAT(GF("+CBC?")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + chargeState = stream.readStringUntil(',').toInt(); + percent = stream.readStringUntil(',').toInt(); + milliVolts = stream.readStringUntil('\n').toInt(); + // Wait for final OK + waitResponse(); + return true; + } + + float getTemperature() TINY_GSM_ATTR_NOT_AVAILABLE; + /* * Client related functions */ diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 8e6878d..5f8e9ac 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -735,9 +735,9 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return 0; } - streamSkipUntil(','); // Skip - streamSkipUntil(','); // Skip - + streamSkipUntil(','); // Skip battery charge status + streamSkipUntil(','); // Skip battery charge level + // return voltage in mV uint16_t res = stream.readStringUntil(',').toInt(); waitResponse(); return res; @@ -748,12 +748,40 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return false; } - stream.readStringUntil(','); + streamSkipUntil(','); // Skip battery charge status + // Read battery charge level int res = stream.readStringUntil(',').toInt(); waitResponse(); return res; } + uint8_t getBattChargeState() + sendAT(GF("+CBC?")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + // Read battery charge status + int res = stream.readStringUntil(',').toInt(); + // Wait for final OK + waitResponse(); + return res; + } + + bool getBattStats(uint8_t &chargeState, int8_t &percent, uint16_t &milliVolts) { + sendAT(GF("+CBC?")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + chargeState = stream.readStringUntil(',').toInt(); + percent = stream.readStringUntil(',').toInt(); + milliVolts = stream.readStringUntil('\n').toInt(); + // Wait for final OK + waitResponse(); + return true; + } + + float getTemperature() TINY_GSM_ATTR_NOT_AVAILABLE; + /* * Client related functions */ diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index cd1b9fa..4c80fcb 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -647,7 +647,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() } /* - * Battery functions + * Battery & temperature functions */ // Use: float vBatt = modem.getBattVoltage() / 1000.0; @@ -656,10 +656,11 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return 0; } - streamSkipUntil(','); // Skip - streamSkipUntil(','); // Skip - + streamSkipUntil(','); // Skip battery charge status + streamSkipUntil(','); // Skip battery charge level + // return voltage in mV uint16_t res = stream.readStringUntil(',').toInt(); + // Wait for final OK waitResponse(); return res; } @@ -669,12 +670,41 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return false; } - stream.readStringUntil(','); + streamSkipUntil(','); // Skip battery charge status + // Read battery charge level int res = stream.readStringUntil(',').toInt(); + // Wait for final OK waitResponse(); return res; } + uint8_t getBattChargeState() + sendAT(GF("+CBC?")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + // Read battery charge status + int res = stream.readStringUntil(',').toInt(); + // Wait for final OK + waitResponse(); + return res; + } + + bool getBattStats(uint8_t &chargeState, int8_t &percent, uint16_t &milliVolts) { + sendAT(GF("+CBC?")); + if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { + return false; + } + chargeState = stream.readStringUntil(',').toInt(); + percent = stream.readStringUntil(',').toInt(); + milliVolts = stream.readStringUntil('\n').toInt(); + // Wait for final OK + waitResponse(); + return true; + } + + float getTemperature() TINY_GSM_ATTR_NOT_AVAILABLE; + /* * Client related functions */ diff --git a/src/TinyGsmClientSaraR4.h b/src/TinyGsmClientSaraR4.h index cb45109..d06ec78 100644 --- a/src/TinyGsmClientSaraR4.h +++ b/src/TinyGsmClientSaraR4.h @@ -490,7 +490,7 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() } /* - * Battery functions + * Battery & temperature functions */ uint16_t getBattVoltage() TINY_GSM_ATTR_NOT_AVAILABLE; @@ -501,9 +501,37 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() return 0; } - int res = stream.readStringUntil(',').toInt(); + int8_t res = stream.readStringUntil(',').toInt(); + int8_t percent = res*20; // return is 0-5 + // Wait for final OK waitResponse(); - return res; + return percent; + } + + uint8_t getBattChargeState() TINY_GSM_ATTR_NOT_AVAILABLE; + + bool getBattStats(uint8_t &chargeState, int8_t &percent, uint16_t &milliVolts) { + percent = getBattPercent(); + return true; + } + + float getTemperature() { + // First make sure the temperature is set to be in celsius + sendAT(GF("+UTEMP=0")); // Would use 1 for Fahrenheit + if (waitResponse() != 1) { + return (float)-9999; + } + sendAT(GF("+UTEMP?")); + if (waitResponse(GF(GSM_NL "+UTEMP:")) != 1) { + return (float)-9999; + } + streamSkipUntil(','); // Skip units (C/F) + int16_t res = stream.readStringUntil('\n').toInt(); + float temp = -9999; + if (res != 655355) { + temp = ((float)res)/10; + } + return temp; } /* diff --git a/src/TinyGsmClientSequansMonarch.h b/src/TinyGsmClientSequansMonarch.h index 21c2f0a..e48bcde 100644 --- a/src/TinyGsmClientSequansMonarch.h +++ b/src/TinyGsmClientSequansMonarch.h @@ -422,7 +422,6 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() String getLocalIP() { sendAT(GF("+CGPADDR=3")); - if (waitResponse(10000L, GF("+CGPADDR: 3,\"")) != 1) { return ""; } @@ -476,12 +475,28 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() /* - * Battery functions + * Battery & temperature functions */ uint16_t getBattVoltage() TINY_GSM_ATTR_NOT_AVAILABLE; + int8_t getBattPercent() TINY_GSM_ATTR_NOT_AVAILABLE; + uint8_t getBattChargeState() TINY_GSM_ATTR_NOT_AVAILABLE; + bool getBattStats(uint8_t &chargeState, int8_t &percent, uint16_t &milliVolts) TINY_GSM_ATTR_NOT_AVAILABLE; - int getBattPercent() TINY_GSM_ATTR_NOT_AVAILABLE; + float getTemperature() { + sendAT(GF("+SMDTH")); + if (waitResponse(10000L, GF("+SMDTH: ")) != 1) { + return (float)-9999; + } + String res; + if (waitResponse(1000L, res) != 1) { + return (float)-9999; + } + if (res.indexOf("ERROR") >=0) { + return (float)-9999; + } + return res.toFloat(); + } protected: @@ -569,6 +584,28 @@ protected: return 0; } return len; + + // uint8_t nAttempts = 5; + // bool gotPrompt = false; + // while (nAttempts > 0 && !gotPrompt) { + // sendAT(GF("+SQNSSEND="), mux); + // if (waitResponse(5000, GF(GSM_NL "> ")) == 1) { + // gotPrompt = true; + // } + // nAttempts--; + // delay(50); + // } + // if (gotPrompt) { + // stream.write((uint8_t*)buff, len); + // stream.write((char)0x1A); + // stream.flush(); + // if (waitResponse() != 1) { + // DBG("### no OK after send"); + // return 0; + // } + // return len; + // } + // return 0; } diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index 53be58d..5c56f9f 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -489,7 +489,7 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() } /* - * Battery functions + * Battery & temperature functions */ uint16_t getBattVoltage() TINY_GSM_ATTR_NOT_AVAILABLE; @@ -505,6 +505,16 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() return res; } + uint8_t getBattChargeState() TINY_GSM_ATTR_NOT_AVAILABLE; + + bool getBattStats(uint8_t &chargeState, int8_t &percent, uint16_t &milliVolts) { + percent = getBattPercent(); + return true; + } + + // This would only available for a small number of modules in this group (TOBY-L) + float getTemperature() TINY_GSM_ATTR_NOT_IMPLEMENTED; + /* * Client related functions */ diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index e018353..eaa1d47 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -782,12 +782,25 @@ public: String getGsmLocation() TINY_GSM_ATTR_NOT_AVAILABLE; /* - * Battery functions + * Battery & temperature functions */ + // Use: float vBatt = modem.getBattVoltage() / 1000.0; uint16_t getBattVoltage() TINY_GSM_ATTR_NOT_AVAILABLE; - int8_t getBattPercent() TINY_GSM_ATTR_NOT_AVAILABLE; + uint8_t getBattChargeState() TINY_GSM_ATTR_NOT_AVAILABLE; + bool getBattStats(uint8_t &chargeState, int8_t &percent, uint16_t &milliVolts) TINY_GSM_ATTR_NOT_AVAILABLE; + + float getTemperature() { + String res = sendATGetString(GF("TP")); + if (res == "") { + return (float)-9999; + } + char buf[5] = {0,}; + res.toCharArray(buf, 5); + int8_t intRes = (int8_t)strtol(buf, 0, 16); // degrees Celsius displayed in 8-bit two's complement format. + return (float)intRes; + } /* * Client related functions From 62182e11c9a069c1a32c4cda4711a5531ab5a828 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Wed, 22 May 2019 13:10:31 -0400 Subject: [PATCH 44/46] Missing brace --- src/TinyGsmClientA6.h | 2 +- src/TinyGsmClientBG96.h | 2 +- src/TinyGsmClientM95.h | 2 +- src/TinyGsmClientMC60.h | 2 +- src/TinyGsmClientSIM7000.h | 2 +- src/TinyGsmClientSIM800.h | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index a552c43..d354653 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -500,7 +500,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() return res; } - uint8_t getBattChargeState() + uint8_t getBattChargeState() { sendAT(GF("+CBC?")); if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return false; diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index 3cbe153..66a5058 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -467,7 +467,7 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() return res; } - uint8_t getBattChargeState() + uint8_t getBattChargeState() { sendAT(GF("+CBC?")); if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return false; diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 6fe2885..2fcb25a 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -515,7 +515,7 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() return res; } - uint8_t getBattChargeState() + uint8_t getBattChargeState() { sendAT(GF("+CBC?")); if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return false; diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 4f06c97..33afb7c 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -534,7 +534,7 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() return res; } - uint8_t getBattChargeState() + uint8_t getBattChargeState() { sendAT(GF("+CBC?")); if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return false; diff --git a/src/TinyGsmClientSIM7000.h b/src/TinyGsmClientSIM7000.h index 5f8e9ac..e1c0008 100644 --- a/src/TinyGsmClientSIM7000.h +++ b/src/TinyGsmClientSIM7000.h @@ -755,7 +755,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() return res; } - uint8_t getBattChargeState() + uint8_t getBattChargeState() { sendAT(GF("+CBC?")); if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return false; diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 4c80fcb..c6f72c0 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -678,7 +678,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() return res; } - uint8_t getBattChargeState() + uint8_t getBattChargeState() { sendAT(GF("+CBC?")); if (waitResponse(GF(GSM_NL "+CBC:")) != 1) { return false; From 7d87baf8b2d591567cf5d68380b587e997487b28 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Wed, 22 May 2019 13:40:11 -0400 Subject: [PATCH 45/46] Fix initialization --- src/TinyGsmClientM95.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 2fcb25a..038ec17 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -540,14 +540,15 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() return true; } - float getTemperature(uint16_t &milliVolts = 0) { + float getTemperature() { sendAT(GF("+QTEMP")); if (waitResponse(GF(GSM_NL "+QTEMP:")) != 1) { return (float)-9999; } streamSkipUntil(','); // Skip mode // Read charge of thermistor - milliVolts = stream.readStringUntil(',').toInt(); + // milliVolts = stream.readStringUntil(',').toInt(); + streamSkipUntil(','); // Skip thermistor charge float temp = stream.readStringUntil('\n').toFloat(); // Wait for final OK waitResponse(); From 22b7ae7198969b23273125159a2f0cd590eca0d9 Mon Sep 17 00:00:00 2001 From: Sara Damiano Date: Wed, 22 May 2019 14:23:52 -0400 Subject: [PATCH 46/46] Update readme --- README.md | 40 ++++++++++++++++++++-------------------- library.json | 2 +- library.properties | 2 +- src/TinyGsmCommon.h | 2 +- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 3adc2d8..a303bc2 100644 --- a/README.md +++ b/README.md @@ -35,31 +35,31 @@ TinyGSM also pulls data gently from the modem (whenever possible), so it can ope ## Features -Feature \ Modem | SIM8xx | u-Blox | A6/A7/A20 | Neoway M590| ESP8266 |Digi XBee|Quectel BG96|Quectel M95|Quectel MC60(E)| SIM7000 | ---- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +Feature \ Modem | SIM8xx | u-Blox | A6/A7/A20 | Neoway M590| ESP8266 |Digi XBee|Quectel BG96|Quectel M95|Quectel MC60(E)| SIM7000 | Monarch | +--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | **Data connections** -TCP (HTTP, MQTT, Blynk, ...) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | -UDP | ◌ | ◌ | | | | ◌ | ◌ | | | ◌ | -SSL/TLS (HTTPS) | ✔¹ | ✔ | x | x | ✔ | ✔ | ◌ | | | ◌ | +TCP (HTTP, MQTT, Blynk, ...) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +UDP | ◌ | ◌ | | | | ◌ | ◌ | | | ◌ | ◌ | +SSL/TLS (HTTPS) | ✔¹ | ✔ | x | x | ✔ | ✔ | ◌ | | | ◌ | ✔ | **USSD** -Sending USSD requests | ✔ | | ✔ | ✔ | x | | | | | ✔ | -Decoding 7,8,16-bit response | ✔ | | ✔ | ✔ | x | | | | | ✔ | +Sending USSD requests | ✔ | | ✔ | ✔ | x | | | | | ✔ | | +Decoding 7,8,16-bit response | ✔ | | ✔ | ✔ | x | | | | | ✔ | | **SMS** -Sending | ✔ | ✔ | ✔ | ✔ | x | ✔ | ✔ | ✔ | ✔ | ✔ | -Sending Unicode | ✔ | | ◌ | x | x | | ✔ | ✔ | ✔ | ✔ | -Reading | | | | | x | | | | | | -Incoming message event | | | | ? | x | | | | | | +Sending | ✔ | ✔ | ✔ | ✔ | x | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +Sending Unicode | ✔ | | ◌ | x | x | | ✔ | ✔ | ✔ | ✔ | | +Reading | | | | | x | | | | | | | +Incoming message event | | | | ? | x | | | | | | | **Calls** -Dial, hangup | ✔ | | ✔ | x | x | x | | | | | -Receiving calls | ✔ | | ✔ | x | x | x | | | | | -Incoming event (RING) | ◌ | | ◌ | x | x | x | | | | | -DTMF sending | ✔ | | ✔ | x | x | x | | | | | -DTMF decoding | ◌ | | x | x | x | x | | | | | +Dial, hangup | ✔ | | ✔ | x | x | x | | | | | | +Receiving calls | ✔ | | ✔ | x | x | x | | | | | | +Incoming event (RING) | ◌ | | ◌ | x | x | x | | | | | | +DTMF sending | ✔ | | ✔ | x | x | x | | | | | | +DTMF decoding | ◌ | | x | x | x | x | | | | | | **Location** -GSM location service | ✔ | ✔ | x | x | x | x | | x | ✔ | ✔ | -GPS/GNSS | ✔¹ | x | ◌¹ | x | x | x | | x | | ✔ | +GSM location service | ✔ | ✔ | x | x | x | x | | x | ✔ | ✔ | x | +GPS/GNSS | ✔¹ | x | ◌¹ | x | x | x | | x | | ✔ | x | **Credits** -Primary Author/Contributor |[vshymanskyy](https://github.com/vshymanskyy)|[vshymanskyy](https://github.com/vshymanskyy)|[vshymanskyy](https://github.com/vshymanskyy)|[vshymanskyy](https://github.com/vshymanskyy)|[vshymanskyy](https://github.com/vshymanskyy)|[SRGDamia1](https://github.com/SRGDamia1/)|[vshymanskyy](https://github.com/vshymanskyy) |[replicadeltd](https://github.com/replicadeltd)|[V1pr](https://github.com/V1pr)|[captFuture](https://github.com/captFuture/)| +Primary Author/Contributor |[vshymanskyy](https://github.com/vshymanskyy)|[vshymanskyy](https://github.com/vshymanskyy)|[vshymanskyy](https://github.com/vshymanskyy)|[vshymanskyy](https://github.com/vshymanskyy)|[vshymanskyy](https://github.com/vshymanskyy)|[SRGDamia1](https://github.com/SRGDamia1/)|[vshymanskyy](https://github.com/vshymanskyy) |[replicadeltd](https://github.com/replicadeltd)|[V1pr](https://github.com/V1pr)|[captFuture](https://github.com/captFuture/)|[nootropicdesign](https://github.com/nootropicdesign/)| ✔ - implemented  ◌ - planned  x - not available on this modem ¹ - only some device models or firmware revisions have this feature (SIM8xx R14.18, A7, etc.) @@ -73,11 +73,11 @@ Primary Author/Contributor |[vshymanskyy](https://github.com/vshymanskyy)|[vsh - Digi XBee WiFi and Cellular (using XBee command mode) - Neoway M590 - u-blox Cellular Modems (many modules including LEON-G100, LISA-U2xx, SARA-G3xx, SARA-U2xx, TOBY-L2xx, LARA-R2xx, MPCI-L2xx, SARA-R4xx, SARA-N4xx, _but NOT SARA-N2xx_) +- Sequans Monarch LTE Cat M1/NB1 ***(beta)*** - Quectel BG96 ***(alpha)*** - Quectel M95 ***(alpha)*** - Quectel MC60 ***(alpha)*** - SIMCom SIM7000 series ***(alpha)*** -- Sequans Monarch LTE Cat M1/NB1 ***(alpha)*** ### Supported boards/modules - Arduino MKR GSM 1400 diff --git a/library.json b/library.json index 53f87cd..78289ec 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "TinyGSM", - "version": "0.7.3", + "version": "0.7.4", "description": "A small Arduino library for GPRS modules, that just works. Includes examples for Blynk, MQTT, File Download, and Web Client. Supports many GSM, LTE, and WiFi modules with AT command interfaces.", "keywords": "GSM, AT commands, AT, SIM800, SIM900, A6, A7, M590, ESP8266, SIM7000, SIM800A, SIM800C, SIM800L, SIM800H, SIM808, SIM868, SIM900A, SIM900D, SIM908, SIM968, M95, MC60, MC60E, BG96, ublox, Quectel, SIMCOM, AI Thinker, LTE, LTE-M", "authors": diff --git a/library.properties b/library.properties index f7e6ba8..28c2c75 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=TinyGSM -version=0.7.3 +version=0.7.4 author=Volodymyr Shymanskyy maintainer=Volodymyr Shymanskyy sentence=A small Arduino library for GPRS modules, that just works. diff --git a/src/TinyGsmCommon.h b/src/TinyGsmCommon.h index 35e5454..a92c08e 100644 --- a/src/TinyGsmCommon.h +++ b/src/TinyGsmCommon.h @@ -10,7 +10,7 @@ #define TinyGsmCommon_h // The current library version number -#define TINYGSM_VERSION "0.7.3" +#define TINYGSM_VERSION "0.7.4" #if defined(SPARK) || defined(PARTICLE) #include "Particle.h"

B;7>jM`ZBN?NI*RtOW;$<{Z?;ipG|4T6I;6@WQC70dm;F$ z=9PK_%WsMk#+KR+C}lswwek!_;P|>TpqJZY`bz{hl4P51=~|D|jKBFl4e~4Rj{P?) zWM#J?>qTyPojT;KT^qeVu(W%y0@G5JsDJTZ(aR&(v-9~`G)ab$mJsa9i^838`T-Lt zitFs0E3Xe$z$@_KCD3}=S#qkzTySH>$(&>i9%!@F#!?)U~ozf08fdICXya=8Q}m|U|eX1M?9(RB3BogK`^u2?L`5p?U ztPTsxv1=a+#HJbV?5IfpdDM*b zjQfAiI?^*)L$jZ^wFi7QoW@I`*^PZ1@O=Wsg}6#3#yn?m@bnWiCvUwq-8c1dr8(~k z1g5=@!$r$+r>#ac3Es3qU=?-3mqIw4e;6T3B7>O1pvCi0fb**e)!AqyIHnO=mV7)K zYA~>Tw;W9ZsGoupPom4iK{j4Nxp1!kphw7JMTT1#F}pFFma$E`psk*{Q`?!7q}t$5 zOF*-ft}#th;N!9K7!xS?m@%;Y$W%-C%Pt!%vTPR4)OP3pZTLCf!3&?A<<CQC_RB-_^~&pw&}M<^^JwNJd)5SHUe)i0;>813yY6Tlz@_0LTS>Sh!>QSVJkp zv&|_~DDXoI9{tQ4H|k_9*`EDfMC#FI%1vQEDxes8ZyxkZG=H|vJiMknVrtTE?W-#W z3?diXNTw<$`~kU!p0h>l*5mEW9(gm8;xzp`Bp;U5j*{8p9>)UiY@x+-`z>m-(_-sn z3l~Ff&%4SKskmLb=}c8p5Xnt41N}(cCQPNq+Sm80(iq4OMRm4lfo?PbmbrfRn=%;8 znzri9Tav3G;F#U}nwpVdU0X8XA*F%%ruBHU7f6Wyr*=2zkQHBw>Du3ID|pGK@%VR- z3Noe;cRm~$A5>qmdLQ#&{O`xmb3zcn#v<@qQrwPVTOi(91CN5Jt9+! z*%-G1nO=$QN^(tBpWrb8i%9zx!LKS=I1sCg;_$XtZ)Oupp8C5z#iEw{FZ(sPe1?rb zj(a#D|BC^4VHhZ1XP?{{<+m}Unr$5KSOcR)3jD!q#wESXUONKsL~-o8L~=h&$Tp|;*U15-31O04O_hAj-v}-z|rP=Md^5g zdRbD5kL%6^iN<4;wShQHdMmCoO{sNMTcz`JfY)##w*;byBanBp-iS7RU@A%gM@F3ea*Ng1w!Wuf& zm#8DxY@Kdm2ivogk80fo@!FWI8p?($K5}hCHqqF<6z_8dJ|P3In_A@0HQ&0JJ0E$b z6eL<3e2~(2xNZTTqZKKmatC!+MrJG-w0c^ATo-+iz$rW4q9G+sk%X>POycNL%3vm zjn?@UOY)8?j&YX~rIp7~b!D{`qmoX{61abSGU%V{_R4(|gND@+OnldBKfQRlkoiqz zlHIM&ao{Ouou-+PRu5(NgiCW!8Yaj0X*ozjp>~{2T9FBW9YQ-tr;5wx*u~Juhr@-q z2^UodXJFG;ZlQ|CJF)YUc~}c8dS#r6o;=yPyuVN~9)Lg#=I-mt(Fy|`(4+#q1)lT$ z7+(}ZLt+(I@dbA$~Du)a66+;J)&?>Cc!Mvl>i&tI4JxAc+`TLazLLs#*5bFo1kU@_A z_^m50>RfFWE=9Xs)b!tvshGWdx6QPO1v987uRog;J@kNnx)FoQ>|OF+@j?Qizah^$ zu0Q!LkvX)*dfpDQW8<|r7S<5b2A(#p=sfN`KKny#9bUnP|uF zkUHY{bD8h~Q$lMD#Jj1+;<;(|`8))GH1Sk6DR5srwL>bi&7M+i|&G2k7$ONxO0@V`Bz8Oe?Gg$Y%OCSjH{pIYeb8ftu$mew+@o zFjo1eZD5jHLJl?>gfKOLZirn^cYq-PEbLynXtFJ%h;zk(qblIbYZ7IhfnbzwLs>Dw zjj8x&Ze;CH;#4I}Yj9ar>cd5+KU$~W$skZ`K@#kl3Mkx$Pdu1OEQT~@n+Qq>a+1VL z_iEpvSZn^u;~YX+L2m66CAN!dXi6cj5Jl_8QJhoqQzrEPLh)YCtW_k~_DU&(Jj%a0 z1{_e>wN)|2_pm=B*A^&(Z9_>!>n!>R@blz? z)EthWR`Wd1WZ}B z$=_7V*Q*d;T*oZ?Y3Wb>o}Cm+|CxJa`hivFDPUsNGfv&#RRj%EywXbx>lTgl$A=y; zt43XigXzdOVAzczrrgSqx6h!3DCFT?kg)0axKUbc#3FTEn<(XerWsG1!24@zSu??R`nC->f&~@6xS}tYmDst>JsYn%rc5}|jaDmT6x*)Leqn_Iv%g$j;Es!l9N4|f~`okVBkgH}gh46|kf z)1~%6O?Pyu?Ybe+4ochbXULokM=~$QHMy-i0gNzR)tS!!fu9ZOhVk>84Xa&nx)Ulh zx>}+gC5b#Noqk6j?qJNVYuO-7en!)7ja7kn#_9^!shY2{6=rZW2qwc#$m|2}K|y=6 z>|{N{mb_iajA)f)7h)E6_Mx=1BliHLnqIy#f}?t_vVj2pC53^9qbe{9$ESD2TZz+H z>2ta~y5}qdLp@-)PdOqYQb5y(+}2s${-sizMVPf>J@>sj$=wz<;8nbU=(t92#Wt?4 znUNz%rAxnQGFa9WeP=7V-VK4r?ES`-ctw-^b<jzJPj zad~eSc%uFU2Ja@F);!kokbtrQV&u0sB>ywK5!`Cdf;+M2U2&@XsJ$j~oF4o{pWF^* zlpNZ*VL&?Yw<{_Dv=lU7daG_>zEIYGgpR)g^%|Nq#=fld(f+52a0VW$)C^&5-Oygg zd#?e)}KOClwWAj2$Fg8gEUL!vEag+kPGT;)0t%8b60Botz+WmXbmd% zYKh6lu@(<7_`DTb)^d1sUi{n9AVi-f_V!wB@IN#uwEk(~)7jXTx^2%#plJ8tdan++ zF=qWq2wr!OD(ra^L~H{m*@2>2!6a09V16i3_-w0SzP^cQOMZYN{0(mYdOw?&*o5$4 zO+dfrp^6s`s_rjnRc~D;p0el;@q+RWhf^)#-J5m%kwKle|>46R7rIeWDvssL8(2}gSR+{me?x#;QkoGc!kYhx+xPSYBMbY~|k9-?H z!Q7<36y|1C@JeaznM*uJ$ND(%@V|sOHGC;bc9_edE^K_lM01B>{+o_w{onE^*#AGD zS_^{&h4asRDzQb7X~PmF%hqrQ`UjV>c6!G3LIIKD`_ZyDp9}m^n&TpChr90yT08Vu zrbo6W?);;2zxN=xdi64@QV~Do9Z(lIg~a4Q2%o78;>siOLjq%BzaKg79%rNWJnjqu zU4q;F?L0jXln?2Ok5S*~hDy)wzz>1L>ZL3D6E^ZpPs77@#{T=aMsH~q11Dp0;RH7} z{Ky`$)!-ZvDv?)L=6-YaRD$shX3pvjB$I4E$k616gH`E*(*(tIv~Ptu%X30fKlh~? zDIp)0i-iQ}8xy%l2h-3!YmQmI@Eon{JQ12kHbhry0uwo3(vGL}nV5lnTUhLizExUy z>q@>Se`sfJ;fD0!6ojVpt_{INI<38RWDEq0|F`o1;k}~l79JR25rz>=(Z-O&6LQfU ze8C)I38c5=VS72cN6PC&I(F$8FDa)Cyq$|w54Zz?g8EAvV(8pieg()9s%PPLfCRRh z4t@Q_hJCnSdcr7fT(2ah&w3Qhz9ciusQ@BdgZ&^U60t=|b3*%J`tRw&zRTGGx6{Xk zGYI#`D_pie1_^uFF!$@YJe%a@-jtc3;2`j)qd8hK?u9)47u-xE>7dH_T%!ShI*&6R z|6V%w_~Ll3x`=?<0qH#qDfILZxLAyUPB5n^{+ID8CbN+|h=tQ5aID(3uLW_x#3XOT z2eYKA)&d&w;?ihW^2{;p?0aT%psf_>Gdm0#uP&F8Mgvy z5pg?5Gdh<9WMCZcH>^f>Sk*k2h#HhLI)BwF_)dMxXJ5LVM}|eR$GNEIWS^_btdEP& zH7PcNG=co$oGk5Xg;gjHWL~YH@4*1WdDJoNLofU#7ZaL?idm!cN9^MZ&z+s-S9>b3 z)eXw!F4^y@#)LJC4`VD|S`9?(!HceuKAJAqD?rEzYUw7J-jc0d1Fgej2MSIUyGQ*3 z_P_YrIuv}w&!?VxYv*gm){(VUgN(IqM*l~PwZ&`OSLbE_SF!K%%tqc>ntXdE`z9oo zfjfu{q9oC;Sq2dm{?;PnQ|-z3J8}yg7*ucDfdPgJy%HxG`iM$r(D4}#GI?BDPk9>P zm?-T6#){T={!R4WUegoFpIqhv0;LIqo8RA}eBsOBK<-Mfb%x2<{iJQ)J#@obseQWeNJ+{cITa zO5{khQnN96UuhcD;s7CT6A6H__?AH?30k{B(||FcB>GfV%#r#bU`+IoXQ0|aj) z3J%;6d*?LRH`=w8P-de#F92OMH`t09n_>wg5qS4oO@^f@Y$;!<55jM~qs)W`m1lEn zzkZvPB?Bj%qILi#=u3=TLrmG>L#z6g5+LGwOaVKs@PJft15{@a8>5g8<<^J0xqOy? zf>v|^#hBml`!U^4%?kmLeg%D8vI?wm%k;|JSb*C8Su^~5n(n=G_pNLmP3^aTmSJ!F zSuysHtSfO`&2tPvYsNX;yZpS8q_giP!FdQHQG z1RUkgr=#bSMa@r&?|IGrD@Xv-2y z6zjJ;hpvlMY=Y-Fv275d`QWNFBs#dvKk?EsDm?(n0CIv`OUnh7V%}CKJ7+n`WyW&3oo*XlkKqEx? z^gTFzXjMR^JWvu#IB19H1IO3MUgpY$Pd-)jX`!hcT-cIfw0DfY_82;NX}jB9`m9*h ztBj-I+$_Vx$%1b-Upl@=w0z=EbIhDpLZ9nKP0fb+ot>&|FNM8g>bQNV?flvgTN}|-NbXAc zrtW^=veuR1Yrfc2O+y}7u`?ad`_-Zd(2UiA(X=h9Ac+I?$T^fe9mnxh#OZ%l@kw;!x zyVdqu-Lf$N{s*~<{wj9jsu=5&jyedxQuK%^ z9}Y;|2sj~a{SSGiYYDyrs}Q%ZND}BTcO9Jh9qP-iEKIh9k=b$I+f_*;ehAVY2N0Ujr zH$P~CVIx3NxP}CM9oZP2U}#Hme+?-G^NVnS_iOLGnbb$rzH@CY4>DEGlF!kl0_eNV8Wv| zgjurPsFrYXOI@*q`k}T7bQP6}AEsl^(H8pvBsj3NX+mXE=k+n^hliz?r-1+)RgC#()pYLjx zo2|_HDy=pQ#^s7R%XK?lW0?Td$4QrhMN4ZnTiwh45s^N>1AJC5>eHnL#b7~i_*USL z8alzxv%z0yeE|>zfy!=O-zZ%aa?QN^G;V-zC(u$R&slV3ym>VGo#-m z#)|0Q1LS30%ooJ&5(dA|Esa(%Es`ul@NLWrpr}kwSRWRbsRBEV! z#(bZyC|mdt+`Fj6+;@Vs4}0Ys97TMWURAPzfQ2a9#q2V&?CmkWxO6Verhy6%E~78Q zFND*lm6-kf@Y$5%sop&@S2atg-ddoiQPz5n7o*zJ=xWsi+#I<>%eV>v6YV0Xl_r#( zx-Z5N!wGT%(a=ZLq`{D4g}R;@OA;#{iLt^T>`pxl;`%~dkSYnc2Q*jP!{h*TTrBA| zs~K~uCkMHLeSSl|h8}qB zT(|-dl_MC4SPyq5H~&=^|8MyxtpDl5p=xO0YXh2#aSb94Xq_o7>}&kDg^Wq~;DsKo zy5DdX*CfzT3(z9({osBK*bW>a4IaBX4M=5BCd4mA;Al{&)0c29dH4kRH`nWHbm|1e zbt?0kQkU;KU&LKwMk@8!ainD&+Nm7~SZdH~HOroa0d40Q9G}>}bp2-7AfU{_HCDzv z1y&}sC+aX?$Te_MhU9}trW(WHoCg%4HxPx|Hx5_xWuFe5P^Mbrc#vQ$dI8)oP;Bo@ zkl?w&^(>xFfaKy04;FG@E+-ju%hMEj|0wR|uCY78s-87+=h^MuW(&3zKnn1!({1wH z1NI8bMwF;-yJlDnzkd=x^NC+WUN?GfY@WrP#1%3?KJZ5qaYM?-#ekFgdX>+^9qc>} z=bTZ`hN|=ou(m-;^N)550O?P+fc)JZUhycWqRBmMFy{4yP*1c0(6X1f9{Br?zrC~$ zb|zf4X5sEOZdAEkF^Vp#27;2A4AA@!m@ESnYb^%wb)%3zoRyd#@Z9Pq$8c8W4sY17 zkBgA!EFO|{&;{L;)VV|Vevv1I?joL#CjMz}$=N=u36%4Ge?uVCcL`z!;}Hn@HvaU5 zkU(I-kWz?FkhTWhyzH{*5PwOV6W17;gS!CO4ABZz{t#9cZe(ewItmLU(pyt2T!DXh z4i+^n@Lqv86R5{eZE zMT!h$S95n zM{6W346>UhR!-yoR@J1j)k%epqVTU@D4XPy9Bg2SFjCODK}WHnv8E!AaG*`>f@iK| zu60Vss*&JbOIrQ2xFa^LHKvP-Uu#%Rj3#^Jui7)F2DnMmwq#Ftr__(a@n$x^m!-F5 zmESPIESa`NlRL4gBsumv>qn_D0WT=Ak_K~Z8y?`pfEMnGw4*ie0v?*`pNx8TcxFUr z+P7Nc4HCGtu1{PIK#gw&4mol!hZ3ZJ`?+=e@$Q=DG}M(^=48Z%ctjm}MTa>KTOE8|uRHUH+L(=o(D}CM4nl zpPiVlmo^AFjI`aEIS^t(py`e6)@j<5KZ747{%F^PP1EuaL`SG~Kxv7feEr5y*|#=B zdMJYjuCPXr)8uJ)W7-6Y&SM}z7erLlkxmzHo%$q_H zpa(pajtW_9U1fBH;57HfI<&qLo8oEs<>|X#tF` z!AGKLW$`+X=u7%k1Z}h=e^S2Qze1IdzZth3I=tY_?_Cr3;+RBa!6DfExqWxwAv;HGT}ilddbB3e3|A)y*NGo&V>Bj`-(MvKr)~x{UV} zgAFyTBam3v90!t8BWFt`JfyoJ+BPE=RI$kE6^4lL>I&{ndDl)>h>75!zgTed%8=Q;Xig>?B}^gKurgHUtfWBGNa zLV!Vno{)OA=5@LaILBW&+ty`AI^#t8lVlFsnsu`P^Z3baOG5T8zQN#W-LJ>T*@V1dkOVE-xNWjK%St;lL6N&Z zo$6*WQ7i7B7}=7EHavuhY<@v&DZ|j4{95n^X65(!3n~&>&VA4qVqF+GD)Z6V3$VW9bh%$2H zig-r`w54`xdStEck{9V7UyWQ4y{<~XoNmfaxkW_?GJqhV`}(?-kY@d9j?=%{yxIzo zO2gQO@SEEaT;+=FqD(X?7K-Hq_1f)&!S* zO`$-U4rUgGP_dei%Ta9xF&()LzS0$)NfrT*Ncn!AI%6O- zvs?FU+PWdxXcSS{J&d{zWO6RTD12f*T_f+?ZZe4ud#nzz0gF1_@xSz7Fc7zM(O@vJ zuf?kd8oPu0OSq4vCDCg*;c0BR7zakSQDC6m{^Y>>l10Tl0dk0LO9Rc_dCZot`wwro z=u{ZKkVf+2g%YU93f5nzw%5j$O0}#;5o(n5f3Gimo^4078A*DV9}7|6|h; z+z`bOD>gaYWetCWGkSwtO1S2~+WA+9tHGihNcS~`#>}WG!}(3}0Vh_Wc&o8IbI^Kx zt(>Jui2>>jf2(OKG`|$kee&RGj?BL(TfTuyiQsvzoEI;_52$;melsoHwfyn>l^3B& zu}e-^r!51=_~$Yub41o`sR?==*s{Oqm~R}-buglJnY0n<87l`%uhOgyk)W=$Z(@uU zXe|Z3e6v#Dq00RWSn6aJHoDM&cGep`OcTTHU!#W%ry?;o^3OU^EUQJZG8&9&8%zXS z?i5<;^M}1*jZo%lBy&68Jmzho=yHxGppbTnMh#yQb+2sERY7<&vJg*8NeEJS7P#&y zRW}+F%+K&&Wz@=|ri)bYag3uPzd@}nB$*Vz6g7pqtBaIgJmgD*YZNfjYP%&nNYaK~ ze_L`;GZucb-u^GfP3{!ks!AB#m;+1(F)t2D6*fVtmig$jQGDtDsSAxPzU}OcN01H7PvZC0eSn`l35L!{ zfpZ^KpxJ1)nSpt8M^Ni9L*CBCD;)iVs2S=7PGf2Pz1qTq=~=4-BGlQDoX_*x`j#!z zelxrr0H{ET>-w}a@LW}3*I)k9<%7?<0UiDBViF`Q@yFJnlAect8acb;y3_0+Ax`6V zw1F}A?MG7ncoBQu(Hr&NB-lhR5W~nE%i$7l1 zl$_=e^c6H1tVE__DJI23({gAOrxYEU>rxZHhl8Pu;&s<>rY0{?DHT1A;X3Bdkb{+F z_)-a%PghzOg44c*(mKH|MIgU4eIQESVosmgbu>_pAK0={GckG4RPQV~RwwaTG$V!A~L&WXpg_icq0^iL-AV5NqJMZN6KKmEdiem5FYK;NHDl=%v6A_Caf_!@uppb%veXSrEPX_&o zQ52gsn2=5A?m5K?{=^1Y`;eC4ufxO+U!`RG9Rug!OFW z!8s-|Fz#2E-bR4^9Rp5kqk==wu+IJtF%mi6sI17Dg!1eV9=~7G5J0Y3&pG;JYN@wH zIi1tkNFV{l5E%3rcs*obxwE314FRNI`J%dlN7~d9))l1q8go^`tHRx4W2#ZDsPcv* zSB}q6K~**D=g+0-X*0+!$U1kUP zns6O>jX2L<*W5MCbGCy!$o2FMfQ$-`+_aCl!{@UGHThFou>FaC@%MyFf5@9Dp~jXN zRf%P)`LqXGcvkLgrCIE;$Kh%OjF=f)Hu6?azw%?iv%Fy^pE;nQo0`5#3-6azt3C((#)cYL_RL-O$4QWW%v;5VAUi`DG1gA6{d??Gc`IcScK4pz}T3^WZTO5p^ttX z9*~ZBG5_ot=%MXd)g6Hvaw`sNIRq~YLRu;eixVoU8KwfVV^9&+SwdYed{dv2cOc+o zI0RX}p;^jmfH$G^GgXoE*m{)I(8ec&6gA16Jhw1s2{3F; zs|Mg-L;2@DJpshxElv0zz@gdJxev|08ruCRdee_9s*75O1601}cg)eO+^}m7R%e-4Cl?mR5y-paNCDKg~-0C$3Hd0?J_dH_j$6 zi>YMB(3E!^gw2Y+g{dxQq_C~&qVXT1M`N}G*bDlztuL|_s-xuGf29}-PviLd4*;h^ zXzF~{(AH#~9$16V;_wU+c=F!Vzm+`1F-?-5+^1SYP4mU+BC<_Z$S2DQrPjsnf=iQl zSt0`iwcI>1Cu}YP1BF<+Wyh+#k_M|5KR`l(!1o0m=*9bZnP7OU*H5%M5HY1UZz@oA z{@9(Laoz?gcW=?}j2pQ?;D1f;`JgMlFXqtir^uqH>0zmT}2 zp8wiHn}~-IU26$Yo$oBo$}_I6PU|ooPQ^o_UE~hw$|6qexC0|gAc}bwE(1PQhB;{i z525!0i0+ON5yKknD5DcH-bqLaR6qP~+@kb+KGtW<-zVV7B^1}*IB6BdB4{Om@av%H z2wtV&OR>4RwplWK*b{7xror6XdnmUH!l$Cdh4AC5Ks@_Vth$i&`aVK{1#y&9wKz#O z(apA~H(^f)E6Vu-X8=pLk34D1tPmmx;7r9qp6oiXken}t@dB+$Ee#dKB|Te9=Ly%= zUybA8jzYDUlabs~8cZ6~mI}bCU(e5?6+^evK1~g~uKXK@8AHjdpKk|cgV4fsg={cKi4%*sPb_VOt7S78opHixYjcMF|K|1F5$w*>_eooXwj^q6sI zM}-h&L*zhOcIRfsv#c!wu(-&>Yn!3qxc`GAxDa%&Bt`G?kxyeLns5W(5!+aTNk0o$Dk=sF8fOYcS zSLM3DkwLLd4M=kVcw0P03jLj4d@?jsnLB1_0R9*Rc#xJg*STTiL`zQp!DWwDtmnsT z$u66|*8!7CI_U^j9xykz+<#TZofeAD{a5xlZ}f&$D>^bw0{ARZvLKJ9L^X)`GJtci z0TwGnsWEi^kc{TU=#MTtk;mOa`kga)1~h%u^5^dUTfH7cVLHL>f@fbUHzcj1VcId? z8K!vqLxxM`Q=pC=pCavuPjMh;+SihsFslW_V|Q1X@K|So$Nb$(57E_n;KlbjGHb`M zj(%ofneUbX!8=I$Oq0HO-YG)N-^odf|yAW^N`t1K>?3}g)fs!R!wr$(CZQE5{wr$(CZQHhO+eX*z$GL0G!~Dd_ zIGGVU6200CesrrQLoIA6iRqWf%V2IRMze93S!4hUz^e*gA?bJ1hbe^zXO6)BBv*T& z{{{ip_t2hf%eWM>dC~a}G#Y667quc3T)JrN?=`&#Y=IIC9q7vFnWSl$pH3j+C~2wE zP-dtzNWZG%E)mF$zzjIbS>_G~npSLXmM+N2ZW;?o^Pd5!PwwmRzj#<%ql91ExMt>+ zqfp9&GP+s#HL?K%47_wDlVZ~da1WA&)v)ZX{Kla5FTt)jU4|yL`d)oWTZx*|frjmF zKmxT&_ldLMm%3OYMt?-u%ifFg1|WaD|69|Z;}9M9`Wh$vK#TRxGeG6fq%hH-S~OFB z_CpEq(P6_C-Y?BbJ!}&$(8!6SGUEw%iT2Vk0f5!-4Qy2CciOes0tMx<-dGuBp#e4(MMU6t%c*%w9! z5vA1VAi?Ko@Sm3dR~_-c^@}iZ{D+Rv-{4HIAYzyZy0QS9Jts=}_|SqtbuMjGbNg+w zbq%1T`zB9oUC*Coxh-#2roy_s+AE}x_FHQT8RHql0=!6H)MN{6z**4a*Qq6I-_{?f zWMf?z_L2FgLO>Rv`@%2Uc@gt(2ENrzeG3waafnH=S|&n22%1wH?BVR{@isK%8}bG6ewkC99XP*UAhSL4yZ*07Q@Dni$cn0kqjTznPVK&czbmYNS!IN!u5;pnP=H}fCArs@xwV6;VAgIQ zw31BzPn2?zaD=Ndh{am>d9g_2GHZN=eY`kPC_v&jNox7&cnuob%5n& zDinsF^iM8?1AcP{Q5lh{e5M1lc1w8w{RU!@PW8SS%hQ5%5Y4WMb}1PY{siu>FSNAaOMsz0Vm4%jc-G<>xI(l${&5a zDqHjwW1n1xm5!WXa*Rn4`x&psUDqs1W6{QX`t?zX(Y4uC21#KT`u4F3(z}2wMGjp) z&g;i;N93o_vB6~+6Vzs02=Al|vqfAKP^t-`L?j44`n2(Zt~ptB-l2*k_RtY%HIrMW z8!fPdhAw_g!JfQJF((+Gsz)V*X!vQOc48loUP^){F9(H=yO2oTCjL;JC?N)*#Kh>5 z9G~5$W1V|h1?H&NRKK`N_J?~%uo_yj$@k}U4}UaM@4OqE1;r*b`&ET%PS@mx`MJf9 z!Rufdi!vs>BUcI+?oN~jb5*-#-7G^QmY>Ao0vviw9>DKBOpVi=d1M!^`UAAbgS);H ziUsZ7LP5Vw4Nb_9qb+$-3Bf@|uLv^Q7zuK{8qte8w#=AsfQeeHy-jlntD99+Iyg4$ z?4&ynrTUyEf^DTmt^A;&94^O|&qp`o84Q`}?LOM%-E>_B& z{}^y>x1`7SGXJz?^G^;BH9H()!8Qy>zoo=ir0#L$croT&m$atb zTX>7JQ^>l%Nd#N~^75_%tuW7b(&U&oL~$U6-zwmCcL9%=jBcNltg)*yj1(u5CZyAM z9z3D&Ua2Vay2ot>i9TF6y<8MPvUK$I3h>Z#(Z>^hZzk({cshMtkf`FD2B+sG5D|!} z(Eu+I7h>EatarY(6lh)yBh9wE56xehRxU2~wjwYqi9lJ5mc6bPK>l0aT5rTdfB+1D zZyg)E@_M*6^SXO80g~DPy;yYkTTvK-57X*_&YV?Nd%ZB0aea4;yDy|A{_tgmp%;mm zv|I@?k|7{V1XT{y?dkpAnK|Rl6RhwcBP_+o$n#roSJeVsNG+1yaRzILm!O(1nZ#bH zxdVSeQa!g^sAMF`Y$V4oUY4*d%^I|=$?}?;SpuuSPA6pMkVV1wy1@b5JfkcR3}rQr z@1r~mdd0A>tz?9T<*b2&qK=4jy*fmJUg#oTY5Jdefc z^&3(Jry1q}#mFb5U>_&NS{BM}JN$4@!nAv}QA^s)OLsz$fwnFpf^mGzvIj zCmNy#Hv})VTQ!Q;1Dr z@9O0QBD&F{18G&VPU8T%KHQSEofmU2d2Hw94UYtsOo=dY@~UXuW(!Bd1&2O+WA8$# zJ#lpH{OuYe=H306=SB#_Bf&<*f?eQu z2o2F-9yk(HK%y84I1w|ih49qE?`+w-I=(oKvdEo!m5WXFuK!Yj+kAieO^%h|!H#8- zL@S4(nxd6ne{CUqKw4h!ZCT8!#N&qE*uEpbCS?Z8|6{gVwn&{Gz4A+-8vW7So>p9D zIP*fN^8M}-z;ve7GHT7r&l~CtbQZCGU>R|d5lZRUPt{2ai$MiByGN*V2L{FD^SsyX zMva2AXKin{5*r(t5tJx3vWH#5y(lMlPShi zJyeIQCYD94NW8Bw@2^{+5QHRX-yuhoGeQbd`ia9-DGlCH0#$AStR7$ywWNDf{FYeP zX5#zlS_jcFuRk;@_i|&(9LHxfWUk*R8ZSr1zFZZmpIJrslD}i$p;W<1vQ_a?e%zQlvVR?}_NVdX zEth)^Ct;Dj>=Gk-&r9&;Pt}oKTR8X%>wncv|5JYmSx5{Wh8 zYA++uFZ^(Qwt$K zA;wrPD@z>=%*!Q0s+8v4qgacuUIzwq%LqwxRiwKT@zDM{|L$c8kX<0VmdpW8o-L#?xLXt48HwS+Y%Hv@Ah6x)O2leFu?)|l4 z(ru(D#A=STj=ODbHmsrDN)xykBI{gKkI!O`kV-Hc^^&KNt?5x6*8-z~-B^Wb-=99M z5>rqvFd)9jid*cc24}&(SChRaiR4|60hxY>)q0;=5BC)e0|_G097)yuNWKG*Mm$QgP4%AZIxe$m`TkZKeqi zQ63{L6TiHMyU$8OrksAuN<5#nQxMjGNbyd9J__~#UR~ofFMNq$heBQE%yYy2SP`p^ za_lxTRV`ZXQftILEE!SE2;T+gQ$ROJCH&jZ3QRQ*TFUctqw>b)v=bE1N;h?6!px2W z0TxLsb>WhSUePFM&gvU4tzO~zbIttR<-mkj{LxJ-yUqDB*M)i{8&K9$Jn=-saa34L zEMcT3Q22d<9tC&q3oS^4z>mL+Wb7LaKqv_V^}A2 z4P;4GZM1Tde!{LjFY`lBy6&q_HI>RF9wm*=ivXpQ)~j$9v)sW#9UW0W(_8&ihlH&% zvt5vHn#?*@$alMbyn}$dwWc8ptg1;ImMo~#t^?z6+ej|J$cEedZ{Tr&Iu49ltw1_6 zSZ{JlycOKkfHG(Ug5c9@@!7Iu>cZ}jkWVblhjI=qI}Pvr<2q$3%bcS*dXyuSlH?Gc z-}|ZyYs`l=qziP6AXY;>?Vb_lNL-%~w2nQICo@5S3tZZ@GLjmw9&;p(u5()) zJG?TAxC3K|lS)43Hei6Qn@3#%d=1FDa?@3m?{&Aa-84B8XgPam!w-Zg&C|?9u4NSp zo%Sst>G!F4OLwbsQ|$%&;Q4g?CrGicV13sa%%Y!0R`)R&6j0YL4&URc=ikkN{IPx4 z(etIB>H-K(uVhWV|s8TTGlnx9RF!rV*VZ9gT55Be|^non@3I^3Btx6TIA3 zUP|yp!8)s?MH30IUkYoO$`7ww&J>3~*;`k?b}yx*JCi=MyAPKCke%}v{QhzYK_lNm z8|_WhRJbF&WRSWG(Up*OJT=-$hQw7{ht~jid3?DO>39siTpQ#BD_Gu8sY7>;HpexR znOIms*02Ie(|p9ScIoxRdwY^mfDLyGOA|;{p|>-QEPxoSOqW#t&YQj|8h|($K|a|P zk_Wek7#`;_=ps&G~+<0_w|dBGqSdGszFfU#$H6J_rtQ1#RpW$G$T@XjAL zyE)Euc_YABQU7(W{BL}5CWim$`?N#*{*>stPF2cs z4<~?-ZUoW}Za@R=!;5;OEsnh(CJRlQ^CXh_tHczM!mvEsn3wRVz5!oppouf>j}u}b zTCt>5XjC5WcwQ-d-Nrmv*}@QnDv-6;Dr!oPm^IAb)Z(1V&3C(`_vCi%S3gQ+ObzCQ^eT) z{(e1aoEIGgw z1#w+2Vl)32h=lI1sD@9stzMb(=D-7w%Te+idh2S(?b6;M7+cpa{}IeebYiMG z{1Y@N*>HRQ?KMEq_`p8U!zYjF{m|uJLO% z@l(-pGYa#16WJYFrsyiUMP2=@ERAb_1LtAD93bL-^^mbHbF zSU~$JN6g-)f8-^=VH~qCsw`ZotI`>)EWg7>W^g)AEw+RmGX4y#iYEF|+pr062xV0H ztpdvIV$C0Pqrs|=WR*6*wQz}b^9dBpvz?ncA@f{=jfwNvQd(&@T+$xo%5yEz4aqr& zik(wtlPCp&hD#YWmYx7s3WzwGxeD`hPt>Ywq>&wTA$@^&jZS5_HkPg~?F)krfm|L6 z`STA^DfI2-Ic7hhin0WLswx-8{q~=n8rj0quzNGs-!V&|V7X$Qw z4ABMe&-GGrs%2$l16F^Zej8$b2dtkT9Efedpq#iig!(-|DGa}r*LcTu_d=sA9OlgaC0#~SQfM8M;+hs}R0@yIg)7|J0fAqF>C zg)&!CLl9}z0FG481s+|mo>cc+12GiQE%`a`sp+=+)g5Ch__5)oG6Qa`W8A7Eu1ufT zA^c@okeN}?J6gej#BOg235!Vuw@PGNCh;FLzha?9E>L6LH2hV2eRp zy6h{2|LJ}*gpgY*cI@gMZ^vCcep5tHB(@-DBeL*7;Z+>V%QYJf#XQIE>Y+ z91sFVct@!{nJPP%VG+}?>3np9(Yyr!DmFYuNhA;2kAJ2hYPI#pyQEfBM(1n&5u`yu zZXX2;*;+naZp?8haU*aHxy6IT0^G+axIR)t4stVHMk)zrM(xL#n0Q2yVdkcf<6%QX zkUy)Vq8S+YMypRujoEfx03G0mFD=T1vPIr%0nlu|Ed~LVUr3}C0~3x*t2CoUVqUW} z0wg~$8#wAyRlFO?OKwJvYFWPev^Wi+$%jP2akWof(-=LU_d~I&7?Pqr7jlg!r#yM;tr% z@I-7a=Yx|tX}aLd^eNU*ta*@+H05f4F5dzQWnU(2Xm^WnO?@h24u0|?6ppKbyM5XH zzQ>ZMw1@L-AMp!TWGv&UliiLqsgL^|-JlOtf_BennZdGb4TH+m>nZ{?|GFOKkbgR( zgEd~VaT0Kem&@wc{mQZGlVAGLRTv= zms-FeOPAyBzx9PrWyT5qaZQYHGdbWg#ao}0)yzNuvJOnGh-Hnk-+qpX5m1^UCgX+9 zV*1q~|4HMeTMEF>H)6RIdXTjoVixj*>h}_DI$}%#^hl!IKRy-mK|SqnwtV5fXm43@ z=AFEixFlu|C5~T7OMuWfiY8e<7p90L=KY@}IdY2n6*1O@?nMtPnu8-=5D5gm$6CcuYFd6u7k;CU>ql;4x%? z#_%q=cOHS+HVc&&;e(MXFL&pXRY>i1P-HM4F60IBSiNPAxrr;|>wm~o)FQCikk9OZ z#6z|oiXm@`1iE@II4IAv>1#&2gG>SKN(xp{;_NIGR`=6r z>`R_*727F>W_HIizQe8PpNzXuejjPjjL_l8rG>miletTZID+>cOLmK6DtshSeQR~T zRm%MtDlH1*h_t+UgGO!&H}^l_tm}JjcAYRu37pjR$7?umxHyv#XVE>*#Pv{*rhr6W zwt7sn7~iR_P}^>Su@)(-O8dk=ZeNHznX!2U}OUvxsld3TmdP$Ih;9Y{Tg{?_;WZB+1V zuLmA`ncN3Vb!5#em~;eH^GkQLR#7L}*CFI+`Eo=34ToW;lc>~kN0nM$k;cHpAn|Q+ z5j3jadn_tvgFx6r;(XpZN#2j-I6)R@71g{G47^Y_3xrJlMRzGRSDLol*v&9n{NdFU z)3UA*cNRfqFIU9hDE((Qx*0T{ScH>t-en6LP?udM(y~&kN06%euaKv8a z3Q9-{?f0vo)hE8rq?hr<@eGX94I49Vmq= zfE)Z0IoXYZxy(JpIbFk9G}g}!CJR?Qw6_?8rw7ul=OQ=J1Me^%&xz<86$rrqGlQEWEG%lX-vK zjz4JITJ4$zW{s1xoJZsbVbnN$-sH(H3)fuvQwO-mhK`{&2uB+{@kYv^($`GwKe{-0 z+OGQhAlK>05jn3;^x_8R>g)#p+dqc=f8&v}G5p6}F*;k>ui{~K_)~Ti%&>n*REyBT zD9`%4QzZM_^dSjw$a#)LFwHy0@bZj39*|31v_Ql|qBM8%gFywiHo9!fkCTeTK&fDk z#$*s$gQKIjxS}fELB{|aIG3V2qcSL|$Wx{g8$T(`Kg;@9GQH}+{QNBo5VoPn?$^AP z0%Im!($w1%@);oty>uRyL7Mo6yf{LCN?y9*Pg$TM3- zMQL^IrA@Z;!It2&-&GmUQ;3~#KYn*2TTLqVmld0Tz*8|ykm>(JfNS6hM-5zM}R(|VzLa!`J}6v0_sX#JCo;qU0p z*L*`E#HwZ@3NF4lkD24BZPHUaU_z!1c-5#hk=c!70n z33!?|ehj}>V4?^fa!y6|B zgYumO2u3U@1lL`mg~XTOszrZ4gJ|5HNR>XYBY%*AgIrTKa?@ekAR9buW9?KvLub8u z%vdi8DW7o|S#7PJ^?^J7Cfq%kIId0wzg%h5Kf=@|CtQcFrT8t(MGK&pC5x6s=RVda zM6cEu*foInAZVQRN|T=Zlv!fUqFpZqB#*S-9mlenx&2}nv^?yk5zo&AQe_hnD~TAK z&V!PF=!pkWWW7$%%OGE8`WX||;~^so1^j(Ro_dguiX?Q$CmY2<0ZaC`av1nqvlzJf z;nVcBsS(HRM^&AhnA2&;@)pywm74p)a|R{)c9K{4&aVRP;$mIoVhcdafYBFiRAydy)02+iXp!kK+18YYX$ ziSMRM$n(Ae0IXZhAp?dS^n2?nlUWEU268q@y)@r+BwCk&F#?u^jrPz!sD1>aAZ&9O z-C(Cu|Ch{~_gu$?neMFbV)010u(>o)Zj9%tRi@t)Bs+H2BT#@<#Nbn{8NR_#j{X5a z%+tn#;i`qt{Y+jpYSGU=IF-be7e&(1mA!)|uH)y-&GH7BgFwn=rJ1H_&r3iW46ZKQ z9csFicL#t(5!!{O=n9;l?GsYTG2)HyU6v~TzLnQ3p)WhGNqhmZU(!^sg2v!%pP(dD ztz2v_P_pgVqx8PgZW3<=Fg1$3rb>f`_B7o@dEq30_tMM04xJ~AF-B{n&&ncid_;iM=9a<-2Xg1*U_L|tBz zN^NX%^rW=6&w%)JlU{qA;bHm8OJ7+2?JZ^kK-w8^ah<mbBYld7 znmt}NRkuh-Q#;g4joA_ver~^)Ka*eL1VaXyIdVl?U-w5XmB&AO%M`9>Xx!XGs{U(h zXcz$%{@9|2R1ZC4+~zGVumuSLw(t#Q4L9P(Gd}vezxBwE7eVTO7wUo>6D%J#? z4ZvzO1TD$#bJDSg8ZY-sj^+p5SoMrnq}JZkE`A*8QK0AXNRj9FPfU$ zahS)W-#KRa1{R~+N%W0i|E6lg%*TFRQ@fk4OfjD`%M-4YA_jK7!t)*81@a|cph?$RktVxn!A zmY@}N*W59OeD73#%?79u36fN@wvi#z2zZ4?|Lu}ZsT2#J7VF}=6XMktFLE0}-D3Yy z7K4B`*}2zDjp4a=MI=aG~baMN-w7G%km zT+?oN>{VTA2QWE4o|KbSaKfDboBL6>V@gu(k*o5rdQ_g z^W?Zn%zH^@p3bgr9i;B`7){ilIvUG4`XZxS>1m1Ie8yvvmYONmw+`9eOM3wl#>++D ztYMbvAqdecXCJe%EHlD7Ui!Ik*E1v94#2QTsbq7E+BPBOt(Dy~KE*gaBQc};lxyEgBnU}*DiDcNN7yiDGTqGcjT%6#TltK1%)MR^T&!w)gs%!2ahowbI*_rcC@o@*ZCVMcQHS?5xx1NCsb z&bu*D(DD&tqZ{pm1^d)8Jge{S8HSkeG^!) zuh`lK^$Pz&My|%PBkYFYOB9zMraCu{?-k^lLidaauj@Olrh1Uj)ctD?=06xJE((#} zj&FI491ltGdUno?C}!;;LI6Zrz*JU9HdVX~M*4ulh^qn^YZon27oG#gk=+8y)R9dGKa zN_DR@0#g0z&6|U`U$>p#&(P59!ucM{QibbTUjxz@8yL=-Qr71 z+b)pxgEGyFDtrgsi#;uhm=&+N$g<7kyY1q4Bh6RBrzGsxA?{H$F_&q=D~w{)aWWRJWikye_=4Ov~DcERF__#UXn&8jpfi-Q2r$!A8nZAL_rE2R*%a2 z_|O-5YnW_Bp$Vo|`{y5g*Wxh94{i?F@8j;cZk=4-CAtu!BMOs4=eq0iyG?5oYSjPn!O#6SgWVoR zoKd{VGX>}`Bpujfkg}WTO$c~{T zFN5aK&)y&*W<$)Zrd#a+l32Ejtqs~d5Rj44DGmV;C(Hik{5ZXA=6eq^aL(j}MS1gl z@;5h;aiT4O=`0a|5G}?>NIw7NN@^HF(Y=ROQFDB;sq746AFK+y=)W#A&u*pN)ofHl zF|bJ2@)+Wz8A`s8R% zrGT(-(y~X-!F&9hdn`14r5@Mdch*I0=9QQ#>3n_Yk#?3NN2tx-d*z^vM++!|UuPrL zjn@$vW;8rgI{y)@=*ohv1yuq&f6PW=JDJ81ryfOay5mXwDwiZYfn3RL{qUYzX>>q3=h*L7y7YxbPB~Sg-re=;Xg<(r`b^-WBa)wm+)TtvV)7Z55-Z8M^M#MoZKw?B{WSDDR!4c9e8qsvRUA2?)LY4v2GVX~ z_xiBNBqi@{NQZKCH_n+frYnC=eY0Eh$oJh4SC{3fi|K(c%%xB|v)%S#F0`o zWhc-qH1Snt`>13*wl7Ys!St3OjkZCn5e!S(0u@Cb%1=zIlRUQcu^sIDbAPaG{wkGL z68=P}FLPh^YT8;0kUpyED6qj9o*mZoIwa>&$rY7zU-!KmgQ6t9lj1pFi2H!S1E#1w zLDzWdteE`4H6bR#D=LvBUrL?T$CqT2Gk73ouez5n08sIaG+w~JKCGTC?PN2<+~^V# zDD9dS;rqwqdbrnc9~?fo4K-F`hn8HBq12^{oONPw!M|g7R^T#3aFs$ zQqdOzTc;hV2Bu_64?!v398eXpvUWx%yUXitJw5Kvb~)SOrmo`I%sKHrwwwn2I`)n( zC7*%L@`Avz6zrNkEmiUf7~Sa0OAH~j6L&rBF9tJV8U5w%fdZ+_GohGV)6)W*Kd9NN zShrJFyfG)33vb^#_b_aaSC9@zM3>H~qa&BK1*2WrHudKATJqFB&8tGg%@%bDtKg6B zCM02ifz@FYe$Aj>JCfJnGO2~4mxz=H?N-_&+Gv&{miP6+QNr>fKaRyg$}t3IgN1b# zb8Wzl$urW_)6=;6C2h2Y*sX)4r$ID|+9OU1BP{#!!1xI6`#?(~!{W?%xby^b<~YT` zxwC?K@*qD&q^uo7@f`Dg@_5EV)y!w1-BBj=nUxMdmU_2cy^#qLp+4ttrAEku-@Jx` z)dO+5W7b>RF^m!&e}rd(yJ3MaSQQ$NvDim7dR5HNQW99GN_!#i*#jpqX!-b~GFGP} zT8QXdpxFW)f!Eqknqz>Ws^qGFtH43G?A4eoLAv&`w=t-!9?1KI;m9H&%b-#CsIOda zdQ0=GiFqDzX%S*S)0Tt}(M=7oJb#0d@E2EKQWOI-R4dD3h#5aZ+J zHWGn&6tV2&vuVVsXIW=A#Xe|GEDzK2#g66D2uRFGP2lPEPmK9JgfY<^ZS`fMY*Kjx zv3IW#-xaYal2_Z zGWf3dJqz_~?5xXL9X>f)D>8ZC3|iPquMS}p19v_{jpOL8#{G&lJ(L7Syecfy=J1xz zrxXrk=Iqj>NlWltO{rX7h2yE>M`9}t>{2AJVc&iuYuDdqte=yND2Yo*R19dwAPoVu zS+*^D0JjZ;IY6g9P#;R{B?2LrCI`}6z6_yI_&KAOi-XfB1Tgl>XlU-DIY&!m9Y1si zng|_*ejw_~f`rJPV5~IlnxIVZ8?Bn{N@}IOHBBUm7 zW*i%y8@+*z)T}b^MvcyBRx|s>lWj0eLS;?+gx&sKnnF!yC0|Pe9ih_?IGh(7%VnE5 zqZ;XtjJF`L3OShCOuuLnKF|tRUUN9basg3cPu`7y^a`?}VBvLBR-n7-JXLOzeI{bL z)F_-+fR7tm2end)&|G~#lXC$F$It8yN5;olkYA+k8Kc1peM~K~VuZxw>u(MNQs$a5 z_AziGL~wMyp)T7dVaB zFf~tDyb?-550t5i5;7l2o9#YueCJ7h?N=98o~uS#3x>F+O}UEp-inzHsP#Q(k^#Ht zgPZ+1jzz_oB_sG{VLrKZS>I2m@kLznM{ByxMf>ZpG;jksQ7|2px&g;bvI+REn&pL& zfobsJeK-x4v4VWqtcpW$9R^kPep-V0hq~0u80sbD-$p}Bu};Ytfx1j)Gc%U9+q5`# z1a7Y*w(Z*mC~ufTD;HJqko`zbM=2?QYODut>teAp6p5^e#|)|T4XLRdf}V;5V}$W6 zjS}{`45CMELUgc2L-WPqNFO)=Lbn?HADJTZT`^nFt2f=zL=22#vxBQMd9W-liJwu! zgM!kEbf2st`J6~0RgN`9IGQ&d0x*W*h)FMztc%|DJ2i*zQ>3)}=5hHCY@y6et$N~h z+bhOAeUqBVZ4t@Me!*3(tK4{25`!6{o*v`8^liLsRX2c;8>3PLGHfiKtb;XtZ_yD%dwY}*u!eAY|1C#)2#J#|gIgq{^^;WC;YV;DyG z)v)0J7Au*cRceA(6m#LhU5wyb`EzKM|_Y=*#knuMx`SDbgU> z%2p@#TMWLloq_`~!|$=x$M72w{zO)l{=%=&8WzWh%bw0}~VT{Lwt~ z2dv$9`hX^LNfQjfRXFcfts;mF?b@EJ+|1hBJB$wiw_wT2;)o-ji&R@=Uya+icg{aH zP`z^xMQC9ZNz@a{vu25y22bTQ^FW@@4=i;6N0T^1{LH?3aOEmNtn6x8 zZ3~Rmn}pKOvI<4p+HMCCNqAg9kKlYda#?$#7ZEwMNsyQ?5P)T$UbQ(lk~e^IaMa3K z`KVEQnN^{Zh)b3JEitB1Ud*3r3kOH^i)S(Fguheeq?Aa`D12F{^Yc=hKfx9UDAW4NLm-ry>n}fy$Mvh77q+PLE*3tQUU# z7C#E4tLwF2OaFjNTUz!q2W9Ay7#{oecedK$G;tn zz{X{e{1tL+7DhyE$V#5QNe1+g3uYamGs{ut20YpX9|`e9+cIuTF%me+C%ZAAj4#mU zaYBj{40#nMm$G!bIe_+*FoE!r-=mSv6zoYiCr67!qC`$8=RZ;5?-s+p%Q}$K{QoFpdB*uaTrWOQFzPi-T zuXaQpoJ8X>koMhLnMOzqoSWYFL zL_iqfec*aBY-BA;wawZwl`gC;roeC`#iq(4OKM8l5TPQp1kD@s@mAKJdD`e-xbor` z9@!MkY*lIDVRAtUr`osOlD(6ScR$=p?WMWyQ9GOb2`da}wkoo#1J>DyjD~Hlj1A@0 zM+1=2W7WiVVr~YNrlha(KMH(AIoyY+?iSbI!#SKM0V1=K%96WXf1(SD#ov zfyz)AaxO9vaZLQID+|dSG2JX3(WORYtFw98(lv|8?C?-9dUTJjq-{>6&Y@TFdeN^x z0J8}&oL5!ZyC;TU4xnd(gW;c_Se$6IMrBWjiroU2VAZn4@Lx$H_?VRfl$F#8H&>qe zg`DN4>Syx7yI^yR-s zTNg*sgCmw$pzeWPmBL(nglJDx$l~NwIt|IgMyx!vosze_!Pn;fnH&$;6iPt`k6LwV z-qp6+MN9@4eT8I7rcEWl_|$L*%~hfkCaCN$3jkS*e4rdyT0Co6^p;$6=pfjT#OPOC z0ADegP+Wvq|M8dZQpc*YNX)&%zDrrTvex}41td<^ffCvf29-b~qlVT%Uf_DlhgSoU zmZNgv*ozEmYq9|?8Bt`ur3*MBk#>&~O^1`*MB&PV?DDgU`Mr=@$K-NwDXcWtc}dZ!;$uXiw) zBNinE9!phK=^c3xp&?PSz6=2&j$czg#GbOFNPlF)Qu!sRqMdu9FD+CzJ}moV1ra4X z_YqObrG%%4j<0#$Gr}}TA9KCn8uSmPC|Cs*yif<%7THM6csAZwvMqppcGe`!-4AYU z4=SBjB7dibEU)=zQQR`)$x8HI&dEa~9yDzF0?cIE+qCegk5+oxDR&KiEG* z!pS^;y(V}Ze`u=&Q-qSzc-jW*O;JATmJA^y%*A-xk*s3o6ken^%av~nse5E^z>lrtNaBI%vu zHR7oK*Rf#uzhj7UdNtSKw@7_Wuh*!Sby#uj&BPUJHsA)Wpq zCk4aAj7pwrwWd!AYy-T>nSmh}NI{EeW}A~Du4C)wJ!!Yj#ZTi|j!6uM<`h~Sn;eT< ztLW(dMgp$;ytEZfe3NO19QNP*S-TjC_jss~LA5$ANQ`)5{l0#xU>s8tVbud~xDOQI zOyMo=ex8OmA|~1%03r0C$m)OIgA{W$iX!J4qw6P!CHe4!wBMtm|I@fw_ZF8K+=aEQ z_V>vW8|G0wCP9Zj?`7HM&nBb|kk0YU2EVv|mVw5cC-q?sA|Hi*h^dA5{pM$tcbh9} z?U+fFoiFwu(=qA)+H=A2Kk)S(bH3 z77;j8jG+5h5*F|zs9aUHs6O(bf6ZlqVg3x#dlU2WJUhE3{>g_Vvy#$NQgDP?R*Bwr z2q6XH#_9BN|1XL-97Z1U!!guz9C=^^7b!Cy9M|&x^UKBTo(L-RlgqDF^?lGR-OF(EPGXo8p zMtwBN-LrPDhfMS1kJ%&9^q@>#8&U`S(qdS%y9gqGNDS4k;^e{PxT$I9Mjv^7!KKP( zu5mN)fp-e>m#(<;uR<~m(eLi?Gt}9D{8X$S2L3oNTdZ%If>ho)%$J-bzul5Z=S*j7dV?$gk3Yo^A+LCu1Y_0x3k1TYL=7 zkW%h26CG?=72(>bD+3$9l0(@X_5=$+PeC?3_{=a9Q4D zDTJUL|6RvWb6Xm@#qNZDB* z>1I4(JD$X*HS)Xen5+t5%Zrgx2W`W{VPuSX6_mg<{V8|YZ3ty!AzEc}W1-|?NK{GX zxEd(ge|xs*Rj>q*nnAtVs8*=Lz5R1nhh(qmat*m|VI$PAiOt@T30Uur18aUkWfK2l zsvVJMx=y9Inys*iV6p#U7~3WI%z+cQc)NxMo3y35)dZIS<`cpOR90!O(;XorKOX|7 zF`~;Cij>GLp!(@H!8IVCx}e!x$&;H%(!m5ST(l<78jOp#)G;QJjC*h+e~Ix$yPl+a z=o*U~$SX6NIi1g$#j6|-b?88lvQXj(M60q=lw2X@`y*-1D^JB zIFTeCcSx{*6GkpQzSKoX@LAm&pTM{ay!F^wtIw>;wV)EdV3R>s5*M9~1gzBiIPX7q2#b=Q8Pi*@lFC05{cGeogLqT_juncvbY2YL z5eB-n6T0WZM(im}%QN+ccLElg$ft;^_lH*byb^H zQy7vyGwq67X~;;XY7GEqmF%rcMBHS8D)+g0ai&GWDGQTF(N?vlLus^Ac4132rkjho z!OY;eHJv!a;Xsb<7*@<<*2K#nA)*Yf{rl|8dH#Ry1emtrBepEs{uCr%z77d9y#Vm5D&Z6Aqso@Laj_C*92iE0Lf6gM=lN&AL?YKvDNmdNA|g)fD?)S zbd=I^bz6V9l=a{z?_pFRQR7+XkJB+{BP7;lQ%qB&JgX7^9K+s7bLo+=<8rBf52{G* zgLdS=c`E*Wp`{UW1@E!b4I~4gxaA2FZOYw%7IlD!O=N4$d<$7u2x_uW!oawvZl`eh z5RBD97Z4Pefj|(%W!Oq(U3?z>Bx_L$zAK{td9V4u_|?oT|IM#%g9K*=%9IB|8xMDC zDm3C$m|kv^T&fNM6+?Y*8ZL}bW55~07M?LAlj1q#Am{14>y8e>qGR$MIGZq!0|o}I zeHG$n9p>toWwf`F_0J`7csaKu-8Z-%Q+%8L9Vb%+B^+&*f7&<(Dr^(l5KKTDtaaq-0d}6P6R=WoH zP^#*2pis3v7C*c4m7wAFj%4V8m;!w7SNm@u{dUV4d(tR}vBv0+ZHm63elk=-DgKe( zubevGAESR&B*g|6u&;h^U9>J4nvY3OB$nx^3hV*$e%P~CLQQ{Fn3r?8d45}>q{~(O z?F~SdP)3zP4_;AZ&-ceBASv;mwuf}vM4iXtv$t1XNhB_8V%W$TRbu(xMYo4?x|FVa zBu&69<^06>&k5}&{xJH6o7o9I+<{YThT#d(ZD;q;)%9C|CJ+QA46(^Z^|%yR&Ro8p z0~d(_>}kFpdW_{V1}40KVnUWMXG42aJNKNsu5L*M`6N_QV+H95^oh{A;V>{mZ!IU) z*^aqJv?}YgwSGSV_b%J_iKqi&y!J1)*n9xcM|j>Z>g#KNf+Zm{lf5a=$d10=AXzX- z$51~1@HdlCS=by3TGX3UQplP$7bBAg5+d&?!I7iMgp!Q0GbMr6UKIUQcDHjO>AG!I z1HtZG`hxlhM35`f)mG%a!oF~NWk&tVki2;489q?ENbT3K3H@AQPSDD5<2o10@~L1s zduUC;qne%y3vc73UmXZeSQaRx+cAVBnrzkUtq1KWrwksCpY)tCw4kPs_jy=U>sE;X z4;*)`z-O3UOy%GYFP$;JgqaEUMbrb{fp;wc6%Z*us8KWO8`14Pm*DX04DiEX#4vLp~~k86oRW6b=Aq3JOBauCr5161_cY!jPVFf-qkudlS6yL&q4= zyl8{luLv9^$bY>JQSIcf0$gD#*4Yh`oWiZ$vWGj?;=i!U4Ngv2pCyc)BP33_N?D{j ze5jiv0z&T}JRtGGO6iAQ@4NSMmeQO?!>5;97s)Z)UX@r|(o%;7g4QZ&9g(6L4yje4 zGxEnUHiC1bjwvi=fD7OlArLgzLXUb3G4VDK;nLmxwXy69W`I4d{+;gmzFdpPRE;si zcxgt0V7XkE9JI>2&(09>ahl-JP#huzjwBK;QhtP@I!H^ zLsL$e8ZIK`M*32M$UMz*1Qt!1>-KAeH?1J$LEVmuWjb4dR5-Spgx*4%b9}GMZB}Wfw7w0d@X%{aR!Iqk*d=#L;c2tPGI_IzXZJ4uF zsDgbzMiU3NPI|?X*1iXN{ejaOG*&&L^1s^?v)V08yu=9)PzzS|IR&PGzw z|3*rDMJzFiwn}i*{?Wf9o(6#ZsTW)Q^z76qmP^oL);*6vEV}8~zO38Zw=IW%U}_Y< zB-WW0Y^(sb{1H2)y0jnNhtqT_&mk5U9(@?s^k+TWjx%YScEIoZJw6{HZN(o zOvezPClp^z-^xbYrgTQ6a7I=cESS9B7P=g&ASL0)N;$E#5&DSoI^)|h`$lIgGS|Lb zP0p_3^Sg|1I9TQSmd;O{5N&@;l7E<_`}Vts~Pvt#;6mbTN)bBx$?L~W-T|pcaf$`WZeF4>hPoPAg6+cTl-^~a6e^u&YnVyQuS$e(qOF=@4#t0x z)t9%&T?(f7kds1IaRPnXDTQsn*D1wv7ti;KY zoa(1|MHVcxO4JLa(edoqy2DSd1cK%DF>ETG;@I<8aE5aQp%M*_gksqAX1z;R0@*M^ zkjMynxekg8zwt^zcsk`4nfc`h`K&v6*#km&V9K3m_Iw{8?gg>_E8gPxS!y6L&isQ5 zBQgX1eHQ+6y_R+w=Z{a>xZf(l+;zFERvrTC^Eh^!Pn(!iL_aZcpho99YL4I#S>nhY z+5XLzmNn{#AjJ43ewmC+0c%^G2#^x;*>rA&jta(*(;oR%5J&yU{zbE`WxeHQ3j-~} zMh24aQq144?N7^P;%po!=j5@$e~EY51Aev!rDaSF(sT=Z&B zA#8?C_<>$LRrF{0gD^0}c91s?#hKClrm%bl73dzU`1nV?h45$urJM1tOhl=F4t1PU zWBFaDa6}%Q45 zofFEOEVs`8ZBx-7XO6Z!UK_KW#ol3)kSxE?%GMyo+v<(CP$C&4)JO9%ShVu9!d6AB zG^RE3(bA7#r3y~@yI&k4&``V5*toDO0xyv8ovt!?l4v!-;Cqvp0>6WPU{vN4NcqS| z2@?DS>2$4+d!qO5s!I)4xf!VhyDq4W>ApcQMjf79|Gw>K)iVUeR52KpO$UB(=k@hl zi%OTv(p*s6xtg@08DZnP;Y~E`L@sNHLCt_U^Dn}Zsb5#T+zqn*A6N)CZaR*bBogU< zcTFW}xdMyIJszxBNRlLYAA|kJk8#OKMNr-eA9Oh@8py7_18}3WA{HeWq?#W4(7I)1 zl-`2U*3`*X!Gob9n9ArfCi8}zMRE9WjWvcTAX?*ZoG33_ViZ!iN53nJmY(+q|2Sg$ z4)qa*6DyxKfpAHc{D=&oegimKs}KDPLb$<(Ze;ohg)T%e8riXDN07R)J`(@mmYz%A zZaUnY)rql?MABsuNaz5j6gm{g&-OJhO73Q40MW3>3Dw9k`h4?sP({m3?LC28g#5U`SZ^r|@;%b&%rF2V$ycJFe98po(*ENtS>5oE+w{WpWLnVgh<8WuWO3 z&nRp|MEArICc+#wZ&8&``(cS%-5xaq7aG zf=k>W8M!BJilO?@3{tHJnm=mlVP#y66DB+Utj?E4U{U{IGt6;gTIf#LeBuRvbCo1zD@!7vS)J+GA;rTDC?uqLnYifq3Pp3daS9nIReIXiXJ zn5#M(rpD_W(}Q`drNCtVb+bR>JcL-`kvJ02)%AG*-O-Xqq&E`CH2K3#Cey-gdBp5(v?z%nxq&I4S3-W@O8d4iB;^UxjrdAUEGr{BZ-3l<&D(Qgwfl#zuhuK8 z|5j_43L+-yW?DZEo~}3`05Y={hSFyjW16J^J&HK(&k*y9$I(+OQFoCG>;}<10c)w5 zpq@+H`y<=g9M-Mq$o(qgE#f8vTDvM^XpG-m#~*tQk2jc<77?WX!CN)1mas|7c)I1w zx`!$n8|!hZKF*1ZV5{ZCyG#Tg3R^x@T2M6Z)SRN78=9{O!mQRrA<@KQJDWPH8s{6= z6uRt^u8;TFlkztrb}xDCri@%S1f@Y2AR+w~l2TU~yr*AI$m6O1Y{=9L|K7H$wQT?! z1FFpH0gtf(U-0Cgne7$oW9WoC+t!gvXzHZZzsC05JoBw%&I&4w%1b(jKQYXc>tK78 zABo!?Y%tXUbQ^&K0Z7;CAP45-RZ$@u+w`tIo@0hfO*CxFs~Evwuy zGbpQOPXMxn%kb!l#r|J=9OwVZcW3;s93nXJ)dgAZj8%EqzjW}@jsxNGEWhJe@52j# zhr2y}_q?g;8}DPe8$C##DWqsb41*uXPQ*p>hENztG6b~6TYyL;fYL+0p|8E-_CoPV z!MAYnaq}MxDUEPVgm2gwz%~R!FVLB1xaE;sWbu@5FKv+Ugy^X8!QE*Bx1TD1jvT5x zPw(2}bpu~M!CT+5b+Bj>gPOGIU^O2Xi|tlXR##arg`4jHJkwodn0l5&yv?QR=0cZC z*l@r*(4l;}hE(PmD^dx{3SrFQqwlLeAy{K=Dv|6^Ve;b#U4T@Wc{7Fhkzv8fWA{+f zWJDu5{Q8ZsXSu?*>oCo~D0dm@Yx@$7*h2AG{e+I#(F=h0;wo^G`aP|EoWtNE5xWel zRr8W0vKMhbD*0qgeXYr@!Q}hw1mXkBCh2#t@D&*}H=hf<9!Gvi2q5fy@PqFXx>ENy8siIp6wU<2U0>MP#Eae1i_L4NHs0G|ZFtGF_iU^El-4%dtDF;tGpdhLjq_mF zbH>nFlh5(brkFo&2LTdTy)NZrk6#jX)Wy+QsEXX-0!rcaqPn%}C`+kyG^XM@c(kN#Mxj2%pvZ);Lpt99L9_0FQDoQ|v^-;(MVX&V<~&kUwx)*t zQCOCXXK5%(G6i&WBVRV=*UfR;0R20_*h$06hE0=oCejA}2hk5^iaIKR`q+cO7o3gc zI&%t)_MUk`XEgHt@F(c5=Mc~;DcDRt`2v|D&T<*VJ$$ssgh>(^!KIIDND(~4Xt~mZ zMWPT<_MCGNv`>(A?}9+BV!^SYoij911uw_`@HxNsV=mmMh%#_VZJM$b_{<|7I}ZG{ zI1Lbjm?ik`)XcU7^&dN=9+~|{oNO3Mk1||+#)G5+B_UYm+Z_6`*7xq%(wD=}hwS8c zHGkWwr~skMw9xhKDoDo}`9L4C0Q=Kv*eoVZ^zRzjn*iwQ0$3eztXzwf?zr||`=scm z7&OhrKap7ruS+W>PH%XBrfIn+U*Gs+bTE3tmFpB)xOvfCbYDPnqByC8T&t&piInTaUu$Q?%uK;C5vMoq(qmJ(Uqc13(TsF z5bFgZkTgVvyZlAyE7epR@vqxuJyLk2pkv zS}6cH%d+JnNgPcgrH)*=orRKG%;qWF)eL-g?%XaZK+tZzaOe1@+5P+012l^s4Hu^S zK@1DZ9+2ER+FejCR?r8w>mspM4STBw_)>a2w9_vo9p}KhpZ{1GpKtd!b?3(fSEVyJ zDYW*H6kI+!Pv*wno`x&r2;b5@c*>k?Xyqr$i)uj2fJ(y%bCr0cQAI=;3^031ml2D zMT)$8s#R)Nf!`F7WgW#ENlSEnMdm~%7myP4s#=m{Jt3D!R4p-#W&&vdF7HzhDOc~D zq*AJEezo6%=3j49EtV5CGrqAFnhAWb${pqd%d+QixB`rIO&dvNBK3`+DF4Dio9l%i zKHXzwE|*x}h5*&3x)yyTs({(0&Z*kW7sXsk6|NBYGxCdNSY3&2VhwkN>pBXAEi~fm zw-4YB>c^Ib;wL}yLVBj4^(TSXF*=LK_i(8KIcSj$qbG!ykVUUt0VQK3p^nA!w2YIe zZFRljJfxBi3MC@7$ z1=|(&;qPg(KXqwzqTMKsG=yKsHt1K4F|y1{YJN7Q`p>hfRo}Vvd*61zo(N?iG%i-7(3m|_wX1a4+I@ExS$+WUC-1JJX&z%Xj>gyVl&}lhiqkf&>UAuPP1C-Z)!TfS zENnRLva6F1kjpmpkWZiyK3-WBT+SL2DpvswEhlb%CDA#ftjvY9noT)=7SCT|lL0lD z%1@xaLnUGPo?iMYq`m~jdG>(rFZ2a-PS4?Q9kq2GwKFA|8!^#lox!kXs8ZrW%$B zM@CrRB5}iX3xSPJwy=zKQ=I@^dIS34-DS?VU=QF1@oaWJI5pTwpCmp+^)ZlP37(&! z7QE_I+*v*QAOCrL@Fx->eX2PU4RP2c%1pm^zY6h8_KfPs1UA0Xe*aVr$X1yg5$y6> zqY^AejAs*8GEu!Xuc93RMil@ytPRmTPup~t+fy^R^zYNGL(*NbCBWxb;Cx+t>-AN3 zq`XdB5z!-dv%IBan6+I--^?bJv6~VD9xW|%0Q^+BG@}r7D=qAld*bY?MP(i1EV<}X zslC*h5qV&Y`lBJ&Pp3~eW=#;LRCfgfM59vLs`ZZ={3_ zDNi3=!an^?kPQTxupN$5z{n02sSochnV2*dXaD&d&2B$Et)^HLd69|Kiu;Fv{({r) z5vS;OuqyKy^LfbaHUb#+)z!kkOH1Hm%7pDCEM%D|QV6QBN~(>slTl&c1vF z;B{0Q6vv!0uh#HHcFe~B{c*}BK?hDe?c~AXGWrXEsq93~fQY)Zspb_Q;VrWqAIG>= zIV&AwipK;LGNv;PRw0LQ4m)&qjjZPy6Y1_yT#NKRvfT!|AY>36`AI`s|AAKjEaB?? z!7Q*1WB!s0H#q-|#^2I9YPKpNTG`do=wLLD-Dr6DT2(Tc6_5VQl5{zIDKw4$6>702 z2$?$H!n4=Zv_G-r?h->+E6!_=#2P!y>uQ`|#uDfxB!j(eN+0Q@&7JF#-gJ(aStVe_ zJ+lylHmb3v`6?&eFUj2y(9*<(;CUv?{S69;^z)ly_L^Yu>l?{*0aW|vDx)Tf^dDi# zAx+)sp}q}@=-{1eW<8-6Iy;2Zq&!g>4Pq=1MNq#G4S|ARkrex2@NG5j)|-VKg?pwn zA6M1$qFkm~{xtUypcfdSYT|6u8^CzKUB0^)rV$%-L)w*$3KibJ+=6`5qczAGHM=kp zn~^0hK5mxDh3oQJxRcyl5`NM2)ssjtdCCMlsHauEoFvED&rlU|Wz+}?@}UzS4 z25uomzi(&Le?kt4+hiqXQD2Q}a^1yYya@_xTtGj{ZMM7XLoL*hfxo=nFI)2`L zw2Wh>u!_Wu;3SRXfZJpHU;6qSn3o6R8_J`6|GTy$x$PxHk7@0!I9v`7^L}&m&(k5p z_N96=;okws2tyqc2^%+sgnT_#+3Vh=>F~d~GQK~cHFop)X}%J^fv;qQ7?mCcm7T7u zY8_w`%K0l^x#%Ux?43|}A;+tdz-kM5ZHM{={8MBn!W!zp&xV#L`?h_j^j$Svn`}!) z9voY@8JwQH!T+-_{9k-(CRXpux|j?XxxGtR$p|M7%YGB*BAYb-bNEY6!Mo8_7>^ z5Z~^G#U>T}HeFuV#rN#vp=>98bZ1@D`xYz(x3SDTH(SW z=OYGUv8Z{@^tnH9LF{IdcGHGto(;iGRL4(NGtcDUTefDSEwSOR)NTb1mTXj`lkwI1 zrVI_XTex`iL@H{BnxfVdi*d#6rGpAl#{7F@wvL+$9FPc3XiY}+%PBnc;haxuf}bY# z$z0|l_hDgGS*U3-$f#u}Q`7g7uq&SjXMVo8XW+=GbouVhlOQzl@tG4cO3N!Ne+X4=`8q4dLpfEYnEbi@{~`kV37-P`IFX zxghoX1M)kiMB@I`+ZK_9KT>5S>p>n>)|WI@zV|LqUt^ydWQgHun`XLq-M<1R1f4mw z*y%$m7=7iqz9uHVk&Nn^@-85 zQqDAUw|JiW;l{~h;8y1_ng!Y;v!M`%Qv!owP|*QKCpU^MHBwGwEaq9}Yxp((JuyhD z$dSHLuWLLOwO0@0i6s{Yd?qFeUY?fEkBWY8O>DZThGNU-5tSPcxFp^CC$*rYMXtn{ z?!SzieE=njm;SJ=BakGA6v9r>H@x}Bd#uU2#I6)2N(vs}CZ>QaW_+eQ@tFk zKv2jqcaa`zOH-HpnSBLrusR|juj1~nq|Ys@t^@4Xd>gv{yrN(Pe_q;D@P>ukc2HkH zHTr$&a@(B+ zKO;w9KmuAilB|gTkt8`!kcy)xvIWqSx<}TbIVpV_QtB5@ck$CU5g6A0rdSRYonlC5 zBPkze8_Y~lObL;~8%=3lf1#D%PZ#E9qI;cdoy@GXiXdjr%MJw>S|vw#I)ccmJ_@s6%e9+>yWh4P-KY@gjsT2qLFm3>wTXqfV)Z*^9rSJs5No0)d@`!mSPfVy zlUJE?V!h)T!cQV=2d~e$mFruG#AsAfk6$6a?&uO^nq1a5a1ES&yAT^5 zuJr94nvVO&TSlUgr^l7CxF-|l>yi~;B&}31?TNVJ=glH~x%w>CT z=*)q&7D%4e`qGdn2i0fNfkt&!81mm;eNUxiZi{(wr+Ta-?j^Ymsb9HyoOyYEqQ<+X z=ut7iSXFNn%;Jpffi&3ULApC(9sVyK6Pau#!B$A{qc_zAt(VJb1XszbejpH>B74{T zkXc0uZVlR0F9dJiY8~tR{(>w>O+j5=1AAC1>cC>ukLWr{yH^q-5Eg(pcG8b_gA*AS zEaa2(9}L_Rr&!0}b?kp=w|xoY9<(yDL#fMKuBo#_cM#twl#g#%2OgAbb4hNbPX=)w z@vnH3!RmKCHYhV@F=yfE>e5))I!+TeP{G5j!{7V;N_!u7lhktdTQ$|6d+L-mw?_#g zg)`lzbFL7bmNsu;2swA@7s-Ey#ei*(?H-yn#h3nDRN!zh5&5p^R#6`2DM}6xC%`iT zE5Q$TWUnLbNv5!zOw-vOTXwTKsFis?9WSF(?NQe3avEs#LM)Y!LO7C=Efyp>cl~{h>%>j?6Ga#b5VPQN z<^}&su{1}r{rJ{7#Sv`|TazOWwYQEzX66whbzbD3$9pgMl9G!*_!%DYQ={EiU|dQM+=#``= zz8p#U${`fj*D+ydz*}ZVI82Zp_YBr^0x&6GEVlY;mJl((Scs%{D!69w^5JX$&U60c zlvK6apb!TZ*9|^lATfWi11wBcbZk$IazF5^^=i|K+a=u~ftaUFP>zdKuBcR@&~@|` zCoE4BUt|?>?=3$kSS+#8OP^D>Vsa_y%50EHN;$dmr$>!buDC*o;5)4eBLQ-0;0nPDlLU^YaR0Hb7Jx-)MkeoZcft zgv|nyz(JS{@@f}7Y+s^?2y?yFP%`D+2%fVT?BJC9XH)2baqTa~EI4e*S__DUu!oF9H3RFd&5M!~UD8|F_P4SZ48*$p!=u@;Dn1d1+x z*#6)@+C$|$hT{I?dzEVM7hXbqHhER?kG-3(&nP5`TQo`f3zVN1|Bnj5q+y z=JzoQXl{iD+r_BEEb;9Px`+q}Ja_k`lCWnkde!QS5Gdu*R$l5&1m^@1Cs-qL*( z%z;rU^xwPFJD6yX1fvGr(&umr8V)pR&ElxaxU-eP+h0epni(q$-ozBWB)(Pq&tSx| zF8(CxAOylH{0XgX8~<7;Zm(H8Nu{dn%x`9+-eg4vNO9n&l)OStGF&9$60MyB-C0v0 zg}xK+jO!wbN^fJBkkcyM6eZXLz-&$u2YxhO3+%PE#SHb}Hhy&(Nn17v0~1P%p3`<4 z8cXuk6&A0v%I#~ou~o)SkqibFOjn^!w1@RPJ}}UC=WKpsP(?!)?vc_ceYOiNxKKfe z#Ipm-$0&8e{qgs5I1;Y(V0ugJ#h`xgKti4#9{S=>9iDa&2)~}~H14tTxoS#ITR<54fRDAH9@5I%Rr8+V|y^X^<@04zNu1v6U-n z6$BBW=7-qk0Q5DEVL|3IA;Rp6_j$SUi`*+|0J;Zm37LVGSY&} zA0P{ID<%4N)-@^}?12-j(VUCu7n*>~3fs1uI#+Ll$fujW?|me5I?IUH9Cp~jV5X}z zaNlR5vQ{HWjU`e&x(;6|Fn#%ssXtpfYMDN(TI4DX3HkHGhPi1Z7%3`c3ij0l z*JHnS8y(?d=7_2eN`t?fjlK5tf3s?T({dVVI7!I1gl^y#JhXJ!x$ZYVkid|Kqc*w^ zPB#6yi2K)Ff-$Nl5L%3#J-}|~?qBGaSki|r_(+h&^~!y96^{`NEA0LW0WVUGxZ+^10qAX~OO zZl64EXMmmsKLW*YGkGMpxT#XIVvR@CP?{d;-j0Z+@ER8QQgOk1ct^k@vLKGf-=c~6 zpXwpjO%BVu(uknpR^GpLXTbOrYrX~+V~CLgiuaQa6BJOVyi8|q{UpSh+OXa|vwtx@ zAL?otF!lL&l+P#Foxt$iOhtbuMnG!VhR(_?TftN92E$hKE0|1JuqJ97YeWggiux3Lk_TqR%l;6d(Y3cnBNd zmjD0*SR~$3rjziirgEugsC-cUE8R4O!iMsJUFLWX*}c9hK#kJOM#nUlLcFhDrB0dI z9{gE?f@bkoc;oFd`vJ3s)@$%^L3i>FNPb6RRn#DAk)eJ~Z6CH(#W07(I0Fc3SWFpy zBOYUuoEdF00BhD?x;W{WJi}nNonwwL0np2xWI4HM5!0fo4l{+*K{(=t*8HT2$Q*x~ z9@qFaqKVnt&9w@wd>Jt9b3PJm_xwsPzhY~6r41GHWd0Qqr099x1LIH(2y|pTUfL`S zAjAz1?~(yci^Rn((t;nm3U{$f;o+`-s-Dn+!!R9hf)w0ehUxq6%0sZ=70HZ8EZz{k zii)Hr*uhG5O`2WfLSep=eYb92hAsZe6h1H{UP&)T#X31k{sf!Oqpe9kM1~`dR%1$v8&&KESN8p!V(X}+rdKYXmo$AU zIvSGXg|6jO&_l(5RkhAO73EzJ?XiaS>~{Ix>6CsJr@pTT+n}6s6G!tff?_oFXiq~V zaiW|~Tca-%C-i{eYBqG?eAbhyr-vV|aFGBHT?2+`IK$Tw$r>)81JJ^zLm?+a@*hzl zLxTPVsm+Zw;HG#NPp6kk`j(-n1(DFz@3L50bko&GH+s+|4>W@c1zV7z4Jr5L-!+Z~ zIsJ^1*??$?zoMtP0A@+huoM-31}J%+OGyeP5R7O?3sG#tn9r)_9#R3>^QgWOJYKSi zwlvpDe?S|Sn3}XFQbAfc6+M4E%)Fm2czOb75^Dxwsv}IpN6{?G71OHYZ-#qo!vH*W zW{sh*2lg=ln@MiJEgj2zh*FGOB)}(X;ayDWxPdY;A6WP~tT~d$$cx#Fypy&48tT$H zz7Fa#y!#*g2(jBQGQgbeRxu94woGm={G}gZ6@}wmsD?>=7}6HB{5P~ZrZGKI&SUCt z^4U`SU2@$Zdm+W^vON(mbo>{WsTI%}{QIhgHRqONBgdC4a*t(}ZlhW?co5nz0 z!UDgYeXO^4XLfC|v@s(XQOtwQB2`C3p1|$jNg=R{zNUaH&5L1rwI4i_c2PWu3QHoX ztFlk(0iBc806YQ918jKCI#t~eS|;z1T+iI7EVOG~8JdosPbC0xOwo~wJ|>Kg_*-K8 zas1Bgcf-Sfp=<-;wZGlx>;y8ZER@aEVh09KV<&1gdWJHnMv5TfH8h0ZawfpM#9onw zQ7H-8NN3DZw1>PV3p3W&c0FL%@(s~p#MLwqU)Upw$OB?RF)3 zZ`0#l40EQb2mbwSrrJklvbMJ+1901^7D`3$nprWhJhy#Zu?T9k^%muLK=Sm6$cT0v zy{1UQ*WUiTEblp32KW{endsuHv7Ixo+Z(X!Z$RH#5ewsNOh5<3D#U4xXAOF%uoDK@ zV5hS~@#|QF9tC=OC3;B}u=mbC-yLFrO$4g8wI!cNMfK@puIJbL=^xA%hh{&jE8}x= z@U=`%%FuXESiH>7(K!Za!`^KAA9FVo!~e%qXJz@XxtsX)j502s=vCo8tT<)R)v%Z}0#Xnz%xJ&@;X-X&;xcG{PenZNKeuYo&MS_mLwG7pSvjZmB3@7`x| zfUYNELXxz|E`zK)g6q!_R-&sD{3^2xwILZ3fd(fjcJS@Dem@@Q*OsQhhY_GNQDNMZ zf5bp!ZSxNz&1*PAb-p)I|X@Xkp(=hw%)%OllK2EU6VGbxG$loz2T z)8LE}+RqNvO*aC6I)OqA_D?wid^-|ccpfOP7jKgozyh30KQ}5)jdb5UTiQeW+-L07g zDjhA~yqf6o@&szuq)Gszf5 z^iw z*ZWJ)>ek1-HNaYz#hpgn@VY=%cwzM9Ivzg+rd1<@V~oYn^C%ScNFhOZc#m#Ct6FPBdr>jp4h0d7q8@?Igr&U6LSi zEtl!X5wca%LmIVWK{sultJH~&JVVokS_utiMgM>TOho`=OhwmE(tTs-iqVQ$!qSy9 z4LE701zWr2z%*$ZZv(Tb&wr_+^G{yJzbuDuQFVy|cm2X8Q4zc8H58RS-`%JxSWo*z zlDJr(4-fQ=M;wsd7Fb#EY~aM9qC|BC#4KaQ`v7zA9sl-{uUXHZu#tmC1nC|lLH*Nb5OjX182OYNv1i2E(K4dS$9ZyKMbxkknI*xDYwQsEUl z_Ja_;{ru1k{!#b8sk=H0%)f2AP=`;D4g`qwL~x#~t)+xfz`X>tJtMx=`2OZhf4g9e zI&c`ll0(X?GWYD~s?}qi(cp~l-Iqa>H%^GiEl6- z*wu;{;YzJCTmgj!irKxMgwl_v{~QTzz{5twXbS!@o3Nxjs{zHhL2k>@OivJ<3iA`K zP*AfGr#N9^)dm1}qvW@kk=&&29u6gbJ;WwSkdx^DyNXExfd%`BIax!op^LyYn0u=5z zDlPwOM^MH33x*l$r4&O%F?3}4j(N;(;ya`k8(($2UT7i*6;uS}q@R4(()4sUhbrRioAp~Ebd z)^)T9uq+K9{0pH;>2~u4zMjWZEto+%*DMt<%hcdrYFXyuzeuhd>X727Sf9#3dqh%& zw2LozG!+faO&)ne%eqwr$(Clj-FwW-&ie^nG3@?-X{r^jbZYe5|nv3MwEJBjK~I&HBeG7M@UPL6{s(FS8e*o#USj1 z8iU^}J3Ty}_?pUkF(B7q(&;ccHuT?hQ-gIlPO5uW_R@pJ()?EgIsqB1gguPfm zdOBnRieI~9S!)9Vpm4%l9GWc6%)gcf-VBe;6KES}zWoSrpA|Cj9Jb zfG)hQL0=nmxQ`H@ID~~VJP0{W1^+A$*UC0w{b2>Mm~A8s_yh7`8TPlkpPG@spN*+j z-P6%sF2pMX%k^nI>Ijnx%a09S{(rt3|34l&JJWx8czz`_%8vrqf!ua1Tg+%Hrg%*@Du_mru{@&KJLJco-P{i*A&>x=>NF4H zP0QAygl*LSgguNbz2MwM_}#coGA0%)E7uF`{tad!M1cJB_=97By*CHqZhvJc>H1CK zFcV5ghU6ONYuO`#>I5_n`xaJDjiERK<#fLV{W?Sy=^9+>rAEGXk)7q9tywWBY7erv ziO@n#i<~2njiwF_c7i;HO`*FUm1U>rzZ9>q%QD?Vw-*TR@akdn=ghfZjtK|ARk3~- z2by3=)P7#up<<2zXU(4C;KLW2vxJF6UO@EUHDNH49@grjRTk~F)0cxbUd#`)q6;zZ zxS%E^Z4w&9#=zn0WXf9>g}x-orsQVEekYjWFE-)u*37V{Sr-jlK1iRL0`@|UizSngH^jlS`Q$84b;8#y=}ap)wg&d4?bl=e#ik zP6(lENHLU}z2p74Z8ZBYq3U}oeKe5~tP=>r6Vr}Ge!Pq5PuNyqO9G&qjib-?o=HX zBGr+i!E}3qP@D9?Jv!vsDyYP8vT(~kNjgLxfPJfC0iH2sIi#RH28wy-NQYvRj zM$O#L$K1jRt+X9Aoou!NLDhvGd$G|$RQEeLkK9KuZeN%p(ZMd745hmcHnn<7}* z$xp3%lQwdw@Dh%7Ki!|XVrm8CN8aUifLI%#>o$bp&dtT;GU^diusQsRMcUrenG!8L zYOA#w(X*L?IYfN;p$DGUjSZlIYBu|M%n?NTaW59)=XRv z3It$gq%F|-g7Jx^QDmlZT*p2{{k<`;n~kpm{{)XWO>sRxq;MHe%V?^w;Lb*DY_$)K zwaYm+e+?F`Osz5Pox*<%(uVHsRC@jL7P)j(T>NW2@)_SAa~hywFFrk7>ZOem^%=&e7 ziYuPVfWYZ|p_!LDq)LC_ZX^SFH`G$e7Dck_qjOXeR4Q_!%$|qDHHyx`$MkJSKS!kO zVoU2=h=c=^*9V$`pk&C3Y{;sbHH1@t*&r&KCNM*N51KV;QPY~aMY^|9ydqD?Mw zM5WWvn_inKs(1dk>iq~VOvm8QOnavB#HCXQ)B7xm+-itHb0Q!_WJx8^gGcLc)!K@` zDB$SsL#l@@$6Pz+qq<8&G&N{KW>i2M{Yvd!=)5t2hbIH#B>N=tn2 zob0V3{uM)VrB*@hr|@?-PG{zTZlwi*IDKvtu`Wm9-G#}cR`wgbVF-ChNKG(aZ!F^XTuD>c`f?7fwyWp9}=_qgvUAbHFhFq>r+b>siD1 z1bOmbYMbS7oTI_6*+rTtP;q0Ts@z-aA9__#0km}E zfyyq}5JhR-U1f>;?gdn$w{3%ftBMl(3^xMsApQy8A=My<{-o-dkuZRJa~^K0WLlmE zx)~ivspQb*8#^}Mbk6p;7g8zv?lEE0`?b(uwJE`NBASp7;ZTw_F)2sDy69kVs5bxT zd6w7lI5>?;$yM#UJ^)n0z?pa7Ng3{F6C74_qks8U{gZ3qq4d@a_#}ekLMt3rB&}=7 z(c;pci0*E8UAM=NzLH!=xDdV@2XIaE`8!pRqIg&&8;UH>(;hGo!M9M?Z=mx(`{4h@ zduQbQZ@w5_)jQp!6%?uT5vDMn-gSyrwyw|5g%k;4<5QVw}HE5x{5n}8c|=Cl=D&5 z2$rv7+mDU#nOYkL>Y?ADN8gm5bd?`5n88}WgTkf(khDv0=kbX5b36jdJf3Vwh(R*4 zvon)1Gw|8}tFk?-i+3GeGIoE)uck2N zV*BlBYvp^Y$cb>CjRJD$?;rLQy}(~F3B+-5;(CJ6Ojqy24vItW%Gr^&lSNtkqDB%} z=b2t!>EDE@PF5Wxoo7iHK*GL&VCJuAh8hK)0QxsMlm6q7vHcT|9Xr$7kPGqlqprplnVSi`aSJWWA#acwvI^<%ZQQNilY zjo(p|fcg+RB<;}zo#GF}y=&z>NhqbBdAuToK6~{-^!D86Hb$lL(GJg1H1V6*V_$j% zTZ|~Txx$?>=5lG@8kux)_fOs^Bw-XCu@8q;;4?9vrT=Xx4oeu?Hy{L2{tb3)4I)E8 zs_JiD$73}#j?eEU!#Ump_hObfgzRmFwJ{D+;4|h}t}?F72N;3IZeClA-C|80pYcb0>o#;$;FEWj{+hh0mWeyhhiO~7s9 zU6ymt3GS+V`3)51^e??R@3S(7t+_q9GM%s6NFrpNvtNsPI-koCJsTtak)@XK9U;g# z-~E>dFh;X@YJ_vV%9i#AkJR)Rmx>#wnzhynD(?VnA;sDm&_RD?mKvyk6LX#8ZB(e} zI>=_EtD^YFuD=6Nv|x(b!=0(9Ybx?N6y}sUqh0FbFGZn#13$hCmf}d7zz3 zp>-xmY)4y~+6`(dh7=x#-o6zln9^17T+b<6fjla4@ zvppw1ZT)CBrx~}*SD#@9W|F#SC*A|!5{uh8s1$)LNWjh=6tGSRtJt5oxZfc+Bb*|< zAb%{iir<_60bM_n2%w&)!OjYk@Dq5p?wDMEQ+gH)AL2TC)6LvT`-GPi{Xu$ z*jcW&Cs1~qb_(xy6j6p1!&JUsGQ?%<$vU|ej8LrXkGtBwe_`n_TQQI%VElY{^UxHFH( z?uk<~I0=;l^7b6q8a{Al;@2}WEudfxEC}3na_uSmDp_dD4phDMYSM14A4Pv(EaYyIfN~Z&Sv(IW z`>_o{QM$l+Cf)UUy}F>B4p}9b`=Zz!`1xlF=g!)O-X%UMChJ`&TrNz(1&smX1=4H?&rOn#zo?xYXVum%=j^JR3<& zZqv+%X56L>#u#jxjQqau9?cJ<8+uOpaK9SLgGcIP$T019$(Wk{oJfN2fwrp!{zy(G zV~3gwmzoc$-wYdP0$T-ZUVAMuq^wDQTvvIGh;)vd#;(j8qx6{qFYOr>zTd^#)5vLT zKc2!>0POn(;<+0{EYA=u+(LpC1%vXSNUPlQ;@v}EJ1f;LDfYwJi*Z1C@)YPvI#jbQ zZ2~P%)jmvD2nPDP7j)rdwZ?i}!H-iI9LHbugBK+4>xZmS1gk@vzbppWx-x*;$G|FA z#8piqH#JR9wY|0n?qJ&9LMABg+wF+5=4N18^1oXk1^Sztnubgo$M!vIu>oe*SobGf zq3K5D2AYn#j*qoWkV{PHM6Fl~$}z@GF8;RWcs9RTGc0SW*2OCSufEOrfAPl|IsV(z zvd0cWkX60Sx#Xg-rjjo_7m!}y*>SK`j|O!;SxLa`Z!*(MJ8zDBhmE~TIZk;-w~-CN zlC9v!=3UmiyG-OYk@@R9EyGAduJ20#p35;jz=L2XX0DpIl9XDzU?t?3bYW-l7F|-L z9F^^~U{!rn4s$gBkHm(fMQnbtFI4946jQHMwVfZBZf3(_S6?bp%E=@=Y+fu#|MJSr zJv3bR?ihwbL=Pj^C)>wZb>H#NqiFLHrYX#-w2NB@3lN*@GT?E>_ z6j3?#&;)B3^)(V)RzLf)380E|PC8YQ@9=(vQ$eU2Gjs2ze$%uW9=<@AyUe@LAiE3q zq5K8vPD1@-FeR30y9VO&{&xj9O7ISdI+?|Lg*BKB6jq>xFm?#4GSylyk)x;yfk-tH*?eJRXBGfSGVM@5Q68}cIyk`l zZdtAQ(SD10lV&uUbmJHY>S=qqJb**FP+XiK@LNW+pXfNZjvX|E!tC9K3RS4*FPpzg z``;S{GwWAbLPc8dcHPb7N=Bsg4y}AjY_EIZkVmiYFlXA+$+Z4gJ^f3PgPQqfgBI0# ziDa#OQNnlCT>rO6{jG9+E-E;P<8FOdD-ionFSu5#F6xKdnhKXitb`o$;iZD*S%I*j z)N@|nI-o5-E<%QrJ*Z2i0#unU=kCsVe(XjRlBEJam$~I9&cR-DhPpoRhfHLR<6&_A zY7DmgBHxZq>$)l=>>-en@@|60VzROPw=Qs+kF@OU^P;yc)FtR$c&cSjc-v6Bt}_h@g}C&gApPl(1*%)_%64|Z4=2lj$17G zyz6ySLCbICrJ?k9-v=GQQCh9Jwn5cnM`?y+R@BKstbI?V{b{UM{lCL8IP#v4PVMrO z%`rO4<|?2)HQ))vAGd7w7dd-8T&!}&OP^sNLYGA)V~Usv&LHzE{7#3L7TE7sF7Zt7{kI$|maUga z69PIX~Gf1FuJv)?VV&8K?F=`N@h|S$(w$suuyW3!~Dp^Ic2WYiApWpMcNRLX}Cg zME}zIyU4%mnRD8Ki+6-dB=2puv*|aGzJm_3y?=k!vjNg&RhZh&Z{}6AN9{E~zbiM+ zQ}YJ8NlLu8L8*P@@Sw5~%9M84K?`!3Dy|g)76#exotmjGVV3136{t2lg7C(ir3n)oCzfdqU=$Qdwe z@Yq&mynU$RD%96~<9>iVJbgKNCWW|ty=On%P&+G48W~CM zs=<2r+zv-=lyz8N)R0y?d=hU6)+3_||HlkniVOl3UXn-W+SNiTqsOo6F$@B6;075= zAy?i>w+k4>9^lD8%H?5eW%*sc-=Wj9K7gCkAdF;@O2~F5CJ5GdS0!urj6||4tBLy# z9hjRls~J@;?vCWtPvV5wpJsd%Q|#JWrSH%wskV{$z$zEj!xOA7bW@V+*sBu*ffdv) z3FLqF<^PM<&B*ZIeOaWgXHOW}wv+5=}~FD$OR znNAI+HZJ0!9v+&y3a(Wwbwh$l`2rqu&_pqOISoUN-Ib#OGv5Qr^MX%Zl2W3R#(gn03%5mcgC%5N8uh@ z{`1Xngw@stZ^)wqXpSr=6j8oP?>wGFWhsV`nC|goHD6gPUVe~ce+iYt_V>obGUPZ3 zLd<0meDdhTVrX7WPyOrQh<;lyh)V#klh6f*g@NmaY?atNqoqU|%Ad)O&KiGvN1!!A zeP9>Re#aljoQD+0UU}V%0hO*XjA%F(!*&vmF`$=5YT^eVtRBhP_cceYyrFDv(Dsv* zc=xakY9h&E;2ylpLTVjo0C-`#HrE;^9n(2W3uF(p^)n~PQIBGPplkbBinBA6%W?{X zjZ#-h%!}zGz zISc;6By+A|BfJE@L#kNf-uW@AqaEF(CJ^szQI_@i_c(!7Ag3~|SUgB@nZ9zfXOzu( zO`TM&(c1xhafzOUTqMIsx;*CaNF`QE*!(5!8eC1S8_s9^ZuT~`*|K#(!PnH~P_!Fs^=5>dbZ_Y1 zMJYI0ITTS6`>;jw$~sT%c$)OCSeJHrPPO~xeAH6`C4dS|>b3l1B2vV|xl&5Cok78g z`EWM<=ocbVecVy?>hR*A0AYYgHEGXu8s*w$F8Y;f?d2|YwP+!O2#EG$>kP|`*3rY|QHGxx`D(2kj zw`Kb8{6X$@Uvb_x==}i1xy;r>T(+xyYvWcmA$n|y%w2J9I|?Rnks=T=do^{A-8lw5 zE(bO3j>TZ}q>r#uhtni9>@nm4Z?u-FY2@@MpK8Ioh+@Rk7X{$z-jZmbF^aTFM~3(Y`@J&j{RfRq zNXZ%A1pJ!%Yt_%oqiwtOVaJ86dmOmL;1CEE6ivCm*ar3}@X=YvhdJt29sM14uY&ii zDpDH+Y1>ROW{+n<@6e@|Q1p&mILP&!qC#yWq#RsX2|$7Sc}DWd&RF;l%BVu)=-CIn zch1Wg&~rut6mIIb?!;_Iy!2C2}Q~PNj&YUt0$HpA_8@d3ae%95qe5$&Y!8jc(%d zjD$gX0No&m<~O@LdpJ~;flpL*4RJa%sK~fvGa_j7EVfvtW;z8!QBll4ihuBDK(T_e zu2&ziU2YR|zuV8hA*=*tuDvxE#Oc{x>&Xk>e{Xj^@#~O^d62Dzo(SXTQqEp~<+d#e z--k6N7JOTL6&Z3EJjxDUF-)I3jFANZi@g18Y}{%QB=$A%t(-)@eB!NnyqIwoBXJ*( zcm+MSvM=MIIpmS+MD{HHD$K%xy_a>_WW^*K1w?uD?t#uqmZ-62 zka6V;FZOAnx>FvXagi{eEcF(94kh*!`#EEpv{(U(K^Hwu?f$;D zne2kEecX@vV$f7PMQsqCpowz0jOQM65g4~zDmxF^3nYmnQu^HZVDoPY{YI;fPKrCU z@hWWj%U=ULFFMg+&g@n%G*z21?>xj^B8m*g-(0hkLu z|7h?&nK%b7e+LrUyUcy3(A>)a9Opgow`tFx#B< zahCq%@byn2=PyFqm)hM_%qJTrhIK#$!Zb%LZ({@k!E>&^IeAiDXxtaK*Z;C^s$B4X zY)bJNEv8S)V2IIODENnQGDuEVR@Y&NI~I%ptqa7DaAe3V-4=XObQu7V`u{Dv@gaZi z5THuLUY@w}EsXo{HnUSth=UZx|MG1JpUO*fWu zP|L6?1gk>K7Qnq%{})bM=Z_ns2*9aDbC1jrtj|zNzN*%BRg<}Gx!_XtW5UWET%&6KC$-0R&gZsK8F0D9UE-lb?8nq9uTLNX4A!2jc z9DZe=FE}(i^>uu)WzF4O@SeLbR=a$Ao?|_{miP&qbVJS;7{M$+q=hEc-vPH8_GK>Gz$@%Tkd;_MIRJ5`|NaM#>*lEO3+pMf>~lLNK?M)?e66uj_zy+B+DAS| zi|HHSgd#{5iQUhZ!CR6cE2sy~%Jj^7XgVxs;ITCAwp-1cghQlkA~MQ)i&6Y=EEkz8 zkzC+&KkeJX$2d%NKQx_0UK2Tey-{`htudOIkh~%sBAu@YwmO;C&d3@6pQy$+j^!OrgJuySUl;;}f}ei5BY$ zo#A&d-H%3S*s^d88WIF9wGMIHtaWv+jil*Be&rlQX)u|6cd4RdrFmW}t(af2v|PtU zL6=-2Bh==DB?t}TSr~*9GwQcT{QH1MlZ;>aV&_S`NHZV*nQcN$%1{2PtSy9QHDS;n zSdHWlJJ;P$oa29qC2VGe0H1SNqx{49;R`jMIzB*Wr;Pq+3;r$g{PWO0^+vA+YBwUg z{65cf?Z>TzR#ha(Q5aq${gLKagpA?eEQ6tE4`X#o9SSZtNJR(|5m@Pv%h(X>p7z3Y zx(gwJ7|hvGZk%*EBF|Zl>s4D_SY_BM8_%PzMxk|$f#eYPWK{*ij=hMEFp;)UPY!L6 zDJ-pH{UbgCh@rOgPVbFj6H=TbM~bl8de`6>neWJ;m7mfXl=ayD*JvN=+REC$J^F}R zne(dOr53)Xhd|AXWee`gSimC~z}yFT61Otl3C9kXhea!F@U|uiinUk=pp`+XiO1_3 ze+QJ0tHpUh&=*v)@o8cRyB`^+u1{Jja1_Q5#2Nmygz1~~#26Yk3KZLOjF*;&O~dkmpu<-D}Za!c6y@t-6pd!zV# z_S^kyUv>M^-p4_b6|cJCt6CU}e1UAfJDt#sW%amtoUu*>jHYfiL?bojqd;fBygTMB ztx<|3!RUgVC43%Tg-TOD2N(G3JsdRhF|V~kyZ6)HW~U!Hm!(}o^FYxJ8{|usnTrv|K$x4eiwmD%M&b4|VpS9qx26bd;mw85Eb5U#Um?SDyjFDR@}V zb%ouqaCn{{l3n(&-|pcd^^J=a znhHe`Ua@Q1@vKIYSmRzFHtmh%z{QM8DO>m{hT_jzRADJ4DReRMRF8|u9>DrU$iigV=Kca2HzNLp!Q5H=$c(W2ZFx1e zS|SWDkOxI*uY^tciL)eXC4K2rm49h)T>;#tY$s{0>4}Fs&LcJC9OG>)^F<~Qpax0i zUW@mSd4JmbX#QBgd?b_bM$>9X?Vjj#)-x|t(gBw<1|(fl=5G5-F_yQ$qJhKF0p`8Z zJI!XCWvw+QVNhW?0r{r_i)|2LT)zZHy4nEY&D9dp2V%Xd0Z94w<@~T$<}Wb8|M~|p z{a<`oMyCJf!vgdAF1Dj*A0jxv;DuH0d=KFm4WNZ+qz=78WW^}Zcr+N%z?i(44@V}o zBhe0g1VfIouNv`9<2IIdFhpklCB=mVEU;6tv(k2YfCwWIUeD7?Zb}dCml(QIqlQkH zrKhKExP;rj>5^rn{qplD>>_HU#sMpa!t(M`7vXyu3jtRv6wYVd!PtP}A04idvhq2y zknHsCO#{M}k({zRc6G6~RpNXr%`a)Yn++9gxC12wC+c>rp>)p@pzhzrmaCJbOFiB_ zqco3dZU#e`g&s_CN*IDCU*GtE!P39v4_8BpkN(ZA{AA9!g_@U}XiM1nE9QXr?Rrt3 zy!2H5u@zv>VJbUA3}6u@-Rag#uC_;2Fal`jsoYhwIb#ua--D+P0<`8&0 z)UcGY2R`X$#)ZB>`JRYes&4sv-k{G3%+eB;ZkVZ>Yfk(lemH)G+Lwn_Rrd&_Z3tKl zwgR@h&eR*Yk4uCPY1;A$Ck}XMz!Z&>PvYi}WwlF^`E4+j@EGeebrrSQ{NV|AIYYb> z1-3mfB64b$UNmN`sv|q8YLz`HAnvaiX#QsZoZeuwXfZY;uQWJ*;)Eb;`9U(2NrdKA zX9D07jKmp4M%TSD&OQ`AC*xRJ3*t4P;TrgQy?VYhJ0MTaVH~1mb3jy*Z-BrQ?+96M za)+_&umvfGErEq#L9Z2$y?$m8?_wQ~+atRo#((>%WSEq)m*WPbM=U;CpA5~|dLnGQ zg4If;ABinFElv%z07nOjJd|G`HPex25^L=^V&11DIG7PM1fT>>96A8$>caM-oQsF^ zdQJt?aZK0I)+vvXfk&pN9&G+;sC09?`tneot)gFx18bT@o{CYsPw6B^{0G;7X337> zT(uV#(d}r2(p={dWjCm&9jDtUaCTR?-cnSNIU?KgSj8M8&s-%Q<}Ck>G=XK?+z`Cr z?{(2g!JO5fz1*t2rZ1ye-Fo74lvjVaC=S_d(Ba8zzKnBGPk#lbMa>kT{FaR^5!1$! z4r$!hDNzCNnmdi#VWK7!mGxLZneZ1z0}is*2~dA( zrAym_ctpH(XLHL&0?xTScXPo(hgrgku|c7(ajH~2+azPDU&U?{9B7GmA3 z*+x!NEZBK=w5x6LZ8OAd7gb`jR_OR(w7=)ER$H_xk&zNHq?CM!bLwYrYU2E6C&lem}XZ@ab+rm{FC?60)qqkta(Cy^P?a zNeGW{kX?U|D~nw*PGqu+$oB$h-$9d&GR>+N#wH--LrJ(;i7_N2d2Sb}?ZLI#b9N~Q zkmVe$*)|U@@mt*pI7{pmnhHA4a7HB zn2Z4%hq1bh=lablW_fz>=S0jXh)T*ZV6%N>BIPBZ5?Us}9Q@ssayVkRmPKqfu~~DZ zz3yZftBt*8%c?JLA#dEo$L+Lfgo$4GH4k*LYPjcvpU&`0!IqOZ zlxj(){S)ytGbTxbdsi8neRhJ3&)f~5Ouvxf6o5(jFdmxDGcFtv6iH}rOO^*MDLyl8 zf;9E2>9i*c(Q2NJyOB`JG#c0xL@Ia;;*@;0z&$?NdnWl4>j8>5cMJG*;|{}650M@F zVcu`G5n{@{9zFQ>jzkH5bRlGrcpJ6Up*hXAQ%T|}T2->+21q}iymP1VBT5~K4F%9o z5}ij_S^~c+>F3*zig|wf9MeoGG5Chj8AdvRH#YWB?$l^?3B5k1162M?gEPL(B#qV? zBcE!@;yzX=iu*wb-^VZ2jigNEr`?q;Z5sgeq*XLOu=atwzr>C1DZa)T>F2F!ga-P4 zZWbeqI~iRsG}d@v4jnb=N|)N^7&xLw^d< zvz{$ks}!|i3an!7@O;v9+1u2bf8o8%CE^Fp98q~n6$92^v{aJ0WsbT*e>{}Hu2IGY z0!%B=*Eq(nEsv>A+~Z_=3q==Q#+v|;PF!T*!sPze&-$u3XJGlB2C^ReIqy#Cautn9}H(JT97-Jm@%P~L(YG@>(_OA;6()#182m49-qQ{OYk?SQrjV;;56jD}*=>9c`blWOqG|_Y26F z-;;C|RUaS+vj#D`gM2O0rpro7fHo{`0UTI8h3Bj9y9vcaU`aRWm!cg8`^C-9$y?CC z+~7IjEP^XQM@nids_8wE%dSJ%5*!8D z4|+s>yN{aCHN#M=xmr!fKK7~~RK8>~a*J!;b#JeP!4s^`^Xc2zxE0B<_(0;2j)-IO zDN5R3Ox!1|szV6Mi|_}XHWSl;e-FERa52&Ak&~~a$utPD3!+?0zG+I2Y`Mz=!>`L| zP`RWh=#GLetSzm;|J~~&^R@4jaePouuxlZo;ue4P1-C`}Z4bAx)of}lEmEg(@Hrbp zeXv+omeZety>|=R6Ay`%Q=voOF{eIPx+md?{f<&Mh~0(&@Eu@Es8piIh06s#(48GP zbEz>dI@&>i;*6z}eJaM{(60z%n zAJ(~5^(#?CWKSzO^%%H3YFfD{j(AJBz@@I&W=JNPg+-pP`&F64Zk}0O7uKwaMjAUk zQXUf|);5(QuL0Pf=5fd|H)A~%02z0y*|#KMfmX;e^w%d-tTSc1oP1}8y?W|}T~eDT z2|S|1H=9YHZP6wLSSwkAPUTBWW5#YIl-B=UECy)O%;3}jh+*yX;kI+o#Wc^Q5Y(`?W(Qa}M;o-Uj5@^= zREC$$YIEMkFQI`_O|sy{bujLO&2+Xj2Fjt`l#m7rP(`j z(xA=7@ih9_;mHXC60b3|%08jZbV2hl4$Tl)24P?HQ8#g-hrCmHf=q85Bat#lVx)E( z{|6>7XmLzuC8};Do7=N3?Kv*RX9xy~bi@9(ybZL(<3JNBhBg9z5LdO)oC~}MS#)2~ z=BND(;;2G|P794DY|y+ho>1s}yyg@LpcKO(VtbQBOevi?F94Co=T+r;cBFx!Z!pW9 z)yK+o_|GN0mpCOkg}cwfF`C{D!g+rxeB5RcM$F=`>$m&2TZ3pcV@sg9U_FaCt3|Nc zTPcM(qSU1rKmv7wwdE5q*7{hacRTeO)TFbA<96r0@kH>E*miqnaj&97d5D3y0YxuL zy2*iKl^0XdQ@t+U1f#ke1sC-5 zA1)xRerYf_QE^{2H{XN2=n5@PJOvHCyq*PZMU%)XP6# zEp|6l!z%SX4a*0hFV$R|awQ9$dL#wEL?x8#oX(JQia#SNaC~=8c z+t0n0=(0B}!u`?PlP+`7kB85Hq-sD$j67cB0mO6)5oNktmOq4lbNL!X)qnV}x*aq2 zp*xn&OS0RO;MbpU+^cEGl*n<^bu)H=<=Sqp99GX&wfI@C!#KkSyX##@1*ijK%SBgM zqLY%>(`CHBSc$QamD*&2!XBHX!9WDGHPx^D3%4&4Cw+5@RVtu{AP&#OFMFW-o3@{*#5(o+o~a^4DO0pGbMI&=*!zK)=>M}7Epe_(-on9e>;fc|U}^uK%^=*|aqP=avOd4rJr)rv(Y z(!Fm#JNcjQ;{T8T%fZ3G$LH+gWNK&&3)O)n0V&v)qG&o}Fe~*8T}ZZyg6X#U*1ZUZ z8I{Y_U6kwNv|>!RYI%7rO2DKRi56HPHN{1v?r~Rd#j7V*zmdZyIE|_MKULh7J zYqxB8q>uW;RX<;_preczVT2yRCbyv3ECehh@j(wqU68G4lmtkZ6*dB2PQ3_T1GUDx znhb92=n*}`2_lhgBY|{At1lSqo2Q_Z_}#SJ!}^0kh%mwx5(k6YwL+k~PmfbfJsm zA#eLn|6QgEoHAH*G_MgV*j+q(=RAUrc{`z|pB(+`y{{Vsj6W711F<&55g@ln{O47q z>vKPU?b~TyA_bC)`s6ZBau&0v)Fo%M#n2X(G@))6?6I+-2Uwdrb~EDDQ)~@`rT2Z^ z>4HxwzH7^%RM8B@rod`ZK~rB)S~L#{iMb_k=pYc$$5~aTY*&Wq&YgfZUk+St8g%GJ ziZ(QVb7G6f+H9_ z6_%BhUkkLY-}_Kn(duB-vW0Bv9=1xP{EgFta+^mo{UPD6dL00KJX>2GKV)G)AG-EU z;Rmh)PUytgK+q}kCN)Wl`*~|Y-@Bz`rW$B8ABNZf9%bwr>e*#jtT2xP1^VV-XOeR$ zd}Ab6Gz!eR`iAaM?sxB0HM@XK7FTc{E1FArUpdT(wtc`i47!7&% zI}x!LB@h_2Tn-bFaz7L{gmI}aUPdi2rw%9TWj{3u_8NemFD6IPyFS`1f4`~nc}eRE zhKyLrjiP#uNo5_(`3!|h+yoy4lvH8&JjzBfr=4cbF`SYD7kD6Jptva^o0k%~}&T%VRre?tWT=+;-os`CrnkrpL z^RE;Y)otOU(i6bSByP=tX_)k|<+G&$p+N~3n5~sy7)1&pZ49eLl7b4-e;k)%|3Nr} z8Z^DyJpiZOwiuuviH}}rLA+kkH{sIKU#k*z-`?eT9xEZ0`jU+%#vwXp6a91>nAN_Z z`o?E2HdilnlS1It?dzeyo(*C~`z?7?th#bpKeGQC^3d#OWC*-)dJHA^3oCHCJ9OUc zq0s&TTdWc_T)8}#<62C3hOD`^la^84_Et6eF)2_5{XCaBvRgRnA@>N_^#n`Qf^VDB zglfxu%AJ&=>*rQ92_8ktys);}Ui5xj!gnp6i?%M?njovnvCw>0C)we_g&kQA9vGI! zofmOa3Nm_@{jh?^ChKowQ6`30rf@)gN9FtgZ2E*=X zEAldcqkhsCY@^{c{w<`-)lY@RWf0%-ws3)u#NnpJ8KuF|qUudJE#hVD{v1j(N?)g+ z{yW=%yMoHmRY_elj$C}n``!I!&ssn$C(f|xn+N2lsrQ%g<9g6tEHdm4A_3-4kCHu3D zDF_vdGZMrqT`;vgjdk%4;Viuvz+Ing`Q|vqvh;%;U9LXD}K@H zi9y@JIhPT&$~Oaz8o~fU;sZw{0ye(#NQ+YicTBuo60?_C5>R)Q#f7h_3`wG(`x}h{ z#!sA9fYi!mc$K|vj!7pefCq&z=*7{0ZgWG9y!a zeZB~EI6)rQ<~)+d?MAla|3>>&(Z`poMW*@ON8zU3x#>*7^jQylv1A$35`gHJ$-hSHnB6 zX}L2Wo)#cMqc0_tSM`l|=J!s2Lt*-7vc?A5q|-8L)r$*~ar3YR3BeqFi;?J#xO_PM z0=Z68;7UpRimWRGbD#2j5WNgLfm=F63U%Cz;d!mwPGa7IXYOH|g`xCNm;2fVAXcZJ zlaC!*r>IbqkUwS&pv_U?ucI)?{F_bC8PgxnxP2q&)#o>9*4xtq=(Gh|=n^eZuKCD} zm9j+FT2EyFt`Jx45S-*cIuH2RBdc;`(+_u2L|UEJ)lU`QEr9@?yJ{&;HB#>fB^&8! zGl%a?nEYex`l0>+6_8T+-muPWGuRWW8KpMea&T}MXQwO>z~`pn&}hAIENpn%KT{*A z8p6S%RT*FGY_7g-u>FUzbLtKSO1f>56Wg|J+sTP-+qP}nwr$(CZQJ?I+wD6>KlGp2 zqiWY$bAq5`;#arGc4zuJpI6SgNr zdCSVYL*3l8uqvsxTp9D$d`gzIY!;w${B_&~XJ3e|TQZG|1ya)mJ*V*Ndq{Ms6qOV8 z7g*Crf_fn7m&*s_OXRsFWN~oDI(=bi)(3w+f+>-xo951q@LDejiu?B$Du5y$iN8r|x74Zq& z->4ZX!;*qrgt!Q`5RRw<15n`>SJZ#saP~ z6fOd0mZeUX-?moddcgvna)~*+a@75R=}_&G<(<0<5g#Y#ZM_pRYiwv!Fa#j376B0yl-w1GJ!N zj6KVVkPI7Tt}@omw}np2!L^LWH?#R!rP<3_-GTFuc$6(qHY-biZ}|dVHsWO?Mct=> zWKu~0M2DWL!)EIzU0Y}bP_Fl%^dKf_FetBV&^oex35Uip1Rn)v$)UE%q>{3}01ULG zVQoG?G+&n|VZ=PaKv=4JfKyh1!{F_+fQdn>s~C~0e}|`WZ20`9wOjlIFs3^*yD5P~ zU!y{h+Aik~vjNe%XyHzSukpG?`d2(0XVGPzPh`zcASpf0eI3Q{|2l{NZ@gsY|Gd-H zEh?)_EQ<&OjMnfHx&5fWaTB=o*f{VS5kuX2*p)S!umo=kTQkuUdyhn-o!FEP>|{e; z<~OLFpOJ+jCW!ghImRoS&5hs025WTld8RP$1wZnlv?mw08~#YT?QIq0sy#hLDy9?I zZUjysZ9(_bJY1?{R-(@>Qp9#!6k#>++Y4mnqg)7*i3S+cT(-2Mr7sR=O!;_VmAHxT&N|OKs1eeMv zmC_L&(MPbSq>B(FmqzfJ6F3runOJT8Ewb{TEuq@`cE zUW@rGj<)}=VjPzk;+pWtL=+@>fjMwfC3*co101qrM#*IDWqZeCgTZ^9cbuL`(Q&z+ zPjIGT=o%7I-iX5Z4@{Gl<;<3CSMJ4qR&hLHjFuij@_9@TOWg3IzUeTIK9re2S)>T! zUN@Mcu#-J=H{d%(LlLe68IZRC(&8Dhrt>JHv1+5DFH3F)9_9DjT31+SQK(J1?!x2o zkNF4aHZbv-03XgP7~DZyZSM6Bi+*^!RW))&r~#7>(*-+9jJ8qofm1k?$72Z{hXnUM zi(Jdm3Sg1XpeH6NqQ$7Bk@evsk7L>rLtXx6gdkPHn1b#j(cT}0lW{Wx`{l!`DK|{ z@xtV&q$t201rM1;8R^zh=Uch=E`!g+Yo?HLKzKTqG@4H>5Ws;RX>W z8)bT!NmJ4R;u1Zhb_;f9z2>7SghYWAw!}1n%I6f}-MiUWg+gvO&X(YW_?Z5*?S^Bi zBj`B-rg4f&JlWwPQcC@~ZgE48PiMA+x9T1+FbfhKAy5R)(iLoC08+0Ato`MGuKZ$) zHuzk(#9>|ArU#NeOoIH)qwnKBd-dRW1hsUGl_>5*M(O-ZuYsWR5k22 z4F%F8uxH;?+3?#{MbwUxm_CD7H!%1@-9vm)Sy~ADnA+N@!D|mH&2nqyeqcWz1)WsF z?7?I3sPA@TF+evueum#p>U7S7KL5jInj*#=d8DbH@h`HjlyXmYJ6me5Ku+8;S-NBj z8-ikdqANb1Js5gTjh;x?E*T0+OWKPK0__4sRZ+-lyQ!F5e+oLF$kc({6^NGB)OnzR z10)dsA;P0)-}$XW=*ITnwo8XCl2M$W!R}}6xW&H4m#-Dem(<*sd{Yn^a%rCsjXETy zNAhD8ut7N(M^j{0lJLVnz1eN3)V1f zp~F}motyRC^0Plj+68uyx&1j*k%*?XEX|Yj3#&`rGVdJztuDh*DXu@Pm*!i1@N`la z_&m2x*1L=-UKK^q4af0IOG;r%wsz~9ZeOdg5He}XGV=SDd59=NKEIh)<{E_2$Xb)oz#Sd*Eo3EFz*i`Uc7{WQpr8QaM(qo8vCjclCpF`3vn z;^EM|w}1v6hmMLSk!|ptT%${@rYNgS#MA|(V8g`D$<6`%~hd!9;u5W z>dDBPT{Ih}iu72Wq2lQsJqG~Foe&rxt>|?nEda~y(bT|%?rs2KN!@#faV;*JL+7i} zsFOCV@1pl)kshZU=b#eBi-FkZYSj{k)K_5`)aYpCyFvsvOO%6(Ev_mN-d9F`X z0`3D33h;`)Hz-yDZcy=ia)=J7;5c4asx3mX_w6L=)wQWPQ|BY0V)0~`Lp*&qLJ{9Z zrV18;!VRo6(?7iTog5+=Ih*#PHvTP{P-)|PgD{M4drvL~HKA&<=MQ4oE^$X+2zLsyJ?#=}714fAvm|#E$^}2i1A|)=I_)TtU zkEU#IO(Gv&lO#rG(ov((>9*Wlj03zSi%#v|KwtL}7CQ&|6>`E2hq7W4i8>!ITlW!P zYs?kfvN#VJ_s~>mTuB#SgPtKx+>A7E%vBf^BWz(pQKm>I36*z7^i;^4?ZABIUWyOO zNtccTe;xPkEoomroW<-c!WLvnZr|4caW9{k*ROd0Y9JfU`vwTGU?CtsFKPr|l|O_9 zyjRa8(%!a^zU1Gvx}XSvFI{8Cf#T6dbq?ywK)6-=x4hw>}%|lT0johp>X`lNEu% z!8H^?0D3$zG;@0O)u)fplqHj9vWrn>X}flL=u`e`%!-Vio5~WBqg+Xmububi}|Rei8D&5CkZnQv_?G_z>bGJ%(q^ zY064BaM~^?(2ylPAMzo)7-O&#;T?PnPg!p}PHoxhq+SO(G_O2x_GId*PN&~a+47UUZ^qm-McCxF z3kNlY`xSd2CJ(<|c*oz#vG4aZWFz#&FquHJ@5w!8HIy;jz|-RJP_OLwn@NAl%FuUA z&;#v_=f+G|Qn_gVbScu3y0)eBSYR~K(i#Z4NnXtv((uuPavX#^ZP0) z<)g`yt>LP-@*1a%2*@zhnvBSsr&Se~3=nVe>u=6pvkN)nP{AyU9<&bFAV z-5u6&eoL@@{cON0&GquxY1Wjl!K`@!(aS8Uf<%$1w&JkO1VGd5pMrS_VRiZwZ$1)W zW8C{D4Ue-DjaguLLs!_B&H8P%+mD{d{oZa-J%qxE7YInsSuK*!1t_d~qNVmKLb#fV zx{?khBPJJeTrz{J(sdovNBxaKyP^}D>bCdwX()O@fT~ik8L>|Uq6#n?9ltZu;SmN2 zBY;N8uCR?#tM34}(-g#d6G+1&Ech|wh_|mY@~xZp^_D0zFISkNAl|7ZV|smykJJp+ zukVVbf9PiJS&}OKrQ$IhlG~CSvsBtn(G*ma+Z!5dLh}wK?G={Do_4;Y9Q6^+8OE_V za0?7QGj_4zI-&^TNSK3rN7jveK2S&b_XjDHJ0^wn90Es}vP|Qi6-F>7`&1mKN!y>C zCc(UZU27<`rh1v-E`!~Xz9bDL2dn*BvIxxGVb*cYey#(vf(%NxoL2ZOIaP1WfbuvQ%e@=+kWT`7?H4To0|_6(7vz5GqbLYhx8h+h%571 zskWS{oI)8^I|!Jg9{Hk+)@N>_dAuQXsa zWm^3sYGw7;Q|`2!uOo$doqQY-bZb}CB$$;*iLbH?`tMq!FkTHd zO`sZjgr=KJylPrZgfio*y8D?7!nk2~Q;y8%9~NVsM)@66hqs^}W^~7Pvvq;+O8}&y zXp;Ttm=Mw{5%mCZ?mktMbXxm88voL29qT`?ncpDmUmk6YDPoh47E-3MTky#Cd-k?| zIdVRp1PxW%MBMEIgWaq3Oiw}VyqLPPxG^MmPp801rJ=d?PuE|BJK`FZdvSM56T(K{ z(E#fmuMu$c!Ic%jpj_V7bjXqDSjp~o3+H|o&=<`OO57P^Vo!u;Avu+ z=NZIkDepBLyZji_0Urb9r4A(k0_5$KZZD-kI@2U0hw20BiXhkg&|b>dz9y_7oyAO%giWm)lK6h&Q>5VS3N`VV z&#xhoa)Ki;d22e6h7mNr1-g~#mw~;`4bSwpWWAhTk&EUsuE9iVkNP!0%HNJ12-J_6 zMu-G0yR}%RGJchkXoVWLh&yYaG7AFuJp}7ac!sAjkP*ILgFhY8!51;~#_Z6MJ z{$8M*kAVp5=aOp8wDqHZf=}*1E;BQ{3$k%G>RQJGMLG)Q9WH%BogO0a5+>U4M6DMs zJAwt;m}D9MDTOQcW|B6jK|Z8Ul2JqCA?zb~bgC&BBJ0_H_SIIc_B}ge%DBNmP<~9N zynb)}1w75k-p~^4W`RTdoM?v2>Z7H~P@TXZsH(7YtNIWCGZ7@JkE@wT9`v+>-m?K6 zDHu+9djH6U1!8i8kR*#T6K(LMpYVGV+OZfjzG8$KmZmjLX8JI(sJYfU~} zt!Ju7%NB-s?JTD8GESBauVhu+;ZgOzM39H&QwRE&z(!9blJ92kXA$!E*QHtWC?jtsm1fI+nLnhE^0uKvBS=cdu8-JSAXDQL&cJ%)W=A$h zuJ4jS&iCHwgMU@qeNNgUkVC!7-W)5ZKB4g=aGqZnc<4m4ysY=_fpqB!Cp98c&`Qrw zHcbS9xkUHC*_Msa4UQUqC#?ZE?oU;5h)M-d;=`Wq1}^DX@6+#o4om7mYw^m9F8=_y z1hgsa_63hs6VPOBJPh?I{ZeuHuO*&$XBon)F$uSDH9CS4t@uOym#kF}J!6}!bLry``E z2^%~ZGivqs9;5qgyzX^gzJ3(=uf4HI6Dk-A5ghqcAoJH&6S~Bvn?$}MEaxb)of4I0 z@w{Bu{)&MrYQ_RumOArC#tFOmXAx=k*21L-@GN=0y~V0ehYwTo$wmZ|^}0*lrH(9O zf4UI9Q(pHTAd?G8+J$HS`eu6O`E=$9_% zDqy_Wo=kHi4&}6j`tXCG-8_Zx1kG=4p+4lW1!S<@B-?K`Mifav{0ndPUD=ViI&nH% zhq3<^{VN2-R_}h4fY(m&xaSzYc+{=8(Zn>#_S=I$1SNF#WKd3f4^9prkU%N^LW~tC z9K`=lm=dvRnnY{{9PPUVfxN$seJm`du7zgBXFBo|i^q-T(K3qX24?v=bS|_k5y$u8 ziNN=JW@yEP*v3lwhTH&N>Qo;WM$lY)8fsv--|P`Z@6@&xZ< zt4meZ_K1x;Km{7p&Q-C1f-VzUV~DA#3aJFG9WZUy5Wj2?l4aoIkv+ zO?@dIqz*P)qK~wWBRF!oP`8~cax*}9&lx|bXF{O5 z$l|B32I;gTzzSs{Pmsq2WI`W6wI#EFX#YIeBN4{=T7~-A7E?_HYA&f{1Mk8Rx<&4$VUBO zT0dt*1U|F@q24LO#^0c~ZRSPvMSmyX-dYF-Wr_gDvdzr; z;d0UR^Dji0)PTQFkyIxCV$9ScAN}bgSwQ1zKB_^EU1QmSz+IcA)V;F?uZ|K46qkw_ zp#dCRLA`k=TFiG%l(p@!=%Gr6$GzI1U*;~JZi=~P=>E4lbo47XH#sW3`CC!xSP+z_IKZ0?ru7>M>kQVGK6z{(@H*9LIYTEM4$0d^mJdQn*nFPVRt8G%% zoKMswYm@33^Y-s<)dN1Eg1I-sG}dhqd$v(~^Aa542zP)(kgh0)PVo}WsD0)DeLHiT zIS~vfB{o~Pz$tvXTJt+bWyoHD7Jt{osRT(4!Bek;$|mOX`krhjT6Lut>7F>2*x)Wa zKjN(f0@t6Av^#g?x(>nf0ZVA?=HU@&JXAO@x<-WreT>|AGnR8$XoKcr2>+uN`atMe zLj`z$H`Zd3|JS|mf8u2`va$b%X9e)SAbKjWTh41TmJ(dL8T<3Wx@eVc^g>&Fz8OP( zxS>Q6GAywW7{*5}7?g}o*~A?>TjJelg5vfoR7 z!q61HfO1YD5m*RhRrlat>~cL4QE|@POhj;9|>VxFY3~ zz<4|*ONr!UyxVlmP8>d$QG);_`e{N#Fr2&NoQTCX2D30KaGKWC_D-?nd!Nc%e2jVP zoefbY{gd-ItECQQ4$(%=RE}{n)lGCmmSoeN$_;d-$v4?clGwgSKYpuP#)!yAhB+uA^%o9bzYC3ggZms%fpJ`> z{l)5{+VB0FO;~hvUzV2$ta~d*cVHYJFZU)oHApNeRwtzVPisDg);C8{-;`gji>%MG zy*eseV*9_xxI9*T7isAYabK3FLw3l8XFl?s$OdZ?1|5T*IDtjTdQeSPhWO)9i- z-KAcE_VY{m(i!QHhRz^UPj6o9#jtZQU5N~fki{hx&x~z1d~6miJ7#a!zqFF789CKD z$5__uye|b2JwZlbc)E)D&RL~$01jq1{QdY0ap<&!HkB;Lfgo_DRITf+jXulKi~}`F zJh_L1ggrse8ATsuvG=S7H&ELO3?O9OyBo_TZUh%=7x+_~7 zSw%=j=2G|JZ%h8uxt6-1epQM>5z{FlnPdA{`efS-KWN!Q7 zP2oNN*(O(Z+IDt(HpDowJ|iK*Mnkok;o67C*YO)A|NHZ+!e(qW<|eVF-{E*8dad|H zE$<6RABO0C`<;JoK93{q+(u|novA|{irnkxYrE|g>9VNHTt0ykg!BzrWkncMziZta z58VKCE|A;XPP*-t`r|zpM0k!_9k@q&imS~F*&|fM}S%wP-JOaJ;{JR{H39U7{3IMUj0y*0zt<%l*49>G6 zo=L%P6A(^+r!kJl?QYbbfzd)IB_79jA^Uc(kdAcSmDT0DPCsX5Y!)x1y4syq`4QEivI z_yqqoec-SYoG0P0ADihba$s33b@CY$S7C{WW> zSN@cG7SwYo{kfWH0{9UGE9^NNK+7v?r&jK2T4S)ozXUm)pq7@Tw1t}_~g&#RSmR@u+~!)FI+ce2h!wc3+N6o6R#v#t0vX1;b&v zo3sOGJfq~TX7m^#4t2J;r-p%0s^(lRrAi;DMG)weTC9U|6{oWRFO+p@#m&fTy0h?A z0>6)_P`Ao|c|{gKIBLi3ug?j7!li+4C#-HR49w>pp;(TA@>m69?^dBgZQkteTbpsC zk^uFs3e=E?jlWD%$^M} ziECcLz;qG-CUR)b)Z6!%4&78!ABn?w%Aqavj58bW!7a$A~GFaKgm+X!K0Zwv8Qs1chtIm6*NYe)p9>T22N71V zY(L13jhcAxKynC_K@UOVu(c~3-!qZ1%QO4e39_Lz+lM-t1jMTl?-O;55(B7#(1)iHBsbsobLc>y>?Vv>; z3bA+jT{v9NKu+~i(~4{r>fyD^mxh+M_YR34jcy-2v%{w)=6u)My6= zLKH89%F)UD?ueYsZ9F#F%Jw^vwbC`4ISJ2y)gcRTYu^^{Q4FAknj(r`iZIRv6!3g$ zxtvlIDw~o8HA5|AUId{y?Cy%P7T8yA?;P*c9{F_VXT}TRD(M?zxVK>p+?3uTjk`Ql z(g6RtLTs`JiL+*TW_9H1ubKYZ;;3>gD>q!(6O<{SC`oNY&$a>z$EW~;%wt2+H3$7C zfvPv(!DYVea0x#@U7ySS6Dz-oJjVUOx4yWLo-4=)ma~xd{O$!rJLaHg^OaS}XDsBV zrAuM;47hIw{!s{IBXrFS$G~*hf+pziKEA6!txi?e9TQWeEueiq#G&M*m8_aM{`~|Dkgx zPHt#`2h$Z|aAUdb+!!Mo;rEDX57Y&102}t4>LgKh;fMCl+1K4U*0s*DsY8z#nQ^X=n=5d$WTzT>~nEDOS5v#?tMd>;8Ej)y85a*jG8 z$vpSuqxtPMVs@P(vUpD{Xu=$4Ni9RFfwwjIzjhL|c&d`)%=dXsgwt~odCCebY&wU| zPfE$qesu>T%boTpu6!ls(pjn&cr{@wgtIiwkX5v|?gmjg#%o;WnVHaELx|Ki8{-zP z0lw&vV*Dn^KcHc>AJCMnvhNa1g?Jl7onr_E$Pzv|e~?A9vo71Dn@|6-`I65rAF@;# z3o9^XQsSZ0pcYBt%r=yL&OM9;9eQIk7hT!ZB0syzOf1|R8Rp$5`%2f;+@FJ}356zX zuyv$T8MRKmwYv5&*SD_ip~;oYLx-%hnIl8;z_9T(OZGiFTE$n0y3i>q%l%tV1@Mj-NX zZkjs(j$+qmEry$jl4HW=ih#6U&FcNsUxTRKs)xL$8{r-?b|{Hx>2K}4n!9`|dZowx z*E#ur;^{Ndv#|cZeEGj%mKhNYnl^tS_XG4NgYa=Pm(}v!s4Z6y@x0yTS|nr&{Az@e(!?79*@ z%oCUO6f`oOz3R6My?ln>9$QAJ5wy)|!XFGAjqIvUN7}V8y5K zou_RW-7*Wke-y7^OZ2qV)69?j?g4@Z4onFUptGE>ih^(bvcV&`~fu3 zIZsjeTGw3ghDIjzkL%%2blJ@;q^W@+N+~Gv8m8oz6mM{oZBe`|;!$pUtpNJ2Q6P0l zegly-i?XQ;6!Crv*3O2du;Ha^cbF0yU|qLnr;d6FgBE^G(&v2 zkSqzvont@ZEiFzYcL;;xWSWuMLcnjL=FEyw$UxS6v)R>F3nX+n2SGnb*^Q(-*OHE{3wtmzxZ`qgEld9*xln>sxtraJ?6}GA!jp-5kvAS_bB(Ir zEegiL+O+ytH_dz|l*JcC(1F8iw{vWoNpZMp4`dLW(M$!=mi;ZsM9nYr_m%j76=`ic>!t4oZut7JQdUb*m}no_%P;Aj)j#fO=9n;N0D$ zuX|G(q&;(|&wk*1Ukk%>D;{13_czbjso56kl{Ds69vMsHsM zUYHp!(LWuF%Ln^lL$cB>6S?nPGumKf3AKn|PD_+-c7OeH9|XPfe!RZiO6gw@ZW?z@*Si58N9PfN517|D;~fif_9Q@hz|@&4 z6R*Q_XpDdPjM}YiXrxu!%hiogEgj(ad#vwzsG~gJ@^(#AY{hANx?usDZF^)q3^bRBJYbg#<%b6wOmUHGF4lu=+~W z2f5esaNTzPQs%j1oAgdJU2iEwWY62*D%Xal#_!6c&@B4lDRGNt!d5VoC0cQ_UgH*P0i6WTp`;sy_vcgC@|H5$0;Rc|mGR_5 z#p!L0<>U^cVGD=|EZe(C3f!CB4otKtRrL~AHh6s( zBx-Nsf#?{V{LkQZ439C0 zSYiucFK5!DP4mbw$Dbn?!H-R5rl4@fkvct=c%FFZiBNtoT7h2shomjDy0h`~kG#Pz zZH3kknc_Bm1xKoxdChijxn0x61^PCvia(|(?JYts1}M7Sc5&6HPz_HV>FK0zC!^KF zaIGauzO@hUPy_2RJJ&zB1>Ij(4u6Wz=5VI0r_`kBx+XK_+_ z(Zp6FWd)K-A0Z+&i|k8Nuk_1TVtk|f$&B?TfhdP`zC??AB5E*TSy~g@{%mq%=oJ3W zx>{ZiLv>a6vpy`qZviyJnJ)Gg|SJPBDa9?QIOJHx~}_O1lMHC7%~VK?TBwA z7?#7iOM-2hF~VRZs4GYDaLuEB)=l6NLV@yyxx+BTvr%RR56=1!=G}4aRm=T+qf5#m zug9%aXBx)D`OxpAmjN?e1`|La4~_|?iE@)m2yZj0RZ4#^NAO;N==C1fl;~oVX&N-J z)e`gQ0AFQ-b&;=C*OxE($^H^0aU@QmuN3ZHeN7`ZDvMX^f96s52vhyWY>f;)5e=;2 zD+!ItEvhEccxgd0FymENEhC_I>kSx4F-)OeRFR}nzQ)!-c{rv}yxDa)N~|Dhq@#Jk zi9gW0^CY*$7?|$XSaD#*9yz`9pSg}k=9>BI{-(OO!?Uo&=bXe)T<^{@K-`d<^FHDw zBghtk5uo;f5W^!+0{jas_Jja^Z_<}IbDa9p$U;k>azLMfG*FG5WxV}PYh{F&>hHdK zw!86Kt%9#cZwU{0F`udpwwXDTry!kQM7ORihj!E9LR}a~d-PfG;t)C&?l|9WHO+&D5(}n<0akHQED7Vjg%~NEGvH9fCrF*th0P!a@0WWz(e{5)F z5t_+Rb`TJlw?0-lLd4!u6tv6jsIsFGknshJlghTcvqVr|;r_v?c84KE@mR;573ZBN zAAc^c)(QRAawc)cZp|N8J96sXDX>Qk}jwiwgd5d0xX=v;g%weWi8V84ky;@JEDyc<>)Unm8Xx zed#J9I;xlQK%!#j)$7qi&Qn^yT_!imRNXZFtmkEZi$FWJX72z*(J-9-U2?uY===Jc z_w_G{kjUk*Co8NgfR>;9XxeNndslXm7x&p^MJQ@2Tw;+#^#dddgwF_T@+h5 zL2eG`!`Et#Rs64P$>rxGY*1!*%5H$kX2PwP%h%|d<-8Qa)rt2g=nrkWqrGA z;4tql)k9+jT@9L&dh{Z-7`(MaWt{t)DA?lfDyAl;wP|Qsq&@Tt*oyl2Tg$U7X!2|S zY5k%B&%Ld)NDp-N-j2JKq5?EnN9F?z#9aO)vqTW~L>`T=A+Raxde0S=-I?E+^Zs$JyhaGj#r?Yr>?jruou z%?BxhoO7;vp6v2WZ=?7N%^110(FA0v(I?n-76XxjbvgR`eZ`&8u&%aq*x`x6L4eSv6 zPqs7(F|3Qqx88zQMj$mDMNmKHKC_tfz&IttC`bKKuoya4H;E@Fz#UESY%fqGHW!g<=1$te=_N+)aVpp4y`?s0k^&% zDwS~BGD6f9VH>=;I~gCK4dq8b-m_U@@8rQ2ENM}V{H-_6{N`(o>(4|p^DWQ!gW=%F zuDO38HelC`yTqD7O^2u;E&aNCm*U)O5e;TYJ(?7CmTI%O*&8_}fB|@baC6MBSuR~7 zge8(fkRDE;R35uq8lYnE*ebl_G}JQEDKqD@t!Pg2PeY+60E9x1Bn*v8nmjU{-^=}G zW1qc1^qAzpL0|S_$njI+3R?ChiAcO`aSGt5!L`r>%zW`sM2zG7IxedLJ5VOF#;@@4ygW1r;l@_24Qz6XLmsM#JByqxAI|WLv}GMNUHxWiJ>~=DAVkC%7#lFU?&X}t2qQ; zw>;oTa#PX9J$B}_G$beaG=&+>4-0 zj@vRJ{8N(&i0QLtM(z+XUS2CaC$rk&O{7y;$(0**TW@`Yn-|T{Y1;E47HW76fcrt8 z&vFba>m&N%N1zNg60N2^$S6wf{&!TWJ^GJ2LA)-09mG|w4nKvTpw-jkKVyv1Rd_`(<00@ z&nko-OI~9bS)Ok0Gd7l9UCbVnTzF|PBIrcc7W9?dQ8^_=WY^X3bHXtLNUH_*!05*| z#&T^N{$N2OvUEp3+d?&cw4 zr&ep!b-^i=)*jxBzdph!a<`aeauG^&fC0u&Np(94&Yr$F0-3IkxV->6iRLIpzeS(K z(~o--(qX9UavbafO2)XWo$o@=V|PWth;%&Vo9+AL;G(78`tPy!i#B_2V}FnbzA{Ml zqPMz}xXv1&fR2RhL~s+RIO7Wu(Lf4Gc^!)5nDA3a*}%t;DNZ>w?yhvB!+j1^#7|7M zawJSW%HIk&a{uOueBK+fwLI@zQ|)9!bD?)V#O*SRd_u8TUxmZ-)-n*+93XfA3LbH} z*|LSnKY9rB5{PM6m9~v}D}CccojM%HU*ST)fRLku{dJ3C?ATu#TmV9gw4g{!R<201;MZWx0?q?7&uTddro=)EdZ)uh~6ga0iE!urT zJp5<-ZOyRrvE6-mhm3HEUgDn%+4AJjV77jJDotrew#=ws@%orbc^_nz6DXgJk~5!3 z5=C=r8bjkUNH$~2u+^O!;-srj*a`9}cmJ~&NfT-lmaIG*3UxSg?Nz$IMU9Wa;m|~T zf+j122S+r+g8vLmuBK@HW>`|b_{w=*Agq1hohq&1wYdkLb@;8~U_%w$DJ+Q3s(YVk zy{YMQ&7f$LlT>Y$fI_YyXQ4@yozB;S8EPuTm5&ctl%GuRlQk%l$UloYEd`OhMk!&6 zxNa+?^==VRyT=9lnPGE^RJ05J2=x|VOu7w6cbtDd&P6cm^V&gHh%|tC49YQ|uD5Kj zVny7CKXDIOsaFgzH9b-&pX0Mp>lwr%v3{&YW-2oYx8V)Rb~WydqL=M)7KZ35c3n4h zb}Z(j>80$}VJw@Q_vYs_%)Wdzb(q+%3g>B_X3M1yPeADov*2GJn+I1wD}B@$4$n@S0yEoT#EvlEmMC zACaw|2{nu?WkoX>k2TD&68BQf->9Wre5x-Dus*2JLhjxuMfXOsEg+afkg>RX$%rq! zJb~;WOPbV-GjXgoz8+8{yd1J8V zVqshhzJ&dN#@}-kP+C3hn**GowGKjN!Et&%>eOy~r(YmfFj_9PJ0i$`vnc(x5#iHZ zoAi*q3R%=|CC>9bwL2liYf`cl=aJ)2J42VQ;WL{{CIZqNxRj-my)BZ zBp<22&?{0=y_Kqy3(z-cg#@aflt_QFk_n zp`ClOJY3U@{FB$R7h7Q}lLj+9yZqh;KO)N zd2my^rcK|ik#zo!zX_VtOog%xq*9$r5*F*|n5ei99p1f3REF$1JAQQQ)%5jPrj$w; zg4lF47ZVvuqhY9_8I~eKl=IMhw^IFX2}E9R*fhiD#j=$qAqnVzq}8nOc+=b`ta(R zJ~Yb;#w0=z9N=6CGED<#s3TmDA4MOKZp`=YVzp%jYs`v@(ywXPXfvyw1BfkD+sy*q zv_H6yktBp$UVKUsV{M`co1B4^?p{|Og0I%eeVp>nya59d%@C!ipwk2B&$DY9MpYA-!#;2j~VFVe8-cnkPbo$?L{ zPbl{g-o3oFS^1HvxI76oXETrY3nVufC4FmHZ|o|F!7zL7?EsAj@NmXLw3*qFfip_k zSqjB9vOKLHxTSe<#V7_;?nx%9?g7wTu_+2-qUX&2fj zOG4@g@CT^^%9|frN+HQq$FDQ^dM0LZQ?1Rf;Tl7Pl$~+Y3Wi=o&9q|JgBMr2Pv)cA zkVtVYdb(UrX%F$pSHYk}U8H1I><=^$E~oK#Mx6O2wjC(ZvO@fLvo(r6>d)vd;d|%LQd`|9rI>9~==#v!bO4>>9Dps-~Yl>92{lOcDfC%e%`5-Q|i zzX7DvbpR7@pwr~f=tq8s%G9Ck2OcZ6+z8mjT3&6w_fb?RMQbxS?p1dk;rGB=Q+F4{ z-L3|GuPn4upS-l&7B6mT8BX-oC@J{OMRc{zWl~lJ=S1?ibsiur4+pFz?1)Vj zHio&#RFsPRvO5ZdWObV*9BH^cU=Uk4rl=wFV_0C0l{}+O1dRJ1Ghf=$zEUn8SeIkD zflc=f80!FE03aEnJ|+tB9#gE2n(I!QX!Hl`ND3#afaC; zdow}EG5W@MvRQ|Gh~zhqf`KM%)}h{$kH)T?UOH!g_aAMarhs_E4i{m|xX<4)F8D^E zW^lacX~Y6{5?i+CAVe^Bg9@v=v~nO-|9=TbkQY|#ZZM0X*0D;yz$rL>Va|qK zzL={8nxLHhhBh6ptPoF65f%YSjdO|VGkD0UooKy~ar>~`D>x$A@nw>ElnL#`P{3#CXg7sagqSk*<$2vQw4M(ok@- zikUSx65kU)?=Y_(k-PAd`72GA0uXC$Rt};?1gVbSjLnlaj8>WE1IHD1R8~ROZ`1d1zJ$N1Xc549BF-Myss+WD5C(BHVy2XTZuDOgAp# zjhQQ|6k1#y!R9C!3$Daqy_!fL-iunZ2sRYL*SaF&@Rvx?8J(h8fmjs7t8K#@8ZO#^ zYTh?e_Nsb+E%y`ou5eiL4R!yZ)-ps;_EgP#UgH_R+Z%)$rB0;b+bW~-YNpnRIrUt# zPG=Vz@4{igVK+whWH=jd(jRVBZ)!<&%n?{t!*|BiX3ZkK!_QZDGMro9RO8T$;k5pU_?4$!HUkbk!n zPV_V-C(l<#!&XU3;#}c3jZpj{O>k*>bpDeb8K|AQ6C#JKL#{Ym3bcG~$y#5-r9bpnMJH z&6jm{4)Wr7xf1-01se-~oOjU&1cfbHS)aJjkF0siHp5%@xQXS;krgu=X#%@UrBV(= z9a&Q`_shi0FziYaim9F;K0?kZI5cruQKN$^)!qq%&n8ntdwlwp-igx9;*9aBJdk_Q z>!3Na45TWIBlN9F2VVUuVUfkjkUyeq)H4}R2UFfMSxoss113!OB6W9qymD|Ari$DF z&Ow+OP|+3px$xJO{Y{AD8{ZR(GouCflylA~^P{#|Ch$%(d6x;kaEge6@4KB-j8~qG z6*D-;HpjL7zs+n!t63hOdb6?Im8G$|RPVTAf%zs*o5Wa5U?=%_=>{X>@afj5)Ca8a zfYwtw%<`%-^VWduFgcij{A_pa=EiA)F7I#CY~6j~ZN8`HbLltap3b0E^{eF<^*O3X zzk|20=R2{WuK=Frzo*x$eIp?MeLoi*#QQiG^dZr02-+dwv|{j9MFLlR=RF1KGk=Ng z3L)5zZn+US`m?fxqNbKHYMBiF;1q`mFhgh;DXdw!!O+fD2U&)s;eJzyGEN|NLJWwB$4d7E6^TE6djfiEVy>MISr7u+j%bg!-gy{s0ORdS23?cI`DXZh$u}!Y z9@MAJ+KbIb-(%t3ZI)kro`zW59l73j|8a8taN$XxxfO8r3l*Y4xC=Hdv(jjy!h$ni z-bz7{YKaM1Ib2g4jn9b1G7i=jR4hmYI<-btxGH)cT6wd{$*ILm!QI{*^Y3qeS9yN( zy$`fkNt@7HFm;r~b^KPb;*Z~r%;nUtnC)5|L@N^Cl~en(ECzv8ggXyKHahGT2UlZG zur3cAEJm9VkOW)x3epifHI77*k&*=plH*7lODKTedey2Ulw|=bxz?=}z+?Iv{B)wG zbZ{uR7p*yc>#!`Medf4-X$=2u@7Q=Y>Raiv!T!yC04HawSeb_(Ac{=lBm8-_xDQpU zR~;24c^Pw7OOY~{mu5p}V*w2&NKZI#GWPS+30miLcRgN%aJ>%* z|2;=m(RW-aZyi35cW%+$hl_=UZQGxNH()GilN)`o*zy<@*AMK4<3c(DSeRwL`zo3l z?lXT~UT8Jy3_kUmru57QmZQC+!^v{@i6z995an)RE_xkhQIo0d65u#+Kpt=RKMP%t z!zGH&BT2MEA)}sZJ0^Dml?fYX+aXvFVX^7KtTe_hVyaxv%sS-aoJOgJ@FJVrD^&WB zPJtffgr-p_@&m{TozAJ6vFYkh=}8Q&banFpxgkBXE&iD^vDkmvP#{x2mkg1}ZsTdpBi+O}p37M-tkD%_*nO|UzkvMr{yxqb zI$3R96yr`s7Id10o0jh^F5V&P-lID1m+%_++&|U^%`rCivi-ga2@Xh$-bz3pN;^o> z0gQer+8FmKB*=1-`;S((+&xzM`GwxC?xk3a6LAL}#`~iBD9+2FKt&nl3}3q^=*g6G zvmiWr`NG)WEt<9yZF+wl$+y28xRWA|6rgSwl(=O zjVU3f=|^E3%*vBml!TQ18=5!GLA$Y*)i+>0oY!J05c{Vu=h0;^D~elwfcctHp8(l< z_wJ*Am3OAAT|tO{W2Y|kBVGRPz6=jg-wC~z)G3qL;P`%lcFrdgK!Hpx@G@S)1HB_1 z?=m9qLkYcYa`uox9|7cLapH6r;&^Sw7}n%lA`idihyttrNkZZzZ+>NhfR@;vi6d}) z)%L8)iBkMa;UK~4W($~4ga+%Iik})BjM7L1^1In?Q<x$CGV4Jv6=z7Kbhgem?`!Vg;TPW9oaI8x{}EzitWFtNB_ZsZ%SRT5*+~ta}8f%-RA-n z$H+hOlhiuQ$a+=|?nOG(g51zFP8KNU`58QccVLJ(tEJluV~K!jvqqAxcQ^dw*z^J? ztwH53D4Td+rG#r8zzKf3V{&+I!H z)l9mJDr%k%>jJRTXYIC!zPQ9qlbGrRF<=Eo_6N?HzOw%EYsecO{ND})Y=NAUMA<_- z=+~?41S#y0H=ODS_urSS;IV0%>b_DTJfkx!kx1&C80FBO;WVc_=-x;{+lIEOX@Z_6*(3Sg<6JdR!A;+HcUu^@_yFCjRz(M$1!#$5-ott#d%69~&v7 zAUBy7In?xw-?!~bYdB#qbid(@WSp@i%|F!hTUoR!F~j0}ndk)XxbC5<-%Wsjst=AK z65EoLceDw(^sZ>Jk$aGWReVc~A1VxEqlJK!;E*VCGOLCpf{F^&WA{VHZ@3~2d#BwC zvm6Setu74Xw4-sLIb5`j9+C|@VOjlqtRpyk=b(xBZ&hWZFc%V>4F5bV6|#n=BXq7d zaJ5EZ`HxnF7~EF&CCYpG3V}1Q5nFlG5m9NQGpxouZ7jpVF7S!JVo(-lpaB7!)L zG^uK&1gPqy|8{!%R?MKUrfy%QFkcRPL|_0eC36n?kk2pP`Mcp<+%R<<2+o3Uh<>vB z;~haeW?diLoi~EYxRutQ(THx(X8(8De8z=)dMs_E`@sf@ng75D~_CU5FseT{p)zp*H;poGuO^f`JEJ452gZ zlFflMmws%l;I|eJZhPYI7Gbtm)-I}f@O?WBhI+rS^V6px5GuM_TVP9fDZ#Y@Rm(xS zkNwa1?L>23DYp3O>+doq;JO%VWMFt7{L-)39xAgtCzQ3E`A6RG$HV7FPj#o1PuoK9 zg`Sug0jj>%&sg~axZMwi7)JV?p@|Ve#gXin=9#0qnyL7}lI3*7J)<)c9M$SLVJA>A z3(AXsrAay_w-A1U(Nw==VnZjyr9F+R&Z3!k>|pNT-+x@t-_F>?IaGmQcG_OTT7{`IO)%`-3`5ls_H^yXw2Vnc!%_Zo!fUh|5` zqk}1jrnRwbl81T^UfL$STIRk}@Ie$oQU}lp$>J#{sKD1u?CuTTgQCg%0i9U)P+Rd{ z9k0$+A%kdT^=t`Z|5D$+FQ_}nsTp&^YUOktHr19DuiEUyVa0y_a&+}sur8pSDt&Km zCBYU?=2NMQXadR)f8IhGkf(X}s20S&kyacoR&cKysW}|hoCRV4(3+#kGiBB;w>agNW+r$c}i=1f!) zR_T=kUGnD~yb`Z}<3+N9i*o>*xuLm3CCI$>#!Pg|*1+6@V-GVu9;K-{Cnr>Iw8|BS z+~B_SLw%gm7HE+iy};qVlv7FP?{`yTKv7xL=Wmvg=DlHrsT7PsLG`EeKPnatD;l6; z##`D9`P2y-U(hf*FIYaNl-_Y-yD)RWUSpNwqc%e4sG=~3jDeS8eLoHLCDHWa8ccEq z2XSj-QVn+-1`U%&s#rA{K$H6gbeeDYZ>ZXw&G&}kY|#ZGLhZUhotCZrEe96&Fv26? zs}pt|TpWk}8jB@F-=V^w(5S_+PC(mS(DDBm*gH-Ea0EZ9Dja`r z?jWpWOyri4QKVU&MP#;l%*AlXs{;S}?mZ}`O}#Hm^b45QG}m*2l9E43uxUR%@;ou& zcL`Iyd`Ql1{5t+?kL?C<3bmMg@E?sDtb~It?agd$9^R;J9M+1L5Jt8VA@W!oQAnkc zCiH{!J87Q|RJsX8BnS>|G~lq#P_v)^1TAgII78Nh3E8+d#r=8J8zM5DR1eT6cs_v) zCCHAJ*96T9P>zez`q4OI1N| ztiPt)(zA2ufJENh>8Q~E`?nLwiiOUE9=T}3bN36g<0*LA*WOsXBcT9<4$TUA{7tNG zzTT{6q=$7@+BlY^Ib3o~%012A2)Zy7k3hO^k(73h_7O&QSc+~7Nz>I-h@AJv;$d$- z4JFqEfVjc|LRYJP$<%lzNptQm|BAG!jQRjB?6^>oZD>6%hthaB?AFI%&PNiIi-pro z#GIVr+Aq8023~=9j~l-cDcH+4y+d9`Jw+_+O}_11-#d|*QL(G7Yp8_|7_1j zkuUc}srX?Zy5C445B8-wwH;%M4I_2A$?Zu3CJ!;Rguy0hT*@d+{m_f$oQqj5RLKumts zV7s`4-AWg(h4-qY6*ejjc!T6&egE}cXC`1Eus5=T<>8?hv$SzBb)pxuF?2B%F*UX~ zF{PI=wKI3IAYfu(_>Vgf8;Yb^`Qzd|VtGp=<{5@}P+$K>WWF@}y@KYHNq}PPwtQqA z=gH0_i4nMD+K+9jmL6JQ20B74AB2*99an~?) z!PRb2t%yVs=B!=hyU_Mafc+;VayQf6(@UI|sks5fb%EILqUDpubki?2mmH3kSuJ&% zk*O@f`UT8`G^z=JrXmo@K(=2%8EkCj`$!+5G%=`Xb<@_M1&>Y2viFuXMfufZFRIqh zH}-kd;gC-YOoN>h_Dzf@iv;5YBjMc1rQC>zx8^z(D?6$tGSZ6Kj19C}**^W;7&$oF z=;+$5?2r3i4@qH9`zG2BPX8~pqHvu(?&8hi+@1;@CjoeSZrUn}psg^sFsDQj^hx5; zR`l80t}dYj4CT9F;F(A`{^cNhV3WAHcM#+~>=@xb%vUJ`xIoxAs{lWx`%2Gf-@x1z zZVu;=D#@VxkVM1$ULF*(Vg%KH0cRySngO1&pvA4UHa;~e@@V7MU`>OprwKzJ?_nZj zX+mYZJT6l4kGzyM;iMO9BT|c=Q^)3P{#$<=br#ZF9)O$q9ongy9B+zrw z#y=!WJv)L=!*l#dIjO&sY!r`1|MsYh25D#b!p!qMz{N&b^;UXjkN5k4I9Ppzft1e$ za&eCEx;m&pn~0`j+Qo;SYqs;Nk&Um^EI*L-O=K^+Z%k_J%$u7PPFWPRCu4A3odCIc z&p$)z6Eb^6qXM`QMq~LFVn{4HT&(|wHIDb9O5Q33q>XkWw%!IH?h{cM!aoi|dV^xO z1|WkgzWJq?d4LoOS}Dg6<=|btBoN%i?u17Neo2xb^?G3LKwJxWK8BqAoLw~ML9sCt zsF8m!jZ9-0aIrKY?y3D{25~=?zkYQhDXn9?(>1BCxiA5G>v^ALz|^^`2=;Ti0;J(x zvPw1X5LwIe#m-wPJWCd0juf?PF%d&%_=abs@(?U7b7Y*^Mik3eHlDzNwAN}Q@n?Wr zUlHVnNlMgW_9)9ucbHTQ3S*K@rb9}#hwTY4uL7>eNpy;=Sm+)a*A#|Y3>=kM}4eW6OD?xT(SJ{>1Si_2AF=wz13*^@R1^;b76#6SS z2B&*d1=gH@%ZQN`i3>)#uZl>+w?Od=q*4w^;F+mccY0}Ph7mZ_MbW;xmQ2{u$4Pl$ zlJv5C>AEEPOHv!o8vsw9pWnRcpH}vqFhe4Zh(W633kCZ}YT@c2%Bx zY4~gGpvuq=wskxzyx8HtJjBk+#7NO`OS0y38LX9hdNuZgsxEOiKww#KiXM1jxLXEN z5X|DpJvS7iUfdSla$NS8ITfG6Be*!z1l0E6D>SZ;o@DJWgcQI86Rt7f*K@68g@7lU zou==qg?Rrab-ae~nun`~j4~E_iPT<`+JhmkiwYMgikyKVSr+R!I{&sy&7+jrMsGjf zp0q;;ntQPcjGtFVlVUL%AW^PF310Yx8p=vJN~*thKzhq%;9u8D;Jc9H5z4Twjc$0s z9;galz44qac1;*N+L%E~r=Pfgb)gBL623hfFrJ*{1~~rFKQ(UgUyWR&ZmTLBZO!C| zIjjbHK)fgJ7!W944qa-uhNkzwCdS%mA{;>n3ke?S^o7u9j&flkI@@zUdOe$~ zXNP~XFL#jWc&8|rAR@%To|fiJMasAkG71|GhvB+rB{jK;RC`7!+ORYoO;sga^={wi z@&dc{u8h;5;_EsgW9}~T*=~9R1Jj%hZzpm!f+!^h6n~QlKua`@jCN{Ygx+8|kEp6q zyD92A-5eD@35Sg{J-=9;reon~y**F>Y`J;C}cea&cheqTD)!x=!yI}#7}QvR-S-m?XO-Uc!scg< zihzU3pv`5F1w)_q_R5cZU(Hy}XEx=NI|kBmNH27;1@(LX#5hKTFMm?CI5k>+C{e_x zGqEd6=+973Rv}g;c+&8M$w)FRtfAb~dfdjJFy0#B*MIC0njEzuFf|fF`Td-erV-}? z1L5%()sSfJ373XV;x8w;nExsN>Za`PBXG< zO$A?Ln)al`7fRj1PeGve4V2q-;Z+wriL-1+GKpJ6wY_)8{z$%xviq;P;D6%>F|hr| z4vLH=%d(2XfzU4|kMO|63Q!c^8L|%iS?*D?B63R50Z|=L$>Zd7_D{?w&y@!>+a+H8 zi>Lg*s)}G2C=1-I*Tok&#}24>OR6tgWYZU>qkJ<+4TT#O0%-|(7K*{TdggFOJz>U%3*kZ=JF z#H@4pg6^Uj1YKtji!>Nm@C$MG=X|sjgB~MA zn1P8MI!HRo&`qOQw$?;kh43zeU{KARN5OTLsBc?td}WEvpH);Gtr`lLooapL>9WLEP{=G08uz5hp!BV5GY*k(?rj;@{nZu%!pKB3 zhpmiNtsAwU80oE2n&m;pz_EKWs%OEGxsQ0ua_hm3>zk(Ht$!JgthUOzM9b($tA()d zP{wv-XhIXNW22Xmn?!2x^;w=MnR^yNjoy^U*0=(3dqLIYLlv`BddB7$?S#%Tx*Ta# z8w|#R64eVCBh|UuDM5qgrb0Jdog5N0NXa6?w%qZi9`j)6kDgZmDP}m#nU}{bnV1DS ziKL6olU%-9ae0QWBA-0qZNe9ZH$vsBq@c`1-LgC~(HC{$d4KFa0w*7yR^d{kFLM_j zSs$!tu71@KiWW9D8!K0YI3R>A(L8Gh>@j7dUzLhn`SI%V&<#O{xVGTYo(K=qL{6#T zhx&)jo>6LB#*d^53}EwnR!yfqiVGp`C1^ghxA?656XdGZDThHff5eODUqQY`l!dQ1T=DD^}V^ zc;6WlSy;r-{XL>9y6>00`v=Bd;lna)RffBzmHky;gdd+etyULiW$B72?3IOmx=viH zT}noht!Zwg*sPncE)P}iOG2zMZMmk^S?!kk1Zl`t<)b1(l5TjLn}KIo0EX&KOPSl= zBbrO@QTUL!TKs}YO30&u7Ly09Pw-FLwk&o(_{!AK(|s&>!gBnKy&@QltP7@nc^dI; zrhfA=q8U;)S7O$$tTj9Myv7(3T?5tlq;Vr zdtZp%gPa=-O&FWmlAp)CM5(;D+eU#p%?i+5$Yu-?PLHisVP~6Aa_@D>#Dc8JpZ+)i z+hl0psuS!t{+|-kMb*6XRmWKsEpff9_Z~5DyRGYmj0nG_-sk@*HSSXcNh1e ztOR*4eq&Ydh=csxZkmGRZUn<;>oy zFF!OZ$dstv-v;;k>Fs_eW!>s|1&v-7&9%+4CPjI%7E)cBNg5=;(1JKF&<|Z(Z4CdO z23*BK4%CXUP^e_fKFKUKJ_5{Q%`dIlc_rvk0E3-2)mS}I;7;WCpCuAcpe!II ziWeJ`yR3n0PZd++--b1{wnzM|5I9d%?n{Zmo7jdWj~XdCH?7n`C)@9Niv_nl7Nw%b z(V1mB&>{F-D$(Y#GvtjZ5S_Jxoum`A9;~{R+h$WswFnViT^3Rx*<0F&weBAiWuLFF zM6P^hDG#90G|gkiD^d)TVH*E5@n@;Q-m^)PMGvr}v*OA5CVGdEv_}Bc+38t#5B(KE z&f=vy2+ekeXP!2OiY{A(d1)G;-ksAl8CL@fwx2FZaLcPHf2{@-8FLWDE)aue#!Y30&g!p;a<4 z1B1s_WFnDuVo;ONjS&p96{!Mu-9VOV{}BL8p5kk6C*k79&#b3O1`GluMpLb zN3QKQx8GJIVKmsWBpxj=@&HzCB|A5WR~WZDX!4to&nG08d{}OU1CM~ez5gI~PC@)W ziI70dM8rMldOX)U0@?1qXO2sVbUCVe&RYu745>XWhBT&3su`Ia#`mwK5~RGfS@yYk z=FGg-Ne-5U<$C$zq-{#~Y#_~aRQr;uKor%P8KW4m;w|sV@#k2AT}xI)SvJ|G4`p%t z{3Djzd;xE~zJZy{IIqLz#=b`|%E$UcL-{Kb%5r&->gU@Rg{1b%E#2zi#ZNU?G|3u9 z=56(Bu#yWTSmg~YEc(z{%ht*0so|o!k-rLA1Gkjaw7w%f!uC0MGxnC5 z+GsDUixfg>;JLR|oVX4GkNQa?wyuV~_X6$Bq5ScP1;&&LYjs0M?1xGJrr+aB=&}2H#amRKzC= zNt2X<964WgCmcwaY#u~tWxF;^`vZ%H`^+?{o|oI+_7?358P(>Q8Blh0;{NSqUapJ-IB&nMELwjfX?8Fj?qNrE*~K08Y|oSZ42fw( z>F15PuT~e(k|-Isq;j=%+Poa)Ar+=#m7HDthL@31!#Ih4HZ0M%F`=#Tz5KZjJNP&} zX&k|H)O-cEBi!19hfq1Z9%Nb>oIR^N`$z@=c!;oc*Hta&igJjv+YmPAhC_FQ+pH90 z(sDSir*$+~k5Jtq?v=>9DhI#14;{=nFjP{aeN%J6lqc8(6851g|7T!UdYLmF$S~A) zI+&`1-MD^B(#w}99J{xTX=jHxgW%~A9S}86y4HMr-d3_b@xb#Z;Uu_ZFKRF|KK9-v zbZ?6b>=`T7OyCgs4o?>$?siOo8_v{L zr;n^C$BQMH0%3n8g^@qBW_|u7xT;K>0PK$K6?kQ}R{yiY)$^x{drqSQuj}?`TKy1F z4nRoFxREcta=>Z1B+?x`)ZPu)qGH$qJd5*bfqLS)LqX*lT@5$NNM-p}TCJN)0|SR) z_vZEhZ|TPhc;XZw;;s;-?5(yB1QlNNTpuzX!tPVEwmmaU5&8@VHlE{oMYy;816!0DB0^a1bya!ezB!aH4n5O+*m|D zsdfgoL@}+#HFdA>CvTgi@fJshS~CY`!|1^0DCZt21G2N1*}iL66CdOg6|6GpBi&k~?$iXW zqJ31ZJjDsIKZkji{^hxibQp>8>G1dC8BZWV8#U<~)FRe!6KdTHu_ z^9GFw-U6<{(!I9YyWlR8?N;6HA$ZfqJuL@_ZG}^E3Hr=|E(VCAz6fCP(`Tun<&0;7 zMEzMhaA43#J}^iVNNyhM-2NdZUh=W2Z9Y(wpKxunPz4$o8~zr#89v+2hdO8&GV>N( zxIc}WEacth!g}?{Hr4dz?pA!(AyFUDM>Kt53=xNSoOV zIgB*1!itBdGuTP9dKV$%czl8c{xfHp4pZ+y)@YP?kNLCagn9V%hZ9Mz*5Q%wug^@Mk_H zCgtbl4W$}m>)#Y3&Z>PbgBk{pM<~hVvg}z-UB0Y>_(VrwY}E^uHyP|jw~8JYP+Sts ztCMk3H&y=LWb~fAjO!rOXw<`3?4XV(iYT##=&*b>%`)D$4Cp9N%G)c&iS}BG*Ta|a zm&u+y)#%JUlG8)43+TbHSQ!)2&%kV)VG8+WvIMO~qk+1~i*M$4L4!hGRskHzfD4$& zH)>d{f=(2u@LrLBsN?!NSjjQXuP&pU;BD{e&snrPrTkf{o;zCluf2D+|A{BU$il(# ze>q~w-EI+9)HNv@jR09Gg?=FB!byRli2f)~QoXR9tXH>3h{FNM=em+Kc1$mBec8A*Jzn z5ESeK&cJWcm5?ryhif~hc%O>cpGnXduPN@^&0Kuisw9ZGwRVygHd|35MBQIV)AOkh z^u+e4hPKgj2!n~e0oY>Tq@c?2777ub54>UEMJQ9F_~QglN(_2cv60b~H@<>kS3b*c z;0HofY+PzA`y>0#%=}zp2y!i%)xQF0Eq<0feaT(uvFh|IW&J=uQ$O5OVM7SvNL154cPF%N{8;^f ziQQB1{16nPpo{w+_4J(+b@Uc((tB3L`$6xw$Z@IMEMry@<*T^BZj4z+!cZv5loyO>e%uN>_^h zXT!<|Amy_r_(zFAY&p?cfPd zuYNnpKsU#W65C83$Sc+7879_Yu3V3bNHqKX4iVn0BapE&Ptg`OiiJXdVG<6pQ%P5Z z%bnOi)oZOn5VDJsnZ2*gB*sjIx##g%mL6w~wif&n6#`HjB4;t}c(DebN9S^V7aN44@C9#QrF2Dm2_ zKV3&Uu@%A0JD2!fiDOBR3!NYE)4^D zex|S8GnU}u`x8U2R9>5)#e&sb#>*@ZTx5kUN0?s`29Vqi)2f_LT$@8EYx^7Aoe8;$ ziwb9cvp-7VE&?}T*nc0{xtZ!9%~PCuXW~Wupa+sqVm8cbmC&9#kA z`{y8WH3_)k=qh~QXHf5@G7}H5sj|F>;sXF5107k(>=DFK|*VNu zDZFxvG8IwWD0e2Gawpa`(o&S{+hSbf75Lar@)xH-$XNbMe4$yE2S}?YqUh;o)j>HH zo6KGI=k$^ljNqB&73K3(jllY{wxi5ykSi%?ze*zrs7ma+V@5w`MH&cIu!>d-^VeB* zdr%@vX#0vJl%3?Jq_9aZlnnGJ=`W}0Ld@#mScQTTEEsVvinIE2n^YMw<0QWhvRBj^ z3Bt5XDm_HkS~q4{(-$f)XX!?x3N{hSNjK*lNuk|UoCcB?G5EM449-v|iFy2qE#~q5 z=ScR+bvED$Hd^sL@8xS4fDqYnhzH)idSgIU4NJ;bJ8>gd%j+2c)UpFs!T6qa>)`m; zH{@dm2aJx_pH0&EruYU#ss+dN>4(X6PJu6bT>Ek~J(3xdQjq`@idaX%)PC;GNw`J| zZMy|y?3gu~4^mG|(TZK5_7cv~(VgqY(eh9ikr~#GO3&jWesg3hH<#9tjcxyZXSrX( z_A8n7y%=w!Nr^l%<=jI7@f73)CwUW`oyK_tJO3ptrG}wz`JeHgWU(s#)F2?C?EJfD zt7^eQaT5K1M_XWQ@N6v<*8buIm7@CRA*R&1$wV@F$!UNi-y)=ZzA&7b=f5zyF`Dqc z^Aup>6NyS|8bX`33=FT;#q#li@B*7%9OwfWS9hYEu}L7TKOcjH#pN<+IR|+6&g!0R zNz}Xy+C@c#=@{I~VpS0b;pIjKV*xx9P>EW@Im@bmxWU>JJ%w3up)wEDfPqBK#!rmS z2IqJ3F$Rd3N?{5`S&*osF<96f2|UlyqxOvw?c>MJwn4gK>-TuaBd{Ye@}BiJ9o-fY zx9^=IW@nGO+owI(iC@2T7=_?Qfr*@6q}ofJ^taL^X9Ycgh30i*?ckmpnszog7ovRW z?;Os36mO3Sih6}B*lpeqUvJi=@O`gB2t@gUh~bf3s|yF+CLBg3wJB7kcW2mAdF~MD zBRh`j3;sOm_S9J8Bxyd$F0%AMc7(Hqtcy}mW6iH_I)rPEDvSa*XCpcFkM9ws4rwm5 z;d7^B8kqKEB~)TEt0;ofLN2l+uN@l2XOFX7ly{=DR+anbX8dr}gc2ted~ozBcLTtZ z*&MJ7gf}NvgwDEE%!w!#zXAJHbv9m_7)C`32V@8xEbK80Kx>k&)h`{x&~245RrS!t942l)(cO;jJoNh~pPZWM z@Yg$6Uj#HNT{6n==oV3;GMy-NEDjV(2Dn05<410in{%8>Ucs3dMZZaIH;IhW-bu*Vtd9~y#XXfnMlYp&5};JQ8mZ7W>ZPL7M+ zh(8zqZB_DeP^YnGn*J#t$x9pk!&v^z*l-2j6@3_B2I4YWApaBK0Mz{|HFMapIoCH& zIi>dqfklM!eY5njlz5xYx^OYR6B+%x)|ilzvHq*C>91X8X}yC3Z5%;jF{UEkNVRZw zDOJTkrPk^`VBN86ijy;Np!ETym=NjRPfAR;GL;B z(FF!9lmD}o2K5gwiFG;kECKIRpoj-q#X9x0NDU)I`FWy{LWv8Pi9$mQCzqPzOK*N* zgeDE2RuuHy>LU0>C@qN1p#`r8WDV*A)<*8mgulPXh>;C4(&}ayX%yRa+Yioz9BTw! z2B7xAgCYfoto^EOb>^JYJ1@zf6#fwyuly;#1n4xMH04!r3x5){V~{Jr9Tqd8rW-Ln z`!2RmkPGWmL<1F^;Gg6Rm=(75#ZpCoNqAo$A!%u0!)gNkj2A8_<8chMv7(0T>jmZ< zeuMaG{lOI2K#9q-@P3C`h&E9T6lc9vq_mUV)Pm1?X?l0o`eJBTYX0chD|Wyo0e$ri zQv-qX)t}ww=WKLD^H7;SZ3yezF`o#uwElWnaPV(-Z|KR~*Xv_#f`Kp=Gy_ly>AWg(k*sVfdn zKWpfT8Q{3PJ(l3~%uvc5p483UNmQVK@=PsM3n0w+ZEsz6kvrni=zF4I8x#*6^Qf+? zT;!Se?7HicyHfk+IkbL`_iR_Oe_P0gMjbYh(Z)_~NLd_rGY+PZLYW7E;@|WKbb!>$ zDH^}Dv-mJ-Wplp`F}a~BE`KE1mF05W2Oq$SX=ULg8M5z2IFs3*%E z4NH6Io*|pMa~`U&;JFZS-1=K&cma4sJ8he4eu_f4sfdCfN%Xb*H?dRc9gcnWP(Gs! z7*3Nz>%wvNfvEz8)Ic5kt~c!4QaHaeHJ0O@Cv?DKi&WM39P25N)zbZVUi{}}#&B3o zU?TLc8q2?NEwVNqxzZ?h>t>m9R^_&XLab{Hz`!gsD#mlm*5lnxdpxxHvip+Nc zP*l^|K@~FNX@4mDFKVVtTn^6;y5C~nNO%PqEH4d1Z6;AsoRp~ls^k8rJ?#HKN7?4; z%#GVO7(#S1)r|L35_fk)0jEqQEj>fHO9jRJyF1DDMXh1wzyI3>d&jL5F|JNOALrvc zTIh7Yq0m3?SsXVtyF(!4$14D{ir@;tpWx7wG)qDBq!5=U$UZ=Jm@VydxIg|ZmY^-H zsdtf=NE)04GCN#z$|K!16yTP*WzVe#@OZ%@rd!>2vGz|z5zpXx>pzYtA~ z=U4<=r?gxt{oF)r@kd7Mym%;xNB zM=?dU)NGkkra>ZwFn5lC;ajjOeatxm>`XDJ#Gzf~93A`%wp+B**-t2^%Hcj+yKr&& z5X(S^^~tM{y4CX{#N|*9350WCnCt3|XTS}Y#|b-2O-v5nBF$mEMY@AMW1jgI7h-Tu zHgrsv+TJ_fUtmx}bRK3xP04`AgMIXmy<}+cO{lU5qI$KE{|+metAW&JfoxMImMu(6 zL!18|xh1GhZK2OrdYqoV80`fjniXf1D<2BNr=ke6H12u3JSWu2%XFNUAKY(P@bF(4 z*=157|Cm+jvbL>1Uxii*(yS5(^ylX5vqx&q6zB!xQ(RwP6C}1{$bVntos-`me;HxR z!ME*3AEAT@L}~+y?Q9NDuG!Z3_oIk|S;|j5I|MUu6}LGU2+PuhWv6V3V;;LI`IV%} zU`FJAIa0Bz*=(A&!7V$6HXh$*Lx{!Wo7vNo#&gV;K8g_k{#+6_2lYF>!)m<93 zQzM0pMM2^+j(~h7m55)Y5_1)Ywa36akH3jLb=k~FSwIX}<{cTmO&20eK}aWdTsQ4< z!pjh4sop>8MNIAskrHG|GAJ+mxD-s7xLp!A2BX>z#+KLZvq!C(}v+4-pplZ$MwFoafF)JVOZ(n<{*;@bi>I#-4vhXxMXa$87{dh?j7+CXQMej(1D!Ex$t!G z97&8UidI{9E!Z5mY!|x=EfgWHW8-VZye>%B)aN9Dx)h)YeEox^mw;SjpN?O$qWlGR z(E3QEE6HRdM#!I^`#fzq>72?8+_?0r5ZU)!=RSdbuG7~Nqkj#uJ_Hhh4 zAdc0&=qR7Q|HFK=PR9cCgahEPx2TQ+kX0%UbTwp94A=#!Lp$yVcvC5o4DG{qNaaer z6?2C`H>aIp_u1&g*^yOm)*nXxi8i0TX4$Gh%rUskes+R5?!+E}qZ7X$!lWQFpFbdGVLK|?`Q3shnDPHSd;h}Ma}fSiV|}wQ>s|Jqoy^?^1QZn#NMSl zUBx8L>x|+kIrHN(n%WZLm4F0Nh#&0|{4$5v&2yWT0QI8v8WrT96f84Y!ZJEpW*U7= zdLk|Si2;ve+*FI+&+kxx)jziM@-RQEH2pfTvW}}e1~X#whw7In=JL(S4il?b#lem46 zn)&XKc0U&o61WttNZFh_)Oa)yvf=O+%b9r)po;LOtnY~gHl0ld;AY*U`!u{p>Ll+8 zSc4dz!XCvQVi8!Pak=7&G$Q>E@9z-D8D1#`>QODbM87N+Dk70SkUBi8> z%SK5SiBIy&xjO{A(NqqRWQ?pA&27mSM=hA`A8vOKi%DNX*MhpNm@+FDAJ2;6SKl0g zSUa1f5cVNezJPUT6jSY~fg1#Ga!2oPjMT9~@jqM^y81B?dI`$|#%Mrj6_VS8qYJf) z6U~rTm-K3`Q-U8Zr}|<{z+n9!Y#zc{k)Jj@5WM%vDBgi!$5GOu6SzkdpG@X*;?sXF zOk=%2kwUEjZKzrv+5To>S0wZLWQ#=P_IEd$m_@MnAen;-ZL5pkQ2WjBtgiACwF{wP z53L7Q4`}W{0Q=h_uMtH5lULnsb6W!K!~U=^(ZW1+!n@mtE0X_+@W5{mtOUvOH`?nQ)jZ=XsF)Ak16^r8wc$}HQ_|yZv=41j!Ov-< z`Z-17T{@{dB24Vf`d_(#?f>H4GO+yj-sC~$^=NgEYM=eI+U@j{R#4Vic4v?KiEQN9 z9oC3;P341|nRi`oyd{Z)X?BE_@?Rb>YM49qo7y<$=?G+$@-$lRGi>lDM?SaEtwmUcPN@g9@lXk0s@GFk5jI??S?zO}6{>v}|Jb*VZg~p+Jq#@1PGZ(}< zm5xNB3yK7K6=QB40VV}H z`fYSf!$04?B``Oz@Hd9(fEWRPmUr}-KiKNUYy=^S><#kqgtZNmdO!?;q~D*ICF>tQ zNS^E&m7i=aZ{K*gZQk0o+?4usiR61G`AU~>>wS*;xqS$5e`Nye)KVO$)xGEJIpu9% zlS?!M>m(##P|M;>6xMH=J*46AMA3LzU7opqFBt5q2&+J>SG?|N?A{g`xV8o$%Pu}` zdo8jIfKgRPL!Hc&2DpMnUNIU(?vV4vZ9#X2&)(_?1aMh{6M?PK>o9G;%TQH3CHxe* z{pk|J%{W=^p6{GZsxPJgWPvmvS+RqXCOr!e9}c8D3$pzTWqSx7ZtK#adlsQ>$N?a7 zO|O$5Z)BLEBr)F@31_Iw9Et$jg}n;iUOCaq}U zFCL3(A^<&-*J7BI6|3+8t}+oTIA7XOmT%1Foej!=ABCH^YYaIj38rp>XOGB1ma~wNgNgv$ntMNgf{d6F$4vV36aAB=OQ?s3RAik5YX5mOh&_eF zCSPIwbW7Z2?UzW#C&;bmWg(GP06PGC-&{Ptbxeo>t){40FSIMmM=AZ7!B+zi7PJc? zY2V}vTrp5KGjmWo$;mwyX#PAPYgN?EW1#Uzj`GQ=nx{`hLobl05R3EX$$AVPG^fJo zV`I|=7Eh?7jl9VFT7xe4MoW>K*ThSUI$ud)DZ z7o!W}j(*z)$$oB6#lX;dHE)R6`dxT3&Kyv}n%0SbV7a5`g8~M5k+076H<(iuons9L z9HHc}L_D?V1cSIaG!q5)+p}Jqdfa7qUXf&D2tblMYfkr)b(o`AAedq@=s5#6AzVQV z6s>2&hY<4^_?yXr*=C1~X3eq>I?61k@3G_6gCYUn*n;ccHgXh6l&<#O^hL8B;$myI zK6(#-*$32VBU?7fQ?MrS=k--j;QPG2L(uu@Z@&$`Q4FiSKh&iK#YU25fP`1!J>z&# zWsfVo*^AW2SweZxHpmuN2ar=Q@=%s`@Z0R5;Be`Yvu>_{X+~c~nLuT^Mw%zyzsfU< zvFLEyf>d)?ppjA#l;c%@jSvZM2(<7C)lUuDO+k`X13$JmCRAI%_fn1m`?P>nX2p3= ztl`XqLjQH1`|1dSGu72^fsv~4_sv^bS$NO6Q?L;ygwJBL+Njh*A5L3MQeBhaG1fQX z={Xp0U&$TeSoX!F z?RJU(`HuWwyhcW5j{n-f@37iiCk(Eu%GrGCHB%shu;*+?YJh|iV)qsB!zQIE11HA9 z%nH(jrffL9usEeY!qiKz$h0OwqlrM=rSXiVOPdB;RL3rW_48|k=EhciM)`vX(;Icr z30&(8$}V|xcWk&=XXv9&?wI6(nV+t2K%rn)w;B%>@i5LXoEe7Uc6#Q|E3wW;0xLd* ztyOxqkaVBZLkjtta&eD8dATgR4G_%wm_h67LZdp_(+y{neftCgI!;)Z?`qo%_9;#j zYURU5nj+U}$qI7ASz}r9=l&Yxz#u{Ky$aQMgs6yQ47PFF=+hnzUrK~z5e^cBX2g0y zvJ2`h=5sy#!*by+e^CRW3;oH)dKz#`>abOY^87M2-UqJvN1Q0`(r#CRZK^5V4$$d%h|{Fn zR=f^63s3Gmf6(Mmzswv%M#B@>NloT_t|L1n!v;fwBeq)!n`C{)Oq=yM+>V~zx*J1|T% z^->lgRcEr1?G3}zos2wVe!EN$D7KIs8nSqCLfE^XEW?_4vtdNpHFjNVydY%0XhXnb zioG&(Ch4FYF|B8BHSD71qygMOR%(Ck+0VHRJIy5y@r3RNh`ekHo)V_QiUO`@4zA~K zoPKhZ5naJ28;dgBIAV~!Jz=m5@L1Jr zj(?NicqJx#x5TG*0RXUCLw&z@7Zdw;v!pKaxg~tO)Ez5M=%A}`XOi%P=s<=Z?nXt7 zt$I6a$9gtwU{hM9?uAzsR!11#r-~RAcJtgq#>*y8&Q*yHT!#X{t&T!3=u_-Siqo%x z)_8V%+;(~kOG98R)TA)!ynL>nMs7psW}V|_dGQusyO|0un`Wd0NuW(MV*|*_$fWe1 z@_at@cQO%?c}TiI=+zlfGYze~RL`g67Qke&&5P2nu_(w!@0GLmp%lfxtRtAk1lr46 z8^lkOK3Z-!aUg=qAKISNAmL|0SCCs@Za11eeU1Iqdz6~DJm4r|90MqNsz=}{_`%NM zw0G5+cW&xYLk{Nl@o;sXhIWkq`)mf#I&`Dyc>SRY+ZYXyl8|CYAexMhX7ddF2z;f} zK*Y`^Xer|aXzjtu#>4M^%5`^vjlBt!w&Py~ao9r7im5Cb;a*J?{?Y(iSSHkIPc*52 ziG2%8AV@8`TFsWpvwUf(C0ygJH782qNV)=kVyRCPv7BUPCgihr&HUk_23zE4Xym(v z0&mySU+=h;{Rx-WzlbC_JDRr~$JYxMN&S3gsE7X*tcG|Y{yJX2O!OKO=5_pc6p!27 zWa6sVe$5B9h(hPbuhVVEL{~>uH^O5U$lvaOK_XF|yg1j(5Wb)alVLxy#64<))*d~Q zm|>WO;JS7py{&}Yy7v6~q!pKfw*)_AexZ1!=m<`P%2_Q(cV1zZKG8ITeLG0QQ1{vq zFK5u^fzs9VNl-mtm)uzJqn}?FiI`j;VoguSAWc5>A>f(frk{038 z*W@2?3W6M~-vdC!L@hM~c1D;%JE-JIXG*Qb_@edfZ>_4#;ERUyfY$`P z-r_aP?C<{0-@#fetW8G(%)ILn@w2)!xvshdORFmu`g2AE$TL1H?x`~b_QTnB`!w=D zqZTK??)J6SWt-P${=UFj+=QgcCFZ(_-_GaSHozT1Vd3*DozHI466U{!|EL3SIEQ%# zJgv8nK!_@L)6lN5MJme3XM(+p2O(q|M?43~uv}*#+_F=o!ubylHxy@&kb0%-Q!OaO zLKDsBYf14*s>5H)u`}vgbU*UTt@iFDJ>{@{OPaMMptJg%W!%sN=C4a{?Fxw75hhBsX&Lmq8CT%&CcVi8l?d3QV)=fCnDeXJX?<2lh;O z%IkdMOWs^m%w9!bd=%+Gg!XO2CWfs^I(+dLAdxP?-F$<63K-&W+0Y#G^$v>Fye$t? zR&p7@3e(tfjk}A`z6T5keZJUA+)d=cKT!UV9~IE36pJN?6Iy< z)?w`z9O_-4vr@OHW}uD2R}1h&*2GK;sUFX~$(&tV6Y~i_UJ=zy5N>6pb#)k`NJ8`U zHnuCsF|F|id;6MVG@!>*2+D&q)F-=>8fK~70DKO4B?Kw9JnVP|nql^eO1lz#j;Fti z0lqd{Zi~(2-lVEdxMxO4lUNU{5_!ShUs-2}W{t>$3($J^mbnzaQQH%VvZzkRVdlZL zfUIGu;Ra9oSXb-76fsxHQxBFYO@ysknHKJ;w%+te=8e=R=|*LWE>8`HJll_(=ny5gWWq;RSU{NU6qnm0YL`M|eHxFvgtXVyXpWMsx5HnDV! z&|)j+v06E1sQ!A|y!fG;K<=>0Ov!bmBrc0$9@)Z_LlCUZu)kp&%n)>ypbqI;-+d~b zENF^D1`k@vZnZ&{P!IYCIz^sX@v+3%s8tTL?&xM!w*Z0wQiz;j;QUUC^14|AYYpMc z&K)zFFp^JPMp%KGLFrqc^+m!qNRBm4-3$YMG3e?y5D92dMLSwCOU<@9P%>mSC^HKp zSWXanzEX?kTclAkw1Qk14LGN?FCg~Gwfyt0wo+du z{P8}^4wC=8RDJ9ABYb}(J`M)?c14bL(c&H*1Gx^VR@USdvUjjzslyi%K=cK;eOx?; zS7#HfgK~OOU#sqsbC7=~c~9y-AfuD@AhY@RwWy7W@FfJ`mfk;z4Q7A zq39&S}Vgqk>rEL~B2NPI(XTGiW=#~D-+n}@4t)+h+Y!M|%H=2(t3xqg*Z|ud5 z_^g+|PpjH?=X5rW!GpE}YrUas-TPLaaD5Tr=k~I}?;^=tb>8mQmkB61Yv|UqdaFe7 zg?0ZUwvJCkACBpT8E*C!JFtVP!%_Ela$>sQt?hJZt>Z|XsZOYum8x%mwT5F&ElK4J ztKW0YrT03hRT(a?vtfNV5gAZ*kvmbQTIufxI=cuwpd>vCOioZHYbJ`g*4x@d0E(Tm)e2TBlIe18twO-sCuL6ElTN2P3)E zH8$N*CXSsO)rO($|nQ3WcLx6!=dOQThCn{>ZEP6g~j8NiDeFAX~BjdTIr8 zx)8GmE0eMAybc5dXjy7^nhJzi#XlMT@xiptYD){8z2Axnfp-A*=LbwT2Ux?1%y;vu zf=uXijAcXvniX7*U$P0GooH~_f2q#E!c4ZzQKD(EYw${|*U!6V5mt_Z%J$US^(2bR zh#pykc^}AiFili^ssX&9&Evxz2Z{G=q;W% z^UmYB!wd~K&JP|(Yvrl>f$oK^ow>Jt2KLgxvwBaLqxxcs9n+w~qrA{viD~~hhiy}Z z++VNE$5~}TfU4FXEc9uw!{>mZT6YGjPD0bve%DRU;smKk{WP^5aj0~OW*)ON*}#Db zuXAy$w58eGvuaYdj^`1^yJoR;x+D~aOW$;?gg_JMzQ0h$x>w(*U(<<9iujrLrb<~2 z2wQEXlW;O+;w4fzC{^gRG;gB+M|zbtiBYk;zDbRNuq}7d@;rr7%lYC7ZlboBKa`E0 zB&Vh!&ASCoDRk&Zvt)zC;?_|c_##?>yZuHL-WOV?`AA4MUi`c0 z)=1lIF8p*vjd@}Scw!0eE#gMqPr>Tp)CId5C4qEm)PM!KAxI0=3k;~Wk-ehHm=};P z`mRpj;kY2^3T*(&XiLyhi&nf|o5^IQ3R0r zJ3-ZZfe=MK(C?Bzqr2tohCepF1;-C+)LZOcw|VhXG7$_rX zlw+c+09^oSARMag=?~WuwuR#7)iwOAmw;$6`tO&-R<5KcC?pFN#9^Tzp{$|&AGZ-8 zFpXPPHpF%WTO2lyO%aM7<0uQL7z-`$u~ia$QQR39Pq~|mA!s42NKJGZav{COFfHg$GJACjR=$*1ABvH+VU{tU-#a_EW3`pCf^%wT2_5!?cd}SHi?P+m$lB zSAwu0Gt?08v+o9*>E({7oJOoOErsukef_7WmAEDr{$YPFT>Sm+C zpH0KcU#5T;>%fHHFA3~s5hFU>k0YiPM0ZV;6OZrM>5Pi5B`z4r8#KJlQ&T4hhtu=upKTDs@x_%+m7!0LXKP8Z>KLzcS z2&Fss-ZtXM?8d$ROxz}rUo8*kGRTVClTu_!u&gJDvi*XNkcJ@l<^t(I>KRRy-UStglgQKg*mZj6i}k@{&jQOu}qCnwZ0z+~L+K zM#*T{32}ODK%pv4UzM9e$JvIJYfJu00@n&|pis)kptB!G^el^I6gM4^06UgYMb?cH zCaTM>fIOoav_Pk(untOBAt@rh48w>CEcw03@+5Wk&lPi$@{fFCb2%4u0e}c>N^fpJ zVvMuFM&<;#;YG6+c|pB5-QX&D=J=U9{+Wkn)kmb9Q+W)*7OR9;Yzjw}dx6J=KI8Dp zFj%#S!D;?fZ50~##J`tkT&hv2GvYR-9-m?`)xUHPDhBx@dp+ zZjRt26LY(B5%_MvHfTcPM1)`6#B2kkXL?v0Gk1CxK9keGEDnM>a|neS>V|y3r_BLu zFuy6m%@Xc?@7K!6E=ceTf1y7!#ykIA{3Sd8tfl94rc{_;B3~d7DCxg)sp~I@$NdW)Cv*`w+em0c+BQ&x4Fm> z{)H`ppM3{vvJ$K#OLy7a$E&mcVf4WRa29L0rL1Lg5-cpN3^(zHEHRT}IU67ON9qTW z)A9Nbmzd;H>%gT*WT|iv94axOx$M#v)3Clg&|Cx`GhtgR-0OMb^@NRR?rlzwwD^JF z_wa=W@-IP|OOh6)S{04{ks|T=qBWi|K5K>vqXRK6|GYjg>rPH*Q4M+hl9qTw&jelm zF5eKcv7F89D#u*uckdDA+Q0UwX2}xX#GczO2d0%^Y~k*RC}BRObW_!#7(D%QK*V)H zB)_1QbrX_|{S%o~;ieAVjtl=N5g>1Wzcp{25k68c*yTnzU_y;NOf1^l6lb=)wYo&6zf%F#=0b(#3EFf#qOc+HAwJ44|cJm05*j zDbVw@?Mk?S#sm|8*_2bFGu1@Rj)N( z5f|!$5sEPJ+VID6v+wY1O#nLq-%(RwGMcc5vOyMKK#!H*mB>}=q#oNkpS%0aex-*s z1zWiz)hFG3i8~%Aw2&I7nrj=HOWQB_blWTgi}0N)tv@) z1h0w%!w@`VO_FmPbrhNfD;)K~ocd52VM4r*V%6*rjwKAh{6`o*=t?chJXh_H<52%| zHM#6#F_YuR5re&5$#<1+#zZj!dPI@>O0Yi!1$?XI^G%fu==h~%K)4jdeGeJ<>9?9* zJ6Z0}aBi75B>w*F%Gw5(2R50YCC$&C`QtEj62o*zez|NC!}WgL!TZbr2j`-hO(UnX zUGBNdI?vy_G z=o+(hO%&Jd?Mp?;0%HOiTIoE{ne}nGU{uv|_-I1-)ZMBtII^)KJL{U}8S0|F&ayvZ*miia{d*HpM=b*IkDSvt@)#6as4|&7Y)eEmF~_#6_7>;+-Sn z0FkJv$)xT~jpqCsu#eQe;HK+bk}_E`3tIxSUq;_gyoBx6g=s~OLUInnkogkJByz|N zRVjRTcX=$fEtUo#N+E$6`dy~v{hswrsal(@Pc^cns*aC$3L5t?vYPcIwG1VCUvK2- zHndQK8z^+%42tAl$f`~iCS={2v?mg`M+g`>CIm17!6$ySUgwE3nJ+v3Dnxg+nXUe& z!jEV@O;E{Z&VHq2&zfW|Ywkj{Uh-jL<{n-Fuo2M$c$v@IC)Q9T4gC9-oy`;)v{CrJ z|3I2-yL(9Llua}wnfh)yfK^gv5XyVo)mS%Z!B9$=t~sfS7$;>W=#axbMJJB{!V_{b zgymU#-6%|Ir+TN~WY>Sug})D(K$cr{B{c%Epgp@R9w3L@0cb~Y&X*CZ|bsI^*f@tHuOZT_=gyH)hXMp3B@ z8l(aYP51FtflE(5XM~RVA-}B#28TpVW9l+L)0uFuSk)_P8jDVy8vQPka|=hMjkFtZ zDZ`hk7Q}2TdVN*Bu?2yFK^mUJ=H(E{fnT-h)WtXxa6Jfn5DH?_&KQ*{=Td^4rkzCd zwk`mSW$c7!U(ocHB1uS2axgJGony>~%qhIU2W!iS;V3{n)yh|L_)JFZU&GRi$ub`E zw{tU=Yi+(D(~!CT5~ZhOPJ#de51KU6j)qGjda2L8{)GDPNsfSFvvwq|QwA5QetW6( zp_9omiEzG?@#dK6p9l>;+L1>~`t2Ny+faowO)^37ijX?T!L7^$ZwhVhG{(G%=s5d` zaZ*1qr^K^PZQ(@arCGb6mG?gNqS;`>3Y6=6VnuTa4^B!a+VR_Hg;LF(ir#>2e}CN$ z6w4z@-$9i1g>N`a|$>J3(F3=F(<`V_q(A zg!XW|-BC$+uj0_4uYNiH$=dpIw}M&EzDGAb@#;i;EeH z?vt|R zj}`P#v0%YWL{8`QT2oPqc?-eq=uqHaWj59tE>Gale7*-=;;@Vm7zrg;9?GM-{YACu zQ3)Wg3&~aRiIIGp&CbtIjsiCHkA%hr5jZ=`%+&__A{WjfJXK>>2;^tPqZH9$%%vw! zae79@GN5O7$JhwzR{%MdzG#RbHtpr13R=%BnKhInQpMS#zq;mb{UZ7yFQw@jpYeZ~ z`QY^|om|K+=ET%jN=#gbmdFV|>3RO2x&Qy;bF%(7FC#C*Y5%t6JWE(i)kG~>2uxxP zoHO$#0&%v3Mo*l#%BO8AXG;%m>?p8mJK{y5B2E;=qs3g>P2QdE!PWwWG zBn~b!;!lGSt_|LOc7J|SuLw`cfe%A$6lYSV@Fe^k5hjwldbm&oUy{H3t_-;k$@DAI zkm(3}jv_L5%K|f8SBoMa@%>g~aF*ku5|0y{ZF7DZ zy-;Ybn*zH!?YVla*@F$p1R3(VuT9s{C$qjXEVVfMC6|ymB{j@$e%eK|)ha_~WcS3^@kqq<9wzOK|xC8+0s;)d$b%S>D`!lQBbz zB@@dY9-qO3Jv%aTs%OG1@D%Drmz+hYvnkiGgz-bmw%+0r^;{yjZ28+-IC+Un9}B3; z+!DSWnqYyaEX$UKjHtx)>bG%Z9wseF_p5+(Y;ASB>x;hlc#V#BTtoSw_`XRJz#*O!MUZaLOs3m9OCiy#!XQgU#sC2) zDx&jqW=my~yvEm+lFW8u=ThkqrF?qq&6YpS-G$I42$1@aB&F@7PlbbJ_P?FBtf8iP zbrdI4&Imc}vx{v3QBX(Iw&QwcZI}qwg~NqB7tyJg*xKw#l+X95Q3LP%e!r0*?cOkel?!Q5|=`$GE>f#zKZ zjm*EO={qBf8I4X8i|=X^^cK{9_j~@ag_DVo&!e+o2V6p-(h8b~3Wh}gpim;Ocb|0= zwng%U>uj+yBTsM)VfCq*BI*2d7U?bVe3re$-NCN-Gea(uM~lhqe~&b-l0~(9rnTDI z)k#|CZg<7a*Dvo1U$LX^Ex8UZlwwHie3mjn&AF)yrgi3?FlQ7#;;)h+tN2&Ei9fdZ zU|HBO>q4}cYpwk)7BRTcBr(z8Z5iUcKs<8_nPjGSS$nzs)pJSX@ocq3DjO{|3D#vs z=h5H_0%WT``S&j!tBxxpC>+}>-zlLZSnusv$6dF&rEyst z)Wv9E$dG)Lvty2i9tZ6GT4;voBa_(Hi}@M>&=$GlnA1)pQMwBk1r)zr`nxJVG-Aol_cxUC} zw>K1Mex4(NfpubKUPSp3^`5X-D=(SlN1|<#u#HCgh6tC8x2ykEeL3K_A`ZIoIC9MS zpujE`E8ZtZ&lM-Kq)AZda+t|GTvYp%ua2wr3hyoC7dq3gnK8^KZi7Ct;iERu=nsD6 zDkvQZu3MAli@K1Y0LW@%D#g9@%qgv(*Vf1KYA5(eP7_Oq0fEJHA$*yin8VzWCNDBS zOI-Rw9BDN@D3U@ zt-kRViS-_QG(eB8THQM8#|I%q5DNq%T#mfZ^McgSGtMe0w2I;5s&Do#PK*NjnCgzj z_uqNnk9U1DEYDya@y#lJ>BasmWwO0A!Hxo1%8^rgLRX`=cSYGF`D4=ba@A{BAH;S3 zfH?!p*6y#k1GKNEu9eXqp&e+)n@$r>uMYgvt zm7ZhKax6EcvjS+xd6Cd|%tIBOD;6=qySZjI&BqVp;^!)UDm4aEn^>_8V3oml88%lY zurJFBOPBOll-3#tanZ;RR%dBwc0KO$)L@Evla2a*#>@iAW+iro%_;x+9Hr?d<|F-f7m4%5~g6qp>iEk6=o_mr@ z2)~-vs(&HzojAO0HMC0*VHt}0&RqLO-n^@Iq>#(SmSGLX-bRl0?`S~KWBbEbd&>1r zV9I0$gU=WkA#D;TW+9A_yoz;&!{pe{>0S&C(P@l3igKk7qQv{#h~*=s**f*S~? zmNbZ7AqbD47HmPar8IAAhOq_6wudJAHvvK-;WPGq2HqZ_sfkht&Y=hD@EbFdoxqJBn5ETooZ zaRg*)fod9g?!WW@=K*KB4it`e69RD|_Vmw|i*axhLH}N_P&O6_HrNo>Y2~>W0&S_{ zsm@k2(w4=o50Gb#Y078EOnMH?=v?Q_2I4}UQKG2Ip(4gsrgSrj z*ITc-j+6Kv+V!im8`}H`rr*K+x`7zDioS62h@X!3dM*|Z4RD5Lk^LTkhftCX991uO zzfmgo$|Le6bF?OsK_@vcOkhC=L{{(w%;d0ig@2x)Z;iQOw0)HK zurN7hOp{vhT_$ja(2Ctofj2W-_hDvbl)Z)0&C4HYszzowN$?=@2 zXFI3Hyc;<@*Ea2CDZ??GrtT4lzWYhQH-Hx1kypk* zjr}fskN8uSq9K>mm6c#4&;~|uQttezj)mxZ;i+cs=^#B;Mgi1VzYz^FKCY_c`H79sWQ@}xcG;JPFy#q5JkUl< zZ&UOm&{W@Nzogt2Ee=i8@w;6;&w5t1`aJ3Zj&Y(0IrW@)3ZQxOC2w&`+w8=$o{ZXI zv*HaPytG*(SYMLMAb2=K?Fnvj1v91m1L=?vm#Cx%tcoeJOi5;R{eO}{CQuu|Z`@30 z3Kr(S7bQQ3v&U!k(2 zO?Ud<)CnxeyWJa}gD$AJeHNIqf9#+whxi_iJoa8~qjk!_&3jArYa7SH(y~o@>BDS= z>`NP5Ip<9q<1>}y6iyMA!z#r_t+M!)zdIsrT}vs|?_SwCJWbPK;h$@hv`! zflg=JKklH?QdLq0MX$Qi!j`t$E8r`ogzZ>A*C4h7{~ZrQ%%2kS9J8(*_4#b#Ou!kn z0KEmhcMT_W&T#87e>Ii_mZPGCjL|QiTf2zv+1!`JAeDZZhn6JUw5`XYLm9LjMiG7s z(?I*9d)EGPpNs7C$Ge8_>k*RUqDd-}9cL@FhhV_(s$EO$j(9xuO% zAkXVHV!y-IN=XK+!L=R#(1R9O#<$0KVBldy$s>vLubdEu}+Fncr5H$>>gq-{bk3E?qCDRuk&VFM6l@>&3MM=!d zPw-gPe_KI1(MDyxNc+Tp37H_IaR7Weegl^{Azj>{8T`F89JmG86WnK8rX6PJNAO$^ zl?+!HfUaa!89I zSl^&-?mW>Jgv6I}E!2MowC0`X?XZNITGYB+S4#0oqhhEx%`Ud!^gKc^p9UD3Upfg= z_7OKunX!J&GPj)}fk(-0n+^A#6|E3M?5Y$bJ$O7#Ctz=^@KCr~T_rWpD_4e1$Tn?^ z8?0Ok>>5?P0z0>P5W=F?M7A>KWE;JRbp9nvQ=z;wzT9BQ&Sxjv-6U2OoBwT=Z-b)5 znlncjKcRxTL>rpFSOjKwo+GxNaaR45tmJR9Ixj>xp&U=SySK44*aYu3#&idhBNsuR z`FUqQZ;pqi>dtN)`1PmDo#ATpRb^*rtAclq%SCh4`vWw}@u@_S5LeGkf-k24unlS(Ji1|MEs_KnJmFT=5$MEi{9_cS9(&=LFXmg&tO?6)Zlg4 z>ZH{(CDd=GhnnZyjB7tRk{|Jq#UZo|##utAkI?$m%czAOuu8tUg4j1oU*M(zM zH+>pZ8^Y<~a{XuX6@S9e5xf-VsKFtX3K3Ink^d}qW09$6Y4_#V3jEz>9tCbRx1u%P zln_q_Oj2Lo%!y;JfX#;;WyI`j;G5i!#SK##2$@t~0qc0R5vTea6TR3z48d1TKgIL* z_ILQat)-tdXVvTJ=tn!hG7Mm*`7v|^6KruY(;Nym9U72aa%ctGnP*QxJA=oAUDl8N z*V`1-rjkg%1IR$>{c}y5*ExL?fTsjROh#XfD{zPD5XTVJB&drL_*6Y6;0VUWtJc~Q zR2h+Eil&mQi1 zMXoXt<*Bb4i#^HXez>!skR_OJTBXt6RAqR!)?=SkX~V!PVmE3Yb^*3a^s+#!)ingb zfU75fNK;CS#Vd$JvSh~6IDPnJC;!p8nDwxfcB1Q*5mcyoHDC49ns$2K%M!Z zER2W{ezdqm^8!ZNMZDILeh*~^E5&Ow8&7yQ?Pz8KA)s~I=p;E_JdI5b;>u^?pz5eL znA(Njp*XquT2Xkha%;Q-5&R9XMf{=`{bC{^=)6gwfIrkA{2o2N^NQ4m@v0Slv5k|f zXDkvB+6;I)H_RItKRs(?^eOwLU|hd)&2lmG3w^MqMOWGU`N8iYhbm}95Nd>CtL8`i zYN;(pKQZ3V_<7YKKd>fIOBR#cO=y@Opbr`{Og~=R+CClBNI4i|6*j{tw;+3HHdzW@&YMsq0(!VZlJ)IXbSby zIp_1BrKyJ7GC+aCaW4x8!KjO_+>RZrpL<`vDXWfFhgt>sbaOk*;`#oqXtQ8@!?H&}PDq=6;%-{>A(9a<@e$eAmIjWOHaTVNJ1AB&Sr<6#!0Kuf? zMgie;ZPPb5(9`fg>!AOOU(LkC`d_{*_xF5nxysB2ZKG=e^4($=0C=eSiZq1Xs%u5% z^cS5(S+kiCtvd){4xQp?2W|Tq{)v6PHwQd-99{jWwj3dgsO6)-xqFB2732*l8Jq=( zPvIG`x2mEtarGl{@YrOXAD5F(ZPYkK={p{b=`L~W#^G^4zP}lkx#fSN_P~oTKnXP{ z?Tl%9ots?jMy?0zkz14$X=znNmG#L<3I#nol6&4;f0=8*QaJ6&F9&Bjfk^=nF=V3E z&7S4$+41o% zmy4u#ta5x7wO55e-lvHptZ(FOl$>X0OxofrheW_;OlU9VU2YzZ`6Jp|mN9smP=wk} zyjicSM}=;Q0#P%!Z5LTDg@b@*3R*0dGho$?uO{;n%{A_gPgre&KF z@-ic&zO+L6Oqobe_0xF9z$1-c09Bqo&X4Qy2g37kUaR6TV}oJw8`C|h1u|+~zkK$E z3UB^fDrKEwEtPq&I%7v50tnf$a$`MSUERxFXc2G32u;n^SoiOys3niy#EbBYYu9Y> z0f~kSC}Q(aRDND&{eJWttiw6uH%^lk*t^um2IzMXlJQtN*R$D}n7Q8!oI3Pez9%E6 zYAyJ5he1u#Kt;WV^WvAms@1FjgKKIH_vzIH4DtHJw-7V0u>XG2f!#GzSNtmmMi#BN zIj*6Pb9y_37%>YN+qP}nb{D&B+qP}nw(aTVEM_qu@y<)!jEM8}FsrEA zJ{8p&Ca;KD&YZ6kDLuhd0IS;Z?pZhVp6H9-22W9eTVIYktehcyCbj;qHE+;ED!gR@LjB^6{OW)$1b`&o-u{K#z`|HS@VPNEIcT~{g7g=UZ%8ZF9LoMW5F_UgQMaon21V`NfOFFq3a_*0}0b|fE)J=ZU z%30KspM?yb+|nsd(e^SxOEDXpwkPQ`I~7V4g7|rGb_JD)E++|a_w3cPITTf8PPe`#pyK!tUuQ;)HZe9zz6P4GiY3A1&*8yWu_lc(_(*#^_VzG@~Ho zm^qo8`aGNbh9H&W?6arVphFtWMdv6j6OOI10cd7W7e*(ZL zB4Z9Yw@rl!k%h^8aH2}2usWDop>xNK=aU{^&HwzIj3&t`1hws%f&wxrHvSG%672Ty zN-ZU*+a$+kEr*m04m9C~>?qqs)X6F=YyNm7uCtQH7!C6BFpUmBK5?w{<$eiNWxzLf z6RIrrA?D3Kde+>9yVy#hZX$8jp!#|zF~ic(;`76nAa2)SNvDLTM?=O2Zk812%$#W zP}=qTea-KdYF}MKBdtR>c{n9IDl6c6z4d86N)oBBgjSr-%rCH?Yk$u;8rK~WDwXa&g~Y& zMQ0axpRU!O-YM%%(qh#`b9rG7A!vZ^xB@*?Jmt8b2!r}V5&?2!ERjicQ;UGt zk~N~{aobFa!3-J2JAB-zb4_Z>^6$)$4OXTD5{{;ap9tRktfKf(Ris)AL4ZB`2N2G$ z+P6lj{9k9R^ClHxbFi8Lxq6c~N3n5&U>){hn-(sQnTIk$0_j!pMnY?Y%N~}%`y>H8 z$>4O;jl0fGftk@S8xmtW<5sJ=hTcly-8$D6&YhbfX)Y`YRJglZyU;mf15=P7zC-7Tf1Vws|C}weLSC!@SK;0c@pFsoj&GI zbqtRHPY-Sn>Wm+s&;7C~Inv;uxj_T@xd-UF=#!?^Mg1rxzN!I(BTmZ~lacdBnQ)ra z;{<1cDFzbq%#fpEjWvM%h|CiQE7d{jLr0nYYWIR$S%m$XQ>eJT_s%Lgd12M~n)dWm z9;Z#dFkhVb)q7h-_Qmsd(0*C!cKsMq1Hq-2tN3y$eR1s2;rXzQ_AOu3fXR$93g9e5 zs4?vqYSlJoCOFK#3MCkqnj0t61rVgg8AGD=&iw{RVB)oB0ubFA>w=MP1NUH=07@(a z<5Hx;Cm5J{Ps)aFT97fHbvgiib>PyCWqWFNP(yfaRJ(o&H`u} zk3a~%2}0BjrKHq_WDg+l6HYKRf8ET*0$j0w5}+rN3S#G#rr=*~ScV$nzjx3jCqase zaH`vNtH?`~l8{%Dckgs{M%=_O_`+5QBt1pky8MT$9PjA`UqOr8MY6k!S%?6)x z+)7XCfXNjdkRc4&Jd)=ke z?hR;-OzUxtpyPDTwX`XtLvisLtq&tEl2Es$MtJQ403Q-OS++$nlj+XvxE(~4J2TV~ zd>-j|EsO^0WfqSIgBQ3POU_i2bEw z7}+Hwau=ai!Fg;^!Pk0faT^g)dWn+UfxQU)^9{VLwdmN1yt9RzNKBk;$w*Xv`(Gq) z`qJq@N@}0Q0i9})9U-6A&9Uxpl*YQFs$JIfspLEKf^$T(&4z^wXK~QxgxtAW1~ikt zd+s9~g3Z9cZmB>p0tFV<`(Wuh=%4y?-2{^uoHlm8AaGG=P;A7WuRz;<`=EnAhj6z0 zB?G3*e2yExNe2R8D1u6HfXXm`<4!Hi_-ycJqbhje2ZxWq>!deRj_JMZ(EgC#ymS%6 zBNR@dC_Icvau3)Ct_WtbM-fdImy;{LBbi}U~D z-)M&f#goYJP(eHaqH*dKY7} zvU~htz1l%@%?foE8%woAu)xH+kB0{nWIF?pqa51dZx1>>uNf_1r!s3$SQmrp2*cdC zRlPZuud$^pf}j2%5DjQYJ2-*y0-f~C;<|{ePau~MbFCzC>)$tvP##OO%w-%2(vz0a z@NW^0b}|o>+J|OkCk57gjSOJLHqL3->05JhHSK zj=|7p`E>^JFuV}w!lMmjisp!OkH&wjU2i-?8!do>9L4m*A=2WGX)8-05t7gj)E$3- zd5f&%Eb)K(mx@K8=$Azlq0i z%zaIix%bo=!DF$x?jvty_2)EpJ75UkwI)aLfaZZ>>znGHPn%9HPlaWx0g6Bpb8qj% z#w4|>EWt6sYL|Sw@U5}S+-NkHL|o6359FV}2*!JPr0dk-Xo9Ql5i#HwOTTR@!^Zqn zbBAm^B_g?*^V+FXyIr~oe~bsH=2{7p5l8|wrvWjDoVIDgPG8@oJ(7I&r@>xFnej;a zbA)6%eQIAUVXM*Z!XM#U87RAWGsu|z($o(4cY%U@9&^FM#Si7i&5GaZYu6uLQp z;2Ie5b|AH*Fh}IJxadO`ujHV=a#NK!43P3E*>3L_csPq)b@ECDL|HP$=#jo&@^3ZWLDkjH`?>G?SaMh(%6oKqs>~*X5z-_gHHQ8-M&1>NaWSatKBj}#p2Op^z*ZgoU40s zI|{J@(Lk~|j+#XQHzHA~XA1)E%0UM?n@Hvt&gJ$=mPF|2zx&IVsm6CG@ih0Jf0cgJ zf#$XOldW7|ZFtZzSPg;-|MGtYKQqKKbQf>9R3@@!u*wG#eg`{_Q?hN^C1Y0cJIR6{ z8&y#WqfI-GSqn@64hFF__Q5GlwSld6cu~>9O(>~VU`%D`@nD^5?Ud^F{u4sex_@o+ zL1lq}xg|yyxbjk)QEAdAdFPDBxmFJ)ld2Vb=QH>iZ@ZSUroLzI-JyyGxhEVDMLM5w zeay$?Iqd;o<7q?Eq$C-r9KmH#VFCix28kR>-fQZWs|s_ga^xE+QJX5$grJ!zE}-RF^rZuI3%A@1n$opHetxb^Bck2-7{wp9+YcM08$o>aNEyb~kPB4exP$ zZBmjI0)Z@g*(x)XgE+`bn)KH`{fui#fHTO??d+hUzup)iUEhVPy;wLQGr_{A^g>Bb zSsBG1MFVq@DXrb6Dx+9|`Ol+<1#u6A>74^&04;#)PJ|2at1m{jG>Vs)qJSbz{5E)<-)QK}H5Rq{3PW1Dai0`whPFk!!DuMiq zTCvX+?`S)rCv{S5`#mPx4G;-cY5(H6+YERwqB`3~16K!TO4DY=RJ&`@1hL?+c3jQs z>b{H2TDoPDW1b17;5{KHUEci_@V|#{#TN6hykji9NXKh((;1JnpLm}EzTe!u#Y*=K zOvUhuJsR;#mkK&|>hBz*;9hyT4*la6CzXIsT{J95hM60t>a|IQ=E$ybwV$3=Tov^9 z*P=iwl)C*=Z6|7n+tMk(#8q~h8WB%yJ4zTS4*v#>C_MVtcC(}D!&QTpY$3p}MBqGt z>KbWnHrhHa_9>1&<0CrL&Ky+J&0~F@fKO(4MgAD!=}pwQf0jc&>Z;#cmObwCcgvyk z)|l9oEZ?vKNUk^rRQnHWW$s5;7{*}sPP)T1CfuJ0Cz-4;$Sa%@Q*GBI@OW0S(P_b* z(F~{hCxY`lQ;O#*YiJWmdsWh(ipWeXH4E%L>Z4RX#&?s9iwY0R3a$Srvz4V`=No_Fol9HGBQ82jKw z$6_MM=(lektjH^)BhskPRZQ(b7j`_3kNpFF-FrZ3%ch1F?nQ8vfVgIwb6*0v&`C0+ zx3G%S8T()qSD?FSHZfKj(bGY!&*I*!S5Q*(EtEhjlp6+Im_1d9sXC~&ZX(E6F)yWB z3YiUiXMPSK&60x{1Jq`y^>+N8o@jqO#i)xze=Vl`P7vrIIJ_}T)2QZ~^|;>ZK_;dr z*P~j#>yQ;pjK`3#2j8H2UGJ+AL1dyNMIj5ru$wZ~#Lg0H-6jPEnS3yqMm=)fY$+gm z5Qg2Z^XP6{x_-hWYR9CpNuu3-WSLJmKZWYeLAPRq_=4u9m{0?GY5wLpQ^pM7NpM@2 zN#&pFbLcmpfw<~|`sOlOvVj}=M=d6=Vw4xJ>Gc%347`2Cx=rkr7cGwPEHO}zTJAGl zUXT|}4{D!Kj5cW}YZ09I+0*o{pdjBk9-5J7O1u_}z1htOeSDA3;;*tOX}?k3hB8-*R7a>MhA6yYb8+x^H`qu7lk8`{_I0fKNJ9ky%rw zR}j50CGA;6&dqmf{5vw~&lnKENu;15Dukr@`A96`_Nv)VHz`f&xSCc_4q*FCFkss) zd($-f<*Bmlk1YqnFhHq{{l5eSDlOS{Sc z<8_nyqP?vY#d(Sh2>BD$Mg6L;Ke_g1WGt)|f0d}&9jRUb;OrNs88x?C6as~Ra`o3U z@wR8!U=+ZE?K~EoFF}zc!ac>7yW>R|cvZiFDPm++M3&sononKxWssz63r1-NoO^h~ zRJ(&*mBWEdfeYSjyjup!mAw1N9d9Fu-ig{f*EI5vSn9f@X`};p$ssf)+Ze6Tw1lQh zRM5#g-_9DOf~fyqh1T$EQ>F7ktDza;NzbHFnMT5g*Q#5~TTgA55^!gKM35mc0Xd zA$`|=r!7ja&8FSM;o5$9;-st|)u6tw2qq|xikRz?kILWKp@%!}ZsJ{32zMZi1VZ23 z8wM2XToenDj(x~$*VX&2?MhhPLpyx!Sr3$xeka+qZDnBIP~-zR-^&2#0>KjvUCds| zQJ)X-8pV!C^3aqLFZ-_xAYd&tu~O|sq1dIL^4gKe?ikuun1$rj$4;qwPRtxN)=`OZ z@b@qoHKDFEDf1fzKRwJrGaZ!JonHefU#Fj-if&rcDI@0}bSzQ@$i}%-fT|Ex*24 zo^rVHzo%41tdp+Ri^!jV>$K@%^x;)}G^MwY*KZJt=#QT9|&+VxDb@PpZ zx$xa93Y9yd++md5bMQ)vq&ezqepYVIvi&T}F<+w|;1 zmcq^(_*~~${ar7v!dr1hmxgNR*j6ykDF(>he|L=ortW2QvGgO>FneT*rW(X29j7y8;1 znFgTT?-4pjYEDpS@PakANj=tMnqb*lK5pz-wszMfvqYu(Xar_r-p2Y~Jh*Z{3R{PdkJm5ov-;h z7D_A@9hQV|a|j4+kpWoY!*d6S5Si`U=@p0%5`I(^mhJ4*)(w$dpymEjSsBUrMJj*F zaq$u9&WH>ULCuD4x7NW6xm%J*xP)uyVp=OY=;8Pg(p3h&N7>)FF{Gf*u!^W7qAxbi z%L7kS)(^Ij!=_}@xO7U36y+Xh=g@QY#60bU$nUYZqWy#wuO-~;?0KgwnvP`sk^UB#o=d*_m;2ziCw$ycr)0~MXxafFARNrY+ zbWZ3dC)5Is!Jl^s7NB9idBxdX8M4qB0zLGgG3I#BT<)`fH_iv>Fra$)B0V3s5LC`f_HAB!reIc_*WU@CRmzhTooE zq|Ol(vXIm0wDOK@12LY-LH^EcpI4*{PQ*_){#ucpL0Ey0Lj6hrjy+l5ny|ongRsrD z*V*{^ZR?MvT_3(Y&dVvMKw7w25&+YOtO8#9uJeN8^%AXVZqy&fu_&;l|W zn{W6a!|_fv&g5pC3RjeNP^TiujgRsiv*>TCRdxj)TJX3)CoiMG(!sc-iD`gH-6pq0 zL)zH+^$@PchpwO|eXqMb{zK;Q)H#HO2?9T|sBy8&fRz_5FPM9DcBt%q!`1JTBiS3% zENG^gNS&7x0j>kt=VOf&(XZHym^g8xA(`~0`+d-tY-SfaR3+=qqR`j4!H$t|JXl^9 zV2%JHq?sQljpsC7SvbN zREz3$wNY{2D$6j>@5!9=yw?{mDkd!5wliHZXPD^cPn2SukF*Bu*Rr1;k;VmR90&R~ zy3ZUHzyT5Q_LGrUz|>J#u_`;jU(XSyGd%U6_39oP#U3~aY713yVeu9R7{|X$hyP18aoF+ln1MtQMvlab%1fA9tY-Z zhlFdD9|)>{#_R>wkvwAGNZYymSi_paPwJ^zLd15!9f`*`CDbcRp7{fInJy8Etj1zs zN}2H&1JI*+tQ%M}JbPUniAa~{%p<+NAdm@z9JO%s9<-nY^%E5b(&;0+k6No6Nt9#~wyCjw4b4ni{Fl?tiai_!R#bYY0c6xzWxfXx9;4t4p?+ny zn;HNwAN3x=WFcPfudM66Z)<~ja6@v*+7YK9RIXw~IH$bA+eVSw82X%)qnumEqusxl zjkHGCH7h+kO5-b!oe+ab)+O$m1>a5GhGq9VK9xryg`bz|PHwIe zFF0h!;bvG8(I3pxdbJ?PrLg;a>g0-Go4qJ6I5Vhp8kkd;JUM4!o6akkUnyZR#y_Zs zQY^C{WMq+!Ur$pxrT2J)gi<~d3W!JA7=(3ew+y3G7>_5ssI(8`Jq0HwQ$6o7!T+R^M~oj%AhUe=Zg8!vU?cyq@(!Wb~du~>%c?Q>Cq4B`bGv3yPYx)qK~;}nI1O`yO!ZG7xCPfYzNlRr*hOcufqhLsac zDqz%gA^cR*qnE!!l?4lLi{2*|V*a`nMSBf^N1kU1>G{RSZB%?jBZ*N7@-rV?us+L4 zlorp(^E1EU#-YIwfAMlK+&;TKdRsQ>pg#6ti6&>x6T%=BQhiK7CbWTpZ6;Sd6&c}o zve>5suRXlFl;kp}N;5zE61<(&cTra5< zMwD;3c10FGWpzagsWinwe1hy!n0|H#!4kUVrg@!N6J2=}Lj@+kH(M+J&wuX!^R+NC z{g;mwa9o3Gts=GgMi-xcdr?vwfTM^$SH=uv$-mhb1Ng|aEMTH!Jj=-G6*Sfc{zm)>WKCn%)s7gjPM4s59Y|E+ z3E?4u7pwSgtmYE$$b|qdx639Yk-9U;C;@Mc&#j|qc!{q*J_ltDKw)7x-mAkRBdOGuq3`9t_TKbT1vIL z&4k>ubJzVxe=Wpt>BYMOt8pX3HFjN`t1!vj8@}IUf{8%Nb%PGvg7i6;F+LI1B@yFw z!hmoSKKO~Em!6|hH6<1WZ>*t_fr7vN<(FRfp+juL#RSxEgQm>J83LeM{0rTNtz>9- zk;AZ~yI!=2RLO)w;kWka*9jfDMibz7nnwjzv>XF{xp_$D0`b*0OALn{VM9|Jy|-8i zS&#+$qHp!a8kN%pQ5$ix6^Q~^%({DW$Q}SC8X8wWdG;l(8ac7U!V;;n&Xq`oXZv5k z44kFb6%$YFI#T3Sm)7hdF8X?Qlb_W_smtn|5X{-aveM4bs1hS!y8 zRHWboowE^+w%R-dK%(U1*VSy1HoxW|bD#Ajs-uyA z)2E%ysyttZ5ZGn_3-#jICPDfG8r%+cW*u^6a3`iL%b(^ZAbB=oJYZ&&*Wy2Z^%?5` z_Eb_!hW*Ltq@OuBAcI)c*YUd<%gFmI1gV=7*G;W4Yh*zc1hsZrXZA1AxhPLDFRO$OO3fIxQ&oeC-AJ}5@wd{8uPV(6)kS1K0e=& zgPXlUF|Flm(Lkb1>pREu>3Rr-GUI1m@d-$td}t1|N(=qmx0&s^I zuUm7mR@@ib@_VfE*&r%uCqTmP2y2a&N{{m&59PoI5=2mpM4>ay<6RwRM!H!*WJM@_ z;8>!!CL9NTj*}~zT^2H#H_aYk04wXpA~qpg`lTk5bA(w8EDJmXh&ooU@3W`-#ovvJ zYdJbOTNTRRNLBYmu&0Fj`^{d#}JkPnLE7925@K zRd_GAtJe9#XOk|Szy@?+UjgEj55vP`ML`I-w!HHpt3o9 zWuS8{p`0Q&ir6OsP~D-I+|_)r%~ZKfxzM)O>(}yHmw^A>S*SK@51P<2iJcf|tQ_gV zM#EWT%P#hjO(}wwYr-W#d{SeD}6tX4#7k-daF3CWG!Zr z@Q(=ZDikvr#{cB6Xsi@{BTSU(`+$a>a@#MlFM=Z`7}<~dC~d-8#Lb#tyz}zsW21&u zVTcm%s2g)w@LWFnSWEncKUJX@hO_gqEmQk(J{1*&#{wm3 z&7Pc|_BJA6B9T2G5SJQRI@qG=g2u!JPg1evaBA~kb$t`;)&(9_1UI7N8x#fv$|JDSAyRKHtOX_g0cFz3otxU~1o8$X`<3@7*LNCxv>M7qP+c(|_b>NB z^-ukC1gehlYJzafLsCxNI?w0h1ByXFwKe7Vr(51{t}$`asb;vtSxA)ioqwExQntDk zgk;&phKXMsA@iGW4Jz?6Mw>)(b+-3C@+88;qxWVhq+?$ESx+!WP$tMcC@cq{R1!om z`&=*T{WR|e#dqT6&e83}92>TuBPNJt$sD!Y;d^3Mj-Gv@Ji4lvorht*)7zkmL)WInT@%^eOGP zJ#HUPR#f+Nc3wdkm6#>+v*!~I_l=W*ULA|$K&;o$VDB(-mn-6PvtXFv>K;t^%; zooMgd%OcFevv4ThvHq&7%vF)#c&U;$fO5*^s-L~ly&kA3=Q}2#bz7p%JU#mW|4tO= zm5>O47($D78rA6eMFj1@hEui%ukXH>?pP~BtR`b(VXPp9bfXh-!a}53SfQzAEuBgB z79Mp$G}3wuSB^CFV{?@X3o>SprwlZQ#J6<+aqK>rUknrDf9H!4=S^0H*=O2t-HiMG?iOtzI|8u328zp?LYhT z11WD)Zh-;$m}$~((!?N@DBO|5bewcj zDe)UQGDhIBiwU+I(UUOjgQ!3!_DLqX)MHO2^a69dyBt5jEnf3f&G{U@FZ3!yTtcW_ z9Lu8rcmX;c+mi5oANmRB6)v<zzG;v=Aa46Q;0z)J;y;dWAzf=aq^8mEhUh9&rV0EET@t`j#*~8uGpXa-XU9%X)M;}A8^)Mb1< ze#gcIcQn~ph>kFmt%H72+kEFO{j_^^;Sp~DZ0AfB?+DeZX&o z=!`^iQC-fS7?-S7#_OhQoU+l`AS^OH$Qf%)a2F<>;8j)qhu_s7K|Vm7kS36h0sOxo zW?Z@Nk1ITdqk_%}rb2PJ+xebV5}zHyh13v@oa?{A zPVGr>!y$x7qqf;tiScPeIysrMpQxj2*Rg)@%O01MRm5)thjX^AKX9I^k*S~iaa8q z%nc-g>zVB-Vxjwzvt}Y~SO|5dYh2OU#3reKdbn<{C6T5i_%4C>;0@XJ&RU8ds*BTpms!5$fh8_DD0 zq&ED)o6($S_gx;EhaUhQ!2C1mTau_QGpH^*P;l#Y+5_R{|Lj5b(%xpp=XLW&10t2a z7KRYwE}>Xr+!=y~!z=JBs&@qnI<9~OwEGli>TZ85SmLs=B8Wohp@QE;*w;GcRkf~~ zWS@9%eKa(#hN=;Uc8zAbqQ(1o?gLd3b+w*rV1LRzS6+Cp(7<@0H_#1`R-$H(kiQ5)fhh) zE=oRz01Ivq0T0v(B-}+IrNa<(!vY`E?b@OdfClI*HpPMJ83H;@Q&aARselg2@LA;eBwWTHw8UhD>;Wn5*EoV)pG?h-}eM(N6ehajP+Q5RtCY_yftuJz$xpsG(#~& zG$2}APr~79E5U)^u;fhwZwTj>&=aiUr{s1;N%uem+DcEPJ^}6qWK`W?>TVNc!D3fR z3*rV|4KPw#G+X%uy+{7B)>@YDL_0&tG8)UMFZp6AEfRKbVfWR(Krog+2dO}8T~#jn zrNN1J`qS^>Yx2(d%TXq>VX?@av6j$#7dq7dC97i&=;I-MZ$HkK;FrQ;!4eSj01`xAm$gd>dm%%!T z`EQG*>nlR5F4PC>6Bqys)VfG?{lbc(EmiY-y&Sm=Zo=nXDXj&I0U?(J+Uh+d+`6MB(TTl@Lu*f5!JPL#keL z)T~;Eqj*Yv1nJK4q<86rfZVpm#zvf9)WNAN?JOcog$F3TC)(0oE!{4{J93XIECCI> z#eWAbA!apIFYFaBvE~UF#S85}Fgtr`bOtTf5v;;{JIu6xU(1$|KSdm->CVjU$eOnw9}y2Gemw2~$+e;|C#o?L zw;{P6kgUtzug&7gj?NJG$ozCi>K65?F*i!eryZ=BeeBH+6 zWgw5F+|=-fB-#`+>r^Rn8$=qJNvRhy$=?9}WUeVY&0Qd)sg5eftt@IxypF-| z9eWjmrz37d$Zfx0O0Q6?51^+e+mVR?eKv%(_y_F~JE%8mU6?ghLz<%sGKrd2#><8q z>U2WfwipXCNWbSRDe5-4t#T>pl!wSx%OoqGl=I`M$WVAN?nmLmdJi!fg-e~poH;55 zoCm(NA=(ByV2AJ=*C(n=La|hchy<2%r<~+=aJ-Tul?vf%W$@gGC`67pJ~{s3rf4?i zz>Dcj2B|-UHN+(mUw9EGN70d9K)d8(T@5Io29KX&WGOu=gjjA$14>Iq4F1SR$X3yH zD>;r5`!eA1{N}WIKOk|N!3hKp-r4HvXZ3+^Gmc+=n{0wid?!(Xwb9b}@WfmENEwi6 zeB_1*qh_fZP$7*7A#G9as=3pF{4BVJ0tQN$6>zwBOa8ZiT!=N-WooUq-+*BZ}f%U`7X;LtPxHUHk2hM!kawC@t&T>95ZgCV94 zc3Xm8{AwNcbO%zxI+k0qLX2S*pG~k=Cq& zAg~;Am|UwsNEKj1P@VRbtMHFMv-8m3&$QqLEm)g95lW+xtXO9G=+2Jx%k8ne(A@LW6VQ7U{2FFR9=1AUrG|Wf-LX?eiohY za49KqqN|73=}*#5p}L=B0Mv%Dz`FxInw{HP?@<0If{f&#O;cnXV5jw#B9fn)!}1wW zXokFp*cVvuI3`w}Nv*x<+~*8g7H1$S8sqnx(*6K@Pe@M|iYw~;`F2-NIXDM*0b@e{ zgZ;>i4r+sws*^1~4aPr$mi)%Um%yM)skM5u=oNsY(&RT-aq0@rhPUCbP z2vz(rmd&fg&%~qvFEH}k+Ru85ig=afH&tD^+Js@`lFPEMcdYwePkz5b85*aaZ7ABK(XaCpz{bDX8z#1AdUa2h`PIK|R${(q308 z!gf=~e31htdKlSF4@xp$xo4F(`H2U5p+$m@zA9exjYj9Q=TC`tGMdQ<8K<+i%@E&)kEDG+_#Uzh4p0)%#4KOAiQ# z>fu-omNOR!Joqy0BQAPSZAzLWXA=V`i_022Wi@wQV0)3F7RKGbYB%(=o8SljFGQpmJ?%>kLXDd&#& zG}%c?vH&7R#!+V#-3X=94e$V0s>@D}qCCEYi`cVKINvvA3tg9G2#1QAV>2U2Ft#GC zSpgOTsZzgi80N|=3%z~OiwTAl zYd3@)>bb^%_DP>WEsbVxY^lX>Q`T8oK5*|P_)cmEOwMu@s6e{9S=OPeJFk>cFVx}( z87?@6z@7C43!BhLd4gY@#{BO1Kwm9}n85}wPdvr_%?R{Z0?o%@Zozi`Iq#_TH;LPL zj3tBBgBvX+2kj+`XRS)&@6qKuDc|Zlm=G|Cy5|eRl3zbc8@skiWsi%xh{$r!YhCcF z*9E+QgdfdhFz3INFUun4dm4L4CzLnjuz{yYnISzWmOj(yh6C)A#4H>Hx1}jMU+Ke3 z_Ahxupvo(0sfj9)O^(oFn`bbjibfz+1H%L`idP&hP#CC_#FspiHIOcGSF6&%@fFr_ zfJHe*?&Jaq%deDf)~OhaserLJ(q5~!iRotg1}S`gElwZ+gYBuf6s}~qB_k!$%I_kL z!Pq)ku0gt|gYdhEZ&NX5)k1~?Af5XMPbTlmHlUV5{4Qy|pwC8}4&x6IE#cx3=1b3v zl`TpeC-#}s_Wd=b<&gQVMFiDt1* zW!1XOe7bgFFtp*H(JyH~l7jGnf9kIVjp~%qDwcrjCPBDKXxt;1F6yimQFgR;2Fo8T zDpuhCxP!}uFjEVyEH#j(;FAmV`*K?u^;YQ>7MbUSr;*GJIKP3NT-o===0Lh!KnUu3 zB`O1Ylq-V_!U#~OZ#JIEHg3J=m^lE#O#t(!CY8s+r2-TQ#$S=Auxg}?bwdb69ZDWj zE+6_6G_Z-@-Uo$zU=0niu((PxvTrQFoKpKTe?n>nrw8C#0-jUPPuc0N~Bp$t{k5;^;H#L4O}) z7$P#w3s66>(8@`W=gH(QPjy^a1uB>Nqz=cWAlHtFSBYUt)o)!GGAB$%^9LN~tui%-GK@PGNin3>uC%M;7e4wMCb8yqYT!f_Dkd^x*~4;mRH@5Qo20v=E|>$VqC@0O7MV&XBHaW9 zW0v7ZX%j2h@wnGvvh=J7LRGY{b2UNbsxmF9n2&CzGiN%Qmm_t>c{) ztQuz^;KZ5q>n>yafX8tesFDxa>m6*UdjKg5;;g{Dr$WMpzZ2nBpuP8O;4g(xJ^ykCx!0+2Kfl`+y||G> z4`!wz3X8*on+t;=uS4|Osv9O&f4Mj=?HLBjwW%61ZZL*CqP1oV=lPaFXZV~N*yId*tV*Rps32dv zOmMJ$GT>c)n50;PZM>6IcKO_9!EXcRYk#7%tCf^_C@`mib82#WJcoGB)C_MeS!*+vFL2 z{L28^J{suT_I(Yfg~yr1EcN6@+G>+Pj)3Wxe-SA@?$UXG?y$SwK;ja+;eWUPi!XqA zWTK6wpsG+rZPgQL(w}mg8ChafiR?dJMbEKcCXl_~^6@kFUB{vn@hdftxq^j(B-x%< z7CpzWAsfyQmm7&|O!PmD zol|!%Ot5ZaTPwC!Y}>Yt6+3xj+qP}nwr$(C&v&`c82e)XhaTNk)%DC-;Z>SZ&=980 zt6XE~s(9^BTRlq4bPkv`X;uKHlZl6)J6{pG+-B7EelpNRDuvE%V)sd-GI?|1Oy@sH z|JeW%wH0z~33M;?Rx$US31G^kkULoG&Gl{rmaGfKCQ*b;lo+;M;lDPN+lzo&DmaVW z+ncrq?xU#X=|s$t$0yxVKQE>dN}G)B5FM;xjB*Nm2e75f^ztpnXC!b=Ph7?f0W25_ z3+z?kU{*IJ#m3`^0PQlCMfZuA^B@KTcIf*8xN44X#TrjzHCm0^yOzv3IH{V?ygf}k>eB^qCg zrndCe(X6^_uhtf6i^Rp&&k2KIoESbLB%nmGbM%Wx{1J zA*dsk`sT&3>&6pQXhpB}%kAHCZXnZIVL`b`IRpI?vPjJ`HVKE{kkcmisH2jYJJPeQ`vw zT-p@i<0B`0wYaVcz{ZNYchEFymEf`0vR!t@vq5AJjVjWm*T9v#vI6spuT%HG(E70l z`c#+6+BD+@{&8Aut2ltic zw(Z%z?j<( z7OQXh(KxT9^N0yX5Z}<&&~5e&F@YzcK5R6Dua!F;rZS*=+<2QBg@e#j$bLM<Ft%lI^0jrJ+YS?g(&6{3 zQt!4}w~**2z}c*sKyes_?0Lk)R6Pp_6w~3eYF)ZlJM+HXF2=<^8?{A7Yi-R#2ta?I z`cqWo6@7Zx*}1x^vbpFY4PUEN)?3>ECReG7Nn&RK0{Uz>K#!+y5lLWuyBwLboPoM- z5o8L{byRikF)r3SDxX2QA_weR#kqx3Nr-2ACWN^A?@i47FqUp|QeFIh(bXSAAiM%pTngw)ljucR*?xr7gZfZhDHXcQM`VzL4BP>1jmLmQR1xYsN|X? z{hH+ab}dY2pT0PyF$?{5s)kBbQ;lP!|0|gBzrEq8{(`~Bk1-u})=C9XfuYC$204q` z7mXOu28jfnxbz-&#%gevt(2mddRsQiYd#gt1rz4GcjOB$sUCCZF_X7#8rtR%y6wFh z(XudvRY}_rfB#DJyp}Z*4a-1jfTzfNMj$d~Wik9Z5wFR4Hu@&|;Pr!uM1k!WY@vol zXM&nkPocg@N1y*nLO{ebAVkFV&XW@?8nX9&o-=>|w zax;IUyu7mVMLF0jdHnOjmd>h`ilj&tV5H@trKI=y6uGRugM@l(^=FjN3fMp( zYB%e*td%TbuBV~aKwqq5;$j4q%y1G6Y}$L{BYO3cl}UOPtbL>LCFnX|%Jk57jop3T zQzvwtE^V-6WfY-?4sQUq2D?{jC|xBKv1Yl_*zEVBJv22>On zQLpMc%%R;M?oYj7!DV#(5yg}>KzrzR4wGezRPke~%tA3;6K>wk!&3NxG7{q4dUvDR z2I8JmG=0XDjYgfrr5_s`OQnj#_+Z%D)6_03>yD-^_rxMfhbPUK)Zs6l`?^_6{BZX= z^iUK;i28+LD*|xxK0~l90CP7EoiXl_a#K9ThC6XE&zv79|L`c z>9eZ?URvi&UodLWazRYHxRP|(K4Xg(3|>a~)LVz=7!-p5Yy(=iMGl*&-925`_QI8z zKJ0jZq+>Ud<+G4eoXzFPE(ILqt<+o)t`S#5>4ZKOf3%eSjJ9w><;In4f>GZa-TMca zoN!SIx@U#|RatW|8sd!q1TWfYpm^L68*%&%)vCR+p+yaDeu7K>Ot(%%#ljuT|KwFi z(bYB5N;C76+l%~y5aZkofamZY+T8h~Z?Z36I*G`zs< zfY%i3F&*G*dsapT7LCEaT#|F?(`jv!ywEu_Z5mb}TK1vI^Z(T@1)-`^+?odGWv9I< zi2S6qV%{PCia8_albY^!wN{a&LaP2oaJJuQ*g02)t19PLf8TjmcvPA)kCPnw7`BNm zcP;JHh?f}i4r+)8t@PWps$}cAs_@E)TyY_QUnVR8kLqj%Z^FxO`;uF`>skOGNcOGZ zai@FVU(5_CE}IIWCOzoo7s`BggJycDJo6R0(09>;L{knW2f}K$$V0 z_?BFgQqW*9HUyT1ZKPSWg zAMbnN1w<-sbc3v-h6wG6-J_GdL-y|1!%9=v(`|^3u9g7&W`#M33^9C0&!Tn0 z2)+By~2pSM!yaBTKmC4Otuy}OfgwBn=l{Q0tQ*oBmtadi}6@5dFsK9&7w-3 zQY9vQKmEkb9%rI5KNC?X*W_qw5)jSAjIVIHGVp+%1O(rDqps_MAmo*XE-KimlBL@8 zE|rcv6;CTc7N?JsPE==N0yCTxIt4UJxW(c+!T2?O_=r%7PBv3{Nf{WmC*%4OhNnZv z+^};Y(9pDZ3_y1Wuc%mT@Y^^3lTO)5Mmu7R1!5|D6P&eR z$F90cwCdyMS~R{Be)+Xl3Tc5%F*(+bzEk3x2|tT{d1Ob@wN}|Bx$oLE|49p{ywS+l zX`6e#NnDw9L4|l52C5^_{#xawY+SJ9wy(+gy-LPI7Fu6^(>z;G(5F&utEgLNvy6M$ zvHREa?XExCcQ9slJ>;cq(^fuze91n|CGqv-835#YxI4COo+{>m(>`Fg7EQ_S%V@oA zZ0W2(FaMyO=E>N7vq-$$pv*cKhpcDze?P5<9URO9SWLIe`_4<)pzMwK{%=DHBeN|R zeWs|3Ak*Mim|KXAMQy@y4I1h-_A_YfjGiVU#cv7fpsJV;KEtECVGT$NI;p!zv(pA1 z3F8D3@UEJnEJiVOOO~0r?V9fXL70J}1=K!$B+@Uy$e!;~hrC^Ws8%@9VpmGN+J~~( z?Dm1#-<94)2)$bs+P_yO43(gOx8Oq-c#HjCIz`vZa?5AEL(I9Ef*)#g#MIEaw3X^3 zTG|?tY4rNyyhtZBf64SYut2c2J4Qu1X*$~+A%tZC_=3~2!C%Nx?X<;w0_y{I)!j)E zUYhD)DSp#d7b$?idQr6yCEr`CahmJ+F=?pIBv>flAg7meiL*v}Gr)e`>^|?Q{!@=SS7^uSFj#__wWp3j%C4g6_BxYjF~iOwiZ4*HRKGfTs1wWnhHktTiQ17f z{HkzJLTePCWMHP|gL_rRu zx8nnh2x_g#`-cHF-mRYu!xNKV)pt5g)Phyeo;pq2ea~AusX?9PtV5m-Fe?6)e28RKa2^ZWXx#(Y?jm>f1dVh_fb$Bjb+vG^ zdVnCY%2P3NbQ3|U)i*sk8RY%cn>rfv{i{PPvUT#)bz@0pIvA0ceFHJB%l8&$`6R{+s_mG z22W}ge@t_?P+cCA#+w|u-YB89Qp7X(J$>JeqK<=JCopKffuuq9O@`i*;zBbhe__aw zgw-SGv#TQ=nof4~>pd!r?Ew8DN4o^SY?YEt?aB-prGF z|Fm_9L}5SxS9tR_ztf_q4Wa&=RYCHy48%^W#Fc&(z{3~@H8MvJ0fRU zbn4$)U2dR<nPs?Cn8OC}Pf&a^1&f@SC97};qb_h`+;@JUv ze#I>G%&u_#MmmxoLFlqbvF(L1su>Rr_dU?M|9x|{GtZ0Phx4_OCYW;=nd z%;qOyF*sTR&d!Fm2?hF}{di<3{JfR;;13u4Vn2N06QnwAa>}fMJwMhgkZAhXVNZxn_hy zkrbIOy(b_7$dg)j?NAb5gSy6nSv#-6sF1c(Kt(6#Ib#7DXnPA>NeM zq=K9GUug-Svul|vJuY>}6deFov+3MTnS$+qE7b~rO`xKnW^Wt9Z{oT#DRH%DnMwue zRCOL99cPB5L`xeJ$z=W7zq3dKJ4jM2Q%WjB+mpp4tV_4sn5MkHn$7_UsYD-ke=}Sr z>*IVP;KKiifJAz{au_`e#0fT?N5Vy*HahUcNsnNi5UKGp$>%7;Q}UH|8~ETC3mO$YWPg1TAx!!U-~6G(boZ&Ac}~| zhefPdbGI!hEV_f0C)4kni@&2Gur#Vt2SNKs7jCK;-k@vyZHG9k>U3{Kys)u)6#3=N zCRgGdUv738M|0ANMe@Ac=2=PQp8qoxd)351(4^H0L2N_JVtSOm<{jwG;ySJ?Vm)k{ z_l`wU3K_CBRY>c&f{B#n7RO$Fb|ZXs;KA>VUI3( z0Q#6-?#^ry3RCp%m>s^S<)&Ip$m`t8V@ys=Ow{ zcHdIqwnOYO0Aj-h5vMC*W8`+Fg z54>0O?2=vNa|-gsCL0td>=rgKa&n27)PJMx@j2?ee5oDaY>QZs9h~@a zNuG%K?@O`IYgL6qS`!F;o)1&6#lUWcbc|NkySG-*s!v-O8*?FEOF_X}zw08HcY-!f zhR^nEpTN=DPl@8m%e#@%)g!$-0|h%E1}v3yY)ueb`!zu>>hXTwrym|vS;8yH4<>0w z)Tfd%mwqzv$^|E6P>gnBhp=Z|s=iO=Cz6#w56!OC!Y2RKKT!3;A>h17pebCtVM{xgeCQKzg_@=F!y zu$`RQkUmW6Z3kYroWlwj7Hj212lPCwUs2Y^X!@?tlVFOUms{Y3A{f_WOGShqxC3Qf zA>pdnu}qe2#T)uQ%aW>k_RDQ8h&8?^6kE{CUvW*s@^0qIEL0xY^Dl%jS-%6p3et*e ziNd^(K~+k7hH(3|=v7X@p?I!)P^upw6%^&3@;o<*-$nzq#?@azz=D(|OBpU!-fszD z1_BT^U5Y}P4UpAz+$ER{c4yg!!5PtEJt?Yf8g8OoGW*d)o*A~#*k^C$R_&Jqf>q64 zFhXy(J=DnFNh5n5K#&V_E-1{*4XQr7a|h(W-v1g*Cz(NobV9)P^_uq;S7I(4T>n;+o% zSMjF~PaDDzCHzoar-u41mz;nuyTT7}AgVutNQu%ZAI#D5o6wwgH(!{wVFI|U&Vh9H z#x(1SXLZExKLMeM{Px!2OB_KPGaAn&UYL@K3Bp1+pckbaat%n1AqcD<)GS?hq+#b$ z4YPK5K!Lr5Q0NE~pe!_4(JDRV#Et}-{j$)pDzkB?e0;y?WsN}d zHh&_WA}*N>07iBMbdft9uua!Bl2@o~++CG_)p|fD{Jv%ZV`hR;tCi$7E8UFleTB?X z!%Yk#-sJH66ufQjfcV19%$Xyk;Us!F%B4DAEyRySifrwU4;&K`Wgl8b5Bg0t*ybJo zmG)Qo`%cN2E&sysRmnT}*j-kP^sm=9Q|09pb0<7`{+l90wmi;>RS0>U$5}VVDN z!BL~F>K#}(?R1fWpV5EHnIp~A26n`N5f76N$-)AeLb#z;+k@J?I=nrdG-;kN*HGfV zP=yjZX0H5ll9ytk?gG{61H7R!VXa*JcJA~D17jWplWvt0L4kyo^V^v@b(6dyleE-? z**7&Is3@g6{QeWt@is%v>#;^1DEG~8u0yh|KvLH!WN5N+C{!;32t5 zR^dxxK+}*yblwG{2+meL>v+op;erb}B0$UAfb@4V5q$jSFqV(%I#JV(c5mmm1yag4 zF|OxPQ*}FRIw@gE!LFJJZAyg8hFldy^wGdjG3bd_ODL9!CdRlDjuqwKpF-jdMu;D$ zqxJ|sXX@|5GU8S%+IJnSS?4#$s`&EO7aa0Tc&o-63~MogV0?sZ#;0O@_x7PqT+sXz z6-athqbm6UM}ii9L5do#^beINi`^ZeKfN*N>33w z=5C(l=?IOFXw3Z$crAGz?os{}@Gr8p*#QEnym^bHTb_v8FK%qRoBUwb;u!|7&|Aa= zSR=ikyUEDna&Q9;P$5msZfSNi|&^8-}%S4=3c8`J8GBEKMHXr(@ z4vst<;(f&@fCQ8#kZoVeQtZER60{D~@Tebax^sCi@AC1s!uP_X_yF%m#+AI1zB^W# zHj`Csb<6T44gKED_1aiUh)q$51I?jfYx4bY%VZ$jszFt48#}lPdInLFQ%ICn;DvT~ zw)aquaMjn}S=`g#4v;sVj8lcaG~FDWi&CcpaT!VgEnM2LZ!@`q>K8YyS;jw8DjEZQ zn^p?$5*yocR6_5q4;WgwL0epX8J-f{rco}F8%^6+B4N70=rF|R4*7K*MoJaq8P0%6 zTzJJ8Oti+_35IBNT`4BI2R}*a#8a_Cba@&TJ8lhB@-#lt0<)D8?+G}g&OFcQrw)6@ z*p%$95~!wbv0;zUIo;*j=T8WcDRBdN{r08HXcz=U-Ye5kp^JKA3Hp4u(qdT`P-`@N zXjn_{A|jV)Yne=(GX7^s=T=r5{FFzyWZ%U)@ve$=cIS(=ze`uh8D$45v) zZEG1uO}8=cRQ>ZQVeH3^*@nAhDmZMD0zJK?8d-Fc`=tuDYE zhP|5xDvqJ7w%e=K8yb^8;@aDXHRYeGBcUqr9-LkW@tLjxL zbMkP^oc(BwtaMxm=R*HX0x21flstLRp?qz**%qQ&@RtMcH`z8Te$JnHE@q`zHydYpoGrRlOo+SHB>Ro%pjiLc6?p zB*)3tuxe?S>@5(20UL=Dt)Rsa@l!`{wG-ux*FJp_h#<{w!_3x^{Q9hwYWhU9;!9&} z?q|mxfd^Coj@F8%LPB3v4^rFd;UP}@B4|Fo4%VX8)VH=VUS|Prrk-;E*~MvSYr;o?GN@L&7!Xt&k#q*4d1p;f3z&0bn;! zF|Fp^_07VlPVW-KQ z_W@?I9Z)^+rNpEb*HN=v@LCc^&51w5cT$|~?;mB^P}Qz5hqDr8ly^BP6Twqe&x`?w zq471g*ZT)rjSbQNLt9=kukGFAwk4{ECZLyqA%#6H3<6^_v`kFPF1%y0-b3`-m(U#A*YGFk{5p5&*sK9#p`9FVU`S@S;< zC8yX9rzT_=$&TGNLVM{&iY06Qu1rzQlmM}_Z9LD}XC=ATr zKuJ0~h(GQ7lzX5=s7zOH=yElV5%ubOE*8i;s?) z%$yq;%rS0RSEn@m?RJ1LAO5;24U}n!2ronth}k4POcvXidc$#^5=LN%uMox9&z@8h zyUZ8Z{0n}~tue+y_$ul9u@!cSiCmM{%cHVMO$9xqJ9t9VV# zhE%AY!=5qAkgQ2M$yLOGb(iH?Ru;|X?#jWV^0$T*(asPRD==3dsC|~$IfIq%_QvR&l@cw!2Qa&ygUdnb zbwnqnS?f;szA~82AUU;N^bxOcvxqmRjMx0zoH(?1_fAq+DONnK%0DR9PBg#ZczXZn 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