OSDN Git Service

Pass new LE CoC min_ce/max_ce parameters to native stack
authorStanley Tng <stng@google.com>
Mon, 19 Mar 2018 19:48:04 +0000 (12:48 -0700)
committerStanley Tng <stng@google.com>
Thu, 12 Apr 2018 15:59:31 +0000 (08:59 -0700)
Add new test connection event (ce) parameters, min_ce and max_ce, to
the SL4A tests for LE Connection-oriented Channel (CoC) feature.

Test: Run cmd: act.py -c $MY_SL4A_CONFIG -tc BleCoc2ConnTest
Bug: 77528723

Change-Id: Ifea040f0eb105f89539e6b74f5c2edc76147a065
(cherry picked from commit a0b984e80a9522b7d7e6dca4246b9b56c9ae0ab7)

binder/android/bluetooth/IBluetoothGatt.aidl
bta/dm/bta_dm_act.cc
bta/dm/bta_dm_api.cc
bta/dm/bta_dm_int.h
bta/include/bta_api.h
btif/src/btif_gatt_client.cc
include/hardware/bt_gatt_client.h
stack/l2cap/l2c_ble.cc

index 72b0b28..c9e1c4b 100644 (file)
@@ -96,7 +96,8 @@ interface IBluetoothGatt {
     void configureMTU(in int clientIf, in String address, in int mtu);
     void connectionParameterUpdate(in int clientIf, in String address, in int connectionPriority);
     void leConnectionUpdate(int clientIf, String address, int minInterval,
-                            int maxInterval, int slaveLatency, int supervisionTimeout);
+                            int maxInterval, int slaveLatency, int supervisionTimeout,
+                            int minConnectionEventLen, int maxConnectionEventLen);
 
     void registerServer(in ParcelUuid appId, in IBluetoothGattServerCallback callback);
     void unregisterServer(in int serverIf);
