Arduino WiFiNINA перестает работать в HTTP-запросе клиента и заходит в бесконечный цикл
Я посылаю HTTP-запрос с моим Arduino MKR 1010, и иногда (например, когда Wi-Fi внезапно выключается, но также и в других ситуациях) код останавливается и уходит в бесконечный цикл, и я не понимаю, почему.
Я попытался осмотреть проблему и заметил, что она находится внутри функции client.connect (из библиотеки Wifi NINA). В частности, я заметил, что код останавливается там, где я написал "ЗДЕСЬ", но не могу понять, почему. Как я уже сказал, проблема возникает, когда у меня проблемы с подключением.
// ПРОБЛЕМНЫЙ КОД
Serial.println("Connecting...");
bool received = false;
if (client.connect("script.google.com", 443)) {
// Make a HTTP request:
String URL = REQUEST + WEB_APPLICATION;
String temp = String(humidity, DEC);
temp.replace(".", ",");
URL = URL + "/exec?humidity=" + temp;
temp = String(temperature, DEC);
temp.replace(".", ",");
URL = URL + "&temperature=" + temp;
temp = String(lightint, DEC);
temp.replace(".", ",");
URL = URL + "&lightint=" + temp;
client.println("GET " + URL + " HTTP/1.1");
client.println("Host: script.google.com");
client.println("User-Agent: Arduino Camera");
client.println("Connection: close");
client.println();
Serial.println("Request sent");
received = false;
// Функция CONNECT:
int WiFiClient::connectSSL(const char *host, uint16_t port){
if (_sock != NO_SOCKET_AVAIL)
{
stop();
}
_sock = ServerDrv::getSocket();
if (_sock != NO_SOCKET_AVAIL)
{// HERE ****************
ServerDrv::startClient(host, strlen(host), uint32_t(0), port, _sock, TLS_MODE);
unsigned long start = millis();
// wait 4 second for the connection to close
while (!connected() && millis() - start < 10000)
delay(1);
if (!connected())
{
return 0;
}
} else {
Serial.println("No Socket available");
return 0;
}
return 1;}