Cefn Hoile / nRF51822

Dependencies:   nrf51-sdk

Dependents:   microbit-dal

Fork of nRF51822 by Lancaster University

Committer:
rgrover1
Date:
Tue Jul 21 13:23:43 2015 +0100
Revision:
386:3253b512fb24
Parent:
374:d57070489710
Synchronized with git rev 928a5e63
Author: Rohit Grover
Release 0.4.1
=============

This is a minor release.

Enhancements
~~~~~~~~~~~~

* Hide duplicate symbol definitions in ble_types.h. These have already been
brought into ble/blecommon.h.

* Replace DiscoveredCharacteristic::setupOnDataRead() with
GattClient::onDataRead().

* Implement new API GattServer::areUpdatesEnabled() to determine notification
status for a characteristic.

Bugfixes
~~~~~~~~

* fix for #20: GattServer::addService() incorrectly initialized value
attribute-handles. These were getting confused with characteristicIndex.
Event handlers also return attribute handles correctly now; they were also
previously returning characteristic indices.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rgrover1 374:d57070489710 1 /* mbed Microcontroller Library
rgrover1 374:d57070489710 2 * Copyright (c) 2006-2013 ARM Limited
rgrover1 374:d57070489710 3 *
rgrover1 374:d57070489710 4 * Licensed under the Apache License, Version 2.0 (the "License");
rgrover1 374:d57070489710 5 * you may not use this file except in compliance with the License.
rgrover1 374:d57070489710 6 * You may obtain a copy of the License at
rgrover1 374:d57070489710 7 *
rgrover1 374:d57070489710 8 * http://www.apache.org/licenses/LICENSE-2.0
rgrover1 374:d57070489710 9 *
rgrover1 374:d57070489710 10 * Unless required by applicable law or agreed to in writing, software
rgrover1 374:d57070489710 11 * distributed under the License is distributed on an "AS IS" BASIS,
rgrover1 374:d57070489710 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rgrover1 374:d57070489710 13 * See the License for the specific language governing permissions and
rgrover1 374:d57070489710 14 * limitations under the License.
rgrover1 374:d57070489710 15 */
rgrover1 374:d57070489710 16
rgrover1 374:d57070489710 17 #ifndef _PROJECTCONFIG_H_
rgrover1 374:d57070489710 18 #define _PROJECTCONFIG_H_
rgrover1 374:d57070489710 19
rgrover1 374:d57070489710 20 #include "ble/blecommon.h"
rgrover1 374:d57070489710 21
rgrover1 374:d57070489710 22 /*=========================================================================
rgrover1 374:d57070489710 23 MCU & BOARD SELCTION
rgrover1 374:d57070489710 24
rgrover1 374:d57070489710 25 CFG_BOARD is one of the value defined in board.h
rgrover1 374:d57070489710 26 -----------------------------------------------------------------------*/
rgrover1 374:d57070489710 27 #define CFG_BOARD BOARD_PCA10001
rgrover1 374:d57070489710 28 #define CFG_MCU_STRING "nRF51822"
rgrover1 374:d57070489710 29 /*=========================================================================*/
rgrover1 374:d57070489710 30
rgrover1 374:d57070489710 31
rgrover1 374:d57070489710 32 /*=========================================================================
rgrover1 374:d57070489710 33 CODE BASE VERSION SETTINGS
rgrover1 374:d57070489710 34
rgrover1 374:d57070489710 35 Please do not modify this version number. To set a version number
rgrover1 374:d57070489710 36 for your project or firmware, change the values in your 'boards/'
rgrover1 374:d57070489710 37 config file.
rgrover1 374:d57070489710 38 -----------------------------------------------------------------------*/
rgrover1 374:d57070489710 39 #define CFG_CODEBASE_VERSION_MAJOR 0
rgrover1 374:d57070489710 40 #define CFG_CODEBASE_VERSION_MINOR 1
rgrover1 374:d57070489710 41 #define CFG_CODEBASE_VERSION_REVISION 0
rgrover1 374:d57070489710 42 /*=========================================================================*/
rgrover1 374:d57070489710 43
rgrover1 374:d57070489710 44
rgrover1 374:d57070489710 45 /*=========================================================================
rgrover1 374:d57070489710 46 FIRMWARE VERSION SETTINGS
rgrover1 374:d57070489710 47 -----------------------------------------------------------------------*/
rgrover1 374:d57070489710 48 #define CFG_FIRMWARE_VERSION_MAJOR 0
rgrover1 374:d57070489710 49 #define CFG_FIRMWARE_VERSION_MINOR 0
rgrover1 374:d57070489710 50 #define CFG_FIRMWARE_VERSION_REVISION 0
rgrover1 374:d57070489710 51 /*=========================================================================*/
rgrover1 374:d57070489710 52
rgrover1 374:d57070489710 53
rgrover1 374:d57070489710 54 /*=========================================================================
rgrover1 374:d57070489710 55 DEBUG LEVEL
rgrover1 374:d57070489710 56 -----------------------------------------------------------------------
rgrover1 374:d57070489710 57
rgrover1 374:d57070489710 58 CFG_DEBUG Level 3: Full debug output, any failed assert
rgrover1 374:d57070489710 59 will produce a breakpoint for the
rgrover1 374:d57070489710 60 debugger
rgrover1 374:d57070489710 61 Level 2: ATTR_ALWAYS_INLINE is null, ASSERT
rgrover1 374:d57070489710 62 has text
rgrover1 374:d57070489710 63 Level 1: ATTR_ALWAYS_INLINE is an attribute,
rgrover1 374:d57070489710 64 ASSERT has no text
rgrover1 374:d57070489710 65 Level 0: No debug information generated
rgrover1 374:d57070489710 66
rgrover1 374:d57070489710 67 -----------------------------------------------------------------------*/
rgrover1 374:d57070489710 68 #define CFG_DEBUG (1)
rgrover1 374:d57070489710 69
rgrover1 374:d57070489710 70 #if (CFG_DEBUG > 3) || (CFG_DEBUG < 0)
rgrover1 374:d57070489710 71 #error "CFG_DEBUG must be a value between 0 (no debug) and 3"
rgrover1 374:d57070489710 72 #endif
rgrover1 374:d57070489710 73 /*=========================================================================*/
rgrover1 374:d57070489710 74
rgrover1 374:d57070489710 75
rgrover1 374:d57070489710 76 /*=========================================================================
rgrover1 374:d57070489710 77 GENERAL NRF51 PERIPHERAL SETTINGS
rgrover1 374:d57070489710 78 -----------------------------------------------------------------------
rgrover1 374:d57070489710 79
rgrover1 374:d57070489710 80 CFG_SCHEDULER_ENABLE Set this to 'true' or 'false' depending on
rgrover1 374:d57070489710 81 if you use the event scheduler or not
rgrover1 374:d57070489710 82
rgrover1 374:d57070489710 83 -----------------------------------------------------------------------*/
rgrover1 374:d57070489710 84 #define CFG_SCHEDULER_ENABLE false
rgrover1 374:d57070489710 85
rgrover1 374:d57070489710 86 /*------------------------------- GPIOTE ------------------------------*/
rgrover1 374:d57070489710 87 #define CFG_GPIOTE_MAX_USERS 1 /**< Maximum number of users of the GPIOTE handler. */
rgrover1 374:d57070489710 88
rgrover1 374:d57070489710 89 /*-------------------------------- TIMER ------------------------------*/
rgrover1 374:d57070489710 90 #define CFG_TIMER_PRESCALER 0 /**< Value of the RTC1 PRESCALER register. freq = (32768/(PRESCALER+1)) */
rgrover1 374:d57070489710 91 #define CFG_TIMER_MAX_INSTANCE 1 /**< Maximum number of simultaneously created timers. */
rgrover1 374:d57070489710 92 #define CFG_TIMER_OPERATION_QUEUE_SIZE 2 /**< Size of timer operation queues. */
rgrover1 374:d57070489710 93 /*=========================================================================*/
rgrover1 374:d57070489710 94
rgrover1 374:d57070489710 95
rgrover1 374:d57070489710 96 /*=========================================================================
rgrover1 374:d57070489710 97 BTLE SETTINGS
rgrover1 374:d57070489710 98 -----------------------------------------------------------------------*/
rgrover1 374:d57070489710 99
rgrover1 374:d57070489710 100 #define CFG_BLE_TX_POWER_LEVEL 0 /**< in dBm (Valid values are -40, -20, -16, -12, -8, -4, 0, 4) */
rgrover1 374:d57070489710 101
rgrover1 374:d57070489710 102 /*---------------------------- BOND MANAGER ---------------------------*/
rgrover1 374:d57070489710 103 #define CFG_BLE_BOND_FLASH_PAGE_BOND (BLE_FLASH_PAGE_END-1) /**< Flash page used for bond manager bonding information.*/
rgrover1 374:d57070489710 104 #define CFG_BLE_BOND_FLASH_PAGE_SYS_ATTR (BLE_FLASH_PAGE_END-3) /**< Flash page used for bond manager system attribute information. TODO check if we can use BLE_FLASH_PAGE_END-2*/
rgrover1 374:d57070489710 105 #define CFG_BLE_BOND_DELETE_BUTTON_NUM 0 /**< Button to press to delete bond details during init */
rgrover1 374:d57070489710 106
rgrover1 374:d57070489710 107 /*------------------------------ SECURITY -----------------------------*/
rgrover1 374:d57070489710 108 #define CFG_BLE_SEC_PARAM_MITM 0 /**< Man In The Middle protection not required. */
rgrover1 374:d57070489710 109 #define CFG_BLE_SEC_PARAM_IO_CAPABILITIES BLE_GAP_IO_CAPS_NONE /**< No I/O capabilities. */
rgrover1 374:d57070489710 110 #define CFG_BLE_SEC_PARAM_OOB 0 /**< Out Of Band data not available. */
rgrover1 374:d57070489710 111 #define CFG_BLE_SEC_PARAM_MIN_KEY_SIZE 7 /**< Minimum encryption key size. */
rgrover1 374:d57070489710 112 #define CFG_BLE_SEC_PARAM_MAX_KEY_SIZE 16
rgrover1 374:d57070489710 113
rgrover1 374:d57070489710 114 /*--------------------------------- GAP -------------------------------*/
rgrover1 374:d57070489710 115 #define CFG_GAP_APPEARANCE BLE_APPEARANCE_GENERIC_TAG
rgrover1 374:d57070489710 116 #define CFG_GAP_LOCAL_NAME "nRF5x"
rgrover1 374:d57070489710 117
rgrover1 374:d57070489710 118 #define CFG_GAP_CONNECTION_MIN_INTERVAL_MS 50 /**< Minimum acceptable connection interval */
rgrover1 374:d57070489710 119 #define CFG_GAP_CONNECTION_MAX_INTERVAL_MS 500 /**< Maximum acceptable connection interval */
rgrover1 374:d57070489710 120 #define CFG_GAP_CONNECTION_SUPERVISION_TIMEOUT_MS 4000 /**< Connection supervisory timeout */
rgrover1 374:d57070489710 121 #define CFG_GAP_CONNECTION_SLAVE_LATENCY 0 /**< Slave Latency in number of connection events. */
rgrover1 374:d57070489710 122
rgrover1 374:d57070489710 123 #define CFG_GAP_ADV_INTERVAL_MS 25 /**< The advertising interval in miliseconds, should be multiply of 0.625 */
rgrover1 374:d57070489710 124 #define CFG_GAP_ADV_TIMEOUT_S 180 /**< The advertising timeout in units of seconds. */
rgrover1 374:d57070489710 125 /*=========================================================================*/
rgrover1 374:d57070489710 126
rgrover1 374:d57070489710 127
rgrover1 374:d57070489710 128 /*=========================================================================
rgrover1 374:d57070489710 129 VALIDATION
rgrover1 374:d57070489710 130 -----------------------------------------------------------------------*/
rgrover1 374:d57070489710 131 #if CFG_BLE_TX_POWER_LEVEL != -40 && CFG_BLE_TX_POWER_LEVEL != -20 && CFG_BLE_TX_POWER_LEVEL != -16 && CFG_BLE_TX_POWER_LEVEL != -12 && CFG_BLE_TX_POWER_LEVEL != -8 && CFG_BLE_TX_POWER_LEVEL != -4 && CFG_BLE_TX_POWER_LEVEL != 0 && CFG_BLE_TX_POWER_LEVEL != 4
rgrover1 374:d57070489710 132 #error "CFG_BLE_TX_POWER_LEVEL must be -40, -20, -16, -12, -8, -4, 0 or 4"
rgrover1 374:d57070489710 133 #endif
rgrover1 374:d57070489710 134 /*=========================================================================*/
rgrover1 374:d57070489710 135
rgrover1 374:d57070489710 136 #endif /* _PROJECTCONFIG_H_ */