gpt4 book ai didi

nodemcu - 在 NodeMCU 上重新启动后使变量保持不变

转载 作者:行者123 更新时间:2023-12-02 16:17:47 26 4
gpt4 key购买 nike

我正在使用nodeMCU制作智能家居系统,我需要从模块存储和检索数据。我使用了以下函数。

function save_settings(name,value)
file.remove(name)
file.open(name,"w+")
file.writeline(value)
file.close()
end

它可以工作,但速度很慢,如果我快速触发上述函数,NodeMCU 就会崩溃...有时需要 FS 格式才能再次使用它。

所以我的问题是:有没有其他方法可以使变量在重新启动之间保持不变?

最佳答案

我使用的是最新固件 0.9.6-dev_20150704, float 版本 ( 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))

关于nodemcu - 在 NodeMCU 上重新启动后使变量保持不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32616153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com