Sample Application工程详解
"Sample Application工程详解" Sample Application是一個ZStack协议栈提供的一个非常简单的演示实例,实例中的每个设备都可以发送和接收两种信息:周期信息和闪烁信息。周期信息是指设备加入网络后,每隔5秒(加上一个随机数,毫秒为单位)发送的一个信息,该信息的数据载荷为发送信息的次数。闪烁信息是指通过按下按键SW1发送的一个控制LED灯闪烁的广播信息,该广播信息只针对组1内的所有设备。 在Sample Application工程中,设备初始化时被加入组1,所以网络一旦建立完成便可执行LED灯闪烁实验。可以通过按下设备的SW2退出组1,如果设备退出组1则不再接收来自组1的消息,其按键SW1发送的消息也不再控制组1LED灯的闪烁。通过再次按下SW2便可让设备再次加入到组1,从而又可以接受来自组1的消息,其SW1也可以控制组1内设备的LED灯闪烁了。 在Sample Application工程中,使用了两个按键SW1和SW2,即ZStack协议栈中的HAL_KEY_SW_1和HAL_KEY_SW_2。同时,工程中也定义了一个事件用来处理周期信息事件,即SAMPLEAPP_SEND_PERIODIC_MSG_EVT[SampleApp.h]。 在学习ZStack协议栈的时候,我们要把握一个重点就是事件的产生和事件的处理。任务的初始化为事件的产生制造了“温床”,是事件产生的前提,任何工程都需要先初始化。当有事件产生时,OS就会调用相应的处理函数进行处理。在OS循环那一节,我们可以看到在任务初始化的最后一项就是应用层的初始化,而在指向处理函数的指针数组中最后一项是对应的应用层的处理函数。应用层相关事件会由应用层处理函数进行处理。每一层都是相互对应,各司其职。 Sample Application工程初始化时,会执行SampleApp_Init函数,该函数会初始化设备的网络状态、任务ID、传输ID等信息,并根据跳线决定设备是路由器或者是协调器。如果定义了SOFT_START,则设备初始化时设备的类型为可选类型。当程序执行到这里就明确了具体是什么类型的设备。 Sample Application工程初始化还会设置周期信息和闪烁信息的地址,这些地址都是广播地址,周期信息的地址为0xFFFF,闪烁信息的地址为组1的地址。这样,设备就可以发送和接收周期信息和闪烁信息了。 Sample Application工程是一个非常简单的演示实例,展示了ZStack协议栈的基本功能和使用方法。通过学习和掌握Sample Application工程,我们可以更好地理解ZStack协议栈的工作机理,并且可以根据实际需要自行更改实验代码。
剩余19页未读,继续阅读
- 粉丝: 0
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助