Commit Graph

1679 Commits (b06e30ed3595e9c0a344239da65baf12b2556a3d)

Author SHA1 Message Date
paul-szczepanek-arm 54a866c159 add broadcaster ifdef and pull headers into ifdef 2019-02-28 17:18:30 +00:00
Vincent Coubard 72e5d3f603 BLE - Filter user facing implementation based on configuration 2019-02-28 16:31:59 +00:00
Vincent Coubard 4e172ba22d BLE - Fix conditional directive. 2019-02-28 16:31:34 +00:00
Vincent Coubard 74bc6774f9 BLE - Fix conditional directive. 2019-02-28 16:31:07 +00:00
Vincent Coubard eeca03f952 BLE - Fix exclusion of getMaxAdvertisingSetNumber and getMaxAdvertisingDataLength 2019-02-28 16:29:21 +00:00
Vincent Coubard 3142f26def BLE - Exclude services if GattServer is not available. 2019-02-28 16:28:15 +00:00
Vincent Coubard 5ae59fc534 BLE - Improve FEATURE_PRIVACY conditions. 2019-02-28 14:47:07 +00:00
Vincent Coubard 24f7f36f01 BLE - Return supported feature based on compile time features. 2019-02-28 14:23:19 +00:00
Vincent Coubard 04891b205c BLE - Conditionally handle gap events. 2019-02-28 14:13:45 +00:00
Vincent Coubard ea9554dfbc BLE - restrict AttConnRegister to GattServer. 2019-02-28 14:12:56 +00:00
Vincent Coubard 9566af64fb BLE - Fix initialization of extended advertising modules. 2019-02-28 13:51:50 +00:00
Vincent Coubard 6a3f3d187e BLE - Conditionnally remove LESC and privacy event processing. 2019-02-28 13:45:05 +00:00
Vincent Coubard 20c4e4ced5 BLE - Fix call to implementation. 2019-02-28 13:40:09 +00:00
Vincent Coubard 020c5b4262 BLE - Disabling SecurityManager connection handling when security disabled. 2019-02-28 13:34:05 +00:00
Vincent Coubard af09f7b8ab BLE - Disable peer csrk retrieval if signing disabled. 2019-02-28 13:30:36 +00:00
Vincent Coubard ca44ce3cd8 BLE - Conditionally expose SecurityManager::enableSigning 2019-02-28 13:27:16 +00:00
Vincent Coubard eeb14c5ce6 BLE - Conditionally include address rotation at compile time 2019-02-28 13:26:51 +00:00
Vincent Coubard 632851e5ae BLE - Small reordering to reduce diff. 2019-02-28 12:02:23 +00:00
Vincent Coubard 9e5e23aad6 BLE - Remove conditional directive in construction of Cordio objects. 2019-02-28 11:37:21 +00:00
Vincent Coubard a31d1012db BLE - Cleanup CordioPalSecurityManager conditional directives.
- Within constructor
- Within member declaration
- Private function declaration and definition.
2019-02-28 11:36:36 +00:00
Vincent Coubard b0d62a7090 BLE - Fix conditional code within CordioPalGenericAccessService. 2019-02-28 11:35:34 +00:00
Vincent Coubard dedc204daa BLE - Cleanup CordioGattServer conditional directives. 2019-02-28 11:34:35 +00:00
Vincent Coubard 831241df12 BLE - Cleanup GenericSecurityManager conditional directives
- Inheritance lisr
- Within constructor
- Within member declaration
- Private function declaration and definition.
2019-02-28 11:33:49 +00:00
Vincent Coubard e706b6cc52 BLE - Cleanup Generic GattClient conditional directives.
- Inherithance list
- private functions exposed
- members declaration.
2019-02-28 11:32:51 +00:00
Vincent Coubard 07f3ca2723 BLE - Cleanup GenericGap conditional directive
- Within constructor
- Within member declaration
- Private function declaration and definition.
2019-02-28 11:31:48 +00:00
Vincent Coubard 593cf2bd7c BLE - Remove conditional compilation of FileSecurityDb 2019-02-28 11:30:07 +00:00
Vincent Coubard f7df97bed7 BLE - Remove conditionnal directive within GattClient::WriteOp_t 2019-02-28 11:29:35 +00:00
Vincent Coubard c9d719a8ca BLE - Cleanup conditional directives in Gap.
- Remove conditional directives for member variables.
- Remove conditional directive for processXXX functions that are exclusively used by implementation.
-  Remove conditional directives on types exported by the class.
2019-02-28 11:28:55 +00:00
Vincent Coubard 126a7a966e BLE - Cleanup conditional directives in gap/Gap/
- Remove directives from event handler type
- Expose privacy default configuration  unconditionally
- Fix conditional test for connect and cancelConnect.
2019-02-28 11:27:02 +00:00
Vincent Coubard bc10a09c4e BLE - Remove conditional directive removing functions in pal. 2019-02-28 11:24:08 +00:00
Vincent Coubard 3c9e778433 BLE - Remove conditionnal directive within services 2019-02-28 11:23:05 +00:00
Vincent Coubard 06b26d4e8a BLE - remove conditional directive from value types 2019-02-28 11:22:37 +00:00
Vincent Coubard ba9aa6b641 Fix rebase mistakes. 2019-02-27 22:15:06 +00:00
paul-szczepanek-arm cd2501bb64 tab fix 2019-02-27 21:52:07 +00:00
paul-szczepanek-arm a034bf875e gatt server pass
mostly phy and security issues
2019-02-27 21:52:07 +00:00
paul-szczepanek-arm f8c28fcbe7 privacy pass 2019-02-27 21:51:16 +00:00
paul-szczepanek-arm aa6342b265 cordio security pass 2019-02-27 21:47:22 +00:00
paul-szczepanek-arm bc3ff56504 partial security pass 2019-02-27 21:46:08 +00:00
paul-szczepanek-arm a1815e31f0 correct dependencies for central and peripheral 2019-02-27 21:39:07 +00:00
paul-szczepanek-arm c3a72073be cordio extended peripheral pass 2019-02-27 21:39:07 +00:00
paul-szczepanek-arm e950da11f2 extended doesn't depends on phy 2019-02-27 21:39:06 +00:00
paul-szczepanek-arm ec6783ed77 cordio peripheral role pass 2019-02-27 21:39:06 +00:00
paul-szczepanek-arm 45eca7c373 cordio observer role pass 2019-02-27 21:36:26 +00:00
paul-szczepanek-arm eb16fb6053 broadcaster role cordio pass 2019-02-27 21:34:00 +00:00
paul-szczepanek-arm c198603c63 ble ifdefs 2019-02-27 21:17:15 +00:00
paul-szczepanek-arm e44c3edede fix gap ifdefs 2019-02-27 21:17:15 +00:00
paul-szczepanek-arm 909b78fc14 complete gap feature ifdef 2019-02-27 21:15:54 +00:00
paul-szczepanek-arm 630b2fe792 more gap ifdefs 2019-02-27 21:08:15 +00:00
paul-szczepanek-arm 1d5b7d4056 ifdef source files based on features 2019-02-27 21:00:11 +00:00
paul-szczepanek-arm c8d8c4e159 merge failure fix 2019-02-27 21:00:10 +00:00
paul-szczepanek-arm 30ad32a465 ifdef out security features 2019-02-27 20:59:35 +00:00
paul-szczepanek-arm 9e710d4309 git review changes 2019-02-27 20:59:35 +00:00
paul-szczepanek-arm cb3d79bf9b update descriptions 2019-02-27 20:57:10 +00:00
paul-szczepanek-arm 7974726659 fixed conf file (tabs and order) 2019-02-27 20:57:09 +00:00
paul-szczepanek-arm 208eb200f1 gatt client signing 2019-02-27 20:57:09 +00:00
paul-szczepanek-arm 3e03c11832 guard class fields with ifs 2019-02-27 20:55:58 +00:00
paul-szczepanek-arm 33e8826361 whitelist feature 2019-02-27 19:46:43 +00:00
paul-szczepanek-arm bc69e15638 revert accidental changes 2019-02-27 19:46:42 +00:00
paul-szczepanek-arm dc3aba181e fix BLE_CONNECTABLE_FEATURE macro 2019-02-27 19:46:12 +00:00
paul-szczepanek-arm 5a97706aab added #if guards to cordio ble 2019-02-27 19:46:12 +00:00
paul-szczepanek-arm bed567825f connectable is a feature not role 2019-02-27 19:31:47 +00:00
paul-szczepanek-arm b60eaf14a2 require macros to be defined 2019-02-27 19:31:47 +00:00
paul-szczepanek-arm 26cc72f191 add more feature toggles in cordio init 2019-02-27 19:31:47 +00:00
paul-szczepanek-arm 9a22db0e96 implied features 2019-02-27 19:31:46 +00:00
paul-szczepanek-arm ab4e47661d move config to ble feature 2019-02-27 19:31:46 +00:00
paul-szczepanek-arm 212e9477d3 require at least one role observer or broadcaster 2019-02-27 19:31:46 +00:00
paul-szczepanek-arm aefab05e5a add all the features and rename existing non-roles to features 2019-02-27 19:31:46 +00:00
Steve Cartmell 8e36ed4b1e feat(ble): Guard out the CordioBLE initialisation code 2019-02-27 19:29:51 +00:00
Steve Cartmell 72d28d920a feat(ble): Guard out Observer code when role is disabled 2019-02-27 19:29:51 +00:00
Steve Cartmell 5d73a03a64 feat(ble): Guard out SecurityManager code when role is disabled 2019-02-27 19:24:40 +00:00
Steve Cartmell 73f7ffb124 feat(ble): Guard out GattServer code when role is disabled 2019-02-27 19:24:39 +00:00
Steve Cartmell 6e301ce148 feat(ble): Guard out GattClient code when role is disabled 2019-02-27 19:23:31 +00:00
Steve Cartmell 9806f91ecf feat(ble): Add preprocessor check to determine enabled roles are valid
A number of BLE roles depend on each other, checking within the target
configuration file for a valid configuration is infeasible. Move the
validation to the preprocessor and fail to compile if some required
roles are not enabled.
2019-02-27 19:00:08 +00:00
Vincent Coubard 73f29e7733 BLE - Fix qualification of abort and terminate. 2019-02-26 13:18:18 +00:00
Vincent Coubard 9ab284940a BLE - Devirtualization of the NRF52 softdevice port. 2019-02-26 13:18:18 +00:00
Vincent Coubard ddbb177e33 BLE - Devirtualization of the NRF51 port. 2019-02-26 13:18:17 +00:00
Vincent Coubard b86049d1e7 BLE - Devirtualization of the legacy NRF51822 port. 2019-02-26 13:18:17 +00:00
Vincent Coubard 0323d91f04 BLE - Devirtualization of the Maxim port . 2019-02-26 13:18:17 +00:00
Vincent Coubard 536443b1f8 BLE - Devirtualization of the Cordio port. 2019-02-26 13:18:17 +00:00
Vincent Coubard 04d26f7ab5 BLE - Devirtualize ::ble::generic::GenericSecurityManager
Two parameters are expected by the template:
- TPalSecurityManager a template class of the security manager of the form TPalSecurityManager<EventHandler>. The GenericSecurityManager is the event handler.
- SigningMonitor a template in the form SigningMonitor<Handler>.
2019-02-26 13:18:17 +00:00
Vincent Coubard b135074821 BLE - Devirtualize ble::generic::GattClient
GenericGattClient is parametized by two types:
- The template of the PalGattClient
- The SigningMonitorEventHandler

