开发延时按键功能

这篇博客详细介绍了如何开发一个延时按键功能,该功能允许从JSON配置中读取延时数据,并在按键按下后按设定的时间延迟自动发送指令。通过获取JSON文件中的延时参数(yanshi),并在全局结构体中存储,结合系统时间进行判断和计时,最终实现按键延时发码。同时,博主分享了关键函数及其作用,如获取系统时间、添加按键到缓冲区和延迟时间判断函数。
摘要由CSDN通过智能技术生成

开发任务

配置json按钮的时候,可以配置延时数据,最大60s,设定后按下按钮到时间后自动发码。json配置时每一个按钮都有一个yanshi参数,用来使按钮按下后按参数值延时发码,按钮的UI显示也要在发码后随即显示。

 

思路:从json文件中获取到yanshi这个参数的值,判断它的值是否为零;为零时表示按键正常不用延时操作;否则,需要启动延时操作。延时操作有两个函数,一个函数作为在按键按下时记录到yanshi参数的值并且放到一个全局结构体中,结构体中包含了延时完成之后需要操作的变量参数。一个函数需要放到一个线程中,一直进行判断,延时操作响应之后,等待延时时间到了时进行发码。

 

具体实行

  1. 获取json文件参数的办法,使用函数

s = json_check_string(arrobj2[j],"yanshi");  //校验json文件中的yanshi参数的值

g_SmartHomeInfo->m_pPage[i].m_pBtn[j].delay = strtol((char*)s.c_str(),NULL,10);

//将获取得到的yanshi参数里面的值放到全局结构体成员delay中;

 

这是初始化json页面时进行的操作。

 

2.在CAppmain.cpp工程文件中,类CMainApp里面有个函数

BOOL DoProcess(DWORD uMsg, DWORD wParam, DWORD lParam, DWORD zParam);通过按键或者触摸都会跑进这个函数的

                            case TOUCH_MESSAGE:

                                     {

                                               lbg_outtime = 0;

                                               DoCtrlTouchMsg(wParam,lParam,zParam);

                                     }

                                     break;

触摸信息里面。也就是进入函数DoCtrlTouchMsg(wParam,lParam,zParam);

 

通过分析可以发现

                                     switch(pBtn->btnType)

                                     {

                                     case BTNTYPE_COMBINATION_CONTROL://集控按钮处理!

                                               ButtonCombination(pBtn,pressCount);

                                               break;

                                     case

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lbg_164

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值