Я делаю интеллектуальную домашнюю систему с использованием nodeMCU, и мне нужно хранить и извлекать данные из модуля. Я использовал следующую функцию.Сохранение постоянных переменных после перезапуска в NodeMCU
function save_settings(name,value)
file.remove(name)
file.open(name,"w+")
file.writeline(value)
file.close()
end
Это работает, но это медленно и NodeMCU падает, если я вызвать выше функции быстро ... Иногда требует формат FS, чтобы иметь возможность использовать его снова.
Итак, мой вопрос: есть ли другой способ сделать переменные постоянными между перезагрузками?
Для каждой записи, вероятно, требуется, чтобы блок флеш-памяти был удален и перезаписан, что по своей сути медленнее. Я понятия не имею, почему он сбой, но он может переполнять буфер записи или пытаться стереть/написать страницу, пока такая же операция уже происходит. В любом случае решение может состоять в том, чтобы где-то буферизовать данные в массиве и писать реже. Если этого недостаточно, вам может потребоваться записать на SPE EEPROM или SD-карту :( – user1816847
@ user1816847 Ithx для ответа, но это уже не опция, потому что я уже сделал cuatom pcb для проекта и в настоящее время использую его без функции сохранения ... Все, что я могу сделать сейчас, - это некоторая домашняя реализация функции сохранения нагрузки только с помощью программного обеспечения. –
Я бы рекомендовал удалить файл 'file.remove (name)', поскольку он избыточен с помощью 'file.open' в этом случае из-за режима 'w +', что также может упростить работу, которую FS должен делать, поскольку нет изменений в таблице файлов. –