I think the issue is happening due to 'duplicate filter' enabled.
What I observe is, if 'duplicate filter' is enabled and I have only one advertiser, that will be reported exactly once by the central.
If I have more than ten advertisers, they all get reported multiple times even if 'duplicate filter' is enabled.
So, is there a queue for duplicate filter? What is the maximum number of devices it can filter?
Also, is 'duplicate filter' applicable only during the scan interval? If not, should I wait for timeout and then restart scanning to get advertisements from the same device? I want exactly one advertisement from each of 100 devices in every one minute.
What is the ideal way of implementing this?
1 of 1 people found this helpful
1. If the scanwindow and the scaninterval parameters are same then the link layer should scan continuously. If we enable the maximum scan interval and scan window, you would be continuously to scan for maximum time to see if there are any advertising devices around. This will increase the chance of receiving the advertising packet on the first scan.
2. For PSoC4 BLE, the hardware tracks 8 devices for duplicate filtering and any new device address will over writes the existing ones. So when the scanner sees more than 8 advertiser, then 9th advertiser replaces the 1st one, 10th advertiser replaces the 2nd one and so on in the address cache in FIFO fashion.