Note that the PalGattClient template must be of the form PalGattClient<EventHandler>. The event handler being the GenericGattClient.
2019-02-26 13:18:17 +00:00
Vincent Coubard 39e938bf8e BLE - Devirtualize ble::generic::GenericGap
Expected types are similar to the type expected by the constructor:
- PalGap
- PalSecurityManager
- ConnectionEventMonitorEventHandler

Note that for the PalGap we expect a **template** of the form PalGap<EventHandler>
2019-02-26 13:18:17 +00:00
Vincent Coubard e70fb27d55 BLE - cleanup includes. 2019-02-26 13:18:17 +00:00
Vincent Coubard fb39848481 BLE - Cleanup deprecation implementation bits in BLE.cpp 2019-02-26 13:18:17 +00:00
Vincent Coubard 7796e733ad BLE - Devirtualize ::SecurityManager
The interface now lives in ::ble::interface::SecurityManager. The implementation type is expectected to exported as ble ::ble::impl::SecurityManager by the implementation.
2019-02-26 13:18:17 +00:00
Vincent Coubard 6d2592a137 BLE - Devirtualize ::GattServer.
The interface is defined in ::ble::interface::GattServer and an implementation must export the implementation type ::ble::impl::GattServer.
2019-02-26 13:18:17 +00:00
Vincent Coubard e56fd682a1 BLE - Devirtualize ::GattClient
Interface definition now lives in ble::interface::GattClient. An implementation must export the implementation type in ::ble::impl::GattClient.
2019-02-26 13:18:17 +00:00
Vincent Coubard 43e87fb04d BLE - Devirtualize ::ble::Gap
The interface definition now lives in ::ble::interface::Gap.
The implementation must export the implementation types as ::ble::impl::Gap.
2019-02-26 13:18:17 +00:00
Vincent Coubard 1ad726322f BLE - Devirtualization of ::Gap
The interface definition now lives in ::ble::interface::LegacyGap. Implementation must export the implementation type as ble::impl::LegacyGap.
2019-02-26 13:18:17 +00:00
Vincent Coubard 2d007eee42 BLE - Devirtualize pal::SigningEventMonitor
The event handler has been extracted out of SigningEventMonitor declaration and SigningEventMonitor instantion requires the implementation and event handler type.
2019-02-26 13:18:17 +00:00
Vincent Coubard 50de4c8a44 BLE - Devirtualize pal::SecurityManager
The event handler has been extracted out of SecurityManager declaration and instantion of the interface requires the implementation and event handler type.
2019-02-26 13:18:17 +00:00
Vincent Coubard e1371f8149 BLE - Devirtualize pal::GattClient
The event handler has been taken out of GattClient declaration and an instantiation requires the actual implementation and the type that handle events.
2019-02-26 13:18:17 +00:00
Vincent Coubard 0749100676 BLE - Devirtualize pal::Gap
The event handler has been taken out of Gap declaration and the instantiation must provide an implementation and the type that plays the event handler role.
2019-02-26 13:18:17 +00:00
Vincent Coubard 6514bbd1f0 BLE - Devirtualize pal::ConnectionEventMonitor
The event handler has been extracted out of the monitor declaration.
2019-02-26 13:18:17 +00:00
Vincent Coubard 71b8d8a2f3 BLE - devirtualize pal::AttClientToGattClientAdapter 2019-02-26 13:18:17 +00:00
Vincent Coubard 333a31507b BLE - devirtualize pal::AttClient 2019-02-26 13:18:17 +00:00
Vincent Coubard 7e78433cec BLE - replace some usages of Gap::Handle_t by ble::connection_handle_t 2019-02-26 13:18:17 +00:00
Vincent Coubard bc098d0272 BLE - add static interface helper. 2019-02-26 13:18:17 +00:00
Desmond Chen 0143229bd0 Fix Cordio Gatts descriptor configuring write permission 2019-02-26 11:30:57 +08:00
Cruz Monrreal d0881ad259
Merge pull request #9813 from paul-szczepanek-arm/cordio-cfg
BLE: Cordio build time configuration through mbed_lib.json
2019-02-25 17:28:56 -06:00
Cruz Monrreal 8ec8674e4e
Merge pull request #9833 from donatieng/remove_beetle
Remove Arm Beetle target for Mbed OS 5.12
2019-02-25 17:27:22 -06:00
paul-szczepanek-arm f62217b3dd typos 2019-02-25 15:33:52 +00:00
paul-szczepanek-arm a7297186b5 fixed names 2019-02-25 15:30:55 +00:00
paul-szczepanek-arm e75c534445 stray comma 2019-02-25 15:23:35 +00:00
Donatien Garnier 176e5779ce Remove Arm Beetle target
Deprecation in preparation for Mbed OS 5.12 and move to IAR8 and ARMC6
2019-02-25 12:09:03 +00:00
paul-szczepanek-arm 6842c8718b revert macros 2019-02-25 09:52:21 +00:00
paul-szczepanek-arm 6a2b6b891a use existing macro names 2019-02-25 09:49:16 +00:00
Lei Zhang a47b365776 PSOC6: send HCI reset after patch RAM download
After the patch RAM download is completed, a HCI reset should be sent in order to initialize the registers. Some of the initialization won't be called if the HCI reset is not sent after firmware download.
2019-02-22 23:43:52 -08:00
paul-szczepanek-arm 4b0296a6e1 prepared writes options 2019-02-22 13:52:21 +00:00
paul-szczepanek-arm 4470f64581 mention config in readme 2019-02-22 11:33:23 +00:00
paul-szczepanek-arm 86546440d7 put cordio cfg in mbed_lib.json 2019-02-22 11:28:28 +00:00
Volodymyr Medvid b0a33273ff Correctly include EventQueue.h
There are two EventQueue.h in mbed-os codebase:
events/EventQueue.h
features/FEATURE_BLE/ble/pal/EventQueue.h

