我正在使用nodeMCU制作智能家居系统,我需要存储和检索模块中的数据.我使用了以下功能.
function save_settings(name,value)
file.remove(name)
file.open(name,"w+")
file.writeline(value)
file.close()
end
Run Code Online (Sandbox Code Playgroud)
如果我快速触发上述功能,它会很慢但NodeMCU会崩溃...有时需要FS格式才能再次使用它.
所以我的问题是:有没有其他方法可以在重启之间使变量持久化?
我正在使用最新的固件0.9.6-dev_20150704(浮动版本)(https://github.com/nodemcu/nodemcu-firmware/releases)
这段代码最初需要62-63毫秒才能完成,并且似乎每次执行该代码都会增加几毫秒的时间,经过几百次执行后,这几乎达到了100毫秒。它从未坠落在我身上。
function save_setting(name, value)
file.open(name, 'w') -- you don't need to do file.remove if you use the 'w' method of writing
file.writeline(value)
file.close()
end
function read_setting(name)
if (file.open(name)~=nil) then
result = string.sub(file.readline(), 1, -2) -- to remove newline character
file.close()
return true, result
else
return false, nil
end
end
startTime = tmr.now()
test1 = 1200
test2 = 15.7
test3 = 75
test4 = 15000001
save_setting('test1', test1)
save_setting('test2', test2)
save_setting('test3', test3)
save_setting('test4', test4)
1exists, test1 = read_setting('test1')
2exists, test2 = read_setting('test2')
3exists, test3 = read_setting('test3')
4exists, test4 = read_setting('test4')
completeTime = (tmr.now()-startTime)/(1000)
print('time to complete (ms):')
print(tostring(completeTime))
Run Code Online (Sandbox Code Playgroud)