From 90b3e2a5021ace8cb141af58013bb29ea068429b Mon Sep 17 00:00:00 2001 From: pennam Date: Thu, 2 May 2024 15:02:59 +0200 Subject: [PATCH 1/4] Reduce max wait time for network to 20s --- src/ArduinoCellular.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ArduinoCellular.cpp b/src/ArduinoCellular.cpp index 4477d75..d920e0a 100644 --- a/src/ArduinoCellular.cpp +++ b/src/ArduinoCellular.cpp @@ -214,7 +214,7 @@ bool ArduinoCellular::awaitNetworkRegistration(){ if(this->debugStream != nullptr){ this->debugStream->println("Waiting for network registration..."); } - while (!modem.waitForNetwork()) { + while (!modem.waitForNetwork(20000L)) { if(this->debugStream != nullptr){ this->debugStream->print("."); } From b10b5e107537ad8fd2fd5f90f11df8ccbc9a1dc9 Mon Sep 17 00:00:00 2001 From: pennam Date: Thu, 2 May 2024 15:04:20 +0200 Subject: [PATCH 2/4] Add watchdog kick while waiting for the network --- src/ArduinoCellular.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ArduinoCellular.cpp b/src/ArduinoCellular.cpp index d920e0a..72cd830 100644 --- a/src/ArduinoCellular.cpp +++ b/src/ArduinoCellular.cpp @@ -1,6 +1,9 @@ #include "ArduinoCellular.h" +#if defined(ARDUINO_ARCH_MBED) + #include "Watchdog.h" +#endif unsigned long ArduinoCellular::getTime() { int year, month, day, hour, minute, second; @@ -218,8 +221,13 @@ bool ArduinoCellular::awaitNetworkRegistration(){ if(this->debugStream != nullptr){ this->debugStream->print("."); } +#if defined(ARDUINO_ARCH_MBED) + if(mbed::Watchdog::get_instance().is_running()) { + mbed::Watchdog::get_instance().kick(); + } +#endif delay(2000); - } + } return true; } From d1c9d4aca8e648e64dc88c593955f509384020f6 Mon Sep 17 00:00:00 2001 From: Mattia Pennasilico Date: Wed, 8 May 2024 11:10:54 +0200 Subject: [PATCH 3/4] Apply correct indentation to directives Co-authored-by: Sebastian Romero --- src/ArduinoCellular.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ArduinoCellular.cpp b/src/ArduinoCellular.cpp index 72cd830..8ce0636 100644 --- a/src/ArduinoCellular.cpp +++ b/src/ArduinoCellular.cpp @@ -221,11 +221,11 @@ bool ArduinoCellular::awaitNetworkRegistration(){ if(this->debugStream != nullptr){ this->debugStream->print("."); } -#if defined(ARDUINO_ARCH_MBED) - if(mbed::Watchdog::get_instance().is_running()) { - mbed::Watchdog::get_instance().kick(); - } -#endif + #if defined(ARDUINO_ARCH_MBED) + if(mbed::Watchdog::get_instance().is_running()) { + mbed::Watchdog::get_instance().kick(); + } + #endif delay(2000); } return true; From 8691251ca2412bebd98411e405808e5ec136404a Mon Sep 17 00:00:00 2001 From: pennam Date: Thu, 9 May 2024 08:54:05 +0200 Subject: [PATCH 4/4] Add waitForNetworkTimeout constexpr --- src/ArduinoCellular.cpp | 2 +- src/ArduinoCellular.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ArduinoCellular.cpp b/src/ArduinoCellular.cpp index 8ce0636..017adbb 100644 --- a/src/ArduinoCellular.cpp +++ b/src/ArduinoCellular.cpp @@ -217,7 +217,7 @@ bool ArduinoCellular::awaitNetworkRegistration(){ if(this->debugStream != nullptr){ this->debugStream->println("Waiting for network registration..."); } - while (!modem.waitForNetwork(20000L)) { + while (!modem.waitForNetwork(waitForNetworkTimeout)) { if(this->debugStream != nullptr){ this->debugStream->print("."); } diff --git a/src/ArduinoCellular.h b/src/ArduinoCellular.h index c671b83..721adaa 100644 --- a/src/ArduinoCellular.h +++ b/src/ArduinoCellular.h @@ -277,6 +277,8 @@ class ArduinoCellular { Stream* debugStream = nullptr; /**< The stream to be used for printing debugging messages. */ static unsigned long getTime(); /** Callback for getting the current time as an unix timestamp. */ + + static constexpr unsigned long waitForNetworkTimeout = 20000L; /**< Maximum wait time for network registration (In milliseconds). */ };