Сохранение и загрузка переменных в SPIFFS

Виктория
Offline
Зарегистрирован: 12.05.2019

Подскажите, как правильно сделать. Хочу загружать данные с встроенной памяти (ESP8266) в переменные(статические настройки сети и пр.). Вижу два варианта:

1.json. Пробовала, но там непонятно с типами данных. Во всех примерах можно загрузить только char, в самом коде библиотеки, можно преобзовывать  json["val-name"].is<int>(); но на практике это не работает.

2. либо читать построково через саму ФС ESP8266. Но ненашла примера... как именно считать строку... Подскажите, будьте добры!

sadman41
Offline
Зарегистрирован: 19.10.2016

Скоко данных?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Виктория пишет:

1.json. ... но на практике это не работает.

2.  Но не нашла примера... как именно считать строку...

1. Да ну?

2. Объект файл унаследован от Stream, со всеми вытекающими.

https://github.com/gmag11/FSBrowserNG Вот это у меня для теста собраное на столе лежит. Исходник нужно переделать под JSON6. Я  сейчас порт к плате пробросил у себя на сервере: mycortez.ru:22280/admin. Утром выключу. Можно насладиться. ;))) Сама плата - то есть объект издевательств - тестовый NodeMCU Amica. с 4 Мегами, два из них отдано FFS.

Сама программа - просто пример от автора кода (поклон ему) по ссылке, только переделанный под новую версию json библиотеки. Так что всё там работает. Просто нужны руки не из жопы.

--------------

ЗЫ: в 10-30 отключил порт

Виктория
Offline
Зарегистрирован: 12.05.2019

sadman41 пишет:

Скоко данных?

Мало. Не более 10-15-ти переменных.

sadman41
Offline
Зарегистрирован: 19.10.2016

Пишите в эмулируемый EEPROM структурой (struct) и читайте так же.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

sadman41 пишет:

Пишите в эмулируемый EEPROM структурой (struct) и читайте так же.

Тем более, что в случае с ESP,  по сути, это одно и тоже.

sadman41
Offline
Зарегистрирован: 19.10.2016

Вот и я о том же - чего дуремарствовать с JSON-ами из-за простого конфига.

Logik
Offline
Зарегистрирован: 05.08.2014

JSON оно понятно лишнее. Но с SPIFFS есть засада  https://habr.com/ru/post/409911/ . Может это и случилось у ТС.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Ребята! Это ESP, а не AVR. Тут памяти бесконечно. Можно нормально пользоваться и Стрингами и  реально ОЧЕНЬ профессиональной JSON библиотекой. Кто кодит на С++ не в микроконтроллерах может оценить код JSON 6. Наследование темплейты, автокастинг, умные перегрузки... ну вот сам-бы стал писать - не стал бы так аккуратно делать, потому что лень! ;)))

5-ая версия была классика - отдельно аррей и отдельно объект. В 6-ой они слили в единый интерфейс всё. Просто песня. Очень удобно пользоваться.

Еще раз, для доходчивости - это ESP, тут не надо плясать с бубном и экономить байты и такты. И для кода и для рантайма тут более чем достаточно памяти.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Logik пишет:

JSON оно понятно лишнее. Но с SPIFFS есть засада  https://habr.com/ru/post/409911/ . Может это и случилось у ТС.

Чудо в перьях! Ты дату публикации на хабре смотрел?

Виктория
Offline
Зарегистрирован: 12.05.2019

Всем спасибо! Нашла вот такую библиотечку https://github.com/bneedhamia/sdconfigfile , может кому понадобится.

Logik
Offline
Зарегистрирован: 05.08.2014

wdrakula пишет:

Logik пишет:

JSON оно понятно лишнее. Но с SPIFFS есть засада  https://habr.com/ru/post/409911/ . Может это и случилось у ТС.

Чудо в перьях! Ты дату публикации на хабре смотрел?

аяяя.. 2018год! Для тебя, додик в стрингах наверно очень старое. Хотя видно попаболь после последнего общения заставляет искать хоть какой повод чтоб тявкнуть ))) Это пройдет.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Logik пишет:

бла-бла-бла

Больной? Ты написал векторную "8" на 17 байт, не я. И считаешь себя програмистом? Ну молодец! Мамка похвалит.

Самое смешное, что у тебя хватает тупости хвастать этим, с позволения сказать, кодом.

------------------------

Ну и в том общении я не помню "соревнований", чтобы кто-то победил или проиграл. Ты "наехал" на компилятор - это всегда принак тупости и непрофессионализма. Ровно так Архат уже делал. А я-то причем? Ты пафосно пиздил о "раздолбаях, пишуших компилятор". Вероятно сравнивая их с собой... и 17 байтами на код символа "8".

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Logik пишет:

 повод чтоб тявкнуть ))) Это пройдет.

