HW layer for the Nucleo board, it only work with old BLE_API

Dependents:   Hello_BLE F446RE-BLE

Fork of X_NUCLEO_IDB0XA1 by ST

Committer:
leonardoaraujosantos
Date:
Tue Nov 03 23:10:27 2015 +0000
Revision:
129:57997390c086
Parent:
70:d20d30f59b1c
Changing pin D13

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Silvio Lucio Oliva 70:d20d30f59b1c 1 /******************** (C) COPYRIGHT 2012 STMicroelectronics ********************
Silvio Lucio Oliva 70:d20d30f59b1c 2 * File Name : link_layer.h
Silvio Lucio Oliva 70:d20d30f59b1c 3 * Author : AMS - HEA&RF BU
Silvio Lucio Oliva 70:d20d30f59b1c 4 * Version : V1.0.0
Silvio Lucio Oliva 70:d20d30f59b1c 5 * Date : 19-July-2012
Silvio Lucio Oliva 70:d20d30f59b1c 6 * Description : Header file for BlueNRG's link layer. It contains
Silvio Lucio Oliva 70:d20d30f59b1c 7 * definition of functions for link layer, most of which are
Silvio Lucio Oliva 70:d20d30f59b1c 8 * mapped to HCI commands.
Silvio Lucio Oliva 70:d20d30f59b1c 9 ********************************************************************************
Silvio Lucio Oliva 70:d20d30f59b1c 10 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
Silvio Lucio Oliva 70:d20d30f59b1c 11 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
Silvio Lucio Oliva 70:d20d30f59b1c 12 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
Silvio Lucio Oliva 70:d20d30f59b1c 13 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
Silvio Lucio Oliva 70:d20d30f59b1c 14 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
Silvio Lucio Oliva 70:d20d30f59b1c 15 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
Silvio Lucio Oliva 70:d20d30f59b1c 16 *******************************************************************************/
Silvio Lucio Oliva 70:d20d30f59b1c 17
Silvio Lucio Oliva 70:d20d30f59b1c 18 #ifndef _LINK_LAYER_H
Silvio Lucio Oliva 70:d20d30f59b1c 19 #define _LINK_LAYER_H
Silvio Lucio Oliva 70:d20d30f59b1c 20
Silvio Lucio Oliva 70:d20d30f59b1c 21 #include <ble_status.h>
Silvio Lucio Oliva 70:d20d30f59b1c 22
Silvio Lucio Oliva 70:d20d30f59b1c 23 /**
Silvio Lucio Oliva 70:d20d30f59b1c 24 *@addtogroup GAP GAP
Silvio Lucio Oliva 70:d20d30f59b1c 25 *@brief API for GAP layer.
Silvio Lucio Oliva 70:d20d30f59b1c 26 *@{
Silvio Lucio Oliva 70:d20d30f59b1c 27 */
Silvio Lucio Oliva 70:d20d30f59b1c 28
Silvio Lucio Oliva 70:d20d30f59b1c 29 /**
Silvio Lucio Oliva 70:d20d30f59b1c 30 *@name Advertising filter
Silvio Lucio Oliva 70:d20d30f59b1c 31 *Advertising policy for filtering (white list related)
Silvio Lucio Oliva 70:d20d30f59b1c 32 *@{
Silvio Lucio Oliva 70:d20d30f59b1c 33 */
Silvio Lucio Oliva 70:d20d30f59b1c 34 #define NO_WHITE_LIST_USE (0x00) /**< Process scan and connection requests from all devices (i.e., the White List is not in use) */
Silvio Lucio Oliva 70:d20d30f59b1c 35 #define WHITE_LIST_FOR_ONLY_SCAN (0x01) /**< Process connection requests from all devices and only scan requests from devices that are in the White List */
Silvio Lucio Oliva 70:d20d30f59b1c 36 #define WHITE_LIST_FOR_ONLY_CONN (0x02) /**< Process scan requests from all devices and only connection requests from devices that are in the White List */
Silvio Lucio Oliva 70:d20d30f59b1c 37 #define WHITE_LIST_FOR_ALL (0x03) /**< Process scan and connection requests only from devices in the White List. */
Silvio Lucio Oliva 70:d20d30f59b1c 38 /**
Silvio Lucio Oliva 70:d20d30f59b1c 39 * @}
Silvio Lucio Oliva 70:d20d30f59b1c 40 */
Silvio Lucio Oliva 70:d20d30f59b1c 41
Silvio Lucio Oliva 70:d20d30f59b1c 42
Silvio Lucio Oliva 70:d20d30f59b1c 43 /**
Silvio Lucio Oliva 70:d20d30f59b1c 44 * Bluetooth 48 bit address (in little-endian order).
Silvio Lucio Oliva 70:d20d30f59b1c 45 */
Silvio Lucio Oliva 70:d20d30f59b1c 46 typedef uint8_t tBDAddr[6];
Silvio Lucio Oliva 70:d20d30f59b1c 47
Silvio Lucio Oliva 70:d20d30f59b1c 48
Silvio Lucio Oliva 70:d20d30f59b1c 49 /**
Silvio Lucio Oliva 70:d20d30f59b1c 50 *@name Bluetooth address types
Silvio Lucio Oliva 70:d20d30f59b1c 51 * Bluetooth address types
Silvio Lucio Oliva 70:d20d30f59b1c 52 *@{
Silvio Lucio Oliva 70:d20d30f59b1c 53 */
Silvio Lucio Oliva 70:d20d30f59b1c 54 #define PUBLIC_ADDR (0)
Silvio Lucio Oliva 70:d20d30f59b1c 55 #define RANDOM_ADDR (1)
Silvio Lucio Oliva 70:d20d30f59b1c 56 #define STATIC_RANDOM_ADDR (1)
Silvio Lucio Oliva 70:d20d30f59b1c 57 #define RESOLVABLE_PRIVATE_ADDR (2)
Silvio Lucio Oliva 70:d20d30f59b1c 58 #define NON_RESOLVABLE_PRIVATE_ADDR (3)
Silvio Lucio Oliva 70:d20d30f59b1c 59 /**
Silvio Lucio Oliva 70:d20d30f59b1c 60 * @}
Silvio Lucio Oliva 70:d20d30f59b1c 61 */
Silvio Lucio Oliva 70:d20d30f59b1c 62
Silvio Lucio Oliva 70:d20d30f59b1c 63 /**
Silvio Lucio Oliva 70:d20d30f59b1c 64 *@name Directed advertising types
Silvio Lucio Oliva 70:d20d30f59b1c 65 * Type of advertising during directed advertising
Silvio Lucio Oliva 70:d20d30f59b1c 66 *@{
Silvio Lucio Oliva 70:d20d30f59b1c 67 */
Silvio Lucio Oliva 70:d20d30f59b1c 68 #define HIGH_DUTY_CYCLE_DIRECTED_ADV (1)
Silvio Lucio Oliva 70:d20d30f59b1c 69 #define LOW_DUTY_CYCLE_DIRECTED_ADV (4)
Silvio Lucio Oliva 70:d20d30f59b1c 70 /**
Silvio Lucio Oliva 70:d20d30f59b1c 71 * @}
Silvio Lucio Oliva 70:d20d30f59b1c 72 */
Silvio Lucio Oliva 70:d20d30f59b1c 73
Silvio Lucio Oliva 70:d20d30f59b1c 74 /**
Silvio Lucio Oliva 70:d20d30f59b1c 75 * @name Advertising type
Silvio Lucio Oliva 70:d20d30f59b1c 76 * @{
Silvio Lucio Oliva 70:d20d30f59b1c 77 */
Silvio Lucio Oliva 70:d20d30f59b1c 78
Silvio Lucio Oliva 70:d20d30f59b1c 79 // <<<ANDREA: commented defines (see BlueNRGGap.h)>>>
Silvio Lucio Oliva 70:d20d30f59b1c 80 /**
Silvio Lucio Oliva 70:d20d30f59b1c 81 * undirected scannable and connectable
Silvio Lucio Oliva 70:d20d30f59b1c 82 */
Silvio Lucio Oliva 70:d20d30f59b1c 83 //#define ADV_IND (0x00)
Silvio Lucio Oliva 70:d20d30f59b1c 84
Silvio Lucio Oliva 70:d20d30f59b1c 85 /**
Silvio Lucio Oliva 70:d20d30f59b1c 86 * directed non scannable
Silvio Lucio Oliva 70:d20d30f59b1c 87 */
Silvio Lucio Oliva 70:d20d30f59b1c 88 //#define ADV_DIRECT_IND (0x01)
Silvio Lucio Oliva 70:d20d30f59b1c 89
Silvio Lucio Oliva 70:d20d30f59b1c 90 /**
Silvio Lucio Oliva 70:d20d30f59b1c 91 * scannable non connectable
Silvio Lucio Oliva 70:d20d30f59b1c 92 */
Silvio Lucio Oliva 70:d20d30f59b1c 93 //#define ADV_SCAN_IND (0x02)
Silvio Lucio Oliva 70:d20d30f59b1c 94
Silvio Lucio Oliva 70:d20d30f59b1c 95 /**
Silvio Lucio Oliva 70:d20d30f59b1c 96 * non-connectable and no scan response (used for passive scan)
Silvio Lucio Oliva 70:d20d30f59b1c 97 */
Silvio Lucio Oliva 70:d20d30f59b1c 98 //#define ADV_NONCONN_IND (0x03)
Silvio Lucio Oliva 70:d20d30f59b1c 99
Silvio Lucio Oliva 70:d20d30f59b1c 100 /**
Silvio Lucio Oliva 70:d20d30f59b1c 101 * scan response
Silvio Lucio Oliva 70:d20d30f59b1c 102 */
Silvio Lucio Oliva 70:d20d30f59b1c 103 //#define SCAN_RSP (0x04)
Silvio Lucio Oliva 70:d20d30f59b1c 104 // <<<ANDREA>>>
Silvio Lucio Oliva 70:d20d30f59b1c 105
Silvio Lucio Oliva 70:d20d30f59b1c 106 /**
Silvio Lucio Oliva 70:d20d30f59b1c 107 * @}
Silvio Lucio Oliva 70:d20d30f59b1c 108 */
Silvio Lucio Oliva 70:d20d30f59b1c 109
Silvio Lucio Oliva 70:d20d30f59b1c 110 /* 0X05-0XFF RESERVED */
Silvio Lucio Oliva 70:d20d30f59b1c 111
Silvio Lucio Oliva 70:d20d30f59b1c 112 /**
Silvio Lucio Oliva 70:d20d30f59b1c 113 * @name Advertising ranges
Silvio Lucio Oliva 70:d20d30f59b1c 114 * @{
Silvio Lucio Oliva 70:d20d30f59b1c 115 */
Silvio Lucio Oliva 70:d20d30f59b1c 116
Silvio Lucio Oliva 70:d20d30f59b1c 117 /**
Silvio Lucio Oliva 70:d20d30f59b1c 118 * lowest allowed interval value for connectable types(20ms)..multiple of 625us
Silvio Lucio Oliva 70:d20d30f59b1c 119 */
Silvio Lucio Oliva 70:d20d30f59b1c 120 #define ADV_INTERVAL_LOWEST_CONN (0X0020)
Silvio Lucio Oliva 70:d20d30f59b1c 121
Silvio Lucio Oliva 70:d20d30f59b1c 122 /**
Silvio Lucio Oliva 70:d20d30f59b1c 123 * highest allowed interval value (10.24s)..multiple of 625us.
Silvio Lucio Oliva 70:d20d30f59b1c 124 */
Silvio Lucio Oliva 70:d20d30f59b1c 125 #define ADV_INTERVAL_HIGHEST (0X4000)
Silvio Lucio Oliva 70:d20d30f59b1c 126
Silvio Lucio Oliva 70:d20d30f59b1c 127 /**
Silvio Lucio Oliva 70:d20d30f59b1c 128 * lowest allowed interval value for non connectable types
Silvio Lucio Oliva 70:d20d30f59b1c 129 * (100ms)..multiple of 625us.
Silvio Lucio Oliva 70:d20d30f59b1c 130 */
Silvio Lucio Oliva 70:d20d30f59b1c 131 #define ADV_INTERVAL_LOWEST_NONCONN (0X00a0)
Silvio Lucio Oliva 70:d20d30f59b1c 132
Silvio Lucio Oliva 70:d20d30f59b1c 133 /**
Silvio Lucio Oliva 70:d20d30f59b1c 134 * @}
Silvio Lucio Oliva 70:d20d30f59b1c 135 */
Silvio Lucio Oliva 70:d20d30f59b1c 136
Silvio Lucio Oliva 70:d20d30f59b1c 137 /**
Silvio Lucio Oliva 70:d20d30f59b1c 138 * @name Advertising channels
Silvio Lucio Oliva 70:d20d30f59b1c 139 * @{
Silvio Lucio Oliva 70:d20d30f59b1c 140 */
Silvio Lucio Oliva 70:d20d30f59b1c 141 #define ADV_CH_37 0x01
Silvio Lucio Oliva 70:d20d30f59b1c 142 #define ADV_CH_38 0x02
Silvio Lucio Oliva 70:d20d30f59b1c 143 #define ADV_CH_39 0x04
Silvio Lucio Oliva 70:d20d30f59b1c 144 /**
Silvio Lucio Oliva 70:d20d30f59b1c 145 * @}
Silvio Lucio Oliva 70:d20d30f59b1c 146 */
Silvio Lucio Oliva 70:d20d30f59b1c 147
Silvio Lucio Oliva 70:d20d30f59b1c 148 /**
Silvio Lucio Oliva 70:d20d30f59b1c 149 * @name Scan_types Scan types
Silvio Lucio Oliva 70:d20d30f59b1c 150 * @{
Silvio Lucio Oliva 70:d20d30f59b1c 151 */
Silvio Lucio Oliva 70:d20d30f59b1c 152 #define PASSIVE_SCAN 0
Silvio Lucio Oliva 70:d20d30f59b1c 153 #define ACTIVE_SCAN 1
Silvio Lucio Oliva 70:d20d30f59b1c 154 /**
Silvio Lucio Oliva 70:d20d30f59b1c 155 * @}
Silvio Lucio Oliva 70:d20d30f59b1c 156 */
Silvio Lucio Oliva 70:d20d30f59b1c 157
Silvio Lucio Oliva 70:d20d30f59b1c 158 /**
Silvio Lucio Oliva 70:d20d30f59b1c 159 * @}
Silvio Lucio Oliva 70:d20d30f59b1c 160 */
Silvio Lucio Oliva 70:d20d30f59b1c 161
Silvio Lucio Oliva 70:d20d30f59b1c 162
Silvio Lucio Oliva 70:d20d30f59b1c 163 #endif /* _LINK_LAYER_H */