NUCLEO-F401RE + BlueNRG shield client test (TI Sensortag reading)

Dependencies:   mbed-src

Committer:
ostapsky
Date:
Sat Aug 16 11:00:04 2014 +0000
Revision:
0:aa1e012ec210
CLIENT mode first revision

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ostapsky 0:aa1e012ec210 1 /******************** (C) COPYRIGHT 2012 STMicroelectronics ********************
ostapsky 0:aa1e012ec210 2 * File Name : gap.h
ostapsky 0:aa1e012ec210 3 * Author : AMS - HEA&RF BU
ostapsky 0:aa1e012ec210 4 * Version : V1.0.0
ostapsky 0:aa1e012ec210 5 * Date : 19-July-2012
ostapsky 0:aa1e012ec210 6 * Description : Header file for BlueNRG's GAP layer.
ostapsky 0:aa1e012ec210 7 ********************************************************************************
ostapsky 0:aa1e012ec210 8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
ostapsky 0:aa1e012ec210 9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
ostapsky 0:aa1e012ec210 10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
ostapsky 0:aa1e012ec210 11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
ostapsky 0:aa1e012ec210 12 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
ostapsky 0:aa1e012ec210 13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
ostapsky 0:aa1e012ec210 14 *******************************************************************************/
ostapsky 0:aa1e012ec210 15 #ifndef __GAP_H__
ostapsky 0:aa1e012ec210 16 #define __GAP_H__
ostapsky 0:aa1e012ec210 17
ostapsky 0:aa1e012ec210 18 #include <link_layer.h>
ostapsky 0:aa1e012ec210 19
ostapsky 0:aa1e012ec210 20 /*----------------GAP UUIDs--------------------------*/
ostapsky 0:aa1e012ec210 21 #define GAP_SERVICE_UUID (0x1800)
ostapsky 0:aa1e012ec210 22 #define DEVICE_NAME_UUID (0x2A00)
ostapsky 0:aa1e012ec210 23 #define APPEARANCE_UUID (0x2A01)
ostapsky 0:aa1e012ec210 24 #define PERIPHERAL_PRIVACY_FLAG_UUID (0x2A02)
ostapsky 0:aa1e012ec210 25 #define RECONNECTION_ADDR_UUID (0x2A03)
ostapsky 0:aa1e012ec210 26 #define PERIPHERAL_PREFERRED_CONN_PARAMS_UUID (0x2A04)
ostapsky 0:aa1e012ec210 27
ostapsky 0:aa1e012ec210 28 /*----------------Characteristic value lengths--------------*/
ostapsky 0:aa1e012ec210 29 #define DEVICE_NAME_CHARACTERISTIC_LEN (8)
ostapsky 0:aa1e012ec210 30 #define APPEARANCE_CHARACTERISTIC_LEN (2)
ostapsky 0:aa1e012ec210 31 #define PERIPHERAL_PRIVACY_CHARACTERISTIC_LEN (1)
ostapsky 0:aa1e012ec210 32 #define RECONNECTION_ADDR_CHARACTERISTIC_LEN (6)
ostapsky 0:aa1e012ec210 33 #define PERIPHERAL_PREF_CONN_PARAMS_CHARACTERISTIC_LEN (8)
ostapsky 0:aa1e012ec210 34
ostapsky 0:aa1e012ec210 35 /*------------- AD types for adv data and scan response data ----------------*/
ostapsky 0:aa1e012ec210 36
ostapsky 0:aa1e012ec210 37 /* FLAGS AD type */
ostapsky 0:aa1e012ec210 38 #define AD_TYPE_FLAGS (0x01)
ostapsky 0:aa1e012ec210 39 /* flag bits */
ostapsky 0:aa1e012ec210 40 #define FLAG_BIT_LE_LIMITED_DISCOVERABLE_MODE (0x01)
ostapsky 0:aa1e012ec210 41 #define FLAG_BIT_LE_GENERAL_DISCOVERABLE_MODE (0x02)
ostapsky 0:aa1e012ec210 42 #define FLAG_BIT_BR_EDR_NOT_SUPPORTED (0x04)
ostapsky 0:aa1e012ec210 43 #define FLAG_BIT_LE_BR_EDR_CONTROLLER (0x08)/* single device supports BR/EDR and LE controller */
ostapsky 0:aa1e012ec210 44 #define FLAG_BIT_LE_BR_EDR_HOST (0x10)/* single device supports BR/EDR and LE host */
ostapsky 0:aa1e012ec210 45
ostapsky 0:aa1e012ec210 46 /* SERVICE UUID AD types */
ostapsky 0:aa1e012ec210 47 #define AD_TYPE_16_BIT_SERV_UUID (0x02)
ostapsky 0:aa1e012ec210 48 #define AD_TYPE_16_BIT_SERV_UUID_CMPLT_LIST (0x03)
ostapsky 0:aa1e012ec210 49 #define AD_TYPE_32_BIT_SERV_UUID (0x04)
ostapsky 0:aa1e012ec210 50 #define AD_TYPE_32_BIT_SERV_UUID_CMPLT_LIST (0x05)
ostapsky 0:aa1e012ec210 51 #define AD_TYPE_128_BIT_SERV_UUID (0x06)
ostapsky 0:aa1e012ec210 52 #define AD_TYPE_128_BIT_SERV_UUID_CMPLT_LIST (0x07)
ostapsky 0:aa1e012ec210 53
ostapsky 0:aa1e012ec210 54 /* LOCAL NAME AD types */
ostapsky 0:aa1e012ec210 55 #define AD_TYPE_SHORTENED_LOCAL_NAME (0x08)
ostapsky 0:aa1e012ec210 56 #define AD_TYPE_COMPLETE_LOCAL_NAME (0x09)
ostapsky 0:aa1e012ec210 57
ostapsky 0:aa1e012ec210 58 /* TX power level AD type*/
ostapsky 0:aa1e012ec210 59 #define AD_TYPE_TX_POWER_LEVEL (0x0A)
ostapsky 0:aa1e012ec210 60
ostapsky 0:aa1e012ec210 61 /* security manager TK value AD type */
ostapsky 0:aa1e012ec210 62 #define AD_TYPE_SEC_MGR_TK_VALUE (0x10)
ostapsky 0:aa1e012ec210 63
ostapsky 0:aa1e012ec210 64 /* security manager OOB flags */
ostapsky 0:aa1e012ec210 65 #define AD_TYPE_SEC_MGR_OOB_FLAGS (0x11)
ostapsky 0:aa1e012ec210 66
ostapsky 0:aa1e012ec210 67 /* slave connection interval AD type */
ostapsky 0:aa1e012ec210 68 #define AD_TYPE_SLAVE_CONN_INTERVAL (0x12)
ostapsky 0:aa1e012ec210 69
ostapsky 0:aa1e012ec210 70 /* service solicitation UUID list Ad types*/
ostapsky 0:aa1e012ec210 71 #define AD_TYPE_SERV_SOLICIT_16_BIT_UUID_LIST (0x14)
ostapsky 0:aa1e012ec210 72 #define AD_TYPE_SERV_SOLICIT_32_BIT_UUID_LIST (0x15)
ostapsky 0:aa1e012ec210 73
ostapsky 0:aa1e012ec210 74 /* service data AD type */
ostapsky 0:aa1e012ec210 75 #define AD_TYPE_SERVICE_DATA (0x16)
ostapsky 0:aa1e012ec210 76
ostapsky 0:aa1e012ec210 77 /* manufaturer specific data AD type */
ostapsky 0:aa1e012ec210 78 #define AD_TYPE_MANUFACTURER_SPECIFIC_DATA (0xFF)
ostapsky 0:aa1e012ec210 79
ostapsky 0:aa1e012ec210 80 #define MAX_ADV_DATA_LEN (31)
ostapsky 0:aa1e012ec210 81
ostapsky 0:aa1e012ec210 82 #define DEVICE_NAME_LEN (7)
ostapsky 0:aa1e012ec210 83 #define BD_ADDR_SIZE (6)
ostapsky 0:aa1e012ec210 84
ostapsky 0:aa1e012ec210 85 /* privacy flag values */
ostapsky 0:aa1e012ec210 86 #define PRIVACY_ENABLED (0x01)
ostapsky 0:aa1e012ec210 87 #define PRIVACY_DISABLED (0x00)
ostapsky 0:aa1e012ec210 88
ostapsky 0:aa1e012ec210 89 /* conection intervals in terms of 625 micro sec */
ostapsky 0:aa1e012ec210 90 #define DIR_CONN_ADV_INT_MIN (0x190)/*250ms*/
ostapsky 0:aa1e012ec210 91 #define DIR_CONN_ADV_INT_MAX (0x320)/*500ms*/
ostapsky 0:aa1e012ec210 92 #define UNDIR_CONN_ADV_INT_MIN (0x800)/*1.28s*/
ostapsky 0:aa1e012ec210 93 #define UNDIR_CONN_ADV_INT_MAX (0x1000)/*2.56s*/
ostapsky 0:aa1e012ec210 94 #define LIM_DISC_ADV_INT_MIN (0x190)/*250ms*/
ostapsky 0:aa1e012ec210 95 #define LIM_DISC_ADV_INT_MAX (0x320)/*500ms*/
ostapsky 0:aa1e012ec210 96 #define GEN_DISC_ADV_INT_MIN (0x800)/*1.28s*/
ostapsky 0:aa1e012ec210 97 #define GEN_DISC_ADV_INT_MAX (0x1000)/*2.56s*/
ostapsky 0:aa1e012ec210 98
ostapsky 0:aa1e012ec210 99 /* time out values */
ostapsky 0:aa1e012ec210 100 #define LIM_DISC_MODE_TIMEOUT (180000)/* 180 seconds. according to the errata published */
ostapsky 0:aa1e012ec210 101 #define PRIVATE_ADDR_INT_TIMEOUT (900000)/* 15 minutes */
ostapsky 0:aa1e012ec210 102
ostapsky 0:aa1e012ec210 103 typedef tHalUint8 tGapRole;
ostapsky 0:aa1e012ec210 104 #define GAP_PERIPHERAL_ROLE (0x01)
ostapsky 0:aa1e012ec210 105 #define GAP_BROADCASTER_ROLE (0x02)
ostapsky 0:aa1e012ec210 106 #define GAP_CENTRAL_ROLE (0x03)
ostapsky 0:aa1e012ec210 107 #define GAP_OBSERVER_ROLE (0x04)
ostapsky 0:aa1e012ec210 108
ostapsky 0:aa1e012ec210 109 typedef tHalUint8 tGapMode;
ostapsky 0:aa1e012ec210 110 #define GAP_NON_DISC_MODE (0x01)
ostapsky 0:aa1e012ec210 111 #define GAP_LIM_DISC_MODE (0x02)
ostapsky 0:aa1e012ec210 112 #define GAP_GEN_DISC_MODE (0x04)
ostapsky 0:aa1e012ec210 113 #define GAP_NON_CONN_MODE (0x08)
ostapsky 0:aa1e012ec210 114 #define GAP_DIRECT_CONN_MODE (0x10)
ostapsky 0:aa1e012ec210 115 #define GAP_UNDIRECTED_CONN_MODE (0x20)
ostapsky 0:aa1e012ec210 116
ostapsky 0:aa1e012ec210 117 /* SECURITY MANAGER OOB FLAGS */
ostapsky 0:aa1e012ec210 118 #define SM_OOB_FLAGS_FIELD (0x01)
ostapsky 0:aa1e012ec210 119 #define SM_OOB_LE_SUPPORTED (0x02)
ostapsky 0:aa1e012ec210 120 #define SM_OOB_SIMULTANEOUS_LE_BREDR (0x04)
ostapsky 0:aa1e012ec210 121 #define SM_OOB_ADDR_TYPE (0x08)
ostapsky 0:aa1e012ec210 122
ostapsky 0:aa1e012ec210 123
ostapsky 0:aa1e012ec210 124 #endif /* __GAP_H__ */
ostapsky 0:aa1e012ec210 125