fdsf
Fork of nRF51822 by
Diff: source/nRF5xGap.cpp
- Revision:
- 601:5f4199aae50f
- Parent:
- 600:0978b5626451
- Child:
- 603:b1616eaf8206
--- 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