Announcements
IMPORTANT: Cypress Developer Community is transitioning on October 20th. To learn more and be prepared for this change, check out our latest announcement.
cancel
Showing results for 
Search instead for 
Did you mean: 

WICED Smart Bluetooth

Anonymous
Not applicable

Few question about scan and call back:

1) If I used the follow blecm_startScan to start scan, will it timeout based on the configuration blecen_cen_cfg.low_scan_duration ?

blecm_startScan (

    blecen_cen_cfg.scan_type,

    blecen_cen_cfg.low_scan_interval,

    blecen_cen_cfg.low_scan_window,

    blecen_cen_cfg.scan_adr_type,

    blecen_cen_cfg.scan_filter_policy,

    blecen_cen_cfg.filter_duplicates);

2) if I use blecen_Scan(LOW_SCAN) to start the scan and use blecen_Scan(NO_SCAN) to stop it before timeout, will the call back function (BLEAPP_APP_TIMER_SCAN) be called?

3) if I use blecm_setScanEnable to stop scanning, will the call back function (BLEAPP_APP_TIMER_SCAN) be called?

blecm_setScanEnable(HCIULP_SCAN_MODE_OFF, blecen_cen_cfg.filter_duplicates);

0 Likes
1 Solution
Anonymous
Not applicable

Hello.

I'm sorry I haven't replied back earlier. I didn't have time to look at the source code.

Here are answers to your question:

1. Yes, it would be okay to set it like that (not sure why you would want to do that though).

scan_duration is only used for the scan timer, which enables the scan callback. So changing the scan_duration will effect when the scan callback is called. Also notice that scan_window has units of slots where as in scan_duration is in seconds. Don't mix the numbers.

I'm not sure if the scan is stopped when the callback is called...

2. Whenever you start a scan, the timer will call whatever callback defined at variable blecen_usertimerCb. The default is NULL.

3. Yes, you can change the intervals by setting a new value to blece_cen_cfg, but you must restart the scan by calling blecen_Scan function.

Again, I'm sorry if this reply is really late.

But I thought if I put the info, someone else might be able to benefit from it.

Hope this info helps.

Thank you.

James

View solution in original post

4 Replies
MichaelF_56
Moderator
Moderator

I will ask jamesle1​ to take a look at this when he returns to the office next week.

0 Likes
Anonymous
Not applicable

Hello.

You probably don't want be using blecm_startScan unless you absolutely have to.

blecm_startScan is called inside blecen_Scan function.

In blecen_Scan, these things happen sequentially:

     - it turns off the callback timer

     - it turns off the scan

     - resets the scan mode

          - start the callback timer and scan if appropriate with the right scan_type

    

To answer your questions:

1. calling blecm_Scan will start the scan with the given parameters. However, the scanner callback will not be called.

2. calling blecen_Scan will always stop the callback timer and the scan first. If the function is called with NO_SCAN argument, the callback will not be called again.

3. calling blecm_setScanEnable will only stop the scan. It will not stop the callback timer. So the callback function will be called again.

I suggest sticking to using blecen_Scan function as it gives you control over the callback timer.

Please refer to hello_client application for example on how to use blecen_Scan.

Thank you.

James

Anonymous
Not applicable

jamesle1​​ Thanks for replying.

1. Will it be ok to set scan_duration less than scan_window?  For example:

scan_duration  = 9 seconds

scan_window = 10 seconds

If so, will the scan stops at 9th second and call the callback function?

2. Does blecen_Scan(HIGH_SCAN) have callback?

3. Can I change scan parameters such as blecen_cen_cfg.low_scan_interval on the fly?

0 Likes
Anonymous
Not applicable

Hello.

I'm sorry I haven't replied back earlier. I didn't have time to look at the source code.

Here are answers to your question:

1. Yes, it would be okay to set it like that (not sure why you would want to do that though).

scan_duration is only used for the scan timer, which enables the scan callback. So changing the scan_duration will effect when the scan callback is called. Also notice that scan_window has units of slots where as in scan_duration is in seconds. Don't mix the numbers.

I'm not sure if the scan is stopped when the callback is called...

2. Whenever you start a scan, the timer will call whatever callback defined at variable blecen_usertimerCb. The default is NULL.

3. Yes, you can change the intervals by setting a new value to blece_cen_cfg, but you must restart the scan by calling blecen_Scan function.

Again, I'm sorry if this reply is really late.

But I thought if I put the info, someone else might be able to benefit from it.

Hope this info helps.

Thank you.

James

View solution in original post