Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of nRF51822 by
Revision 601:5f4199aae50f, committed 2016-01-11
- Comitter:
- vcoubard
- Date:
- Mon Jan 11 10:19:37 2016 +0000
- Parent:
- 600:0978b5626451
- Child:
- 602:e7ba21c2c943
- Commit message:
- Synchronized with git rev b72f9aa2
Author: Andres Amaya Garcia
Add whitelisting documentation to nRF51xGap
Changed in this revision
source/nRF5xGap.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/source/nRF5xGap.cpp Mon Jan 11 10:19:36 2016 +0000 +++ b/source/nRF5xGap.cpp Mon Jan 11 10:19:37 2016 +0000 @@ -573,11 +573,45 @@ *countP = sizeof(permittedTxValues) / sizeof(int8_t); } +/**************************************************************************/ +/*! + @brief Get the capacity of the internal whitelist maintained by this + implementation. + + @returns The capacity of the internal whitelist. + + @section EXAMPLE + + @code + + @endcode +*/ +/**************************************************************************/ uint8_t nRF5xGap::getMaxWhitelistSize(void) const { return YOTTA_CFG_WHITELIST_MAX_SIZE; } +/**************************************************************************/ +/*! + @brief Get a copy of the implementation's internal whitelist. + + @param[out] whitelistOut + A \ref Gap::Whitelist_t structure containing a copy of the + addresses in the implemenetation's internal whitelist. + + @returns \ref ble_errror_t + + @retval BLE_ERROR_NONE + Everything executed properly. + + @section EXAMPLE + + @code + + @endcode +*/ +/**************************************************************************/ ble_error_t nRF5xGap::getWhitelist(Gap::Whitelist_t &whitelistOut) const { uint8_t i; @@ -589,6 +623,36 @@ return BLE_ERROR_NONE; } +/**************************************************************************/ +/*! + @brief Set the whitelist that will be used in the next call to + startAdvertising(). + + @param[in] whitelistIn + A reference to a \ref Gap::Whitelist_t structure + representing a whitelist containing all the white listed + BLE addresses. + + @returns \ref ble_errror_t + + @retval BLE_ERROR_NONE + Everything executed properly. + + BLE_ERROR_INVALID_PARAM + The supplied whitelist contains a private non-resolvable + address + + BLE_ERROR_PARAM_OUT_OF_RANGE + The size of the supplied whitelist exceeds the maximum + capacity of the implementation's internal whitelist. + + @section EXAMPLE + + @code + + @endcode +*/ +/**************************************************************************/ ble_error_t nRF5xGap::setWhitelist(const Gap::Whitelist_t &whitelistIn) { if (whitelistIn.size > getMaxWhitelistSize()) { @@ -608,6 +672,26 @@ return BLE_ERROR_NONE; } +/**************************************************************************/ +/*! + @brief Set the advertising policy filter mode that will be used in + the next call to startAdvertising(). + + @returns \ref ble_errror_t + + @retval BLE_ERROR_NONE + Everything executed properly. + + BLE_ERROR_NOT_IMPLEMENTED + This feature is currently note implemented. + + @section EXAMPLE + + @code + + @endcode +*/ +/**************************************************************************/ ble_error_t nRF5xGap::setAdvertisingPolicyMode(Gap::AdvertisingPolicyMode_t mode) { advertisingPolicyMode = mode; @@ -615,6 +699,26 @@ return BLE_ERROR_NONE; } +/**************************************************************************/ +/*! + @brief Set the scanning policy filter mode that will be used in + the next call to startAdvertising(). + + @returns \ref ble_errror_t + + @retval BLE_ERROR_NONE + Everything executed properly. + + BLE_ERROR_NOT_IMPLEMENTED + This feature is currently note implemented. + + @section EXAMPLE + + @code + + @endcode +*/ +/**************************************************************************/ ble_error_t nRF5xGap::setScanningPolicyMode(Gap::ScanningPolicyMode_t mode) { scanningPolicyMode = mode; @@ -622,21 +726,83 @@ return BLE_ERROR_NONE; } +/**************************************************************************/ +/*! + @brief Set the initiator policy filter mode that will be used in + the next call to startAdvertising() + + @returns \ref ble_errror_t + + @retval BLE_ERROR_NONE + Everything executed properly. + + BLE_ERROR_NOT_IMPLEMENTED + This feature is currently note implemented. + + @section EXAMPLE + + @code + + @endcode +*/ +/**************************************************************************/ ble_error_t nRF5xGap::setInitiatorPolicyMode(Gap::InitiatorPolicyMode_t mode) { return BLE_ERROR_NOT_IMPLEMENTED; } +/**************************************************************************/ +/*! + @brief Get the current advertising policy filter mode. + + @returns The advertising policy filter mode. + + @section EXAMPLE + + @code + + @endcode +*/ +/**************************************************************************/ Gap::AdvertisingPolicyMode_t nRF5xGap::getAdvertisingPolicyMode(void) const { return advertisingPolicyMode; } +/**************************************************************************/ +/*! + @brief Get the current scanning policy filter mode. + + @returns The scanning policy filter mode. + + @section EXAMPLE + + @code + + @endcode +*/ +/**************************************************************************/ Gap::ScanningPolicyMode_t nRF5xGap::getScanningPolicyMode(void) const { return scanningPolicyMode; } +/**************************************************************************/ +/*! + @brief Get the current initiator policy filter mode. + + @returns The initiator policy filter mode. + + @note Currently initiator filtering using the whitelist is not + implemented in this module. + + @section EXAMPLE + + @code + + @endcode +*/ +/**************************************************************************/ Gap::InitiatorPolicyMode_t nRF5xGap::getInitiatorPolicyMode(void) const { return Gap::INIT_POLICY_IGNORE_WHITELIST; @@ -647,31 +813,16 @@ @brief Helper function used to populate the ble_gap_whitelist_t that will be used by the SoftDevice for filtering requests. - @param[in] params - Basic advertising details, including the advertising - delay, timeout and how the device should be advertised - @params[in] advData - The primary advertising data payload - @params[in] scanResponse - The optional Scan Response payload if the advertising - type is set to \ref GapAdvertisingParams::ADV_SCANNABLE_UNDIRECTED - in \ref GapAdveritinngParams - @returns \ref ble_error_t @retval BLE_ERROR_NONE Everything executed properly - @retval BLE_ERROR_BUFFER_OVERFLOW - The proposed action would cause a buffer overflow. All - advertising payloads must be <= 31 bytes, for example. + @retval BLE_ERROR_INVALID_STATE + The internal stack was not initialized correctly. - @retval BLE_ERROR_NOT_IMPLEMENTED - A feature was requested that is not yet supported in the - nRF51 firmware or hardware. - - @retval BLE_ERROR_PARAM_OUT_OF_RANGE - One of the proposed values is outside the valid range. + @note Both the SecurityManager and Gap must initialize correctly for + this function to succeed. @note This function is needed because for the BLE API the whitelist is just a collection of keys, but for the stack it also includes