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

what is meaning of err_code:8,when i use the ble_adverting_start(BLE_ADV_MODE_FAST);

when i use the ble_adverting_start(BLE_ADV_MODE_FAST); and then use the ble _advering_start(BLE_ADV_MODE_IDLE); then ble_adverting_start(BLE_ADV_MODE_FAST); the return err_code is 8; then APP_ERROR_CHECK(err_code) it can system abnormal。

Parents
  • Did you ever find a solution to this?  I am getting the same thing doing the same order of operations.

    Everything has been initialized properly and it works for the first advertising.  I get it failing inside the call sd_ble_gap_adv_set_configure() inside ble_advertising_start() with the NRF_ERROR_INVALID_STATE error code.  The documentation here, https://www.nordicsemi.com/DocLib/Content/SoftDevice_API_Doc/S132/v6-0-0/group_ble_gap_functions?650#ga9969047f4e7485c3f856c841978cc31a, says for that error code:

    Invalid state to perform operation.

    • It is invalid to provide non-NULL advertising set parameters while advertising.
    • It is invalid to provide the same data buffers while advertising. To update advertising data, provide new advertising buffers.

    Since there isn't a ble_advertising_stop() function, I thought ble_advertising_start() with the mode to BLE_ADV_MODE_IDLE would stop it so the "while advertising" condition for this error shouldn't happen, but I guess I am wrong.

    I need my device to turn on and turn off based on certain conditions and I am wondering how the SDK for this softdevice (132 V6.0.0) was meant to be used to accomplish this.  I thought I would just turn advertising on for enabled (on) and disconnect and turn advertising to idle for disabled (off) but maybe I should be disabling and enabling the whole softdevice every time?  I had issues re-enabling the softdevice when I did try the latter.

    Any quick suggestions would be appreciated.  Thanks.

Reply
  • Did you ever find a solution to this?  I am getting the same thing doing the same order of operations.

    Everything has been initialized properly and it works for the first advertising.  I get it failing inside the call sd_ble_gap_adv_set_configure() inside ble_advertising_start() with the NRF_ERROR_INVALID_STATE error code.  The documentation here, https://www.nordicsemi.com/DocLib/Content/SoftDevice_API_Doc/S132/v6-0-0/group_ble_gap_functions?650#ga9969047f4e7485c3f856c841978cc31a, says for that error code:

    Invalid state to perform operation.

    • It is invalid to provide non-NULL advertising set parameters while advertising.
    • It is invalid to provide the same data buffers while advertising. To update advertising data, provide new advertising buffers.

    Since there isn't a ble_advertising_stop() function, I thought ble_advertising_start() with the mode to BLE_ADV_MODE_IDLE would stop it so the "while advertising" condition for this error shouldn't happen, but I guess I am wrong.

    I need my device to turn on and turn off based on certain conditions and I am wondering how the SDK for this softdevice (132 V6.0.0) was meant to be used to accomplish this.  I thought I would just turn advertising on for enabled (on) and disconnect and turn advertising to idle for disabled (off) but maybe I should be disabling and enabling the whole softdevice every time?  I had issues re-enabling the softdevice when I did try the latter.

    Any quick suggestions would be appreciated.  Thanks.

Children
No Data
Related