У меня есть цикл, который проходит через мои датчики (элементы), а затем отправляет их состояние через MQTT.Я выполняю этот код на платах разработчиков ESP8266, и на немногих на них этот код работает, тогда как на других он выдает исключение через случайное количество времени.
Теперь, пытаясь отладить это, яобнаружил, что, если я раскомментирую Serial.println()
в строке, как показано ниже (это должно быть именно то место, которое помещается в любую другую строку, не работает), код работает идеально стабильно в течение нескольких дней.Но как только я удаляю этот println
, он начинает падать через более или менее 100 секунд.Что здесь происходит?Что делает Serial.println()
, что делает мой код стабильным?
void _loop(String priority)
{
for(std::vector<IItem*>::iterator it = items.begin(); it != items.end(); ++it)
{
if ((*it)->loopPriority == priority)
{
(*it)->loop();
for (std::map<String, String>::iterator pubChannel = (*it)->pubChannels.begin(); pubChannel != (*it)->pubChannels.end(); pubChannel++ )
{
//Serial.println(pubChannel->second);
mqtt.sendMsg(pubChannel->second, (*it)->command(pubChannel->first));
}
}
}
}