diff --git a/.gitignore b/.gitignore index ff1d0ee..993783b 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ lib/readme.txt # Extras extras/docs/* +extras/Module Datasheets/* diff --git a/extras/doc/A6 A7 A6C A20 - AT instructions v1.03.pdf b/extras/AT Command Manuals/A6 A7 A6C A20 - AT instructions v1.03.pdf similarity index 100% rename from extras/doc/A6 A7 A6C A20 - AT instructions v1.03.pdf rename to extras/AT Command Manuals/A6 A7 A6C A20 - AT instructions v1.03.pdf diff --git a/extras/doc/Digi XBee 3G Global Users Guide - 90001541.pdf b/extras/AT Command Manuals/Digi XBee 3G Global Users Guide - 90001541.pdf similarity index 100% rename from extras/doc/Digi XBee 3G Global Users Guide - 90001541.pdf rename to extras/AT Command Manuals/Digi XBee 3G Global Users Guide - 90001541.pdf diff --git a/extras/doc/Digi XBee LTEC1 Users Guide - 90001525.pdf b/extras/AT Command Manuals/Digi XBee LTEC1 Users Guide - 90001525.pdf similarity index 100% rename from extras/doc/Digi XBee LTEC1 Users Guide - 90001525.pdf rename to extras/AT Command Manuals/Digi XBee LTEC1 Users Guide - 90001525.pdf diff --git a/extras/doc/Digi XBee S6B Users Guide - 90002180.pdf b/extras/AT Command Manuals/Digi XBee S6B Users Guide - 90002180.pdf similarity index 100% rename from extras/doc/Digi XBee S6B Users Guide - 90002180.pdf rename to extras/AT Command Manuals/Digi XBee S6B Users Guide - 90002180.pdf diff --git a/extras/doc/Digi XBee3 LTEC1 Users Guide - 90002253.pdf b/extras/AT Command Manuals/Digi XBee3 LTEC1 Users Guide - 90002253.pdf similarity index 100% rename from extras/doc/Digi XBee3 LTEC1 Users Guide - 90002253.pdf rename to extras/AT Command Manuals/Digi XBee3 LTEC1 Users Guide - 90002253.pdf diff --git a/extras/doc/Digi XBee3 LTECM Users Guide - 90002258.pdf b/extras/AT Command Manuals/Digi XBee3 LTECM Users Guide - 90002258.pdf similarity index 100% rename from extras/doc/Digi XBee3 LTECM Users Guide - 90002258.pdf rename to extras/AT Command Manuals/Digi XBee3 LTECM Users Guide - 90002258.pdf diff --git a/extras/doc/ESP8266 - AT Command Examples 1.3.pdf b/extras/AT Command Manuals/ESP8266 - AT Command Examples 1.3.pdf similarity index 100% rename from extras/doc/ESP8266 - AT Command Examples 1.3.pdf rename to extras/AT Command Manuals/ESP8266 - AT Command Examples 1.3.pdf diff --git a/extras/doc/ESP8266 - AT Instruction Set v2.0.0.pdf b/extras/AT Command Manuals/ESP8266 - AT Instruction Set v2.0.0.pdf similarity index 100% rename from extras/doc/ESP8266 - AT Instruction Set v2.0.0.pdf rename to extras/AT Command Manuals/ESP8266 - AT Instruction Set v2.0.0.pdf diff --git a/extras/doc/ESP8266 - AT Instruction Set v2.1.0.pdf b/extras/AT Command Manuals/ESP8266 - AT Instruction Set v2.1.0.pdf similarity index 100% rename from extras/doc/ESP8266 - AT Instruction Set v2.1.0.pdf rename to extras/AT Command Manuals/ESP8266 - AT Instruction Set v2.1.0.pdf diff --git a/extras/doc/ESP8266 - AT Instruction Set v3.0.0.pdf b/extras/AT Command Manuals/ESP8266 - AT Instruction Set v3.0.0.pdf similarity index 100% rename from extras/doc/ESP8266 - AT Instruction Set v3.0.0.pdf rename to extras/AT Command Manuals/ESP8266 - AT Instruction Set v3.0.0.pdf diff --git a/extras/doc/Gemalto ELS31 AT Commands.pdf b/extras/AT Command Manuals/Gemalto ELS31 AT Commands.pdf similarity index 100% rename from extras/doc/Gemalto ELS31 AT Commands.pdf rename to extras/AT Command Manuals/Gemalto ELS31 AT Commands.pdf diff --git a/extras/doc/Neoway M590 - AT Command Sets v3.0.pdf b/extras/AT Command Manuals/Neoway M590 - AT Command Sets v3.0.pdf similarity index 100% rename from extras/doc/Neoway M590 - AT Command Sets v3.0.pdf rename to extras/AT Command Manuals/Neoway M590 - AT Command Sets v3.0.pdf diff --git a/extras/AT Command Manuals/Quectel_BC95_AT_Commands_Manual_V2.0.pdf b/extras/AT Command Manuals/Quectel_BC95_AT_Commands_Manual_V2.0.pdf new file mode 100644 index 0000000..9e6ae50 Binary files /dev/null and b/extras/AT Command Manuals/Quectel_BC95_AT_Commands_Manual_V2.0.pdf differ diff --git a/extras/doc/Quectel_BG96_AT_Commands_Manual_V2_0.pdf b/extras/AT Command Manuals/Quectel_BG96_AT_Commands_Manual_V2_0.pdf similarity index 100% rename from extras/doc/Quectel_BG96_AT_Commands_Manual_V2_0.pdf rename to extras/AT Command Manuals/Quectel_BG96_AT_Commands_Manual_V2_0.pdf diff --git a/extras/doc/Quectel_BG96_SSL_AT_Commands_Manual_V1.0.pdf b/extras/AT Command Manuals/Quectel_BG96_SSL_AT_Commands_Manual_V1.0.pdf similarity index 100% rename from extras/doc/Quectel_BG96_SSL_AT_Commands_Manual_V1.0.pdf rename to extras/AT Command Manuals/Quectel_BG96_SSL_AT_Commands_Manual_V1.0.pdf diff --git a/extras/doc/Quectel_BG96_TCPIP_AT_Commands_Manual_V1.0.pdf b/extras/AT Command Manuals/Quectel_BG96_TCPIP_AT_Commands_Manual_V1.0.pdf similarity index 100% rename from extras/doc/Quectel_BG96_TCPIP_AT_Commands_Manual_V1.0.pdf rename to extras/AT Command Manuals/Quectel_BG96_TCPIP_AT_Commands_Manual_V1.0.pdf diff --git a/extras/doc/Quectel_GSM_SSL_TCP_Application_Note.pdf b/extras/AT Command Manuals/Quectel_GSM_SSL_TCP_Application_Note.pdf similarity index 100% rename from extras/doc/Quectel_GSM_SSL_TCP_Application_Note.pdf rename to extras/AT Command Manuals/Quectel_GSM_SSL_TCP_Application_Note.pdf diff --git a/extras/doc/Quectel_GSM_TCPIP_Recommended_Process_V1.2.pdf b/extras/AT Command Manuals/Quectel_GSM_TCPIP_Recommended_Process_V1.2.pdf similarity index 100% rename from extras/doc/Quectel_GSM_TCPIP_Recommended_Process_V1.2.pdf rename to extras/AT Command Manuals/Quectel_GSM_TCPIP_Recommended_Process_V1.2.pdf diff --git a/extras/doc/Quectel_M35_AT_Commands_Manual_V1.0.pdf b/extras/AT Command Manuals/Quectel_M35_AT_Commands_Manual_V1.0.pdf similarity index 100% rename from extras/doc/Quectel_M35_AT_Commands_Manual_V1.0.pdf rename to extras/AT Command Manuals/Quectel_M35_AT_Commands_Manual_V1.0.pdf diff --git a/extras/doc/Quectel_M95_at_commands_manual_v1.3.pdf b/extras/AT Command Manuals/Quectel_M95_at_commands_manual_v1.3.pdf similarity index 100% rename from extras/doc/Quectel_M95_at_commands_manual_v1.3.pdf rename to extras/AT Command Manuals/Quectel_M95_at_commands_manual_v1.3.pdf diff --git a/extras/doc/Quectel_MC60_AT_Commands_Manual_V1.1.pdf b/extras/AT Command Manuals/Quectel_MC60_AT_Commands_Manual_V1.1.pdf similarity index 100% rename from extras/doc/Quectel_MC60_AT_Commands_Manual_V1.1.pdf rename to extras/AT Command Manuals/Quectel_MC60_AT_Commands_Manual_V1.1.pdf diff --git a/extras/AT Command Manuals/SIM7000 Series_AT Command Manual_V1.03.pdf b/extras/AT Command Manuals/SIM7000 Series_AT Command Manual_V1.03.pdf new file mode 100644 index 0000000..8ab0e78 Binary files /dev/null and b/extras/AT Command Manuals/SIM7000 Series_AT Command Manual_V1.03.pdf differ diff --git a/extras/AT Command Manuals/SIM7000 Series_TCPIP_Application Note_V1.01.pdf b/extras/AT Command Manuals/SIM7000 Series_TCPIP_Application Note_V1.01.pdf new file mode 100644 index 0000000..0c4120c Binary files /dev/null and b/extras/AT Command Manuals/SIM7000 Series_TCPIP_Application Note_V1.01.pdf differ diff --git a/extras/doc/SIM800 Series AT Command Manual V1.09.pdf b/extras/AT Command Manuals/SIM800 Series AT Command Manual V1.09.pdf similarity index 100% rename from extras/doc/SIM800 Series AT Command Manual V1.09.pdf rename to extras/AT Command Manuals/SIM800 Series AT Command Manual V1.09.pdf diff --git a/extras/doc/SIM800 Series AT Command Manual V1.10.pdf b/extras/AT Command Manuals/SIM800 Series AT Command Manual V1.10.pdf similarity index 100% rename from extras/doc/SIM800 Series AT Command Manual V1.10.pdf rename to extras/AT Command Manuals/SIM800 Series AT Command Manual V1.10.pdf diff --git a/extras/doc/SIM800 Series_SSL_Application Note_V1.01.pdf b/extras/AT Command Manuals/SIM800 Series_SSL_Application Note_V1.01.pdf similarity index 100% rename from extras/doc/SIM800 Series_SSL_Application Note_V1.01.pdf rename to extras/AT Command Manuals/SIM800 Series_SSL_Application Note_V1.01.pdf diff --git a/extras/doc/SIM900 AT Commands v1.11.pdf b/extras/AT Command Manuals/SIM900 AT Commands v1.11.pdf similarity index 100% rename from extras/doc/SIM900 AT Commands v1.11.pdf rename to extras/AT Command Manuals/SIM900 AT Commands v1.11.pdf diff --git a/extras/AT Command Manuals/Sequans Monarch AT Command Manual R3.pdf b/extras/AT Command Manuals/Sequans Monarch AT Command Manual R3.pdf new file mode 100644 index 0000000..84c8f7c Binary files /dev/null and b/extras/AT Command Manuals/Sequans Monarch AT Command Manual R3.pdf differ diff --git a/extras/doc/Sequans Monarch AT Commands.pdf b/extras/AT Command Manuals/Sequans Monarch AT Command Manual R5.pdf similarity index 100% rename from extras/doc/Sequans Monarch AT Commands.pdf rename to extras/AT Command Manuals/Sequans Monarch AT Command Manual R5.pdf diff --git a/extras/doc/Telit 3G Modules AT Commands Reference Guide r11-1.pdf b/extras/AT Command Manuals/Telit 3G Modules AT Commands Reference Guide r11-1.pdf similarity index 100% rename from extras/doc/Telit 3G Modules AT Commands Reference Guide r11-1.pdf rename to extras/AT Command Manuals/Telit 3G Modules AT Commands Reference Guide r11-1.pdf diff --git a/extras/doc/Telit CE910 AT Commands Reference Guide r5.pdf b/extras/AT Command Manuals/Telit CE910 AT Commands Reference Guide r5.pdf similarity index 100% rename from extras/doc/Telit CE910 AT Commands Reference Guide r5.pdf rename to extras/AT Command Manuals/Telit CE910 AT Commands Reference Guide r5.pdf diff --git a/extras/doc/Telit HE910 AT Command Reference Guide r0.pdf b/extras/AT Command Manuals/Telit HE910 AT Command Reference Guide r0.pdf similarity index 100% rename from extras/doc/Telit HE910 AT Command Reference Guide r0.pdf rename to extras/AT Command Manuals/Telit HE910 AT Command Reference Guide r0.pdf diff --git a/extras/doc/Telit LE866 AT Commands Reference Guide r5.pdf b/extras/AT Command Manuals/Telit LE866 AT Commands Reference Guide r5.pdf similarity index 100% rename from extras/doc/Telit LE866 AT Commands Reference Guide r5.pdf rename to extras/AT Command Manuals/Telit LE866 AT Commands Reference Guide r5.pdf diff --git a/extras/doc/Telit LE910 AT Commands Reference Guide r14.1.pdf b/extras/AT Command Manuals/Telit LE910 AT Commands Reference Guide r14.1.pdf similarity index 100% rename from extras/doc/Telit LE910 AT Commands Reference Guide r14.1.pdf rename to extras/AT Command Manuals/Telit LE910 AT Commands Reference Guide r14.1.pdf diff --git a/extras/doc/Telit ME910C1 AT Commands Reference Guide r2.pdf b/extras/AT Command Manuals/Telit ME910C1 AT Commands Reference Guide r2.pdf similarity index 100% rename from extras/doc/Telit ME910C1 AT Commands Reference Guide r2.pdf rename to extras/AT Command Manuals/Telit ME910C1 AT Commands Reference Guide r2.pdf diff --git a/extras/doc/Telit Modules Software User Guide 2G3G4G r20.pdf b/extras/AT Command Manuals/Telit Modules Software User Guide 2G3G4G r20.pdf similarity index 100% rename from extras/doc/Telit Modules Software User Guide 2G3G4G r20.pdf rename to extras/AT Command Manuals/Telit Modules Software User Guide 2G3G4G r20.pdf diff --git a/extras/doc/Telit_LE866-ME866_Series_AT_Commands_Refernce_Guide_r7.pdf b/extras/AT Command Manuals/Telit_LE866-ME866_Series_AT_Commands_Refernce_Guide_r7.pdf similarity index 100% rename from extras/doc/Telit_LE866-ME866_Series_AT_Commands_Refernce_Guide_r7.pdf rename to extras/AT Command Manuals/Telit_LE866-ME866_Series_AT_Commands_Refernce_Guide_r7.pdf diff --git a/extras/doc/WNC M14A2A AT&T Commands Guide v1.7.pdf b/extras/AT Command Manuals/WNC M14A2A AT&T Commands Guide v1.7.pdf similarity index 100% rename from extras/doc/WNC M14A2A AT&T Commands Guide v1.7.pdf rename to extras/AT Command Manuals/WNC M14A2A AT&T Commands Guide v1.7.pdf diff --git a/extras/doc/u-blox Cellular ATCommands R54 (UBX-13002752).pdf b/extras/AT Command Manuals/u-blox Cellular ATCommands R54 (UBX-13002752).pdf similarity index 100% rename from extras/doc/u-blox Cellular ATCommands R54 (UBX-13002752).pdf rename to extras/AT Command Manuals/u-blox Cellular ATCommands R54 (UBX-13002752).pdf diff --git a/extras/doc/u-blox Cellular ATCommands R57 (UBX-13002752).pdf b/extras/AT Command Manuals/u-blox Cellular ATCommands R57 (UBX-13002752).pdf similarity index 100% rename from extras/doc/u-blox Cellular ATCommands R57 (UBX-13002752).pdf rename to extras/AT Command Manuals/u-blox Cellular ATCommands R57 (UBX-13002752).pdf diff --git a/extras/doc/u-blox SARA-R4 AT Commands Manual r5 (UBX-17003787).pdf b/extras/AT Command Manuals/u-blox SARA-R4 AT Commands Manual r5 (UBX-17003787).pdf similarity index 100% rename from extras/doc/u-blox SARA-R4 AT Commands Manual r5 (UBX-17003787).pdf rename to extras/AT Command Manuals/u-blox SARA-R4 AT Commands Manual r5 (UBX-17003787).pdf diff --git a/extras/doc/u-blox SARA-R4 SARA-N4 AT Commands Manual r10 (UBC-17003787).pdf b/extras/AT Command Manuals/u-blox SARA-R4 SARA-N4 AT Commands Manual r10 (UBC-17003787).pdf similarity index 100% rename from extras/doc/u-blox SARA-R4 SARA-N4 AT Commands Manual r10 (UBC-17003787).pdf rename to extras/AT Command Manuals/u-blox SARA-R4 SARA-N4 AT Commands Manual r10 (UBC-17003787).pdf diff --git a/extras/doc/u-blox SARA-U2 ProductSummary (UBX-13004142).pdf b/extras/AT Command Manuals/u-blox SARA-U2 ProductSummary (UBX-13004142).pdf similarity index 100% rename from extras/doc/u-blox SARA-U2 ProductSummary (UBX-13004142).pdf rename to extras/AT Command Manuals/u-blox SARA-U2 ProductSummary (UBX-13004142).pdf diff --git a/library.json b/library.json index c49992d..a4e6315 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "TinyGSM", - "version": "0.4.3", + "version": "0.4.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 and wifi modules with AT command interfaces.", "keywords": "GSM, AT commands, AT, SIM800, SIM900, A6, A7, M590, ESP8266, SIM800A, SIM800C, SIM800L, SIM800H, SIM808, SIM868, SIM900A, SIM900D, SIM908, SIM968, M95, MC60, MC60E, BG96, ublox", "authors": diff --git a/library.properties b/library.properties index 8c65d1a..7644cb5 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=TinyGSM -version=0.4.3 +version=0.4.4 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 5e9d84d..c254623 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -121,7 +121,8 @@ public: virtual int read(uint8_t *buf, size_t size) { TINY_GSM_YIELD(); size_t cnt = 0; - while (cnt < size && sock_connected) { + 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); @@ -130,7 +131,7 @@ public: continue; } // TODO: Read directly into user buffer? - if (!rx.size()) { + if (!rx.size() && sock_connected) { at->maintain(); } } diff --git a/src/TinyGsmClientBG96.h b/src/TinyGsmClientBG96.h index 5809f04..efa8d0d 100644 --- a/src/TinyGsmClientBG96.h +++ b/src/TinyGsmClientBG96.h @@ -122,7 +122,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); diff --git a/src/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index 91f0319..6e7fda5 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -118,7 +118,8 @@ public: virtual int read(uint8_t *buf, size_t size) { TINY_GSM_YIELD(); size_t cnt = 0; - while (cnt < size && sock_connected) { + 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); @@ -127,7 +128,7 @@ public: continue; } // TODO: Read directly into user buffer? - if (!rx.size()) { + if (!rx.size() && sock_connected) { at->maintain(); } } diff --git a/src/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index fa4eb57..092dfdd 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -118,7 +118,8 @@ public: virtual int read(uint8_t *buf, size_t size) { TINY_GSM_YIELD(); size_t cnt = 0; - while (cnt < size && sock_connected) { + 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); diff --git a/src/TinyGsmClientM95.h b/src/TinyGsmClientM95.h index 2642b2f..1e132c7 100644 --- a/src/TinyGsmClientM95.h +++ b/src/TinyGsmClientM95.h @@ -122,7 +122,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); diff --git a/src/TinyGsmClientMC60.h b/src/TinyGsmClientMC60.h index 08cd77d..fd67780 100644 --- a/src/TinyGsmClientMC60.h +++ b/src/TinyGsmClientMC60.h @@ -126,7 +126,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); diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 924275a..a23ec5a 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -135,7 +135,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); @@ -144,6 +144,13 @@ public: continue; } // TODO: Read directly into user buffer? + // 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(); if (sock_available > 0) { sock_available -= at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux); diff --git a/src/TinyGsmClientUBLOX.h b/src/TinyGsmClientUBLOX.h index 43a1c63..2a2aa2e 100644 --- a/src/TinyGsmClientUBLOX.h +++ b/src/TinyGsmClientUBLOX.h @@ -120,7 +120,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); diff --git a/src/TinyGsmClientXBee.h b/src/TinyGsmClientXBee.h index 8191330..b7a4553 100644 --- a/src/TinyGsmClientXBee.h +++ b/src/TinyGsmClientXBee.h @@ -578,6 +578,8 @@ public: bool networkDisconnect() { if (!commandMode()) return false; // return immediately sendAT(GF("NR0")); // Do a network reset in order to disconnect + // NOTE: On wifi modules, using a network reset will not + // allow the same ssid to re-join without rebooting the module. int res = (1 == waitResponse(5000)); writeChanges(); exitCommand();