From ff574d69ef9df84051aa9e7f7bfabb1de16550d4 Mon Sep 17 00:00:00 2001 From: SRGDamia1 Date: Wed, 20 Sep 2017 16:32:42 -0400 Subject: [PATCH] Work-around for boards missing the ip.fromString() method --- .travis.yml | 10 ++-- TinyGsmClientA6.h | 28 +++++++---- TinyGsmClientESP8266.h | 3 +- TinyGsmClientM590.h | 19 ++++++-- TinyGsmClientSIM800.h | 16 +++++-- TinyGsmClientXBee.h | 50 +++++++++++++++++-- tools/test_build/test_build.ino | 79 +++++++++++++++++++++++++++++++ tools/test_buildA6/test_build.ino | 11 +++-- 8 files changed, 185 insertions(+), 31 deletions(-) create mode 100644 tools/test_build/test_build.ino diff --git a/.travis.yml b/.travis.yml index 7081cc9..35edb1e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,11 +18,11 @@ env: - PLATFORMIO_CI_SRC=tools/FactoryReset # Arduino test - - PLATFORMIO_CI_SRC=tools/test_buildA6 PLATFORMIO_CI_ARGS="--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_buildESP8266 PLATFORMIO_CI_ARGS="--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_buildM590 PLATFORMIO_CI_ARGS="--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_buildSIM800 PLATFORMIO_CI_ARGS="--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_buildXBee PLATFORMIO_CI_ARGS="--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_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_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_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_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" # Energia test - PLATFORMIO_CI_SRC=tools/test_buildA6 PLATFORMIO_CI_ARGS="--project-option='framework=energia' --board=lplm4f120h5qr" diff --git a/TinyGsmClientA6.h b/TinyGsmClientA6.h index c11c0d8..057bc92 100644 --- a/TinyGsmClientA6.h +++ b/TinyGsmClientA6.h @@ -267,6 +267,7 @@ public: } String res = stream.readStringUntil('\n'); waitResponse(); + res.trim(); return res; } @@ -277,6 +278,7 @@ public: } String res = stream.readStringUntil('\n'); waitResponse(); + res.trim(); return res; } @@ -406,8 +408,19 @@ public: } IPAddress localIP() { - IPAddress res; - res.fromString(getLocalIP()); + String strIP = getLocalIP(); + int Parts[4] = {0,0,0,0}; + int Part = 0; + for ( int i=0; i void sendAT(Args... cmd) { - streamWrite("AT", cmd..., GSM_NL); - stream.flush(); - TINY_GSM_YIELD(); - // DBG("### AT:", cmd...); + streamWrite("AT", cmd..., GSM_NL); + stream.flush(); + TINY_GSM_YIELD(); + // DBG("### AT:", cmd...); } // TODO: Optimize this! @@ -647,9 +660,6 @@ public: String r5s(r5); r5s.trim(); DBG("### ..:", r1s, ",", r2s, ",", r3s, ",", r4s, ",", r5s);*/ data.reserve(64); - bool gotData = false; - int mux = -1; - int len = 0; int index = 0; unsigned long startMillis = millis(); do { diff --git a/TinyGsmClientESP8266.h b/TinyGsmClientESP8266.h index 179424b..ada9542 100644 --- a/TinyGsmClientESP8266.h +++ b/TinyGsmClientESP8266.h @@ -358,7 +358,7 @@ public: streamWrite("AT", cmd..., GSM_NL); stream.flush(); TINY_GSM_YIELD(); - // DBG("### AT", cmd...); + // DBG("### AT:", cmd...); } // TODO: Optimize this! @@ -425,6 +425,7 @@ public: if (data.length()) { DBG("### Unhandled:", data); } + data = ""; } return index; } diff --git a/TinyGsmClientM590.h b/TinyGsmClientM590.h index 5327920..2d772e6 100644 --- a/TinyGsmClientM590.h +++ b/TinyGsmClientM590.h @@ -276,6 +276,7 @@ public: } String res = stream.readStringUntil('\n'); waitResponse(); + res.trim(); return res; } @@ -286,6 +287,7 @@ public: } String res = stream.readStringUntil('\n'); waitResponse(); + res.trim(); return res; } @@ -422,8 +424,19 @@ public: } IPAddress localIP() { - IPAddress res; - res.fromString(getLocalIP()); + String strIP = getLocalIP(); + int Parts[4] = {0,0,0,0}; + int Part = 0; + for ( int i=0; i + +TinyGsm modem(Serial); +TinyGsmClient client(modem); + +char server[] = "somewhere"; +char resource[] = "something"; + +void setup() { + Serial.begin(115200); + delay(3000); + modem.restart(); +} + +void loop() { + + // Test the start/restart functions + modem.restart(); + modem.begin(); + modem.autoBaud(); + modem.factoryDefault(); + + // Test the SIM card functions + #if defined(TINY_GSM_MODEM_SIM800) || defined(TINY_GSM_MODEM_A6) || defined(TINY_GSM_MODEM_M590) || defined(TINY_GSM_MODEM_XBEE) + modem.getSimCCID(); + modem.getIMEI(); + modem.getSimStatus(); + modem.getRegistrationStatus(); + modem.getOperator(); + #endif + + + // Test the Networking functions + modem.getSignalQuality(); + + + #if defined(TINY_GSM_MODEM_SIM800) || defined(TINY_GSM_MODEM_A6) || defined(TINY_GSM_MODEM_M590) + modem.waitForNetwork(); + modem.gprsConnect("YourAPN", "", ""); + #else + modem.networkConnect("YourSSID", "YourPWD"); + modem.waitForNetwork(); + #endif + + client.connect(server, 80); + + // Make a 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"); + + unsigned long timeout = millis(); + while (client.connected() && millis() - timeout < 10000L) { + while (client.available()) { + client.read(); + timeout = millis(); + } + } + + client.stop(); + + #if defined(TINY_GSM_MODEM_SIM800) || defined(TINY_GSM_MODEM_A6) || defined(TINY_GSM_MODEM_M590) + modem.gprsDisconnect(); + #else + modem.networkDisconnect(); + #endif +} diff --git a/tools/test_buildA6/test_build.ino b/tools/test_buildA6/test_build.ino index fd583fe..045fc22 100644 --- a/tools/test_buildA6/test_build.ino +++ b/tools/test_buildA6/test_build.ino @@ -4,11 +4,12 @@ * **************************************************************/ - // #define TINY_GSM_MODEM_SIM800 - #define TINY_GSM_MODEM_A6 - // #define TINY_GSM_MODEM_M590 - // #define TINY_GSM_MODEM_ESP8266 - // #define TINY_GSM_MODEM_XBEE +// #define TINY_GSM_MODEM_SIM800 +// #define TINY_GSM_MODEM_SIM808 +// #define TINY_GSM_MODEM_A6 +// #define TINY_GSM_MODEM_M590 +// #define TINY_GSM_MODEM_ESP8266 +// #define TINY_GSM_MODEM_XBEE #include