组播描述的就是网络中所有节点设备被分组后组内相互通信的过程,确定通信对象的就是节点的组号。关注SampleApp.c中的2项内容:
1. 组播afAddrType_t的类型变量:
afAddrType_t SampleApp_Flash_DstAddr; /* 组播 */
2. 组播内容的结构体:
aps_Group_t SampleApp_Group; /* 分组内容 */
组播参数的配置如下:
/* Setup for the flash command's destination address - Group 1 */
SampleApp_Flash_DstAddr.addrMode = ( afAddrMode_t ) afAddrGroup;
SampleApp_Flash_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
SampleApp_Flash_DstAddr.addr.shortAddr = SAMPLEAPP_FLASH_GROUP;
已经定义的组信息代码,将ID修改成组号相对应,方便以后自己扩展分组需要SAMPLEAPP_FLASH_GROUP,如下(在SampleApp_Init函数中,位于函数最后面):
/* By default, all devices start out in Group 1 */
SampleApp_Group.ID = SAMPLEAPP_FLASH_GROUP; /* 0x0001 */
osal_memcpy ( SampleApp_Group.name, "Group 1", 7 );
aps_AddGroup ( SAMPLEAPP_ENDPOINT, &SampleApp_Group

本文介绍了ZigBee协议栈中的组播通信过程,包括组播类型变量、组播内容结构体的配置,以及如何定义和修改组播参数。通过替换数据传输实验的函数为组播发送函数,实现周期性组播数据发送。在接收端,修改组播接收函数以确保设备能正确接收信息。实验设置中,将协调器和路由器的组号设定为特定值,终端设备由于默认的睡眠模式不参与组播,但可通过修改配置使其参与。

1309

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



