EFR32BG1B132F256GM48-B0 with c-based development (Silicon Labs Bluetooth Smart Software, version 1.0.2)
The stack do not generate event "gecko_evt_le_connection_closed" if following happens:
1.default connection parameter (server)
2.client open connection with connection interval 48750us
3.server try to change the connection parameter with parameter from 1. (superv. timeout 2s)
4.client update connection interval to 18750us with superv. timeout 2s
5.client update connection interval to 7500us with superv. timeout 20s
6.client update connection interval to 18750us with superv. timeout 2s
7.now connection is stable, and data could be exchanged
8.1.client update connection interval to 7500us with superv. timeout 20s (server do not answer)
8.2.client read some ATT (server do not answer)
8.3.client closed connection (RemoteUserTermination)
-> the stack do not generate event "gecko_evt_le_connection_closed", do not send data anymore and therefore hangs
-Even if the client do something wrong (8.x) the stack should not hang and should generate event "gecko_evt_le_connection_closed" with a useful error_code like "bg_err_bt_connection_timeout"
-the above situation could be create with a android 6 (not android 5 !!!) device (test with nexus 5 and nexus 9) and the simple "BLE Scanner" app from "Bluepixel Technologies"
-even if I try to close the connection, after the effect occurs, (cmd_endpoint_close) the device still hangs
Attached you will find
-Packet Trace, which is done with Perython at adv channel 39
-Debug output of my application
1.What does the stack do, if it get a connection update request with parameters outside the range of the default parameter (gecko_cmd_le_gap_set_conn_parameters)?
2.What can I do to "reset the stack"