_ENCRYPT_=0    --LUA脚本加密

--数据类型定义
VT_LW = 1    --变量地址
VT_RW = 2    --FLASH存储
EN_ON_UPDATE_API = 1

function on_init()

   EN_ON_UPDATE_API = 0

    local _val = get_uint16(VT_RW, 0x2000)

    -- 没存修改过密码，掉电寄存器更新为工程界面配置的原始密码
    if _val ~= 0xAA55
    then
        -- 初始化函数中，给对应内部寄存器赋密码初值
        set_uint32(VT_RW, 0x0000, 111111)
        set_uint32(VT_RW, 0x0002, 222222)
        set_uint32(VT_RW, 0x0004, 333333)
        set_uint32(VT_RW, 0x0006, 444444)
        set_uint32(VT_RW, 0x0008, 555555)

        set_pwd(0, 111111)
        set_pwd(1, 222222)
        set_pwd(2, 333333)
        set_pwd(3, 444444)
        set_pwd(4, 555555)
        set_uint16(VT_LW, 0x011B, (1<<4))-- 选择安全登录密码
        set_uint16(VT_LW, 0x011A, 0x5501)-- 保存
        update_system()

        set_uint16(VT_RW, 0x2000, 0xAA55)
    end

    set_uint16(VT_LW, 0x011B, (1<<4)) -- 选择安全登录密码
    set_uint16(VT_LW, 0x011A, 0x5502) -- 加载
    update_system()
    EN_ON_UPDATE_API = 1
end

function on_run(screen)
end

function on_update(slave,vtype,addr)

    if EN_ON_UPDATE_API == 0
    then
        return
    end

    if vtype == VT_LW
    then

        if addr == 0x1000
        then
            local key = get_uint16(VT_LW, addr)
            if key == 1
            then
                set_uint16(VT_LW, 0x011B, (1<<4))-- 选择安全登录密码
                set_uint16(VT_LW, 0x011A, 0x5503)-- 恢复
                update_system()

                set_uint32(VT_RW, 0x0000, 111111)
                set_uint32(VT_RW, 0x0002, 222222)
                set_uint32(VT_RW, 0x0004, 333333)
                set_uint32(VT_RW, 0x0006, 444444)
                set_uint32(VT_RW, 0x0008, 555555)
                flash_sync()
            end
        end
    end

    if vtype == VT_RW
    then
        if addr >= 0x0000 and addr <= 0x0008
        then
            local psw = get_uint32(vtype, addr)
            local idx = (addr // 0x0002)
            set_pwd(idx, psw)    -- 设置对应等级密码
            flash_sync()

            set_uint16(VT_LW, 0x011B, (1<<4))-- 选择安全登录密码
            set_uint16(VT_LW, 0x011A, 0x5501)-- 保存
            update_system()
        end
    end
end

function on_draw(screen_id,control_id)
end

