Проблема с объектами String в классе stati c - PullRequest
0 голосов
/ 20 января 2020

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

Alns-mt {"ActiveLines": "mt" - нормально} BLns-mt {"ActiveLines": "mt", - нормально "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;
}

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

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

Спасибо Abbott

...