CC2530 协调器PANID
dear TI的工程师:
我现在想验证协议调器是否会改变PANID。
我目前有一个协调器,一个路由器,一个终端。并连接上。PANID为0x1234。
然后我断掉协调器,重新上电。
1.理论上协调器的PANID 会增加到0x1235吧?因为存在一个路由器和终端的PANID为0x1234?如果是这样,从那里可以看到改变的PANID?
2.或者说在重新上电协调器的情况下PANID不会改变,因为没有第二个协调器存在?
3.如果是第二种情况下,协调器的PANID还是0x1234.那 路由器和终端是否可以直接加入到协调器?
我试了下从路由器发送数据到协调器好象无法收到(正常连好,是可以发送的.),因此是否可以说是没有加入进去?
1:这种情况在没有NV功能时会出现,你可以通过抓包看到PANID改变。
2:使能NV的情况下 PANID不会变,否则会变
3:可以的
你需要抓包观察,PANID是否改变,如果改变了是没法通信了,相当于有两个网络了
谢谢您的解答.
那我基本知道我测试第3点为什么连不上了.因为PANID其实已经改变了.
有没有什么变量或函数可以看到在哪里改变了么?我看了这个zgConfigPANID,它一直保存的Tool里面设置的常数..
因为我没有抓包工具,而且如果协调器要使用这个改变的PANID应该也有地方去读这个变量吧.我有看到在路由器可以在ZDApp_NwkDescListProcessing 这里得到网络PANID.但协调器如果PANID改变了,不清楚在哪里取得.
非常感谢...
PANID可以通过查看_NIB.nwkPanId 获得。您可以参考链接 http://blog.csdn.net/xiaoshengyige/article/details/7577115
协调器的主要工作是建立网络,那么当协调器建立网络前扫描信道的时候,如果自己想建立的PANID和目前存在的PANID冲突的话,就会有相应冲突避免机制,你可以看到对应的处理函数是
ZDNwkMgr_ProcessNetworkReport
在这个函数里面,会有相应的PANID更新
NLME_SendNetworkUpdate( NWK_BROADCAST_SHORTADDR, NWKUPDATE_PANID_UPDATE,
_NIB.extendedPANID, _NIB.nwkUpdateId+1, newPID );
自动+1了。
变量的话就是上面同事提到的这个_NIB.nwkUpdateId
谢谢。
非常感谢....有您们的解答,大大加快了理解和开发的进度