This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

central multilink example not building

Hi, All

I am trying the example here ...ncs\v1.9.1\zephyr\samples\bluetooth\central_multilink\ with nRF52833dk_nrf52833 board, however it doesn't build, and saying the  maximum conn number is outside of the valid range of [1. 20]. 

What is the range of CONFIG_BT_MAX_CONN? another example says 20, but why this one set it to 62?

Another question, when a central is connected to some peripherals,  is it still able to do scanning?

Thanks you!

Ping

Parents
  • Hi

    I see you also made a new case asking these same exact questions. In the future please create a new case if it's a separate topic or the older case was closed. Otherwise it's fine to ask in an existing post.

    1. As far as I can tell, this is used when you connect to a device with bt_conn_le_create(). So when you get the connected event, either because of a failed connection attempt or a successful one (the second one), the conn_connecting has to be cleared so you can connect to the next device with a new connection object.

    2. I don't think you need to, since this is cleared after a connection it is ready to be used by the next device that is connecting as well.

    3. It should reach the "Disconnecting all" line and below when the iterations limit (max connections) are reached this can be reached as well as far as I can tell.

    Best regards,

    Simon

Reply
  • Hi

    I see you also made a new case asking these same exact questions. In the future please create a new case if it's a separate topic or the older case was closed. Otherwise it's fine to ask in an existing post.

    1. As far as I can tell, this is used when you connect to a device with bt_conn_le_create(). So when you get the connected event, either because of a failed connection attempt or a successful one (the second one), the conn_connecting has to be cleared so you can connect to the next device with a new connection object.

    2. I don't think you need to, since this is cleared after a connection it is ready to be used by the next device that is connecting as well.

    3. It should reach the "Disconnecting all" line and below when the iterations limit (max connections) are reached this can be reached as well as far as I can tell.

    Best regards,

    Simon

Children
  • Hi, Simon

    Thanks for your reply, I thought I need to create a new case to get some attention, good that you noticed - the new case has been closed anyway.

    1. if conn_connecting is set to NULL after connection is still established, I wonder how can I call disconnect() function below if I need to disconnect it,  the function needs to pass a connection object to work, it cannot be NULL, right?

    void disconnect(struct bt_conn *conn)

    2. Do you mean it will be overwritten by next connection? then back to question one, no connection object to refer to for disconnection. Do you mean I don't need to create multiple connection objects for multiple device connections? I need to disconnect them if I need.

    3. Yes, you are right, I noticed, but I have not seen any object to disconnect, still don't quite understand how I can have a software to do multiple connect and disconnect for any device I choose, any more examples please?

    Sorry to bother you with these questions, I am new to BLE and learning.

    Ping

  • Hi, Simon

    1. I think conn_connecting is an instance of bt_conn in pointer type, right?  definition below.

    struct bt_conn *conn_connecting;
    while it is created in following function -
        err = bt_conn_le_create(addr, &create_param, &conn_param,
                    &conn_connecting);
    and declaration of the function is :
    int bt_conn_le_create(const bt_addr_le_t *peer,
    		      const struct bt_conn_le_create_param *create_param,
    		      const struct bt_le_conn_param *conn_param,
    		      struct bt_conn **ret_conn)
     it is a type of struct bt_conn **ret_conn, looks like a pointer of a pointer, I am bit confused here, and not sure which one is the connect object after a connection is created, please clarify.
    2. About the SRAM usage, compile code uses ~30K RAM out of 128K,so there is still about 98K left, is there a way to know how much RAM a connection use? Please advise.
    Thank you again for your patience!
    Ping
Related