搞了半天CC2530 GenericApp 的总结:
最概况的话是
事件(Events) 触发 用户函数XXXApp_ProcessEvent()
判断event 类型
1. System event: 接收MSGpkt
判断 MSGpkt-> hdr.event: case : XXXApp_MessageMSGCB或者xxx_SendTheMessage()
2. 自定义Event: 自定义函数func()
具体追溯:
1. 系统运行函数:
void osal_run_system( void )
{
uint8 idx = 0;
....
do {
if (tasksEvents[idx]) // 检测触发事件
{
break;
}
} while (++idx < tasksCnt);
if (idx < tasksCnt)
{
uint16 events;
halIntState_t intState;
HAL_ENTER_CRITICAL_SECTION(intState); //关闭中断
events = tasksEvents[idx];
tasksEvents[idx] = 0; // Clear the Events for this task.
HAL_EXIT_CRITICAL_SECTION(intState);
activeTaskID = idx;
events = (tasksArr[idx])( idx, events );
// 执行用户应用, 用户的idx在taskArry[ ]对应的是XXXApp_Process_Ev

本文介绍了CC2530在Zigbee应用中如何处理事件,包括System event和自定义Event。重点讲解了事件处理函数XXXApp_ProcessEvent,以及如何根据MSGpkt的类型调用不同的回调函数,如XXXApp_MessageMSGCB和XXXApp_SendTheMessage。同时,提到了设备状态改变、按键事件和自定义事件的处理。文章还提及了一些关键细节,如Coordinator的短地址和SimpleDescriptionFormat_t中的AppNumIn(Out)Clusters含义。
最低0.47元/天 解锁文章
3714

被折叠的 条评论
为什么被折叠?



