在z-stack协议栈中,终端会根据信号强度选择入网,请问这一部分的代码在什么地方?
user4566561:
这个信号强度的阈值是多少,就是说什么样的信号强度才能够加入网络。
Susan Yang:
回复 user4566561:
在zstack的mac_spec.h中有定义:#define MAC_SPEC_MIN_RECEIVER_SENSITIVITY -85
user4566561:
回复 Susan Yang:
之前做过实验,终端会选择一个信号较好的协调器加入网络,这部分在 z-stack 中是怎么体现出来的?
Susan Yang:
回复 user4566561:
您可以在工程内查找函数 ZStatus_t NLME_NetworkDiscoveryRequest( uint32 ScanChannels,byte ScanDuration );
ScanChannels -执行发现的通道,2.4GHz条件下只能使用通道11-26(0x07FFF800)
ScanDuration -新网络启动前,每个通道被其他网络扫描的时间
BEACON_ORDER_15_MSEC 0 15.36 milliseconds
BEACON_ORDER_30_MSEC 1 30.72 milliseconds
BEACON_ORDER_60_MSEC 2 61.44 milliseconds
BEACON_ORDER_120_MSEC 3 122.88 milliseconds
BEACON_ORDER_240_MSEC 4 245.76 milliseconds
BEACON_ORDER_480_MSEC 5 491.52 milliseconds
BEACON_ORDER_1_SECOND 6 983.04 milliseconds
BEACON_ORDER_2_SECONDS 7 1966.08 milliseconds
BEACON_ORDER_4_SECONDS 8 3932.16 milliseconds
BEACON_ORDER_7_5_SECONDS 9 7864.32 milliseconds
BEACON_ORDER_15_SECONDS 10 15728.64 milliseconds
BEACON_ORDER_31_SECONDS 11 31457.28 milliseconds
BEACON_ORDER_1_MINUTE 12 62914.58 milliseconds
BEACON_ORDER_2_MINUTES 13 125829.12 milliseconds
BEACON_ORDER_4_MINUTES 14 251658.24 milliseconds
BEACON_ORDER_NO_BEACONS 15 No Beacons transmitted
返回值:ZStatus_t -ZComDef.h中定义的状态值
VV:
在搜网的时候,对于父设备的选择主要在函数ZDO_beaconNotifyIndCB里面。
里面对不同父设备信号强度的判断。
user4566561:
回复 VV:
多谢vivi大神