zstack自定义用户事件

zstack中有很多任务,任务也就对应事件,系统中有很多系统事件,也可以自定定义自己想要的事件,用户自定义事件的流程如下
zstack自定义用户事件_第1张图片
这个基本的自定义用户事件是协调器组网成功让第三个灯亮
首先定义用户事件在Coordinator.h加:
在这里插入图片描述
然后启动用户事件:
zstack自定义用户事件_第2张图片

  case ZDO_STATE_CHANGE:
          nwkState=(devStates_t)(MSGpkt->hdr.status);
          if(nwkState==DEV_ZB_COORD){
           //协调器创建网络成功,启动用户事件
            osal_set_event(GenericApp_TaskID,MY_USER_EVENT);        
          }

接着处理用户事件,在处理系统事件下添加:
zstack自定义用户事件_第3张图片
接着我们加入定时器在用户自定义事件中,一般加入定时器是为了一秒一秒的收发各类传感器数据,我们采集数据肯定要自定义成一个定时器的用户自定义事件
zstack自定义用户事件_第4张图片
用户自定义事件5秒后触发:
先声明一个局部变量保存状态
在这里插入图片描述

zstack自定义用户事件_第5张图片
我们这里是想组网成功后触发用户自定义定时器事件每隔5秒D3灯状态翻转一次,这里我们看到库函数HalLedSet()的第二个参数改变了,这就是设置反转led灯的
zstack自定义用户事件_第6张图片
然后下载程序可看到D3灯每隔5秒反转一次

你可能感兴趣的:(CC2530,嵌入式硬件)