]> granicus.if.org Git - esp-idf/commitdiff
Component/bt: add_params_check_in_prefer_conn_params()
authorzhiweijian <zhiweijian@espressif.com>
Mon, 12 Feb 2018 08:57:12 +0000 (16:57 +0800)
committerzhiweijian <zhiweijian@espressif.com>
Mon, 12 Feb 2018 09:43:38 +0000 (17:43 +0800)
components/bt/bluedroid/api/esp_gap_ble_api.c

index 5276c74caf740851a89affd3094ef4bf85d36f89..84df9d6131ee519e2f837df920c9e957cef9478f 100644 (file)
@@ -240,7 +240,8 @@ esp_err_t esp_ble_gap_set_prefer_conn_params(esp_bd_addr_t bd_addr,
     if (ESP_BLE_IS_VALID_PARAM(min_conn_int, ESP_BLE_CONN_INT_MIN, ESP_BLE_CONN_INT_MAX) &&
         ESP_BLE_IS_VALID_PARAM(max_conn_int, ESP_BLE_CONN_INT_MIN, ESP_BLE_CONN_INT_MAX) &&
         ESP_BLE_IS_VALID_PARAM(supervision_tout, ESP_BLE_CONN_SUP_TOUT_MIN, ESP_BLE_CONN_SUP_TOUT_MAX) &&
-        (slave_latency <= ESP_BLE_CONN_LATENCY_MAX || slave_latency == ESP_BLE_CONN_PARAM_UNDEF)) {
+        (slave_latency <= ESP_BLE_CONN_LATENCY_MAX || slave_latency == ESP_BLE_CONN_PARAM_UNDEF) &&
+        ((supervision_tout * 10) >= ((1 + slave_latency) * ((max_conn_int * 5) >> 1))) && min_conn_int <= max_conn_int) {
 
         msg.sig = BTC_SIG_API_CALL;
         msg.pid = BTC_PID_GAP_BLE;