Skip to content

Commit bcdddaa

Browse files
jmartinez-silabskiel-applercasallas-silabs
authored
[Silabs] Add logs for ble connection negotiations events. add a step to increa… (project-chip#36254)
* Add logs for ble connection negotiations events. add a step to increase the ble connection timeout when it is under a prefer threshold. * Update src/platform/silabs/efr32/BLEManagerImpl.cpp Co-authored-by: Kiel Oleson <kielo@apple.com> * Apply suggestions from code review Co-authored-by: Ricardo Casallas <77841255+rcasallas-silabs@users.noreply.github.com> --------- Co-authored-by: Kiel Oleson <kielo@apple.com> Co-authored-by: Ricardo Casallas <77841255+rcasallas-silabs@users.noreply.github.com>
1 parent 813c245 commit bcdddaa

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

src/platform/silabs/BLEManagerImpl.h

+1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class BLEManagerImpl final : public BLEManager, private BleLayer, private BlePla
6868
int32_t SendBLEAdvertisementCommand(void);
6969
#else
7070
void HandleConnectEvent(volatile sl_bt_msg_t * evt);
71+
void HandleConnectParams(volatile sl_bt_msg_t * evt);
7172
void HandleConnectionCloseEvent(volatile sl_bt_msg_t * evt);
7273
void HandleWriteEvent(volatile sl_bt_msg_t * evt);
7374
void UpdateMtu(volatile sl_bt_msg_t * evt);

src/platform/silabs/efr32/BLEManagerImpl.cpp

+26-2
Original file line numberDiff line numberDiff line change
@@ -674,6 +674,21 @@ void BLEManagerImpl::HandleConnectEvent(volatile sl_bt_msg_t * evt)
674674
PlatformMgr().ScheduleWork(DriveBLEState, 0);
675675
}
676676

677+
void BLEManagerImpl::HandleConnectParams(volatile sl_bt_msg_t * evt)
678+
{
679+
sl_bt_evt_connection_parameters_t * con_param_evt = (sl_bt_evt_connection_parameters_t *) &(evt->data);
680+
681+
if (con_param_evt->timeout < BLE_CONFIG_TIMEOUT)
682+
{
683+
ChipLogProgress(DeviceLayer, "Request to increase the connection timeout from %d to %d", con_param_evt->timeout,
684+
BLE_CONFIG_TIMEOUT);
685+
sl_bt_connection_set_parameters(con_param_evt->connection, BLE_CONFIG_MIN_INTERVAL, BLE_CONFIG_MAX_INTERVAL,
686+
BLE_CONFIG_LATENCY, BLE_CONFIG_TIMEOUT, BLE_CONFIG_MIN_CE_LENGTH, BLE_CONFIG_MAX_CE_LENGTH);
687+
}
688+
689+
PlatformMgr().ScheduleWork(DriveBLEState, 0);
690+
}
691+
677692
void BLEManagerImpl::HandleConnectionCloseEvent(volatile sl_bt_msg_t * evt)
678693
{
679694
sl_bt_evt_connection_closed_t * conn_evt = (sl_bt_evt_connection_closed_t *) &(evt->data);
@@ -1061,11 +1076,20 @@ extern "C" void sl_bt_on_event(sl_bt_msg_t * evt)
10611076
}
10621077
break;
10631078
case sl_bt_evt_connection_parameters_id: {
1064-
// ChipLogProgress(DeviceLayer, "Connection parameter ID received");
1079+
ChipLogProgress(DeviceLayer, "Connection parameter ID received - i:%d, l:%d, t:%d, sm:%d",
1080+
evt->data.evt_connection_parameters.interval, evt->data.evt_connection_parameters.latency,
1081+
evt->data.evt_connection_parameters.timeout, evt->data.evt_connection_parameters.security_mode);
1082+
chip::DeviceLayer::Internal::BLEMgrImpl().HandleConnectParams(evt);
10651083
}
10661084
break;
10671085
case sl_bt_evt_connection_phy_status_id: {
1068-
// ChipLogProgress(DeviceLayer, "PHY update procedure is completed");
1086+
ChipLogProgress(DeviceLayer, "Connection phy status ID received - phy:%d", evt->data.evt_connection_phy_status.phy);
1087+
}
1088+
break;
1089+
case sl_bt_evt_connection_data_length_id: {
1090+
ChipLogProgress(DeviceLayer, "Connection data length ID received - txL:%d, txT:%d, rxL:%d, rxL:%d",
1091+
evt->data.evt_connection_data_length.tx_data_len, evt->data.evt_connection_data_length.tx_time_us,
1092+
evt->data.evt_connection_data_length.rx_data_len, evt->data.evt_connection_data_length.rx_time_us);
10691093
}
10701094
break;
10711095
case sl_bt_evt_connection_closed_id: {

0 commit comments

Comments
 (0)