使用CC2530,一个作为协调器,需要和多个节点绑定进行数据收发。如何才能实现上电就自行绑定啊?ZStack的例程有关于这方面的吗?谢谢大家解答。
yun long1:
另外问,协调器和节点相互收发数据,都需要先绑定吗?
Kanjie Zhu:
回复 yun long1:
要实现上电自动绑定,需要在应用层的处理中加入service discovery的功能。
如在Coordinator的device announce callback处理函数中发送match request,指定你需要绑定的cluster列表,在处理match response中把符合要求的节点地址记录下来,就能在后续的应用中使用这些地址进行发送接收了。
Kanjie Zhu:
回复 yun long1:
是的,绑定是为了确定彼此2个节点都具备相同的功能,并且通过绑定协调器能知道路由器或终端节点的地址。
yun long1:
回复 Kanjie Zhu:
谢谢答复。我基于SimpleApp做了自动绑定的功能。思路是这样的:
ZDO设备初始化成功->zb_StartConfirm( ZB_SUCCESS )->协调器调用afSetMatch(ep, TRUE),终端设备调用ZDP_MatchDescReq()->SimpleApp_ProcessZDOMsgs中处理Match_Desc_rsp->绑定成功。
按照这个思路,多台终端设备上电时可以和协调器绑定。但是,发现数据通信是单向的,只能由终端设备往协调器发送数据。我想双向都能收发收据,该如何修改呢?
yun long1:
回复 Kanjie Zhu:
是我搞错了,本来就可以相互收发数据的,是我目标地址参数没设好。
zb_SendDataRequest ( uint16 destination, cmd, len, *pData, handle, txOptions, radius ), 当destination为0xFFFE为绑定地址发送,0xFFFF才是广播发送。
zexin zeng:
回复 yun long1:
你好,能否指导下ZigBee的绑定流程,QQ2426203566,谢谢
YiKai Chen:
回复 zexin zeng:
blog.sina.cn/…/blog_4c8287230100f2yj.html
zexin zeng:
回复 YiKai Chen:
谢谢,我想多问一句,使用绑定,一对多通信,会不会比广播的可靠性高呢?
YiKai Chen:
回复 zexin zeng:
會的