Хранение настроек IOT железа. Что взять за идею или библиотеку?
В очередной раз взявшись за ESP8266 после STM32 понял, что мне неудобно работать с локальными настройками железки. Посоветуйте, (кому) как удобнее или что есть из готового?
Надо хранить всякие настройки (int, float, bool, char[], IPAddress и т.п.) в EEPROM/FRAM/FLASH/SPIFFS.
Раньше использовал два варианта - хранил struct как двоичные данные и древнюю самописную ардуино-обертку для "имя-значение", которая отказалась собираться в PlatformIO, что и послужило поводом для вопроса :)
Итого, хочется (в порядке нужности):
- более-менее универсальное решение для C (как минимум - stm32/RTL) / C++ (esp8266/AVR)
- минимально возможное потребление всякой памяти (ибо ATmega328, младшие stm32 и, например, FRAM на 1-2Кб)
- иметь доступ к полям конфига по текстовому имени, без правки отдельного словаря (для web-серверной части или консоли, например)
- хранить строки переменной длины без затрат на индивидуальное чтение/запись (т.е. "автоматически" писать блок, а не каждое поле структуры с правкой кода сохранения.загрузки)
"Монстров" типа AsyncJson тащить только из-за конфига неохота, да и в случае с "С" оно будет не универсально...
Александр Воронин , для начала давай убедимся что C тебе действительно нужен.
И для AVR, и для STM, и для ESP уже давно есть компиляторы языка C++ даже с поддержкой C++17.
Какие у тебя есть веские доводы оставлять совместимость своего кода с каким-либо стандартом C?