У тебя - пройдет желание влезть с "Очень Ценным Мнением" в тему, в которой ты ничего не понимаешь. Странно, но снова напоминает Архата.

По заметке сразу видно, что ты не пишешь ничего для ESP. Иначе бы знал, что ESP-7 - давно нигде не используется и проблемы у тех украинских ребят были только от жадности - купили самый дешевый модуль, о чем в коментах к той заметке и написано.

А тебе нужно было в лужу пернуть... а то ведь позабудут... апидна, да?

-----------------------

=====================

Я, к сожалению, забыл ветку где ты векторные шрифты изобретаешь. Поэтому тут уж добавлю, тема обсуждения все равно закрыта.

С памятью AVR задача не нужна. Ну такая же глупость, как "интернет радио" и половина мастурбации у нас в "проектах". Ты в своем проекте никогда не будешь использовать все 160 символов. Нарисуй вектора с Move,Line и Quad, для тех символов, которые нужны в проекте.

Если тебе нужна продвинутая графика - то это уже не 128х64 дюймовик. И контроллер тогда с нормальной памятью в котором можно рендерить TTF. И да - наезды на СТМ - это уже клоунада... и да снова копия Архата. ;)

(а может ты это он??? ;)))) )

Ты сам раньше выступал за разумность (помню спор "список vs перебор"), а тут тебя заклинило.

Алексей.
Алексей. аватар
Offline
Зарегистрирован: 02.02.2018

wdrakula пишет:

Ребята! Это ESP, а не AVR. Тут памяти бесконечно. Можно нормально пользоваться и Стрингами и  реально ОЧЕНЬ профессиональной JSON библиотекой. Кто кодит на С++ не в микроконтроллерах может оценить код JSON 6. Наследование темплейты, автокастинг, умные перегрузки... ну вот сам-бы стал писать - не стал бы так аккуратно делать, потому что лень! ;)))

5-ая версия была классика - отдельно аррей и отдельно объект. В 6-ой они слили в единый интерфейс всё. Просто песня. Очень удобно пользоваться.

Еще раз, для доходчивости - это ESP, тут не надо плясать с бубном и экономить байты и такты. И для кода и для рантайма тут более чем достаточно памяти.

Ну-ну... Памяти как оказалось немножко не бесконечно, нехватило чуток, нужно было бесконечно+10К
На 5-ой версии пытался разбирать форекасты получаемые от openweathermap, текущая погода не очень интересовала, а прогнозы были интересны.
форекасты на 5 суток с 3-х часовым интервалом, весят под 13К, динамик буфер в примерах в два раза больше длины строки указывали, для чего не ясно.
На модуле свободного хипа оставалось чуть больше 30К, строка с джейсоном в 13К + динамик буфер 26К и памяти не осталось.
Зная структуру данных, резал масив и парсил частями.
Памяти много не бывает :)

Logik
Offline
Зарегистрирован: 05.08.2014

Алексей. пишет:

Ну-ну... Памяти как оказалось немножко не бесконечно, нехватило чуток, нужно было бесконечно+10К

..
Памяти много не бывает :)

Та понятное дело. Тут любой подпишется под этим, а на хрень от wdrakula не обращай внимания, у него просто старые раны зудят, заживают наверное, вот он и поносит в тему. 

Алексей.
Алексей. аватар
Offline
Зарегистрирован: 02.02.2018

Logik пишет:

Алексей. пишет:

Ну-ну... Памяти как оказалось немножко не бесконечно, нехватило чуток, нужно было бесконечно+10К

..
Памяти много не бывает :)

Та понятное дело. Тут любой подпишется под этим, а на хрень от wdrakula не обращай внимания, у него просто старые раны зудят, заживают наверное, вот он и поносит в тему. 

Сообщения как раз в тему (библиотека для работы с джейсоном вполне пригодная), только не стоит строить иллюзий в отношении памяти на модулях.

Logik
Offline
Зарегистрирован: 05.08.2014

Кстати, и о погоде ;) Я когда ковырял модем A6 в режиме TCP (это здесь - http://arduino.ru/forum/apparatnye-voprosy/gsm-modem-a6-v-rezhime-tcp ), то тоже прогноз тянул с прогнозных сайтов, не по их API (мне интересен именно модем, а не API), а как страницу HTTP, то там и сотни КБ получались. а это атмега 328р. Потому память - сразу решил не пытатся сохранять, парсить с лёту. Так что похоже "парсил частями" - наше все, хоть AVR, хоть ESP.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Logik пишет:

а на хрень от wdrakula не обращай внимания

Ты держи перед глазами: "17 байт на символ 8" и радуйся. Програмист, my ass!

Logik
Offline
Зарегистрирован: 05.08.2014

wdrakula пишет:

...my ass!

Болит, понимаю, маж его чемто )))) От жеж недоумок!