ZigBee Z-stack 学习之osal_task

来源:互联网 发布:手机上解压软件 编辑:程序博客网 时间:2024/05/15 23:43

OSAL_TASK是操作系统任务,为了方便用户的设计和更改,TI的工程师将它以源代码的形式给出了。一般操作系统任务的应用命名格式为OSAL_“任务名”.C,例如,OSAL_SampleApp.c,我们建立新的任务时候可以把SampleApp改成我们自己工程的名字。

每个子系统(sub_system)在系统中作为一个OSAL TASK来运行。每个应用至少要有一个OSAL TASK,通过调用osalAddTasks()来创建。同时每个应用,必须增加至少一个主调函数到osalTaskAdd()。

 我们可以为每个应用设计一个OSAL_TASK,也可以多个任务在一个osal task里面。二者的优缺点就不讲了。

每个osal task必须做两件事情,一个是初始化,一个是向操作系统提交任务事件。

task初始化的格式:“应用名”_init.c例如:SampleApp.c

注册任务,格式:“应用名”_ProccessEvent,每个OSAL task除了强制的event以外,还最多可以添加15个event

强制(必须的)的event有:

1。SYS_EVENT_MSG (0x8000)

2。 AF_DATA_CONFIRM_CMD

调用AF_DataRequest()后成功发送数据的指示,ZSuccess说明已经成功发射出去了,如果标志位AF_ACK_REQUEST 置位,说明已经成功发送到目的节点,否则,则只能说明只是发送到下一跳。

3。AF_INCOMING_MSG_CMD

收到信息的指示

4。KEY_CHANGE

按键改变的指示

5。ZDO_NEW_DSTADDR

请求回应的指示

6。ZDO_STATE_CHANGE

设备对象改变的指示


原创粉丝点击