By accident, `mbed compile` generates includes.txt with the correct
order of include search paths. This is not the case for the CMake
exporter: targets with FEATURE_BLE enables fail to compile with errors:

mbed-os/features/cellular/framework/AT/ATHandler.h:99:60: error:
'events' has not been declared

Update all places to always include either "events/EventQueue.h"
or "ble/pal/EventQueue.h": to always find the correct header.
2019-02-21 17:59:05 +02:00
Cruz Monrreal b1d0d9e95c
Merge pull request #9776 from ConradBraam/adv_builder
adv builder helper now returns an object
2019-02-20 12:04:51 -06:00
Conrad Braam 57033ee91a adv builder helper now returns an object 2019-02-20 13:54:38 +00:00
Martin Kojtal 2d30d0ff99
Merge pull request #9762 from vmedcy/psoc6-target-updates
PSOC6: update the psoc6pdl and HAL to the latest version
2019-02-20 11:23:54 +01:00
paul-szczepanek-arm db4aecb275 fixed initialisation order 2019-02-19 17:26:43 +00:00
Volodymyr Medvid cefc7452c9 PSOC6: do not reconfigure BT GPIO pins in CYW43XXX HCIDriver 2019-02-19 17:59:04 +02:00
Desmond Chen 79e8bf4bc9 BLE:Cordio: ATTS setting for write cback should use bitwise or 2019-02-19 14:19:44 +08:00
paul-szczepanek-arm d801ed340e removed redundant qualifier tripping up GCC 2019-02-14 12:34:35 +00:00
paul-szczepanek-arm cdd5c9f3b0 fix nrf52 mtu 2019-02-14 12:34:35 +00:00
paul-szczepanek-arm 193092f6d9 added spdx licence ident 2019-02-14 12:34:35 +00:00
paul-szczepanek-arm f52b20c169 move cpp to sources 2019-02-14 12:34:35 +00:00
paul-szczepanek-arm 1cea53b6a7 use grandfathered convention for class members names and initialise them 2019-02-14 12:34:34 +00:00
paul-szczepanek-arm 3808db90b2 require pal event handler to be complete 2019-02-14 12:34:34 +00:00
paul-szczepanek-arm de60b2a56a remove unused converter 2019-02-14 12:34:34 +00:00
paul-szczepanek-arm 03b747a6f6 Get the pal event handler from pal gattclient 2019-02-14 12:34:34 +00:00
paul-szczepanek-arm b628285254 route mtu changed events to server and client instead of gap 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm a3f635eb88 fix type name 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm c10fc2eb8e add API to trigger MTU negotiation 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm 02d5391cd0 fix possible truncation 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm b6df6d54a1 change event names 2019-02-14 12:34:32 +00:00
paul-szczepanek-arm 356ec39d02 fix style 2019-02-14 12:34:32 +00:00
paul-szczepanek-arm 21ad886e9e handle mtu and data len events for softdevice 2019-02-14 12:34:32 +00:00
paul-szczepanek-arm 06a2a403e9 fix typos 2019-02-14 12:34:31 +00:00
paul-szczepanek-arm 108d6908be route ble events to gap 2019-02-14 12:34:31 +00:00
paul-szczepanek-arm c452d8ff0e add mtu events 2019-02-14 12:34:31 +00:00
Naveen Kaje 0563276466 btle: fix build warning about unused clockConfiguration
Fix the following build warning seen with both GCC and ARM_CC
[Warning] btle.cpp@115,0:  #177-D: variable "clockConfiguration"  was declared but never referenced
2019-02-13 10:42:48 -06:00
Cruz Monrreal 58cba25799
Merge pull request #9372 from pan-/fix-cryptotoolbox
BLE - Nordic: Release crypto cell when not in use.
2019-02-11 18:45:17 -06:00
Volodymyr Medvid a16811532b PSoC6: add implementation of BLE HCI driver for CYW4343W/CYW43012
Add Cypress HCI driver implementation in TARGET_Cypress directory.

