Страница 1 из 1

ESP8266+Flprog нет сохранения системного параметра.

Добавлено: 14 янв 2023, 19:45
Bullhorse
Немного истории - потом будет понятно зачем.
пилил проект пару дней.. esp, естественно, торчала в usb. Чуть добавил блоков в плату - перестал подниматься wifi. Недолго думая, что плата перетягивает много времени на себя, ручками вставлял в arduino ide код, выполняющий плату раз в секунду. Проект закончил, добрался до сохранения настроек при помощи блока "запись системного параметра" и выяснил, что параметр сохраняется только до перезагрузки контроллера. Накидал новую маленькую плату с сохранением одного системного параметра типа string и обнаружил, что оно тоже не сохраняет навсегда..
при помощи serial.println выяснилось, что контроллер бесконечно выполняет этот кусок в начале лупа.
[spoiler]
void loop()
{
ESPControllerWifi_tspWebServer.handleClient();
if (isNeededCommitESP8266EEprom)
{
EEPROM.commit();
isNeededCommitESP8266EEprom=0;
}[/spoiler]
Тормоза проекта, видимо, отсюда и растут. Что делать-то? Памяти esp уже хана?
eetest.flp

ESP8266+Flprog нет сохранения системного параметра.

Добавлено: 14 янв 2023, 19:59
Phazz
[ref]Bullhorse[/ref], а куда print вставляли?

ESP8266+Flprog нет сохранения системного параметра.

Добавлено: 14 янв 2023, 20:00
Bullhorse
после
EEPROM.commit();

ESP8266+Flprog нет сохранения системного параметра.

Добавлено: 14 янв 2023, 20:10
Phazz
Все верно, у вас нет входа разрешения записи и поэтому функция выполняется в каждом цикле. Но в библиотеке eeprom esp8266 есть защита, если данные не изменились, то запись не происходит.

ESP8266+Flprog нет сохранения системного параметра.

Добавлено: 14 янв 2023, 22:58
Bullhorse
ОК, допилил. Теперь выполняется один раз при нажатии кнопки "Сохранить" . Но сохранения все равно не происходит.
eetest.flp
Отправлено спустя 2 часа 37 минут 28 секунд:
Все таки сохраняется! Если прочитать ячейку сразу после eeprom.begin
и где-то в коде затирается..

ESP8266+Flprog нет сохранения системного параметра.

Добавлено: 14 янв 2023, 23:31
Phazz
2023-01-15 01-26-05 FLProg-7.4.6.png
тут и затирается

Отправлено спустя 2 минуты 6 секунд:
[ref]Bullhorse[/ref], прочитайте сначала в переменную на старте программы, а потом сравнивайте уже эту переменную с пользовательским параметром

Отправлено спустя 2 минуты 28 секунд:
И вообще зачем вам эта переменная нужна? Используйте сразу пользовательский параметр в вэб

ESP8266+Flprog нет сохранения системного параметра.

Добавлено: 14 янв 2023, 23:45
Bullhorse
Да, уже нашел ) И не только тут. Ещё нельзя убрать галочку в системном параметре "Значение по умолчанию", даже если её там нет. Кусок кода надо удалить ручками, как будто она там есть.

Отправлено спустя 6 минут 15 секунд:
Эксперимент показал, что первой надо делать отключаемую плату в которой читаются параметры из EEPROM
плата1.png
Отправлено спустя 6 минут 34 секунды:
Phazz писал(а): 14 янв 2023, 23:31 И вообще зачем вам эта переменная нужна? Используйте сразу пользовательский параметр в вэб
Я так и делал. Оно не сохранялось )

ESP8266+Flprog нет сохранения системного параметра.

Добавлено: 14 янв 2023, 23:48
Phazz
Bullhorse писал(а): 14 янв 2023, 23:45 Эксперимент показал, что первой надо делать отключаемую плату в которой читаются параметры из EEPROM
просто ставите в начале проекта и через rtrig подключаете. Не нужен тут таймер вообще

ESP8266+Flprog нет сохранения системного параметра.

Добавлено: 15 янв 2023, 03:07
Bullhorse
Phazz писал(а): 14 янв 2023, 23:31 И вообще зачем вам эта переменная нужна? Используйте сразу пользовательский параметр в вэб
Теперь так и работает. Более того, не понял что произошло, но для типа данных string в системном параметре, не нужно больше удалять код загрузки значения по умолчанию, оно заработало. Для BYTE уже нет сил проверять

ESP8266+Flprog нет сохранения системного параметра.

Добавлено: 02 фев 2023, 15:12
Bullhorse
Проблема со значениями по умолчанию решается перезагрузкой компьютера целиком. Т.е. это баг Flprog 8.0.0, который еще и кэшируется виндой.