I have the following scenario:
BT121 (in BTC only mode) should stay master in order to be able to communicate with up to four slave devices over RFCOMM (as a slave, it seems there is a limitation of two piconets). The other devices are connecting to BT121. The BT121 requests a role switch on dumo_evt_bt_rfcomm_opened_id using the rfcomm endpoint.
This worked well using the SDK 184.108.40.206.
An now the actual issue:
I have switched to SDK 1.1.1-168 and added a HID keyboard which can connect to one (and only one) of the devices already connected over RFCOMM. I'm calling dumo_cmd_bt_connection_set_role(endpoint, 0); also for the HID endpoint in case of dumo_evt_bt_hid_opened_id.
The HID data transfer works, however the master slave switch doesn't seem to work any more, and I'm limited to two connections.
Does the HID library enforce some piconet topology and prohibits the master/slave switch? Are there any configuration item in hid_keyboard.xml which lead to this limitation? Any other ideas on what's going wrong?
The piconet topology implementation is on the ACL level and is the same on both, RFCOMM and HID.
If there are multiple logical links on top of an ACL, then all logical links need to have the same role. Does it work if you do the role switch on the RFCOMM?
Hello - Please, see the comment that was just added at http://community.silabs.com/t5/Bluetooth-Wi-Fi/bt-connection-set-role-handle-type/m-p/189637