2.8-Air302(NB-IOT)-基础外设-文件数据存储和代码写入并执行lua文件
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/Learn-NB-IOT-Air302-ForLua" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
说明
这一节测试一下文件数据的存储
然后给大家一个扩展应用: 程序中写入lua文件,并执行lua文件
测试基本的数据存储
--[[基本的数据存储]] local f = io.open("test_file", "wb") --写模式打开文件,如果没有文件则自动创建 if f then local str = "11233344"; f:write( str ) f:close() end local f = io.open("test_file", "rb")--读模式打开文件 if f then local data = f:read("*a") --读取所有内容 log.info("read test_file", "data", data) --打印读取的内容 f:close() end
程序中写入lua文件,并执行lua文件
lua执行是把lua文件(字符串数据)放到一个数组里面,然后调用LUA解析,
然后和底层C语言等配合执行.
所以实际上LUA就是在执行一个字符串.
测试的程序代码
--[[测试把lua文件写到里面,然后执行]] local f = io.open("load_file.lua", "wb") --写模式打开文件,如果没有文件则自动创建 if f then --写入LUA执行文件 local str = "load_file={} " .. " _G.sys = require (\"sys\")" .. " load_file.test = \"11223344\"" .. " return load_file "; f:write( str ) f:close() end local flag =0; local f = io.open("load_file.lua", "rb") if f then local data = f:read("*a") log.info("fs", "data", data) f:close() flag = 1; end if flag==1 then --存在 load_file.lua 文件 local load_file = require "load_file" --请求load_file.lua文件 log.info("run load_file", load_file.test) --加载执行load_file.lua 文件里面的程序 end
提示:创建的lua文件名字为 load_file.lua
lua文件程序代码为:
"load_file={} " .. " _G.sys = require (\"sys\")" .. " load_file.test = \"11223344\"" .. " return load_file "
如果不知道是什么意思,是否还记得这一节
1.3-Air302(NB-IOT)-新建lua文件和lua文件的变量,函数调用
测试
结语
扩展的写入并运行lua程序我只是提示一下.
应用方面呢是远程升级的时候可以直接升级进去lua文件,不需要把lua文件编译成bin以后再升级.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2019-11-25 ESA2GJK1DH1K基础篇: 移植源码中SmartConfig程序到自己的项目