День добрый! Столкнулся с проблемой, ESP8266 выполняет периодические mysql запросы, но если в момент запроса БД не отвечает, то ESP8266 зависает. Если связь с БД восстанавливается, то ESP8266 так же висит. Спойлер: Код(набросал от руки для примера): Код (C++): ... #include <MySQL_Connection.h> #include <MySQL_Cursor.h> ... void loop() { row_values *row = NULL; long head_count = 0; if (WiFi.status() != WL_CONNECTED) { // reconnect } if (!conn.connected()) { // reconnect } MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn); Serial.println("Running ..."); cur_mem->execute(query); // Зависает на этой строчке Serial.println("Сompleted."); cur_mem->get_columns(); do { row = cur_mem->get_next_row(); if (row != NULL) { head_count = atol(row->values[0]); } } while (row != NULL); delete cur_mem; if (head_count == 0) { // какие-то действия } } Может, кто сталкивался с подобным? + еще были мысли перед запросом сделать пинг до БД - это решило проблему на % 50, но бывало проскакивало пинг на успех и снова зависало на этой строчке: "cur_mem->execute(query); ". Exception как я понял не отловить. Возвращаемого значения с этой строчки, как я понял, не добиться. + еще заметил, когда wi-fi сеть пропадает, то WiFi статус меняется не сразу, соответственно код продолжает выполняться и только на 2,3 цикле пишет, что сеть пропала и ждёт восстановления.
В общем, в самой библиотеке так сказать "обработки" на это событие нету, разработчики в курсе ситуации. Пока, как вариант, это использование WathDog(Сторожевой таймер). Первый вариант(я использую его): https://github.com/esp8266/Arduino/issues/1532#issuecomment-176869292 Второй вариант: - сделать самому: https://www.sciencetronics.com/greenphotons/?p=2107 - готовый вариант: https://iarduino.ru/shop/Expansion-payments/storozhevoy-taymer.html