13460332002 发表于 2023-10-7 19:01:26

关于定时器的应用

看了DEMO的定时器应用,发现个问题,定时控件弹起和按下,显示没问题。但是为什么按键的键值,指令都没有对外发送,难道就是只能显示看看吗?
function on_control_notify(screen,control,value)
       
        --************************
        --功能:   按下按钮时启动定时器
        --调用函数: start_timer(timer_id, timeout, countdown, repeat)
        --函数功能: 启动定时器
        --参数:   timer_id:定时器ID,0~31;
    --         timeout:   超时时间,单位毫秒;
    --         countdown: 0 顺计时,1 倒计时;
    --         repeat:    重复次数,0 表示无限重复;
        --************************
        if screen==0 and control==1 and value==1    --按下第0页,第1个控件
        then
                start_timer(0,1000,1,0)               --开启定时器0,超时时间2s
        end
       
        --************************
        --功能:   松开按钮时停止定时器
        --调用函数: stop_timer(timer_id)
        --函数功能: 停止定时器
        --参数:   timer_id:定时器ID,0~31;
        --************************
        if screen==0 and control==1 and value==0    --松开第0页,第1个控件
        then
                stop_timer(0)                            --停止定时器0
        end
       
       
end

local lamp_status=0

--[[***************************************************************************
** Function name:          on_timer
** Descriptions:         定时器超时回调函数
** input parameters:       timer_id,超时定时器的id;
***************************************************************************--]]
function on_timer(timer_id)
       
        --************************
        --功能:   定时器1超时,设置按钮2为按下状态(灯亮)
        --调用函数: set_value(screen,control,value)
        --函数功能: 设置按钮2为按下状态
        --参数:   screen:目标画面ID;
        --         control: 目标控件ID;
        --         value:   0 按下,1 弹起;
        --************************
        if timer_id==0            --定时器0超时
        then
                if lamp_status==0       --当按钮为弹起状态
                then
                        set_value(0,2,1)    --设置按钮2为按下状态,灯亮
                        lamp_status=1
                elseif lamp_status==1   --当按钮为按下状态
                then
                        set_value(0,2,0)    --设置按钮2为弹起状态,灯灭
                        lamp_status=0
                end
        end
       
       
end

--[[***************************************************************************
END FILE
***************************************************************************--]]

If后要接end 发表于 2023-10-8 11:11:52

按钮的对外指令没有发送吗?

13460332002 发表于 2023-10-9 22:38:00

If后要接end 发表于 2023-10-8 11:11
按钮的对外指令没有发送吗?

是的,只有图标变化,没对外指令

13460332002 发表于 2023-10-11 19:36:42

没有回复吗

If后要接end 发表于 2023-10-12 09:03:32

你复制的这段没看到有调用串口api向外发送指令,如果是说按钮的状态变化指令(大彩指令)没有发出的话,需要看一下当前的工程协议是不是大彩协议,工程设置里面有没有禁用按钮的事件通知
页: [1]
查看完整版本: 关于定时器的应用