From 6e2a793bca91d9148fb071851d03ae512194ac67 Mon Sep 17 00:00:00 2001 From: SRGDamia1 Date: Thu, 9 Nov 2017 12:35:28 -0500 Subject: [PATCH] Added timeout to read (cherry picked from commit 29dd7fd472d8a2b89344622a660b0f254e4b2ee4) --- src/TinyGsmClientA6.h | 3 ++- src/TinyGsmClientESP8266.h | 3 ++- src/TinyGsmClientM590.h | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/TinyGsmClientA6.h b/src/TinyGsmClientA6.h index 9934396..ae655bf 100644 --- a/src/TinyGsmClientA6.h +++ b/src/TinyGsmClientA6.h @@ -136,7 +136,8 @@ public: virtual int read(uint8_t *buf, size_t size) { TINY_GSM_YIELD(); size_t cnt = 0; - while (cnt < size) { + 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/TinyGsmClientESP8266.h b/src/TinyGsmClientESP8266.h index de84295..5df1ca8 100644 --- a/src/TinyGsmClientESP8266.h +++ b/src/TinyGsmClientESP8266.h @@ -133,7 +133,8 @@ public: virtual int read(uint8_t *buf, size_t size) { TINY_GSM_YIELD(); size_t cnt = 0; - while (cnt < size) { + 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/TinyGsmClientM590.h b/src/TinyGsmClientM590.h index 787e9b6..b15ef72 100644 --- a/src/TinyGsmClientM590.h +++ b/src/TinyGsmClientM590.h @@ -134,7 +134,8 @@ public: virtual int read(uint8_t *buf, size_t size) { TINY_GSM_YIELD(); size_t cnt = 0; - while (cnt < size) { + 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);