diff --git a/examples/application/soracom-gps-tracker/soracom-gps-tracker.ino b/examples/application/soracom-gps-tracker/soracom-gps-tracker.ino index a29f499..8d4fdd2 100644 --- a/examples/application/soracom-gps-tracker/soracom-gps-tracker.ino +++ b/examples/application/soracom-gps-tracker/soracom-gps-tracker.ino @@ -9,6 +9,7 @@ // http://librarymanager#ArduinoJson 7.0.4 #include +#include #include #include @@ -28,6 +29,15 @@ static constexpr int RECEIVE_TIMEOUT = 1000 * 10; // [ms] if ((result) != WioCellularResult::Ok) abort(); \ } while (0) +static void abortHandler(int sig) { + while (true) { + ledOn(LED_BUILTIN); + delay(100); + ledOff(LED_BUILTIN); + delay(100); + } +} + static uint32_t MeasureTime = -INTERVAL; static String LatestGpsData; @@ -36,6 +46,7 @@ static constexpr int SOCKET_ID = 0; static JsonDocument JsonDoc; void setup(void) { + signal(SIGABRT, abortHandler); Serial.begin(115200); { const auto start = millis(); diff --git a/examples/basic/flash/flash.ino b/examples/basic/flash/flash.ino index eabe6e6..2f528f8 100644 --- a/examples/basic/flash/flash.ino +++ b/examples/basic/flash/flash.ino @@ -10,8 +10,18 @@ // http://librarymanager#SdFat%20-%20Adafruit%20Fork 2.2.3 #include +#include #include +static void abortHandler(int sig) { + while (true) { + ledOn(LED_BUILTIN); + delay(100); + ledOff(LED_BUILTIN); + delay(100); + } +} + static const SPIFlash_Device_t SPIFLASH_DEVICE = FERAM_DEVICE_CONFIG; static SPIClass FlashSpi(FERAM_SPI, PIN_FERAM_SO, PIN_FERAM_SCK, PIN_FERAM_SI); @@ -19,6 +29,7 @@ static Adafruit_FlashTransport_SPI FlashTransport(PIN_FERAM_CS, FlashSpi); static Adafruit_SPIFlash Flash(&FlashTransport); void setup(void) { + signal(SIGABRT, abortHandler); Serial.begin(115200); { const auto start = millis(); diff --git a/examples/cellular/cellular-status/cellular-status.ino b/examples/cellular/cellular-status/cellular-status.ino index 6e79f97..fbc8f14 100644 --- a/examples/cellular/cellular-status/cellular-status.ino +++ b/examples/cellular/cellular-status/cellular-status.ino @@ -5,12 +5,23 @@ */ #include +#include #include static constexpr int INTERVAL = 1000 * 5; // [ms] static constexpr int POWER_ON_TIMEOUT = 1000 * 20; // [ms] +static void abortHandler(int sig) { + while (true) { + ledOn(LED_BUILTIN); + delay(100); + ledOff(LED_BUILTIN); + delay(100); + } +} + void setup(void) { + signal(SIGABRT, abortHandler); Serial.begin(115200); { const auto start = millis(); diff --git a/examples/cellular/shell/shell.ino b/examples/cellular/shell/shell.ino index f9ab602..cf80b98 100644 --- a/examples/cellular/shell/shell.ino +++ b/examples/cellular/shell/shell.ino @@ -9,6 +9,7 @@ // https://github.com/matsujirushi/ntshell 0.3.1 #include +#include #include #include // Natural Tiny Shell #include // Natural Tiny Shell @@ -21,6 +22,15 @@ static const char APN[] = "soracom.io"; static constexpr int POWER_ON_TIMEOUT = 1000 * 20; // [ms] static constexpr int RECEIVE_TIMEOUT = 1000 * 10; // [ms] +static void abortHandler(int sig) { + while (true) { + ledOn(LED_BUILTIN); + delay(100); + ledOff(LED_BUILTIN); + delay(100); + } +} + static constexpr int SOCKET_ID = 0; static ntshell_t Shell; @@ -71,6 +81,7 @@ static const CommandType CommandList[] = { }; void setup(void) { + signal(SIGABRT, abortHandler); Serial.begin(115200); { const auto start = millis(); diff --git a/examples/cellular/transparent/transparent.ino b/examples/cellular/transparent/transparent.ino index a831321..78301a7 100644 --- a/examples/cellular/transparent/transparent.ino +++ b/examples/cellular/transparent/transparent.ino @@ -5,11 +5,22 @@ */ #include +#include #include static constexpr int POWER_ON_TIMEOUT = 1000 * 20; // [ms] +static void abortHandler(int sig) { + while (true) { + ledOn(LED_BUILTIN); + delay(100); + ledOff(LED_BUILTIN); + delay(100); + } +} + void setup(void) { + signal(SIGABRT, abortHandler); Serial.begin(115200); { const auto start = millis(); diff --git a/examples/soracom/soracom-connectivity-diagnostics/soracom-connectivity-diagnostics.ino b/examples/soracom/soracom-connectivity-diagnostics/soracom-connectivity-diagnostics.ino index 2b9f2a9..1071b09 100644 --- a/examples/soracom/soracom-connectivity-diagnostics/soracom-connectivity-diagnostics.ino +++ b/examples/soracom/soracom-connectivity-diagnostics/soracom-connectivity-diagnostics.ino @@ -13,6 +13,7 @@ */ #include +#include #include static constexpr int POWER_ON_TIMEOUT = 1000 * 20; // [ms] @@ -23,6 +24,15 @@ static constexpr int POWER_ON_TIMEOUT = 1000 * 20; // [ms] if ((result) != WioCellularResult::Ok) abort(); \ } while (0) +static void abortHandler(int sig) { + while (true) { + ledOn(LED_BUILTIN); + delay(100); + ledOff(LED_BUILTIN); + delay(100); + } +} + static WioCellularResult queryCommand(const char *command, int timeout) { CONSOLE.print("> "); CONSOLE.println(command); @@ -162,6 +172,7 @@ static void pingToSoracomNetwork(void) { } void setup(void) { + signal(SIGABRT, abortHandler); Serial.begin(115200); { const auto start = millis(); diff --git a/examples/soracom/soracom-uptime-httpclient/soracom-uptime-httpclient.ino b/examples/soracom/soracom-uptime-httpclient/soracom-uptime-httpclient.ino index 4743012..669b5ac 100644 --- a/examples/soracom/soracom-uptime-httpclient/soracom-uptime-httpclient.ino +++ b/examples/soracom/soracom-uptime-httpclient/soracom-uptime-httpclient.ino @@ -10,6 +10,7 @@ // http://librarymanager#ArduinoHttpClient 0.6.1 #include +#include #include #include #include @@ -27,17 +28,26 @@ static constexpr int INTERVAL = 1000 * 60 * 5; // [ms] static constexpr int POWER_ON_TIMEOUT = 1000 * 20; // [ms] static constexpr int RECEIVE_TIMEOUT = 1000 * 10; // [ms] -#define ABORT_IF_FAILED(result) \ - do { \ - if ((result) != WioCellularResult::Ok) abort(); \ - } while (0) - struct HttpResponse { int statusCode; std::map headers; std::string body; }; +#define ABORT_IF_FAILED(result) \ + do { \ + if ((result) != WioCellularResult::Ok) abort(); \ + } while (0) + +static void abortHandler(int sig) { + while (true) { + ledOn(LED_BUILTIN); + delay(100); + ledOff(LED_BUILTIN); + delay(100); + } +} + static constexpr int PDP_CONTEXT_ID = 1; static constexpr int SOCKET_ID = 0; @@ -45,6 +55,7 @@ static JsonDocument JsonDoc; static WioCellularTcpClient TcpClient{ WioCellular, PDP_CONTEXT_ID, SOCKET_ID }; void setup(void) { + signal(SIGABRT, abortHandler); Serial.begin(115200); { const auto start = millis(); diff --git a/examples/soracom/soracom-uptime-lp/soracom-uptime-lp.ino b/examples/soracom/soracom-uptime-lp/soracom-uptime-lp.ino index 9897a56..be3a75f 100644 --- a/examples/soracom/soracom-uptime-lp/soracom-uptime-lp.ino +++ b/examples/soracom/soracom-uptime-lp/soracom-uptime-lp.ino @@ -9,6 +9,7 @@ // http://librarymanager#ArduinoJson 7.0.4 #include +#include #include #include @@ -31,6 +32,15 @@ static constexpr int RECEIVE_TIMEOUT = 1000 * 10; // [ms] if ((result) != WioCellularResult::Ok) abort(); \ } while (0) +static void abortHandler(int sig) { + while (true) { + ledOn(LED_BUILTIN); + delay(100); + ledOff(LED_BUILTIN); + delay(100); + } +} + static SemaphoreHandle_t CellularWorkSem; static SemaphoreHandle_t CellularStartSem; static SemaphoreHandle_t MeasureSem; @@ -39,6 +49,7 @@ static QueueSetHandle_t QueueSet; static JsonDocument JsonDoc; void setup(void) { + signal(SIGABRT, abortHandler); Serial.begin(115200); { const auto start = millis(); diff --git a/examples/soracom/soracom-uptime-tcpclient/soracom-uptime-tcpclient.ino b/examples/soracom/soracom-uptime-tcpclient/soracom-uptime-tcpclient.ino index ba3764d..a51b1d8 100644 --- a/examples/soracom/soracom-uptime-tcpclient/soracom-uptime-tcpclient.ino +++ b/examples/soracom/soracom-uptime-tcpclient/soracom-uptime-tcpclient.ino @@ -9,6 +9,7 @@ // http://librarymanager#ArduinoJson 7.0.4 #include +#include #include #include @@ -28,6 +29,15 @@ static constexpr int RECEIVE_TIMEOUT = 1000 * 10; // [ms] if ((result) != WioCellularResult::Ok) abort(); \ } while (0) +static void abortHandler(int sig) { + while (true) { + ledOn(LED_BUILTIN); + delay(100); + ledOff(LED_BUILTIN); + delay(100); + } +} + static constexpr int PDP_CONTEXT_ID = 1; static constexpr int SOCKET_ID = 0; @@ -35,6 +45,7 @@ static JsonDocument JsonDoc; static WioCellularTcpClient TcpClient{ WioCellular, PDP_CONTEXT_ID, SOCKET_ID }; void setup(void) { + signal(SIGABRT, abortHandler); Serial.begin(115200); { const auto start = millis(); diff --git a/examples/soracom/soracom-uptime/soracom-uptime.ino b/examples/soracom/soracom-uptime/soracom-uptime.ino index a7bc6cd..8d5b1f6 100644 --- a/examples/soracom/soracom-uptime/soracom-uptime.ino +++ b/examples/soracom/soracom-uptime/soracom-uptime.ino @@ -9,6 +9,7 @@ // http://librarymanager#ArduinoJson 7.0.4 #include +#include #include #include @@ -23,9 +24,19 @@ static constexpr int INTERVAL = 1000 * 60 * 5; // [ms] static constexpr int POWER_ON_TIMEOUT = 1000 * 20; // [ms] static constexpr int RECEIVE_TIMEOUT = 1000 * 10; // [ms] +static void abortHandler(int sig) { + while (true) { + ledOn(LED_BUILTIN); + delay(100); + ledOff(LED_BUILTIN); + delay(100); + } +} + static JsonDocument JsonDoc; void setup(void) { + signal(SIGABRT, abortHandler); Serial.begin(115200); { const auto start = millis();