HW layer for the Nucleo board, it only work with old BLE_API
Dependents: Hello_BLE F446RE-BLE
Fork of X_NUCLEO_IDB0XA1 by
BlueNRG_HCI/includes/link_layer.h@70:d20d30f59b1c, 2015-06-08 (annotated)
- Committer:
- Silvio Lucio Oliva
- Date:
- Mon Jun 08 17:08:01 2015 +0200
- Revision:
- 70:d20d30f59b1c
Initial commit for mbed support
Signed-off-by: Silvio Lucio Oliva <silvio.oliva@st.com>
Who changed what in which revision?
User | Revision | Line number | New 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 */ |