Update targets.json to enable CORDIO stack for Cypress PSoC 6 boards
with CYW43XXX radios with compatible HCI driver implementation:
CYW4343W and CYW43012.
2019-02-07 18:24:56 +02:00
Volodymyr Medvid a304c2216a CYW4343X: move HCI driver to TARGET_STM
TARGET_CYW4343X Bluetooth HCI driver is specific to STM32 targets
derived from USI_WM_BN_BM_22. Move the driver implementation to
TARGET_STM folder to not interfere with Cypress implementation at
TARGET_Cypress/TARGET_CYW43XXX/HCIDriver.cpp that is enabled for
PSoC 6 targets which also include the CYW4343X label.
2019-02-07 18:24:55 +02:00
Senthil Ramakrishnan 2030d03590 Modified fixes with review comments 2019-02-01 17:49:49 -06:00
Senthil Ramakrishnan ea30ed7a36 Fix for ARMc6 compiler errors 2019-02-01 17:46:50 -06:00
paul-szczepanek-arm d9c919b7e1 review fixes 2019-01-30 12:19:04 +00:00
paul-szczepanek-arm e1a8fb5a7a check scanning status first 2019-01-30 11:45:26 +00:00
paul-szczepanek-arm 7f888f86bf scan timeout for 4.2 controllers using new API 2019-01-30 11:37:17 +00:00
Cruz Monrreal 66cda8a8fe
Merge pull request #9499 from bridadan/remove_yotta_modules
Remove unused yotta module metadata
2019-01-28 10:37:30 -06:00
Cruz Monrreal b49d949b50
Merge pull request #9393 from pan-/fix-safe-enum-type-safety
BLE: Fix SafeEnum type safety
2019-01-28 10:31:52 -06:00
Brian Daniels ee5281abef Remove unused yotta module metadata 2019-01-24 15:30:20 -06:00
Martin Kojtal 4019efb21d
Merge pull request #9399 from paul-szczepanek-arm/fix-null-check
BLE: fix missing null checks on Gap event handler
2019-01-21 13:43:16 +01:00
Martin Kojtal ad5bcfc1de
Merge pull request #9427 from paul-szczepanek-arm/fix-truncation
BLE: fix possible truncation
2019-01-21 13:42:07 +01:00