Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit db7b69fb authored by William Escande's avatar William Escande Committed by Gerrit Code Review
Browse files

Merge "BT5.3: Periodic Advtising adi -- prerequisite"

parents a7d9f3d1 b29aa7ac
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2151,6 +2151,7 @@ static PeriodicAdvertisingParameters parsePeriodicParams(JNIEnv* env,
  uint16_t interval = env->CallIntMethod(i, methodId);

  p.enable = true;
  p.include_adi = false;
  p.min_interval = interval;
  p.max_interval = interval + 16; /* 20ms difference betwen min and max */
  uint16_t props = 0;
@@ -2348,8 +2349,9 @@ static void setPeriodicAdvertisingEnableNative(JNIEnv* env, jobject object,
                                               jboolean enable) {
  if (!sGattIf) return;

  bool include_adi = false;
  sGattIf->advertiser->SetPeriodicAdvertisingEnable(
      advertiser_id, enable,
      advertiser_id, enable, include_adi,
      base::Bind(&enablePeriodicSetCb, advertiser_id, enable));
}

+1 −0
Original line number Diff line number Diff line
@@ -139,6 +139,7 @@ message SetPeriodicDataRequest {
message EnablePeriodicAdvertisingRequest {
  int32 advertiser_id = 1;
  bool enable = 2;
  bool include_adi = 3;
}

message GetOwnAddressRequest {
+22 −21
Original line number Diff line number Diff line
@@ -146,8 +146,7 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass):
            own_address_type=common.USE_RANDOM_DEVICE_ADDRESS,
            channel_map=7,
            filter_policy=le_advertising_facade.AdvertisingFilterPolicy.ALL_DEVICES)
        extended_config = le_advertising_facade.ExtendedAdvertisingConfig(
            advertising_config=config,
        extended_config = le_advertising_facade.ExtendedAdvertisingConfig(advertising_config=config,
                                                                          connectable=True,
                                                                          scannable=False,
                                                                          directed=False,
@@ -210,8 +209,9 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass):
        gap_name.data = list(bytes(b'Im_The_DUT2'))
        gap_data = le_advertising_facade.GapDataMsg(data=bytes(gap_name.Serialize()))

        set_data_request = le_advertising_facade.SetDataRequest(
            advertiser_id=create_response.advertiser_id, set_scan_rsp=False, data=[gap_data])
        set_data_request = le_advertising_facade.SetDataRequest(advertiser_id=create_response.advertiser_id,
                                                                set_scan_rsp=False,
                                                                data=[gap_data])
        self.dut.hci_le_advertising_manager.SetData(set_data_request)

        assertThat(self.dut.callback_event_stream).emits(
@@ -226,8 +226,9 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass):
        gap_name.data = list(bytes(b'Im_The_DUT2'))
        gap_data = le_advertising_facade.GapDataMsg(data=bytes(gap_name.Serialize()))

        set_data_request = le_advertising_facade.SetDataRequest(
            advertiser_id=create_response.advertiser_id, set_scan_rsp=True, data=[gap_data])
        set_data_request = le_advertising_facade.SetDataRequest(advertiser_id=create_response.advertiser_id,
                                                                set_scan_rsp=True,
                                                                data=[gap_data])
        self.dut.hci_le_advertising_manager.SetData(set_data_request)

        assertThat(self.dut.callback_event_stream).emits(
@@ -251,8 +252,8 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass):
            channel_map=7,
            filter_policy=le_advertising_facade.AdvertisingFilterPolicy.ALL_DEVICES)

        set_parameters_request = le_advertising_facade.SetParametersRequest(
            advertiser_id=create_response.advertiser_id, config=config)
        set_parameters_request = le_advertising_facade.SetParametersRequest(advertiser_id=create_response.advertiser_id,
                                                                            config=config)
        self.dut.hci_le_advertising_manager.SetParameters(set_parameters_request)

        assertThat(self.dut.callback_event_stream).emits(
@@ -296,7 +297,7 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass):
        self.set_address_policy_with_static_address()
        create_response = self.create_advertiser()
        enable_periodic_advertising_request = le_advertising_facade.EnablePeriodicAdvertisingRequest(
            advertiser_id=create_response.advertiser_id, enable=True)
            advertiser_id=create_response.advertiser_id, enable=True, include_adi=False)
        self.dut.hci_le_advertising_manager.EnablePeriodicAdvertising(enable_periodic_advertising_request)

        assertThat(self.dut.callback_event_stream).emits(
+2 −1
Original line number Diff line number Diff line
@@ -86,7 +86,8 @@ class MockBleAdvertisingManager : public BleAdvertisingManager {
              (uint8_t inst_id, std::vector<uint8_t> data, MultiAdvCb cb),
              (override));
  MOCK_METHOD((void), SetPeriodicAdvertisingEnable,
              (uint8_t inst_id, uint8_t enable, MultiAdvCb cb), (override));
              (uint8_t inst_id, bool enable, bool include_adi, MultiAdvCb cb),
              (override));
  MOCK_METHOD((void), Unregister, (uint8_t inst_id), (override));
  MOCK_METHOD((void), Suspend, (), (override));
  MOCK_METHOD((void), Resume, (), (override));
+3 −1
Original line number Diff line number Diff line
@@ -85,6 +85,7 @@ void parseParams(tBTM_BLE_ADV_PARAMS* p_params,
void parsePeriodicParams(tBLE_PERIODIC_ADV_PARAMS* p_periodic_params,
                         PeriodicAdvertisingParameters periodic_params) {
  p_periodic_params->enable = periodic_params.enable;
  p_periodic_params->include_adi = periodic_params.include_adi;
  p_periodic_params->min_interval = periodic_params.min_interval;
  p_periodic_params->max_interval = periodic_params.max_interval;
  p_periodic_params->periodic_advertising_properties =
@@ -245,6 +246,7 @@ class BleAdvertiserInterfaceImpl : public BleAdvertiserInterface {
  }

  void SetPeriodicAdvertisingEnable(int advertiser_id, bool enable,
                                    bool include_adi,
                                    StatusCallback cb) override {
    VLOG(1) << __func__ << " advertiser_id: " << +advertiser_id
            << " ,enable: " << enable;
@@ -253,7 +255,7 @@ class BleAdvertiserInterfaceImpl : public BleAdvertiserInterface {
    do_in_main_thread(FROM_HERE,
                      Bind(&BleAdvertisingManager::SetPeriodicAdvertisingEnable,
                           BleAdvertisingManager::Get(), advertiser_id, enable,
                           jni_thread_wrapper(FROM_HERE, cb)));
                           include_adi, jni_thread_wrapper(FROM_HERE, cb)));
  }

  void RegisterCallbacks(AdvertisingCallbacks* callbacks) {
Loading