Commit Graph

1328 Commits (f8e111601934644e2329a8be6640fabd3154960f)

Author SHA1 Message Date
Vincent Coubard daaa5b1977 BLE: Introduce GenericGattClient and platform abstraction over ATT/GATT.
This changes introduce a platform adaptation over ATT/GATT that can be implemented by porter.
Unlike the GattClient interface, the ATT/GATT adaptation is simple, follow closely the Bluetooth specification and won't change over time.
Implementation of the GattClient interface is realized by the class GenericGattClient which accept in input a pal::GattClient.

This change will also free design space once adopted by partners, addition to the GattClient interface won't require partner support.
2017-09-26 15:20:15 +01:00
Vincent Coubard 38bb6b4e52 BLE: Add error code management in Gatt read and write data structures.
Also fix wrong usage of designed initializer in CPP files.
2017-09-26 15:20:15 +01:00
Vincent Coubard 85e88ccb2c BLE NRF: Fix wrong usage of designed initializer in cpp code. 2017-09-26 15:20:15 +01:00
Vincent Coubard 1fd953e33c BLE: Use shared type ble_attribute_handle_t in GattAttribute. 2017-09-26 15:20:15 +01:00
Vincent Coubard 4416ef6233 BLE: Add optionnal error_code CharacteristicDescriptorDiscovery::TerminationCallbackParams_t 2017-09-26 15:20:15 +01:00
Vincent Coubard 97995b8de9 BLE: Fix header inclusion of DiscoveredCharacteristicDescriptor. 2017-09-26 15:20:14 +01:00
Vincent Coubard c022c4a8f0 BLE: use common type ble::connection_handle_t as Handle_t. 2017-09-26 15:20:14 +01:00
Vincent Coubard dd303b7a91 BLE: Add ArrayView in utilities. 2017-09-26 15:20:14 +01:00
Vincent Coubard c58d7de93d BLE: Fix GattClient destructor by adding a virtual specifier. 2017-09-26 15:20:14 +01:00
Jimmy Brisson 75549754bc Compile source code for Maxim targets
They don't link because of differences in the precompiled libraries
2017-09-11 13:20:32 -05:00
Akos Kiss 90b326a664 Fix BLE API docs
Some misguidances, some typos, some stylistics, some doxygen misuses.
2017-08-30 11:15:39 +02:00
Akos Kiss 8035ddc36c Add flush to the BLE UART Service
If only buffer-full events and LF characters trigger the flush of
the send buffer then only line-based communication can be
implemented over the BLE UART Service. This patch extends the
service API by adding an explicit `flush` method to force sending
the buffer contents, thus enabling protocols with short (e.g.,
single character) messages.
2017-08-29 18:53:21 +02:00
Jimmy Brisson 66c3385727 Merge pull request #4398 from maximmbed/max326xx_ble_update
MAX326xx: BLE updates, fixed sleep, open-drain LEDs
2017-07-31 15:23:47 +00:00
Jimmy Brisson 17d5356dbb Merge pull request #4800 from Nodraak/fix/4799_ble_infinite_calling_loop
Fix infinite calling loop
2017-07-27 09:46:57 -05:00
Adrien Chardon 2a39019766 Fix infinite calling loop 2017-07-24 14:18:21 +02:00
Jesse Marroquin 3a4138369d Update BLE, fix sleep and open-drain LEDs in MAX326xx
MAX32630FTHR gets BLE, uses timer peripheral 5 for HCI timing
libexactLE update for 610,620
Fixup hal_sleep and hal_deepsleep for 620
LEDn outputs now forced to open-drain
2017-07-14 17:36:56 -05:00
Adrien Chardon 27901f24b9 BLE/GattCharacteristic: Add explanatory note for a parameter 2017-07-04 15:10:48 +02:00
Adrien Chardon 05c3ddf691 BLE/HRS: Fix #4661 2017-07-04 15:10:20 +02:00
Sam Grove 5f138810a9 Merge pull request #4294 from ARMmbed/feature_cmsis5
Update CMSIS-Core and RTX to version 5
2017-06-02 23:44:32 -05:00
Martin Kojtal 3553a4573a Merge pull request #4178 from nvlsianpu/getAddrFromPeerTab_sd_api_5
[NRF52840]: SecurityManager::getAddressesFromBondTable
2017-06-01 14:05:39 +02:00
Bartek Szatkowski b793a3fb89 Update codebase for CMSIS5/RTX5
Update all of mbed-os to use RTX5.
2017-05-30 18:55:52 +01:00
Andrzej Puzdrowski 39c1b3f5f3 Redirect "implemenetation of SecurityManager::getAddressesFromBondTable for SD 5.x.x" to NRF5 BLE port sources. 2017-05-16 13:48:13 +02:00
Andrzej Puzdrowski 64f2a9d467 remove unwanted (and unused anymore) NRF5_SDK13 BLE port. It was omited in https://github.com/ARMmbed/mbed-os/pull/4245. 2017-05-16 11:46:35 +02:00
Andrzej Puzdrowski 1f1168a51e NRF5: changes for code review of merg nrf52840 to NRF5 sources
s140 headers renamed form ble_* to nrf_ble_*,
Removed s130 and s132 headers named form ble_*
(Them had been added by #2ff572682798562e812015dc775b5896e0fda5a4)
Headers inclusinons were changed in order to meet above changes.

Revrted bad change in us_ticker.c:
use __disable_irq lock instead of core_util_critical_section_enter lock
for setting rtc1 tick for systick emulation as was good before.
2017-05-09 15:43:30 +02:00
Andrzej Puzdrowski 53c6f853c0 Apply resloution for the "Read long UUID of service problem" according to
NRFFOETT-1674.
2017-04-27 12:15:58 +02:00
Andrzej Puzdrowski b2080ab6d9 Make NRF5 BLE implementation compatible with SoftDevice API 2.x.x,3.x.x,5.0.0-1.alpha by
Copy of changes from
features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NRF5_SDK13/source
to
features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NRF5/source
2017-04-27 09:46:38 +02:00
Ron Eldor c78f73ca63 Fix compilation errors on linux machine
Change path of include from '\' to '/', which works on linux as well.
2017-03-22 08:38:34 +01:00
Andrzej Puzdrowski b1e55094aa [NRF52480] fix bugs:
- 128 bits service's UUID discovered by a GATT client was shifted.
- not possible to connect while being scanning.
- not possible to scanning while being connected.
    for sd >= 3 whitelisting is now setups into setWhitelist method
- Gap::setAddress could failed
- Gap::getWhitelist wron implemenation
2017-03-22 08:38:34 +01:00
Andrzej Puzdrowski 9f0d754ab6 [NRF5_SDK13] fix:
- whitelistin setup modifies identitiy flag and omits address' type.
2017-03-22 08:38:34 +01:00
Andrzej Puzdrowski f32da7a9ee [nRF5_SDK13] fix:
Gap::setAddress implementation
Gap::getPermittedTxPowerValues implemnetation
2017-03-22 08:38:34 +01:00
Andrzej Puzdrowski 3a81e23cf2 [nRF5_SDK13] Changes from CR.
- fix typso, renaming, repharse commnets.
- fix alghoritm of white/id lists setup functions in nRF5xGap class.
2017-03-22 08:38:34 +01:00
Andrzej Puzdrowski 4e188af065 upgrade implementationof gap::connect in case of private address and whitelisting for SD API 3 and further 2017-03-22 08:38:34 +01:00
Andrzej Puzdrowski 9d8c05bbe8 introduce API update to (v3.x.x and further)in BLE_GAP_EVT_CONNECTED service.
whitelist and identiti list settings provider now takes into account scaner filter po0licy and advertise r filter policy
2017-03-22 08:38:34 +01:00
Andrzej Puzdrowski 42fcae481a nRF5: whitelisting update fo SD API >-3.x.x 2017-03-22 08:38:34 +01:00
Andrzej Puzdrowski 689d12df62 NRF5_SDK13: Make BLE sources compilable - this is not redy to use!
- Remove ble_advertising.h/c - it was unused, redundant code
- includes for SD header ble.h were changed to headers\ble.h in order to distingusch form feature-ble BLE.h
- btle_init() introduced PM for disable <B>privacy</B> for API 3 and further.
- temporary removed or mocked real implemantation of whitelist-ing support functionalities:
btle_security.createWhitelistFromBondTable , gap::startAdvertising, gat::startRadioScan, gap::stopAdvertising
Gap::generateStackWhitelist, Gap::getStackWhiteIdentityList-(mock)
- Characteristic Descriptor Discoverer - aligned to the apply SD API
- long uuid service's read spupport
- add BLE features support to sdk configurations file
- publicate sdk's id_manager.ah() function.
- cutted out f. app_error_handler for mbed-os
- removed PACKED definition form app_util_platform (redefined by mbed-os)
- Gap::setAddress  - allign to new SD API using peer manager
- extend Gap::getPermittedTxPowerValues for nRF52840
2017-03-22 08:38:34 +01:00
Andrzej Puzdrowski f1c3d75c21 initial creation of nRF52840 BLE target implementation "NRF5_SDK13" as a copy of "NRF5" 2017-03-22 08:38:34 +01:00
Vincent Coubard 5596cd05cd [NRF51822] Fix reference to sleep in hal_patch override
The `sleep` function as been changed into `hal_sleep` by #3607.
Unfortunately the call to `sleep` in the hal_patch for the NRF51822 has not been
updated to `hal_sleep`. The result was a link time error for targets based on
NRF51822_LEGACY compiling with the mbed OS 5 tree.
2017-03-09 12:44:49 +00:00
Hovik Melikyan c4a979ef72 Allow to redefine nRF's PSTORAGE_NUM_OF_PAGES outside of the mbed-os source
By default the number of pstorage pages is set 1 and all addresses are
calculated in the pstorage module accordingly. Nordic recommends
changing this macro to whatever number is suitable for the app (see
https://devzone.nordicsemi.com/question/53066/what-will-be-the-starting-
address-of-pstorage-page-how-we-can-change-it/?answer=53085#post-id-5308
5) which is not quite elegant given that pstorage_platform.h is part of
the mbed-os repo. With this modification you can e.g. define
PSTORAGE_NUM_OF_PAGES on the command line, however note that you should
rebuild mbed-os with this setting as it affects pstorage_platform.c.
2017-02-24 11:24:24 +00:00
Bartek Szatkowski 6a045a49a9 Platform: Add sleep/deepsleep user facing functions
Add sleep/deepsleep functions to platform layer which are replacing HAL
functions with the same name, rename existing symbols in HAL layer
to hal_sleep/hal_deepsleep. This way sleep functions
are always available, even if target doesn't implement them, which makes
the code using sleep clearer. It also enables us to make decision on in
which builds (debug/release) the sleep will be enabled.
2017-01-19 09:39:29 +00:00
Vincent Coubard c59e057717 Fix documentation of function allocateLongWriteRequest. 2016-11-15 13:25:10 +00:00
Vincent Coubard 969c63040e Various fixes regarding typos, dead code and consistency. 2016-11-15 13:22:12 +00:00
Vincent Coubard 453045ab74 [BLE - NRF5] Add support for long write requests. 2016-11-10 16:58:07 +00:00
Martin Kojtal a7a53b7b6c Merge pull request #3046 from mmorenobarm/master
[BEETLE] Update BLE stack on Beetle board
2016-10-26 15:08:55 +02:00
Martin Kojtal 4ec2f2e3ec Merge pull request #2943 from nvlsianpu/nrf_nvic_set_vector_func_trzy
[NRF5] NVIC_SetVector functionality
2016-10-25 11:10:03 +02:00
Marc Moreno Berengue e7829cd617 [BEETLE] Update BLE Cordio libraries
This patch updates the BLE Cordio libraries.

Signed-off-by: Marc Moreno <marc.morenoberengue@arm.com>
2016-10-24 17:41:23 +01:00
Sam Grove e410157557 Merge pull request #2865 from anangl/hal_fixes
TARGET_NRF5: A few corrections in HAL implementation.
2016-10-13 11:40:10 -05:00
Jeremy Brodt d535180784 [MAX326xx] Added support for FEATURE_BLE. Integrated MaximBLE library. 2016-10-12 08:59:38 -05:00
Andrzej Puzdrowski 8302ce0625 Fix - Remove unwanted changes to the legacy nrf51822 target (caused by rebase). ad applied them to
to regular targets.
Fix a typo and polish nordic's code.
2016-10-10 16:50:03 +02:00
Andrzej Puzdrowski 00b0fafd9e nRF5x Add registering bluetooth's IRQn vector by NVIC_SetVector. 2016-10-10 09:45:31 +02:00
Głąbek, Andrzej 691969c315 TARGET_NORDIC: restored old 'sleep()' implementation in legacy HAL, moved the new one to FEATURE_BLE, so it is picked only when SoftDevice is in use. 2016-10-06 11:51:41 +02:00
Vincent Coubard dcf03310d0 NRF5 - Fix usage of volatile variable in nordic critical section implementations. 2016-09-29 10:05:02 +01:00
Vincent Coubard 597f104685 TARGET_NRF51822 - Override critical section enter/exit when Nordic SDK v10 is used.
This change is not located in the hal because SDK v10 is not available from this
place. It is safe to provide the implementation in BLE because the SDK V10 is
defined there. Default implementations of critical section enter/exit are safe
as long as the softdevice is not used.
2016-09-28 13:53:51 +01:00
Vincent Coubard f490474bf2 BLE - Add end of line to deprecate.h 2016-09-26 13:29:07 +01:00
Vincent Coubard 6cdfb19304 BLE: TARGET_NRF - Avoid redefinition of ASSERT macro.
Instead, the BLE code use the macro ASSERT_TRUE
2016-09-26 13:29:03 +01:00
Vincent Coubard 2af37a6e1e TARGET_MCU_NRF51822 - Move declaration of fs_callback into the proper file. 2016-09-26 13:29:02 +01:00
Vincent Coubard bf28f88878 TARGET_MCU_NRF51822 - Fix comparison between signed and unsigned integer. 2016-09-26 13:29:00 +01:00
Vincent Coubard 85a7d6d39f TARGET_MCU_NRF51822 - Fix comparison between signed and unsigned integer. 2016-09-26 13:28:58 +01:00
Vincent Coubard defa15b1bf TARGET_MCU_NRF51822 - Comment unused variable.
The choice has been made to comment this variable instead of deleting it because
the macros values which use this variable are commented as well.
2016-09-26 13:28:56 +01:00
Vincent Coubard bad230b67b TARGET_MCU_NRF51822 - Avoid comparison between signed and unsigned integers. 2016-09-26 13:28:54 +01:00
Vincent Coubard 591aa78b55 TARGET_MCU_NRF51822 - Replace definition of SVCALL with the one used by SDK V11.
This change avoid warnings about unused functions.
2016-09-26 13:28:52 +01:00
Vincent Coubard cce4094f37 BLE: TARGET_NRF5: use non deprecated version of Ticker::attach_us. 2016-09-26 13:28:51 +01:00
Vincent Coubard 1ecb1a6ca2 BLE: TARGET_NRF - Remove unused variable. 2016-09-26 13:28:49 +01:00
Vincent Coubard 07da784395 BLE: TARGET_MCU_NRF51822 - Fix signed to unsigned comparison. 2016-09-26 13:28:46 +01:00
Vincent Coubard 80740dda06 TARGET_NRF - Fix possible invalid comparison. 2016-09-26 13:28:44 +01:00
Vincent Coubard 36c001d0e8 TARGET_MCU_NRF51822 - Fix inline keyword position. 2016-09-26 13:28:39 +01:00
Vincent Coubard 4ae2453eb6 NORDIC - remove the unused and incorrect PACKED() macro from the Nordic SDK.
This macro is not used anywhere.
2016-09-26 13:28:36 +01:00
Sam Grove d8efe713e7 Merge pull request #2778 from pan-/avoid_inclusion_of_ble_code_if_not_used
BLE - Nordic implementation: Move singleton into a function.
2016-09-25 21:57:23 -05:00
Vincent Coubard e8bddd6711 BLE - Legacy nordic implementation: Move static singleton into a function.
The change of scope all the code from BLE when this code is not used by the end
user application.
2016-09-22 12:10:14 +01:00
Vincent Coubard b4ac8f214a BLE - Nordic implementation: Move singleton into a function.
This change remove BLE code from the binary generated if the user code doesn't
use BLE.
2016-09-22 11:58:29 +01:00
Andrzej Puzdrowski 13a1fd5584 [BLE NRF5] Fix bug: "purgeAllBondingState could had returned before deletion task was done"
by reimplement the btle_purgeAllBondingState as blocking function.
2016-09-20 12:01:22 +02:00
Andrzej Puzdrowski e67117b8ea introduce the SDK nRF5 Peer manager into BLE security features
PM will be used for SoftDevices s13x, otherwise DM will be used.

Fix - security key distribution settings - Signing is not supported.

declare usage of encryption LTK and IRK if boonding enabled

deleted unused local reference to nRF5xGap class in bleGattcEventHandler.
fix PM internal bug (For gcc with -0s optimization an application fail to save a boonding data)
fuse redeclaration of PACKED macro in nRF5 SDK sources
2016-09-13 14:16:55 +02:00
Sam Grove 32b134e277 Merge pull request #2345 from pan-/fix_nrf51_export
Fix nrf51 export
2016-08-02 23:18:12 -05:00
Vincent Coubard 5323c29080 Remove unneded folders in NRF51 SDK.
Move content from sources/nordic_sdk/components to sources.
2016-08-02 22:32:44 +01:00
Vincent Coubard 5638d338d0 Rename nrf51-sdk into sdk. 2016-08-02 22:29:02 +01:00
Vincent Coubard b2c809ea56 Remove unneeded NRF51 hex files, can be confusing for exporter. 2016-08-02 21:30:39 +01:00
Vincent Coubard 17254e80d6 Fix clock selection used by the softdevice on NRF5 based targets. 2016-07-28 22:47:59 +01:00
Vincent Coubard e0a5ca1d67 Bring new ble implementation from mbed-os/workshop-nordic.
Commit ID: e3c7c2dd3ea4f00e27667e79155413033cd80060
2016-07-21 15:03:23 +01:00
Vincent Coubard 2259e0d539 Move ARMmbed/feature/FEATURE_BLE into mbedmicro/mbed.
In the process, the path has been shortened and the unecessary ble
directory between FEATURE_BLE and the actual implementation has been
removed.

commit id of ARMmbed : 17728a824c7273e16b6b74fae871e2997c88ecd1
2016-07-20 22:10:36 +01:00