Loading system/blueberry/tests/gd/hci/le_advertising_manager_test.py +6 −1 Original line number Diff line number Diff line Loading @@ -24,13 +24,14 @@ from blueberry.tests.gd.cert.truth import assertThat from blueberry.tests.gd.cert import gd_base_test from blueberry.facade import common_pb2 as common from google.protobuf import empty_pb2 as empty_proto from blueberry.facade.hci import controller_facade_pb2 as controller_facade from blueberry.facade.hci import \ le_advertising_manager_facade_pb2 as le_advertising_facade from blueberry.facade.hci import le_initiator_address_facade_pb2 as le_initiator_address_facade from blueberry.facade.hci.le_advertising_manager_facade_pb2 import AdvertisingCallbackMsgType from blueberry.facade.hci.le_advertising_manager_facade_pb2 import AdvertisingStatus from mobly import test_runner from mobly import asserts, test_runner from blueberry.utils import bluetooth import hci_packets as hci Loading Loading @@ -296,6 +297,10 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass): create_response.advertiser_id)) def test_enable_periodic_advertising_callback(self): check_feature = self.dut.hci_controller.SupportsBlePeriodicAdvertising(empty_proto.Empty()) if not check_feature.supported: asserts.skip("Periodic advertising not supported.") self.set_address_policy_with_static_address() create_response = self.create_advertiser() enable_periodic_advertising_request = le_advertising_facade.EnablePeriodicAdvertisingRequest( Loading system/gd/hci/le_advertising_manager.cc +11 −3 Original line number Diff line number Diff line Loading @@ -551,9 +551,13 @@ struct LeAdvertisingManager::impl : public bluetooth::hci::LeAddressManagerCallb hci::LeSetExtendedAdvertisingEnableBuilder::Create(Enable::DISABLED, enabled_vector), module_handler_->BindOnce(impl::check_status<LeSetExtendedAdvertisingEnableCompleteView>)); // Only set periodic advertising if supported. if (controller_->SupportsBlePeriodicAdvertising()) { le_advertising_interface_->EnqueueCommand( hci::LeSetPeriodicAdvertisingEnableBuilder::Create(false, false, advertiser_id), module_handler_->BindOnce(impl::check_status<LeSetPeriodicAdvertisingEnableCompleteView>)); module_handler_->BindOnce( impl::check_status<LeSetPeriodicAdvertisingEnableCompleteView>)); } } break; } Loading Loading @@ -1089,6 +1093,10 @@ struct LeAdvertisingManager::impl : public bluetooth::hci::LeAddressManagerCallb } void enable_periodic_advertising(AdvertiserId advertiser_id, bool enable, bool include_adi) { if (!controller_->SupportsBlePeriodicAdvertising()) { return; } if (include_adi && !controller_->SupportsBlePeriodicAdvertisingAdi()) { include_adi = false; } Loading system/gd/hci/le_advertising_manager_test.cc +4 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,10 @@ class TestController : public Controller { return 0x0672; } bool SupportsBlePeriodicAdvertising() const override { return true; } bool SupportsBleExtendedAdvertising() const override { return support_ble_extended_advertising_; } Loading Loading
system/blueberry/tests/gd/hci/le_advertising_manager_test.py +6 −1 Original line number Diff line number Diff line Loading @@ -24,13 +24,14 @@ from blueberry.tests.gd.cert.truth import assertThat from blueberry.tests.gd.cert import gd_base_test from blueberry.facade import common_pb2 as common from google.protobuf import empty_pb2 as empty_proto from blueberry.facade.hci import controller_facade_pb2 as controller_facade from blueberry.facade.hci import \ le_advertising_manager_facade_pb2 as le_advertising_facade from blueberry.facade.hci import le_initiator_address_facade_pb2 as le_initiator_address_facade from blueberry.facade.hci.le_advertising_manager_facade_pb2 import AdvertisingCallbackMsgType from blueberry.facade.hci.le_advertising_manager_facade_pb2 import AdvertisingStatus from mobly import test_runner from mobly import asserts, test_runner from blueberry.utils import bluetooth import hci_packets as hci Loading Loading @@ -296,6 +297,10 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass): create_response.advertiser_id)) def test_enable_periodic_advertising_callback(self): check_feature = self.dut.hci_controller.SupportsBlePeriodicAdvertising(empty_proto.Empty()) if not check_feature.supported: asserts.skip("Periodic advertising not supported.") self.set_address_policy_with_static_address() create_response = self.create_advertiser() enable_periodic_advertising_request = le_advertising_facade.EnablePeriodicAdvertisingRequest( Loading
system/gd/hci/le_advertising_manager.cc +11 −3 Original line number Diff line number Diff line Loading @@ -551,9 +551,13 @@ struct LeAdvertisingManager::impl : public bluetooth::hci::LeAddressManagerCallb hci::LeSetExtendedAdvertisingEnableBuilder::Create(Enable::DISABLED, enabled_vector), module_handler_->BindOnce(impl::check_status<LeSetExtendedAdvertisingEnableCompleteView>)); // Only set periodic advertising if supported. if (controller_->SupportsBlePeriodicAdvertising()) { le_advertising_interface_->EnqueueCommand( hci::LeSetPeriodicAdvertisingEnableBuilder::Create(false, false, advertiser_id), module_handler_->BindOnce(impl::check_status<LeSetPeriodicAdvertisingEnableCompleteView>)); module_handler_->BindOnce( impl::check_status<LeSetPeriodicAdvertisingEnableCompleteView>)); } } break; } Loading Loading @@ -1089,6 +1093,10 @@ struct LeAdvertisingManager::impl : public bluetooth::hci::LeAddressManagerCallb } void enable_periodic_advertising(AdvertiserId advertiser_id, bool enable, bool include_adi) { if (!controller_->SupportsBlePeriodicAdvertising()) { return; } if (include_adi && !controller_->SupportsBlePeriodicAdvertisingAdi()) { include_adi = false; } Loading
system/gd/hci/le_advertising_manager_test.cc +4 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,10 @@ class TestController : public Controller { return 0x0672; } bool SupportsBlePeriodicAdvertising() const override { return true; } bool SupportsBleExtendedAdvertising() const override { return support_ble_extended_advertising_; } Loading