ESP wifi 中实现重启后的参数更改(Lua)

我想让我的ESP模块在某些参数已更改并重启后改变行为。我是这样想的:

if (????) then
print("默认值")
else
print("修改后的值")
end

起初我考虑将标志写入文件,但如果文件尚不存在,则会在启动期间引发错误。 有更好的想法吗?

点赞
用户2858170
用户2858170

如果你想要在重启之后仍然保存某些值,你必须将它们存储在一些非易失性内存中。所以使用文件是一种好的方式,就像你已经建议的那样。

不幸的是,你没有提供当文件不存在时所得到的错误消息,也没有说明是标志还是文件不存在。

你需要做的是处理错误。如果该文件不存在,那么请用户创建一个新文件,或者从你的程序中创建一个默认内容的文件。 标志也是如此。如果文件中还没有标志,请使用默认值或要求用户提供一个。

得到错误并不是坏事或者错误的,只要能够从中学到东西或者妥善处理它们就可以了。

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)
  -- 添加一些错误处理
end

因此,如果你没有那个文件,你将会得到:

文件访问错误:C:\superfile.txt:没有那个文件或目录

2016-04-20 15:20:15