
--检测文件是否需要重置文件
-- local pin = 1
-- gpio.mode(pin,gpio.INPUT)
-- if(gpio.read(pin)==1)then
--     for v in pairs(file.list()) do
--         file.remove(v)
--     end
-- end


app={}
app.global={}
app.global.package='\\f'
app.global.heartTag='\\a'
app.global.update=function(obj)
    if(obj ~= nil)then
        for k,v in pairs(obj) do
            app.config[k]=v
        end
    end
    file.open('config.json','w+')
    local strer=sjson.encoder(app.config)
    local strI=strer:read()
    while strI ~= nil do
        file.write(strI) 
        strI=strer:read()
    end
    file.flush()
    file.close()
end


app.global.split=function( str,reps )
    if(str == nil)then return {} end
    local resultStrList = {}
    string.gsub(str,'[^('..reps..')]+',function ( w )
        table.insert(resultStrList,w)
    end)
    return resultStrList
end


app.global.readFile=function(url,fun)
    file.open(url)
    local str=''
    local strI
    strI=file.read()
    while strI ~= nil do
        if(fun)then
            local ok,error=pcall(function()
                fun(strI)
            end)
            if(not ok)then 
                file.close()
                print('[notice] fun exec err',error)
                return
            end 
        else
            str=str..strI
        end
        strI=file.read()
    end
    file.close()
    return str
end

--检测文件是否存在
function checkEx(files)
    if(file.open(files)~=nil)then
        if(string.match(files,'.lua')~=nil)then 
            dofile(files)
        end 
    end
    file.close()
end 

--配置需要定时器的函数
app.intervalFun={}

checkEx("config.json")
checkEx("config.lua")
checkEx("route.lua")
checkEx("net.lua")
checkEx("wifi.lua")

--函数加载后插入
table.insert(app.intervalFun,app.wifi.con)
table.insert(app.intervalFun,app.net.con)
table.insert(app.intervalFun,app.route.ato)

--连接wifi
app.wifi.con()

print("[notice]smart init success")

