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

scanning and connection establishment parameters

Hi,

I have a question about scan window and interval [I'm using nrf51822aa with s130 2.0.1... I performing some tests and I find a use case: If I set both of them (scan interval and window) to 0x140 - 200ms then radio scans all the time, after that I stop the scanning and create connection...

Once I get event that connection is established (with connection interval 20ms) I would like to start scanning once again - with same scanning params (interval 200ms and window 200ms) - What is from my perspective not possible because scanning procedure could not use radio for 100% if connection is established... but softdevice allows me to use such params (I get NRF_SUCCESS) - even it's not possible to work with such params or am I wrong? Of course none of device is found - once I use a bit more reasonable params (interval 200ms, window 50ms) everything works just fine

Now I am wondering how is this solved/protected in softdevice that user can set such things for scanning or creating connection params?

I expose softdevice functions to end user via API with all supported params, but I see that user could also enter/trigger some strange behaviour... Should I limited user at entering params considering on number of established connections?

Thank you for info.

Best regards, Matej

Parents
  • Yes, the SoftDevice will accept such parameters even though it has a connection. It will schedule connection and scanning events. See this for more information about scheduling.

    The SoftDevice does not protect against this, it expect the user to select paramters that make sense.

    I absolutely think it makes sense to limit the parameters the user can enter.

  • I came up to such conclusion with reading doxygen comment sd_ble_gap_scan_start of function... where is written: "Not enough BLE role slots available. Stop one or more currently active roles (Central, Peripheral or Broadcaster) and try again"

    Considering priorities... then peripheral link should not starve, because of such scanning parameters. Peripheral link have the highest priority while observer/broadcaster is on the 3rd place.

    After all, I assume that in case if I already have established connection peripheral or central and then I call function to scan with 100% of time. I should get error NRF_ERROR_RESOURCES - considering to description.

    Or when it is possible to trigger that error?

    Thank you for additional info Petter.

    BR, Matej

Reply
  • I came up to such conclusion with reading doxygen comment sd_ble_gap_scan_start of function... where is written: "Not enough BLE role slots available. Stop one or more currently active roles (Central, Peripheral or Broadcaster) and try again"

    Considering priorities... then peripheral link should not starve, because of such scanning parameters. Peripheral link have the highest priority while observer/broadcaster is on the 3rd place.

    After all, I assume that in case if I already have established connection peripheral or central and then I call function to scan with 100% of time. I should get error NRF_ERROR_RESOURCES - considering to description.

    Or when it is possible to trigger that error?

    Thank you for additional info Petter.

    BR, Matej

Children
No Data
Related