6 Replies Latest reply on Nov 8, 2017 6:35 PM by JensonY_96

    hello_client_advertisement_report rate slows down badly

    bartels_2365481

      I modified hello_client to get a master listening to advertisements sent by another CYW20737 client (every 250ms)

       

      Initially hello_client_advertisement_report is called every 250ms, but after 30 seconds this rate slows down, and gets only called once every 5..15 seconds. The client is still sending it every 250ms, verified by Android.

       

      To be sure I also disabled all traces by: bleapp_trace_enable=0;

       

      Any idea what is causing the drastic slow down?

        • 1. Re: hello_client_advertisement_report rate slows down badly
          nishal

          Hi,

           

          I could not find the sampe which you are describing above. However all BLE samples have wiced_bt_cfg.c file in the same folder.

          This file has timing parameter for adv and scan interval.

             .ble_advert_cfg =                  /**< BLE advertisement settings */

              {

                  .channel_map                     = ( BTM_BLE_ADVERT_CHNL_37 | BTM_BLE_ADVERT_CHNL_38 | BTM_BLE_ADVERT_CHNL_39 ),    /**< Advertising channel map (mask of BTM_BLE_ADVERT_CHNL_37, BTM_BLE_ADVERT_CHNL_38, BTM_BLE_ADVERT_CHNL_39) */

                  .high_duty_min_interval          = WICED_BT_CFG_DEFAULT_HIGH_DUTY_ADV_MIN_INTERVAL,          /**< High duty undirected connectable advert minimum advertising interval (default: WICED_BT_CFG_DEFAULT_HIGH_DUTY_ADV_MIN_INTERVAL) */

                  .high_duty_max_interval          = WICED_BT_CFG_DEFAULT_HIGH_DUTY_ADV_MAX_INTERVAL,          /**< High duty undirected connectable advert maximum advertising interval (default: WICED_BT_CFG_DEFAULT_HIGH_DUTY_ADV_MAX_INTERVAL) */

                  .high_duty_duration              = 60,                                                       /**< High duty advertising duration in seconds (0 for infinite) */

                  .low_duty_min_interval           = WICED_BT_CFG_DEFAULT_LOW_DUTY_ADV_MIN_INTERVAL,           /**< Low duty undirected connectable advert minimum advertising interval (default: WICED_BT_CFG_DEFAULT_LOW_DUTY_ADV_MIN_INTERVAL) */

                  .low_duty_max_interval           = WICED_BT_CFG_DEFAULT_LOW_DUTY_ADV_MAX_INTERVAL,           /**< Low duty undirected connectable advert maximum advertising interval (default: WICED_BT_CFG_DEFAULT_LOW_DUTY_ADV_MAX_INTERVAL) */

                  .low_duty_duration               = 60,                                                       /**< Low duty advertising duration in seconds (0 for infinite) */

                  .high_duty_directed_min_interval = WICED_BT_CFG_DEFAULT_HIGH_DUTY_DIRECTED_ADV_MIN_INTERVAL, /**< high duty directed adv minimum advertising interval (default: WICED_BT_CFG_DEFAULT_HIGH_DUTY_DIRECTED_ADV_MIN_INTERVAL) */

                  .high_duty_directed_max_interval = WICED_BT_CFG_DEFAULT_HIGH_DUTY_DIRECTED_ADV_MAX_INTERVAL, /**< high duty directed adv maximum advertising interval (default: WICED_BT_CFG_DEFAULT_HIGH_DUTY_DIRECTED_ADV_MAX_INTERVAL) */

                  .low_duty_directed_min_interval  = WICED_BT_CFG_DEFAULT_LOW_DUTY_DIRECTED_ADV_MIN_INTERVAL,  /**< Low duty directed adv minimum advertising interval (default: WICED_BT_CFG_DEFAULT_LOW_DUTY_DIRECTED_ADV_MIN_INTERVAL) */

                  .low_duty_directed_max_interval  = WICED_BT_CFG_DEFAULT_LOW_DUTY_DIRECTED_ADV_MAX_INTERVAL,  /**< Low duty directed adv maximum advertising interval (default: WICED_BT_CFG_DEFAULT_LOW_DUTY_DIRECTED_ADV_MAX_INTERVAL) */

                  .low_duty_directed_duration      = 30,                                                       /**< Low duty directed advertising duration in seconds (0 for infinite) */

                  .high_duty_nonconn_min_interval  = WICED_BT_CFG_DEFAULT_HIGH_DUTY_NONCONN_ADV_MIN_INTERVAL,  /**< High duty non-connectable adv minimum advertising interval (default: WICED_BT_CFG_DEFAULT_HIGH_DUTY_NONCONN_ADV_MIN_INTERVAL) */

                  .high_duty_nonconn_max_interval  = WICED_BT_CFG_DEFAULT_HIGH_DUTY_NONCONN_ADV_MAX_INTERVAL,  /**< High duty non-connectable adv maximum advertising interval (default: WICED_BT_CFG_DEFAULT_HIGH_DUTY_NONCONN_ADV_MAX_INTERVAL) */

                  .high_duty_nonconn_duration      = 30,                                                       /**< High duty non-connectable advertising duration in seconds (0 for infinite) */

                  .low_duty_nonconn_min_interval   = WICED_BT_CFG_DEFAULT_LOW_DUTY_NONCONN_ADV_MIN_INTERVAL,   /**< Low duty non-connectable adv minimum advertising interval (default: WICED_BT_CFG_DEFAULT_LOW_DUTY_NONCONN_ADV_MIN_INTERVAL) */

                  .low_duty_nonconn_max_interval   = WICED_BT_CFG_DEFAULT_LOW_DUTY_NONCONN_ADV_MAX_INTERVAL,   /**< Low duty non-connectable adv maximum advertising interval (default: WICED_BT_CFG_DEFAULT_LOW_DUTY_NONCONN_ADV_MAX_INTERVAL) */

                  .low_duty_nonconn_duration       = 0,                                                        /**< Low duty non-connectable advertising duration in seconds (0 for infinite) */

              },

           

          Modifying these parameter which is relevant for you may help.

           

          Regards.

          1 of 1 people found this helpful
          • 2. Re: hello_client_advertisement_report rate slows down badly
            bartels_2365481

            There is no wiced_bt_cfg.c in the BLE samples.

             

            But I found blecen_cen_cfg.high_scan_duration in the source, and that does work.

             

            To have high_scan permanenly, what value has to be assigned to high_scan_duration?

            Zero?

            • 3. Re: hello_client_advertisement_report rate slows down badly
              nishal

              Yes. If you always want to have high_scan, this value must be 0 (you can see that there is comment written as ""set the value as 0 for infinite duration").

              • 4. Re: hello_client_advertisement_report rate slows down badly
                bartels_2365481

                Thanks !

                I now see the 0 remark.

                • 5. Re: hello_client_advertisement_report rate slows down badly
                  bartels_2365481

                  Setting high_scan_duration=0 does the opposite as specified !

                  It goes directly to  low-scan mode.

                  No chance to have high-scan run permanently.

                   

                  Then I set all low_scan settings identical to high-scan values hoping that this would now act as high_scan. But these values seem to get ignored, I don't get the desired behaviour.

                   

                  Is there another  high_scan_duration value for infinity?

                  • 6. Re: hello_client_advertisement_report rate slows down badly
                    JensonY_96

                    I am not aware of the value for infinite high_scan_duration, please try restart scan while scan stopped.