Commit Graph

561 Commits (1a20ea11afcc1036dcb6f83143b0ecbc970f9e45)

Author SHA1 Message Date
Vincent Coubard 78468fb6e3 BLE: Use RANDOM address per default for Advertising, Scan and Connection parameter.
Unlike the public address, the RANDOM address is guaranteed to exist.
If privacy is enabled, it means the controller will generates random resolvable addresses or non resolvable addresses depending on the config.
If privacy is not enabled then the device will use the device's random static address that doesn't change between radio processes.
2018-11-29 12:18:11 +00:00
Vincent Coubard e7ef0b764e BLE: protect event signaling flag from concurent accesses. 2018-11-28 17:25:44 +00:00
paul-szczepanek-arm 5302a7f599 consistent errors 2018-11-27 15:38:01 +00:00
Vincent Coubard daee12d623 BLE: Fix set check in GenerigGap::stopAdvertising. 2018-11-27 15:29:52 +00:00
Vincent Coubard 6677fab856 BLE: Move source/Gap.cpp -> source/LegacyGap.cpp 2018-11-27 09:12:28 +00:00
Vincent Coubard a65296e9ee BLE: removed resolved TODO. 2018-11-26 23:44:23 +00:00
Vincent Coubard 66a9e635bd BLE: report correct event type for legacy advertising report. 2018-11-26 23:28:30 +00:00
Vincent Coubard 0c9ce24638 BLE: remove unwanted trace. 2018-11-26 23:16:31 +00:00
Vincent Coubard ef1552a8f5 BLE: report legacy connection event in new event handler. 2018-11-26 23:03:21 +00:00
paul-szczepanek-arm a14f143c85 set active set to false when stoping advertising 2018-11-26 23:00:29 +00:00
paul-szczepanek-arm 4d986bf376 fix is feature enabled condition and made in consistent 2018-11-26 21:11:34 +00:00
Vincent Coubard 56185582aa BLE: Report legacy advertising with new API. 2018-11-26 21:01:14 +00:00
Vincent Coubard 0ef7a40475 BLE: Fix set advertising paylaod dispatch. 2018-11-26 21:00:46 +00:00
Vincent Coubard daf0f429c8 BLE: Fix advertising set issues on legacy controllers. 2018-11-26 19:14:48 +00:00
paul-szczepanek-arm 3ae38ac1e8 always set existing set for legacy handle 2018-11-26 18:53:49 +00:00
paul-szczepanek-arm bf535af159 check feature support before calling extended functnions 2018-11-26 16:57:07 +00:00
paul-szczepanek-arm bed7677c81 stop advertising before reseting 2018-11-26 16:51:28 +00:00
paul-szczepanek-arm 6f3a9ca107 legacy handle starts off present in _existing_sets 2018-11-26 16:29:33 +00:00
paul-szczepanek-arm f4a560dace reset advertising sets on reset 2018-11-26 16:25:33 +00:00
paul-szczepanek-arm e54e3eaee0 cast no longer needed 2018-11-26 15:42:12 +00:00
Vincent Coubard f71e08ccf1 BLE: tag API uses in GenericGap. 2018-11-26 15:26:24 +00:00
Vincent Coubard 2d63714f2e BLE: Implement connection parameter management in GAP. 2018-11-26 15:25:46 +00:00
Vincent Coubard 89355b9fb0 BLE: Check supervision timeout value in connect. 2018-11-26 15:24:42 +00:00
Vincent Coubard d1b5c8cbb5 BLE: Mark LEGACY_ADVERTISING_HANDLE as active in initialization. 2018-11-26 15:23:53 +00:00
Vincent Coubard 93b6ecfa7e BLE: initialize properly deprecated and non deprecated flags. 2018-11-26 15:23:24 +00:00
Vincent Coubard a915748cbe BLE: Fallback to legacy connect when required. 2018-11-26 14:13:07 +00:00
Vincent Coubard 190b9bc125 BLE: Fix address type in ::ble::Gap::connect 2018-11-26 14:13:07 +00:00
paul-szczepanek-arm 528deb168f fix wrong variable being swapped 2018-11-26 11:16:23 +00:00
paul-szczepanek-arm 208b1bd3e9 fix size calculation for UUID data payload 2018-11-26 11:10:39 +00:00
Vincent Coubard 0407ee8c81 BLE: move privacy configuration type in ble namespace. 2018-11-26 10:24:35 +00:00
Vincent Coubard 78d4a9b6c8 BLE: Cleanup enum duplicates in gap/Types.h 2018-11-26 10:24:35 +00:00
Vincent Coubard e130bec6a0 BLE: rework ScanParameters::phy_configuration_t 2018-11-26 10:24:35 +00:00
Vincent Coubard 4db8ddfb90 BLE: fix name of functions in ble::ScanParameters. 2018-11-26 10:24:35 +00:00
Vincent Coubard 6b8b1d0b7a BLE: remove minimize fragmentation parameter in Gap. 2018-11-26 10:24:35 +00:00
Vincent Coubard 4058f0908a BLE: Extract computation of minimumSupervisionTimeout. 2018-11-26 10:24:35 +00:00
Vincent Coubard 6cb7645846 BLE: Improve NULL check in ble::AdvertisingDataBuilder implementation. 2018-11-26 10:24:35 +00:00
Vincent Coubard 643fad0162 BLE: Improve code by explaining or textually defining constants 2018-11-26 10:24:35 +00:00
Vincent Coubard eda3bfb0e3 BLE: Explain magic constant in ble::Gap implementation. 2018-11-26 10:24:35 +00:00
Vincent Coubard d32354a7a6 BLE: Fix compiler warning about unused variable. 2018-11-26 10:24:35 +00:00
Vincent Coubard b49870d8ae BLE: Fix code formating issues in Gap subsystem. 2018-11-26 10:24:35 +00:00
Vincent Coubard 70ec1cf641 BLE: Improve naming consistency of Gap event types. 2018-11-26 10:24:35 +00:00
Vincent Coubard 8fc62efbd8 BLE: Improve naming consistency of ble::Gap::EventHandler functions. 2018-11-26 10:24:35 +00:00
Vincent Coubard 49455dcc87 BLE: set the phy as first parameter in ble::ConnectionParameters. 2018-11-26 10:24:35 +00:00
Vincent Coubard 52318e464d BLE: rename AdvertisingParameters::*PolicyMode into AdvertisingParameters::*Filter. 2018-11-26 10:24:35 +00:00
Vincent Coubard 9f39dba429 BLE: Fix constant declaration of ble::AdvertisingParameters. 2018-11-26 10:24:35 +00:00
paul-szczepanek-arm 02cf9ea94d moved some funcs to cpp, moved cpp to source folder 2018-11-26 10:24:35 +00:00
paul-szczepanek-arm e9c0f587af fix constness to match recent const changes 2018-11-26 10:24:34 +00:00
Vincent Coubard 87f36450f5 BLE: return immutable buffer from AdvertisingDataBuilder::getAdvertisingData 2018-11-26 10:24:34 +00:00
Vincent Coubard dfa7749d8a BLE: Split ble/gap/AdvertisingDataBuilder.h into declaration and implementation file. 2018-11-26 10:24:34 +00:00
Vincent Coubard 0c2efc4dd9 BLE: Fix return value of GenericGap::manageConnectionParametersUpdateRequest. 2018-11-26 10:24:34 +00:00
Vincent Coubard 586aea553b BLE: Move privacy subsystem to ::ble::Gap. 2018-11-26 10:24:34 +00:00
Vincent Coubard c54e0d9862 BLE: Move Gap::StopScan into ::ble::Gap::stopScan . 2018-11-26 10:24:34 +00:00
Vincent Coubard bc6078eb77 BLE: prevent warning from deprecated API implementation in GenericGap. 2018-11-26 10:24:34 +00:00
Vincent Coubard 4fdb9c7e67 BLE: provide default implementation ::ble::Gap::isFeatureSupported 2018-11-26 10:24:34 +00:00
Vincent Coubard a9fd003803 BLE: Move uses of deprecated Gap functions into isolated and warning free block. 2018-11-26 10:24:34 +00:00
Vincent Coubard 1802909272 BLE: Move Gap deprecated implementation in source/Gap.cpp .
The implementation has been moved to a block that do not issue deprecation warning as this is an implementation detail.
2018-11-26 10:24:34 +00:00
Vincent Coubard 02d61cfe24 BLE: Move new version of ::GAP in a new class ::ble::Gap . 2018-11-26 10:24:34 +00:00
Vincent Coubard 869bb308c5 BLE: Add API to manage GAP connection parameter updates. 2018-11-26 10:24:34 +00:00
Vincent Coubard da7d4a0c12 BLE: Introduce new disconnection API. 2018-11-26 10:24:33 +00:00
Vincent Coubard 7d7ccea827 BLE: clean separation between GAP v1 and GAP v2 API. 2018-11-26 10:24:33 +00:00
Vincent Coubard fa4aa8f068 BLE: remove inner V2 typedef in Gap class. 2018-11-26 10:24:33 +00:00
Vincent Coubard d3c26f4283 BLE: rename functions that trap concurrent use of incorect GAP APIs 2018-11-26 10:24:33 +00:00
Vincent Coubard 6de585f7bf BLE: rename Gap::IsFeatureSupported into Gap::isFeatureSupported 2018-11-26 10:24:33 +00:00
paul-szczepanek-arm 3e72570c52 move values out of GAP 2018-11-26 10:24:33 +00:00
Vincent Coubard 7aa1e95193 BLE: merge ble::target_peer_address_type_t and advertising_peer_address_type_t 2018-11-26 10:24:33 +00:00
paul-szczepanek-arm d8eb9de459 fix names 2018-11-26 10:24:33 +00:00
Vincent Coubard ad127d76af BLE: merge ble::own_address_t and pal::own_address_type_t. 2018-11-26 10:24:33 +00:00
Vincent Coubard d1cb1e1a39 BLE: merge ble::scanning_filter_duplicates_t and pal::duplicate_filter_t 2018-11-26 10:24:33 +00:00
Vincent Coubard 07d73d5e20 BLE: merge ble::scanning_policy_mode_t and gap::scanning_filter_policy_t
This change set also introduce ble::initiator_filter_policy_t and fix a type issue ble::ConnectionParameters.
2018-11-26 10:24:33 +00:00
Vincent Coubard c6cdfd0b7e BLE: Merve ble::advertising_policy_mode and pal::advertising_filter_policy . 2018-11-26 10:24:33 +00:00
Vincent Coubard db55540952 BLE: merge ble::advertising_type_t and pal::advertising_type_t. 2018-11-26 10:24:33 +00:00
paul-szczepanek-arm b59b29ba9f reject conenct request if exteneded not enabled but required 2018-11-26 10:24:33 +00:00
Vincent Coubard 823825ee24 BLE: Fix ternary expression return type. 2018-11-26 10:24:33 +00:00
Vincent Coubard d659bc6561 BLE: unwrap own_address_type value in GenericGap. 2018-11-26 10:24:33 +00:00
Vincent Coubard 812b86a197 BLE: cleanup ble::AdvertisingParameters
* Use constrained types where relevant.
* Remove fields N/A fields
2018-11-26 10:24:33 +00:00
paul-szczepanek-arm 65d84e4227 fix case 2018-11-26 10:24:33 +00:00
paul-szczepanek-arm 09f71d278d move feature support into user api 2018-11-26 10:24:33 +00:00
Vincent Coubard f0cbd9f434 BLE: move GapAdvertisingParameters to ble::AdvertisingParameters 2018-11-26 10:24:33 +00:00
Vincent Coubard 1324116377 BLE: rename duration type and extract them out of Gap. 2018-11-26 10:24:33 +00:00
Vincent Coubard 6f21326b6a BLE: Move Gap event types in dedicated file. 2018-11-26 10:24:33 +00:00
Vincent Coubard 4d3354077e BLE: rename GapExtendedConnectParameters_t into ConnectionParameters 2018-11-26 10:24:32 +00:00
Vincent Coubard 2d1362c2c4 BLE: Move GapScanParameters header into ble/gap/ScanParameters 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm da22df74bc docs and synchronise connection result with other events 2018-11-26 10:24:32 +00:00
Vincent Coubard 4de9a613c8 BLE: Add strict Duration type
* Construction from representation type is explicit
* Conversion between unit is only allowed if there is no precision loss
* Range is built inside the type
* More operators!
* min and max values exposed as part of the interface
2018-11-26 10:24:32 +00:00
Vincent Coubard 5ad50a20f8 BLE: Add PHY precondition check in setScanParameters. 2018-11-26 10:24:32 +00:00
Vincent Coubard 3e884a382e BLE: Initialisation of legacy advertising set. 2018-11-26 10:24:32 +00:00
Vincent Coubard 6fccb11006 BLE: Deal with random address rotation where appropriate. 2018-11-26 10:24:32 +00:00
Vincent Coubard 09d22a329c BLE: Address special case when advertising payload size is 0. 2018-11-26 10:24:32 +00:00
Vincent Coubard 9604c0187a BLE: Introduce Duration and Bounded classes. 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm cfde4ed019 disallow removing the legacy handle 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 57e4cdd732 new units 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 7b4439567d comparison operator 2018-11-26 10:24:32 +00:00
Vincent Coubard f136b0cb00 BLE: Rework Gap event handler.
Every user facing event handler accept a single parameter type; event that contains all the event fields.
That strategy allows us to extend the type later if required while we do not disrupt existing code.
2018-11-26 10:24:32 +00:00
Vincent Coubard 6a63948a7d BLE: Add phy in sync exstablished event. 2018-11-26 10:24:32 +00:00
Vincent Coubard 194e2cb4f8 BLE: Move common type from pal to ble namespace. 2018-11-26 10:24:32 +00:00
Vincent Coubard b6c7bd7960 Merge pull request #1 from paul-szczepanek-arm/vincent
connections
2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 00da0e571a fix review comments 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 8733d52da9 event types fixed 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 68b5aad2ce ppm case 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 8cc580d986 only one connection event needed 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 2cdff44f2a cancel connection 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 365a6c8c4d set random address 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 62b38cfbc8 connection complete event 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm b98326150d fix names 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm bd8b7fa87f use set value on return 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm 5e6c0c92f6 compilation errors 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm b489e0957e pal call 2018-11-26 10:24:31 +00:00
Vincent Coubard 651bf321db BLE: Use typedef in signature. 2018-11-26 10:24:31 +00:00
Vincent Coubard 31e028f22f BLE: fix integer overflow in setPeriodicAdvertisingParameters 2018-11-26 10:24:31 +00:00
Vincent Coubard 3eebcc49ad BLE: Add more precondition check to GenericGap. 2018-11-26 10:24:31 +00:00
Vincent Coubard d23bd2f268 BLE: Fix compilation error. 2018-11-26 10:24:31 +00:00
Vincent Coubard 297ad78452 BLE: check for periodic advertising enabled in GenericGap::destroyAdvertisingSet 2018-11-26 10:24:31 +00:00
Vincent Coubard 24e6b89ade BLE: use uint32_t to describe ms interval in Gap::setPeriodicAdvertisingParameters 2018-11-26 10:24:31 +00:00
Vincent Coubard 01b0de2175 BLE: rename Gap:setPeriodicAdvertisingData into setPeriodicAdvertisingPayload. 2018-11-26 10:24:31 +00:00
Paul Szczepanek eefdc638f7 BLE: fix condition in advertising set allocation.
Co-Authored-By: pan- <vincent.coubard@arm.com>
2018-11-26 10:24:31 +00:00
Vincent Coubard b1c6914e34 BLE: Add periodic sync advertisement management. 2018-11-26 10:24:31 +00:00
Vincent Coubard 06b3ccd322 BLE: refactor parameters order of Gap::startAdvertising 2018-11-26 10:24:31 +00:00
Vincent Coubard d6d1ea5c2a BLE: rework GenericGap::stopAdvertising(AdvHandle) 2018-11-26 10:24:31 +00:00
Vincent Coubard 74356aa7f0 BLE: Rework GenericGap::startAdvertising 2018-11-26 10:24:31 +00:00
Vincent Coubard b825ffc1f6 BLE: Handle setAdvertisingParameters on legacy controllers. 2018-11-26 10:24:31 +00:00
Vincent Coubard d2773e9731 BLE: Reduce complexity of GenericGap::setAdvertisingData 2018-11-26 10:24:31 +00:00
Vincent Coubard 0d90671842 BLE: Fix release of advertising sets. 2018-11-26 10:24:31 +00:00
Vincent Coubard 413908d594 BLE: Renaming
GenericGap::is_extended_advertising_enabled become GenericGap::is_extended_advertising_available
2018-11-26 10:24:31 +00:00
Vincent Coubard df5e01bf45 BLE: wrap bitstream manipulation into a BitArray class. 2018-11-26 10:24:31 +00:00
Vincent Coubard 2e8389d4fd BLE: Create and destroy advertising sets in the controller. 2018-11-26 10:24:31 +00:00
Vincent Coubard ed012adab3 BLE: Fix create and destroy advertising set. 2018-11-26 10:24:31 +00:00
Vincent Coubard 7882bb3016 BLE: Fix bit access to mapped advertising set. 2018-11-26 10:24:31 +00:00
Vincent Coubard f6ceafa3e9 BLE: use helper function where appropriate. 2018-11-26 10:24:31 +00:00
Vincent Coubard d63c7bc948 BLE: use std::min where appropriate. 2018-11-26 10:24:31 +00:00
Vincent Coubard a628eba212 BLE: cosmetic fixes. 2018-11-26 10:24:31 +00:00
Vincent Coubard ad3f3c86a5 BLE: Move implementation to cpp file. 2018-11-26 10:24:31 +00:00
Vincent Coubard 6a55d65660 BLE: Create advertising payload builder.
This change set use a data buffer to set data and scan responses.
2018-11-26 10:24:31 +00:00
Vincent Coubard 2c7cf2bbd9 BLE: revert GapScanningParams 2018-11-26 10:24:31 +00:00
Vincent Coubard 61536c3f64 BLE: revert non backward compatible changes.
This changeset includes order of function declaration in headers.
2018-11-26 10:24:31 +00:00
Vincent Coubard dc07e44290 BLE: makes GenericGap::stopGap aware of extended scan. 2018-11-26 10:24:31 +00:00
Vincent Coubard 24460de86f BLE: Implement new scan API in GenericGap 2018-11-26 10:24:30 +00:00
Vincent Coubard 1a14453da1 BLE: Add mechanism to track use of non compatible scan API. 2018-11-26 10:24:30 +00:00
paul-szczepanek-arm a1582bd3ac pointer to ref 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 2f6d861818 fix packetisation in adv set data 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 23dc808968 handle legacy adv calls 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 587eb9845e call the right func for set scan response 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm b276e6edaf fix high duty cycle setting (reversed) 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 238f15b031 doc fixes 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm ca72f5a289 merged adv param types 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 8c253a3dfe proposed scan type changes 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 60fb78795b fix adv and scan types 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 5d077e6dbc new addr types for ext adv 2018-11-26 10:21:32 +00:00
Vincent Coubard 0c1e01952b Compilation fixes 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 78a4bdda8a type translation 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 8794c0b43b make packetisation common 2018-11-26 10:21:32 +00:00