我是根据实际的现象猜测的,信号差会导致permit join的位为no。
我记得协议找里面有个加网RSSI和通信RSSI都有界限值,这点我可以确认,我以前看到过。
附上百度来的答疑
问:我在测试Z-stack时发现,如果不加NV_RESTORE这个编译选项的话,那么节点必须靠得比较近才能组网成功。
如果离得较远,就无法组网。请问这是为什么呢?
答:有两项原因限制了zigbee节点的加入网络的距离,一个是默认发射功率为0dbm,另一个是节点加入是要求信号强度-84dbm以上,修改这两个条件可以使用zigbee节点可以在较远的地方加入网络。如果打开NV_Restore并且成功加入过网络,节点可以在小于-84dbm信号强度下通讯,这就是为什么打开nv_restore,可以有较远的距离的原因。
问:如何修改-84dbm这个值?
答:修改mac_spec.h中的MAC_SPEC_ED_MIN_DBM_ABOVE_RECEIVER_SENSITIVITY,将其改为1
/* Threshold above receiver sensitivity for minimum energy detect in dBm (see 6.9.7) */
#define MAC_SPEC_ED_MIN_DBM_ABOVE_RECEIVER_SENSITIVITY 10
另外还要把MAC_SPEC_MIN_RECEIVER_SENSITIVITY,改成-94
/* minimum receiver sensitivity in dBm (see 6.5.3.3) */
#define MAC_SPEC_MIN_RECEIVER_SENSITIVITY -85