比如,A是协调器,B是控制端,C是被控制端。
通过B和C都向A发送“ZDP_EndDeviceBindReq”的方式实现绑定后,绑定信息是存到里协调器A呢,还是控制端B呢?
1)、如果是存在协调器A中,在B控制C时,关掉协调器A也是可以控制的,所以绑定信息应该不是在协调器中,否则设备B不能从绑定表中获取到C的网络地址;
2)、如果是存到控制设备B中,在绑定过程中,B和协调器A的数据通讯包中,从End Device Bind Request—>>到Unbind Request—>到Bind Request—>到最后的End Device Bind Respons,数据包中并没有包含过被控制设备C的网络地址,只有C的64位IEEE地址。那么绑定成功后,B是怎么知道的C的网络地址的呢?
Susan Yang:
调用ZDP_EndDeviceBindReq函数进行绑定,这种绑定方式必须要有协调器设备存在,两个设备通过按键在一定时间间隔内调用ZDP_EndDeviceBindReq函数完成绑定。此时绑定信息是存放在B中的,之后无需网络地址即可实现B和C之间的通信
user5020974:
回复 Susan Yang:
@Susan Yang
问题2里,设备C的网络地址是通过什么途径传给B的呢?看抓包数据,B和C是没有数据传输的,协调器A和设备B的数据包中,也没有设备C的网络地址信息呀,只有C的64位IEEE地址信息。
绑定后实际控制时,看抓包数据也是通过网络地址发送的呀。