Проблема с объектами 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
Спасибо, Эбботт