上篇文章介绍了Z-stack有四种绑定方式:
1、两个节点分别通过按键机制调用ZDP_EndDeviceBindReq函数;
2、Match方式;
3、ZDP_BindReq和ZDP_UnbindReq方式;
4、手工管理绑定表。
通过上篇文章的介绍大家对这四种绑定方式的原理应该有了一个清晰的认识,但zigbee开发终归要回到程序的实现,具体四种绑定方式是如何用程序实现的,这篇文章给大家介绍一下。
一、两个节点分别通过按键机制调用ZDP_EndDeviceBindReq函数
这种绑定方式必须要有协调器设备存在,两个设备通过按键在一定时间间隔内(默认为15秒)调用ZDP_EndDeviceBindReq函数完成绑定。首先要在初始化程序中注册End_Device_Bind_rsp进程,然后按键绑定请求程序如下:
假设有三个节点A、B、C,其中C是协调器,那么A需要发起绑定请求,接着在16秒时间内,B同时发起绑定请求,C会帮助他们两个建立绑定。
1、其中A、B发起绑定请求的程序实现方式如下,可以通过按键来实现,当然也可以通过其他方式,这里以按键为例。
if ( keys & HAL_KEY_SW_6 )//s1
{
HalLedSet ( HAL_LED_4, HAL_LED_MODE_OFF );
// Initiate an End Device Bind Request for the mandatory endpoint
dstAddr.addrMode = Addr16Bit;
dstAddr.addr.shortAddr = 0x0000; // Coordinator
ZDP_EndDevic