Проблема с объектами String в статическом классе

У меня проблема с созданием json-документа для ведения журнала. Я использую VisualMico в VS2019. У меня есть класс log.cpp со статическими объектами String, в которых зарезервировано место. Я могу установить их значения, но когда я пытаюсь поместить их в json-документ, с первым все в порядке, следующий выглядит забавно, а затем sketckh уходит в цикл, минуя остальные мои записи json. Серийный o / p =

Alns-mt{"ActiveLines": "mt" - ok}BLns-mt{"ActiveLines": "mt", - ok "BrokenLines": "s-" - ng - также должно быть mt }

статика и инициализация в logClass

  static String _activeLines;
  static String _brokenLines;
void LogClass::Init() {
    _activeLines.reserve(8);
    _brokenLines.reserve(8);
    _activeLines="mt";
    _brokenLines="mt";
} 

Функция для получения / настройки:

String LogClass::ActiveLines(String value){
    if(value.length() != 0)
        _activeLines = value;
    Serial.println("Alns-" + _activeLines);
    return _activeLines;
}

Код, который использует журнал, это...

static StaticJsonDocument <ESTIMATED_JSON_SIZE> jsonDoc; 
    jsonDoc["ActiveLines"] = LogClass::ActiveLines();
    serializeJsonPretty(jsonDoc, Serial);
    Serial.println("");
    jsonDoc["BrokenLines"] = LogClass::BrokenLines();
    serializeJsonPretty(jsonDoc, Serial); 
    Serial.println("");
    jsonDoc["FreeRam"] = LogClass::FreeRam();
    serializeJsonPretty(jsonDoc, Serial);
    Serial.println("");

Скетч выходит из строя после FreeRam.

Я думал, что коснулся всех баз, но мне кажется, что я использую Stings не по правилам. Ищете какие-либо рекомендации или предложения... Полное тестовое приложение можно найти по адресу - https://github.com/AbbottHMG/JsonTest

Спасибо, Эбботт

0 ответов

Другие вопросы по тегам