index 9ec15ac..b7a26bd 100644 (file)
@@ -3971,8 +3971,10 @@ void bta_dm_ble_set_conn_scan_params(uint32_t scan_interval,
 /** This function update LE connection parameters */
 void bta_dm_ble_update_conn_params(const RawAddress& bd_addr, uint16_t min_int,
                                    uint16_t max_int, uint16_t latency,
-                                   uint16_t timeout) {
-  if (!L2CA_UpdateBleConnParams(bd_addr, min_int, max_int, latency, timeout)) {
+                                   uint16_t timeout, uint16_t min_ce_len,
+                                   uint16_t max_ce_len) {
+  if (!L2CA_UpdateBleConnParams(bd_addr, min_int, max_int, latency, timeout,
+                                min_ce_len, max_ce_len)) {
     APPL_TRACE_ERROR("Update connection parameters failed!");
   }
 }
index e1c0266..e968bd1 100644 (file)
@@ -727,9 +727,11 @@ void BTA_DmSearchExt(tBTA_DM_INQ* p_dm_inq, tBTA_SERVICE_MASK_EXT* p_services,
  ******************************************************************************/
 void BTA_DmBleUpdateConnectionParams(const RawAddress& bd_addr,
                                      uint16_t min_int, uint16_t max_int,
-                                     uint16_t latency, uint16_t timeout) {
-  do_in_bta_thread(FROM_HERE, base::Bind(bta_dm_ble_update_conn_params, bd_addr,
-                                         min_int, max_int, latency, timeout));
+                                     uint16_t latency, uint16_t timeout,
+                                     uint16_t min_ce_len, uint16_t max_ce_len) {
+  do_in_bta_thread(
+      FROM_HERE, base::Bind(bta_dm_ble_update_conn_params, bd_addr, min_int,
+                            max_int, latency, timeout, min_ce_len, max_ce_len));
 }
 
 /*******************************************************************************
index b0ec483..6aafd7d 100644 (file)
@@ -507,7 +507,8 @@ extern void bta_dm_ble_set_conn_scan_params(uint32_t, uint32_t);
 extern void bta_dm_close_gatt_conn(tBTA_DM_MSG* p_data);
 extern void bta_dm_ble_observe(bool, uint8_t, tBTA_DM_SEARCH_CBACK*);
 extern void bta_dm_ble_update_conn_params(const RawAddress&, uint16_t, uint16_t,
-                                          uint16_t, uint16_t);
+                                          uint16_t, uint16_t, uint16_t,
+                                          uint16_t);
 extern void bta_dm_ble_config_local_privacy(bool);
 extern void bta_dm_ble_set_adv_params(uint16_t adv_int_min,
                                       uint16_t adv_int_max,
index e8f46af..9d4693e 100644 (file)
@@ -1648,7 +1648,9 @@ extern void BTA_DmBleEnableRemotePrivacy(const RawAddress& bd_addr,
  ******************************************************************************/
 extern void BTA_DmBleUpdateConnectionParams(const RawAddress& bd_addr,
                                             uint16_t min_int, uint16_t max_int,
-                                            uint16_t latency, uint16_t timeout);
+                                            uint16_t latency, uint16_t timeout,
+                                            uint16_t min_ce_len,
+                                            uint16_t max_ce_len);
 
 /*******************************************************************************
  *
index e49fee8..0e06bbb 100644 (file)
@@ -537,10 +537,11 @@ bt_status_t btif_gattc_configure_mtu(int conn_id, int mtu) {
 
 void btif_gattc_conn_parameter_update_impl(RawAddress addr, int min_interval,
                                            int max_interval, int latency,
-                                           int timeout) {
+                                           int timeout, uint16_t min_ce_len,
+                                           uint16_t max_ce_len) {
   if (BTA_DmGetConnectionState(addr))
     BTA_DmBleUpdateConnectionParams(addr, min_interval, max_interval, latency,
-                                    timeout);
+                                    timeout, min_ce_len, max_ce_len);
   else
     BTA_DmSetBlePrefConnParams(addr, min_interval, max_interval, latency,
                                timeout);
@@ -548,11 +549,13 @@ void btif_gattc_conn_parameter_update_impl(RawAddress addr, int min_interval,
 
 bt_status_t btif_gattc_conn_parameter_update(const RawAddress& bd_addr,
                                              int min_interval, int max_interval,
-                                             int latency, int timeout) {
+                                             int latency, int timeout,
+                                             uint16_t min_ce_len,
+                                             uint16_t max_ce_len) {
   CHECK_BTGATT_INIT();
-  return do_in_jni_thread(
-      Bind(base::IgnoreResult(&btif_gattc_conn_parameter_update_impl), bd_addr,
-           min_interval, max_interval, latency, timeout));
+  return do_in_jni_thread(Bind(
+      base::IgnoreResult(&btif_gattc_conn_parameter_update_impl), bd_addr,
+      min_interval, max_interval, latency, timeout, min_ce_len, max_ce_len));
 }
 
 bt_status_t btif_gattc_set_preferred_phy(const RawAddress& bd_addr,
index 4c9d464..6ea1c89 100644 (file)
@@ -288,7 +288,9 @@ typedef struct {
   /** Request a connection parameter update */
   bt_status_t (*conn_parameter_update)(const RawAddress& bd_addr,
                                        int min_interval, int max_interval,
-                                       int latency, int timeout);
+                                       int latency, int timeout,
+                                       uint16_t min_ce_len,
+                                       uint16_t max_ce_len);
 
   bt_status_t (*set_preferred_phy)(const RawAddress& bd_addr, uint8_t tx_phy,
                                    uint8_t rx_phy, uint16_t phy_options);
index 51f81cf..839e5f0 100644 (file)
@@ -117,6 +117,10 @@ bool L2CA_UpdateBleConnParams(const RawAddress& rem_bda, uint16_t min_int,
     return (false);
   }
 
+  VLOG(2) << __func__ << ": BD_ADDR=" << rem_bda << ", min_int=" << min_int
+          << ", max_int=" << max_int << ", min_ce_len=" << min_ce_len
+          << ", max_ce_len=" << max_ce_len;
+
   p_lcb->min_interval = min_int;
   p_lcb->max_interval = max_int;
   p_lcb->latency = latency;