1 Reply Latest reply on Oct 4, 2018 8:59 AM by PY_21

    BLE Component stops scanning



      During some development tests we discovered that the BLE Component stopped scanning.


      We have 10 devices that (during this test) advertises at a rate of 20-30ms.

      CyBle_ProcessEvents() is called every 5ms.

      After a some time (anything from 10-60 mins) the devices stops scanning.

      If we via software restart the BLE component the scanning is back for a while.


      The above setup results in 300-500 advertising telegrams every second and only 200 CyBle_ProcessEvents() calls. It seems to us that there is some kind of scan buffer overrun that is triggered by heavy advertising by surrounding devices and not enough CyBle_ProcessEvents() calls.


      If we now change the CyBle_ProcessEvents() interval to 1ms, the scanning continues to work over the weekend.


      Is there a minimum interval CyBle_ProcessEvents() must be called at to ensure that the scanning will be working at all times - also under heavy load?

      Is there an API that can be used to check the status of the scanning buffer so we can reset the BLE component based on that?





        • 1. Re: BLE Component stops scanning




          The function CyBle_ProcessEvents() needs to be called at least once every interval 't' where 't' is equal to connection interval or scan interval, whichever is smaller, if the device is in GAP Central mode. This function CyBle_ProcessEvents() checks the internal task queue in the BLE Stack, and pending operation of the BLE Stack, if any.

          We are receiving more advertising events from devices so we have to call the function ( CyBle_ProcessEvents() ) continuously otherwise we may going to miss some of the advertising events.

          Stopping of scan won't occur. Can you please send your project so we will check and see the issue.



          P Yugandhar.

          1 of 1 people found this helpful