zoukankan      html  css  js  c++  java
  • 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以后再升级.

  • 相关阅读:
    布局神器display:table-cell
    解决IE兼容总汇【转】
    jQuery Validate【强大的表单验证】
    使用信号SIGALRM 为 recvfrom 设置超时,防止死等待
    并发服务器(IO多路复用)
    并发服务器(多进程版本)
    TCP listen()函数内幕
    c++ 重载运算符规则
    内核定时器struct timer_list
    C和arm汇编的相互调用(看书笔记)
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/14033766.html
Copyright © 2011-2022 走看看