Hi Peter,
The beacon filtering is enabled using API ZPS_bAppAddBeaconFilter in Base device application code in bdb_start.c as below:
PUBLIC void BDB_vSetAssociationFilter()
{
sBeaconFilter.pu64ExtendPanIdList = NULL;
sBeaconFilter.u8ListSize = 0;
sBeaconFilter.u8Lqi = BEACON_FILTER_LQI_VALUE;
switch(ZPS_eAplZdoGetDeviceType())
{
case ZPS_ZDO_DEVICE_ENDDEVICE:
sBeaconFilter.u16FilterMap = BF_BITMAP_CAP_ENDDEVICE | \
BF_BITMAP_PERMIT_JOIN |\
BF_BITMAP_LQI;
break;
case ZPS_ZDO_DEVICE_ROUTER:
sBeaconFilter.u16FilterMap = BF_BITMAP_CAP_ROUTER | \
BF_BITMAP_PERMIT_JOIN |\
BF_BITMAP_LQI;
break;
default:
break;
}
ZPS_bAppAddBeaconFilter(&sBeaconFilter);
}
The parameters for beacon filtering are explained in details in section 7.2.3.5 tsBeaconFilterType of JN-UG-3113 and description for LQI is as below:
u8Lqi is the minimum LQI value (in the range 0 to 255) of an acceptable beacon (any beacon with LQI value less than this minimum will be filtered out) - if required, this field must be enabled through bit 2 in the u8FilterMap bitmap. So, this means
So, if you set BEACON_FILTER_LQI_VALUE to 0 , this means the device will reject any beacon which has an LQI value less than 0 which means it shall accept all the beacons irrespective of LQI value as the range of LQI is 0 to 255.
Regards,
Mario