zstack的数据传输方式————组播、单播浅析

本文探讨了zigbee协议栈中的数据传输方式,重点分析了TI公司的zStack示例应用SampleApp。通过对SampleApp的初始化函数和事件处理函数的研究,揭示了周期信息采用广播方式发送,而组播则与按键事件响应相关。在SampleApp中,组播信息的发送是在按键按下时触发,通过AF_DataRequest原语实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        最近在学习zigbee协议栈,对于zigbee的数据传输方式和流程不是很清楚,因此就狠花了几天功夫去研究zigbee组网流程!首先,下面的分析是基于TI公司zstack自带的例子程序——SampleApp。对SampleApp的应用层程序:SampleApp.c文件进行观察,发现不管选中SampleApp例子程序的哪种设备(coordinator router 还是enddevice),SampleApp.c文件的内容基本上都相同,即每个设备都可以发送和接受两种信息:周期信息(为何coordinator、router、ednDevice都会周期发送信息,我们随后会给出解释,这里先留个悬念)和闪烁信息。由于zstack组网过程不是讲述的重点,因此就不过多的介绍SampleApp例程的组网流程,如果用到的话再讲。

         这里直接进入SampleApp_Init()函数,该函数是SampleApp例程的应用层初始化的入口。语句:

if ( readCoordinatorJumper() )
    zgDeviceLogicalType = ZG_DEVICETYPE_COORDINATOR;
  else
    zgDeviceLogicalType = ZG_DEVICETYPE_ROUTER;

的意思是:通过判断传感器节点的跳线来判断该节点是coordinator还是router。

继续往下走看到下面的语句:


这个是节点发送周期信息的配置,其中第一行的addrMode = (afAddrMode_t)AddrBroadcast表示设备发送信息的方式是广播。而第三行的shortAddr=0xFFFF表示设备会将信息广播到网络上的所有设备。至于为何是shortAddr为0xFFFF表示广播到网络上的所有设备,这不解释了!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值