2016-04-20 1 views
1

Я хочу изменить поведение моего модуля ESP, если какой-то из моих параметров был изменен, а затем был перезапущен. Я имею в виду что-то вроде этого.реализовать изменение параметров после перезагрузки в ESP wifi (Lua)

if (????) then print ("default value") else print ("modified value") end

Сначала я думал о написании флага в файл, но он вызывает ошибку во время загрузки, если он еще не существует. Лучшая идея?

ответ

1

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

К сожалению, вы не указали сообщение об ошибке, которое вы получили, когда оно еще не существует, и вы не сказали, что флаг или файл не существует.

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

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

io.open(filename[,mode]) возвращает nil вместе с сообщением об ошибке в случае возникновения ошибки. Так просто не сделать что-то вроде:

local fileName = "C:\\superfile.txt" 
local fileHandle, errorMsg = io.open(fileName) 
if not fileHandle then 
    print("File access error: ", errorMsg) 
    -- add some error handling here 
end 

Таким образом, в случае, если вы не имеете файл, вы получите сообщение об ошибке доступа

Файл: C: \ superfile.txt: Нет такого файла или каталога

+0

Итак, если ваш файл не существует, попросите пользователя создать новый файл OneUnfortunazely – Steve

+0

«Итак, если ваш файл не существует, попросите пользователя создать новый». К сожалению, это не так просто. Как упоминалось в заголовке, речь идет о микросхеме ESP micro wifi. Если изменение параметра происходит через Wi-Fi-связь, после перезагрузки ожидается изменение, но автономное поведение. – Steve

+0

@steve Хорошее взаимодействие с пользователем - это всего лишь один общий вариант. Я также предложил использовать жестко кодированные значения по умолчанию, которые, конечно, более подходят для встроенной системы. Так или иначе вы должны обрабатывать ошибки файлов для устранения исключительной ситуации. – Piglet

Смежные вопросы