This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Scan in a Single Channel

Hi,

As mentioned in this post: devzone.nordicsemi.com/.../

the struct ble_gap_adv_params_t --> ble_gap_adv_ch_mask_t give the option to turn any advertising channel OFF. I tested this approach and could advertise on only one channel.

The problem that I found was in scanning for this packet. When I'm using 3 channels for advertising, the scanning program is ALWAYS able to pick the advertising packet. But when I'm using 1 channel for advertising it misses some. Is there any way to program the scanning so that it only looks on a single channel? Can this problem be due to values of scan interval and scan window (I'm setting them equal to continuously scan)?

In the description of ble_gap_adv_ch_mask_t (infocenter.nordicsemi.com/index.jsp it says "Channel mask for RF channels used in advertising and scanning". But I could only found a place in the ble_gap_adv_params_t to pass it, and ble_gap_scan_params_t doesn't have this field.

So how can we set this feature for scan mode?

Parents
  • Hi FA,

    Scanning with selective channel(s) is not supported yet. I will report internally to fix it in the documentation.

    Thanks for reporting.

    If you want to do scanning on single channel, you may want to have a look at this observer example. We do scanning manually on S110 softdevice using timeslot feature.

    ble_app_proximity - Observer.zip

  • Hi Hung, I tried to replace the scanning parts of my program with the one in main.c of the observer example. Again the example is SDK 6 I think and I'm using SDK 9, so a couple of errors came but I could get rid of those. However, I'm getting one error, which I don't know how to solve. It says ("SWI2_IRQHandler multiply defined by softdevice_handler.o and main.o). I had a similar error for SWI0_IRQHandler in main.c and app_timer.o. I changed all the SWI0 in main to SWI1. One error was gone, but there is no SWI2_IRQHandler defined in my main. So, where the error is coming from? Is it OK just to change the software interrupt numbers to get rid of duplicate definition error?

Reply
  • Hi Hung, I tried to replace the scanning parts of my program with the one in main.c of the observer example. Again the example is SDK 6 I think and I'm using SDK 9, so a couple of errors came but I could get rid of those. However, I'm getting one error, which I don't know how to solve. It says ("SWI2_IRQHandler multiply defined by softdevice_handler.o and main.o). I had a similar error for SWI0_IRQHandler in main.c and app_timer.o. I changed all the SWI0 in main to SWI1. One error was gone, but there is no SWI2_IRQHandler defined in my main. So, where the error is coming from? Is it OK just to change the software interrupt numbers to get rid of duplicate definition error?

Children
No Data
Related