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 : gatt_server.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 GATT server 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
ostapsky 0:aa1e012ec210 16 #ifndef __GATT_SERVER_H__
ostapsky 0:aa1e012ec210 17 #define __GATT_SERVER_H__
ostapsky 0:aa1e012ec210 18
ostapsky 0:aa1e012ec210 19 #include "compiler.h"
ostapsky 0:aa1e012ec210 20 #include "ble_status.h"
ostapsky 0:aa1e012ec210 21
ostapsky 0:aa1e012ec210 22 /**
ostapsky 0:aa1e012ec210 23 * UUID table
ostapsky 0:aa1e012ec210 24 */
ostapsky 0:aa1e012ec210 25 #define PRIMARY_SERVICE_UUID (0x2800)
ostapsky 0:aa1e012ec210 26 #define SECONDARY_SERVICE_UUID (0x2801)
ostapsky 0:aa1e012ec210 27 #define INCLUDE_SERVICE_UUID (0x2802)
ostapsky 0:aa1e012ec210 28 #define CHARACTERISTIC_UUID (0x2803)
ostapsky 0:aa1e012ec210 29 #define CHAR_EXTENDED_PROP_DESC_UUID (0x2900)
ostapsky 0:aa1e012ec210 30 #define CHAR_USER_DESC_UUID (0x2901)
ostapsky 0:aa1e012ec210 31 #define CHAR_CLIENT_CONFIG_DESC_UUID (0x2902)
ostapsky 0:aa1e012ec210 32 #define CHAR_SERVER_CONFIG_DESC_UUID (0x2903)
ostapsky 0:aa1e012ec210 33 #define CHAR_FORMAT_DESC_UUID (0x2904)
ostapsky 0:aa1e012ec210 34 #define CHAR_AGGR_FMT_DESC_UUID (0x2905)
ostapsky 0:aa1e012ec210 35 #define GATT_SERVICE_UUID (0x1801)
ostapsky 0:aa1e012ec210 36 #define GAP_SERVICE_UUID (0x1800)
ostapsky 0:aa1e012ec210 37 #define SERVICE_CHANGED_UUID (0x2A05)
ostapsky 0:aa1e012ec210 38
ostapsky 0:aa1e012ec210 39 /******************************************************************************
ostapsky 0:aa1e012ec210 40 * Types
ostapsky 0:aa1e012ec210 41 *****************************************************************************/
ostapsky 0:aa1e012ec210 42
ostapsky 0:aa1e012ec210 43 /**
ostapsky 0:aa1e012ec210 44 * Access permissions
ostapsky 0:aa1e012ec210 45 * for an attribute
ostapsky 0:aa1e012ec210 46 */
ostapsky 0:aa1e012ec210 47 typedef tHalUint8 tAttrAccessFlags;
ostapsky 0:aa1e012ec210 48 #define ATTR_NO_ACCESS (0x00)
ostapsky 0:aa1e012ec210 49 #define ATTR_ACCESS_READ_ONLY (0x01)
ostapsky 0:aa1e012ec210 50 #define ATTR_ACCESS_WRITE_REQ_ONLY (0x02)
ostapsky 0:aa1e012ec210 51 #define ATTR_ACCESS_READ_WRITE (0x03)
ostapsky 0:aa1e012ec210 52 #define ATTR_ACCESS_WRITE_WITHOUT_RESPONSE (0x04)
ostapsky 0:aa1e012ec210 53 #define ATTR_ACCESS_SIGNED_WRITE_ALLOWED (0x08)
ostapsky 0:aa1e012ec210 54
ostapsky 0:aa1e012ec210 55 /**
ostapsky 0:aa1e012ec210 56 * Allows all write procedures
ostapsky 0:aa1e012ec210 57 */
ostapsky 0:aa1e012ec210 58 #define ATTR_ACCESS_WRITE_ANY (0x0E)
ostapsky 0:aa1e012ec210 59
ostapsky 0:aa1e012ec210 60 /**
ostapsky 0:aa1e012ec210 61 * Characteristic properties.
ostapsky 0:aa1e012ec210 62 */
ostapsky 0:aa1e012ec210 63 #define CHAR_PROP_BROADCAST (0x01)
ostapsky 0:aa1e012ec210 64 #define CHAR_PROP_READ (0x02)
ostapsky 0:aa1e012ec210 65 #define CHAR_PROP_WRITE_WITHOUT_RESP (0x04)
ostapsky 0:aa1e012ec210 66 #define CHAR_PROP_WRITE (0x08)
ostapsky 0:aa1e012ec210 67 #define CHAR_PROP_NOTIFY (0x10)
ostapsky 0:aa1e012ec210 68 #define CHAR_PROP_INDICATE (0x20)
ostapsky 0:aa1e012ec210 69 #define CHAR_PROP_SIGNED_WRITE (0x40)
ostapsky 0:aa1e012ec210 70 #define CHAR_PROP_EXT (0x80)
ostapsky 0:aa1e012ec210 71
ostapsky 0:aa1e012ec210 72 /**
ostapsky 0:aa1e012ec210 73 * Security permissions
ostapsky 0:aa1e012ec210 74 * for an attribute
ostapsky 0:aa1e012ec210 75 */
ostapsky 0:aa1e012ec210 76 typedef tHalUint8 tAttrSecurityFlags;
ostapsky 0:aa1e012ec210 77 #define ATTR_PERMISSION_NONE (0x00)
ostapsky 0:aa1e012ec210 78 #define ATTR_PERMISSION_AUTHEN_READ (0x01)
ostapsky 0:aa1e012ec210 79 #define ATTR_PERMISSION_AUTHOR_READ (0x02)
ostapsky 0:aa1e012ec210 80 #define ATTR_PERMISSION_ENCRY_READ (0x04)
ostapsky 0:aa1e012ec210 81 #define ATTR_PERMISSION_AUTHEN_WRITE (0x08)
ostapsky 0:aa1e012ec210 82 #define ATTR_PERMISSION_AUTHOR_WRITE (0x10)
ostapsky 0:aa1e012ec210 83 #define ATTR_PERMISSION_ENCRY_WRITE (0x20)
ostapsky 0:aa1e012ec210 84
ostapsky 0:aa1e012ec210 85 /**
ostapsky 0:aa1e012ec210 86 * Type of UUID
ostapsky 0:aa1e012ec210 87 * (16 bit or 128 bit)
ostapsky 0:aa1e012ec210 88 */
ostapsky 0:aa1e012ec210 89 typedef tHalUint8 tUuidType;
ostapsky 0:aa1e012ec210 90 #define UUID_TYPE_16 (0x01)
ostapsky 0:aa1e012ec210 91 #define UUID_TYPE_128 (0x02)
ostapsky 0:aa1e012ec210 92
ostapsky 0:aa1e012ec210 93 /**
ostapsky 0:aa1e012ec210 94 * Type of service
ostapsky 0:aa1e012ec210 95 * (primary or secondary)
ostapsky 0:aa1e012ec210 96 */
ostapsky 0:aa1e012ec210 97 typedef tHalUint8 tServiceType;
ostapsky 0:aa1e012ec210 98 #define PRIMARY_SERVICE (0x01)
ostapsky 0:aa1e012ec210 99 #define SECONDARY_SERVICE (0x02)
ostapsky 0:aa1e012ec210 100
ostapsky 0:aa1e012ec210 101 /**
ostapsky 0:aa1e012ec210 102 * Type of event generated by
ostapsky 0:aa1e012ec210 103 * Gatt server
ostapsky 0:aa1e012ec210 104 */
ostapsky 0:aa1e012ec210 105 typedef tHalUint8 tGattServerEvent;
ostapsky 0:aa1e012ec210 106 #define GATT_SERVER_ATTR_WRITE (0x01)
ostapsky 0:aa1e012ec210 107 #define GATT_INTIMATE_AND_WAIT_FOR_APPL_AUTH (0x02)
ostapsky 0:aa1e012ec210 108 #define GATT_INTIMATE_APPL_WHEN_READ_N_WAIT (0x04)
ostapsky 0:aa1e012ec210 109 #define GATT_SERVER_ATTR_READ_WRITE GATT_SERVER_ATTR_WRITE|GATT_INTIMATE_APPL_WHEN_READ_N_WAIT
ostapsky 0:aa1e012ec210 110
ostapsky 0:aa1e012ec210 111
ostapsky 0:aa1e012ec210 112 /**
ostapsky 0:aa1e012ec210 113 * Min encryption key size
ostapsky 0:aa1e012ec210 114 */
ostapsky 0:aa1e012ec210 115 #define MIN_ENCRY_KEY_SIZE (7)
ostapsky 0:aa1e012ec210 116
ostapsky 0:aa1e012ec210 117 /**
ostapsky 0:aa1e012ec210 118 * Max encryption key size
ostapsky 0:aa1e012ec210 119 */
ostapsky 0:aa1e012ec210 120 #define MAX_ENCRY_KEY_SIZE (0x10)
ostapsky 0:aa1e012ec210 121
ostapsky 0:aa1e012ec210 122
ostapsky 0:aa1e012ec210 123 typedef __packed struct _charactFormat {
ostapsky 0:aa1e012ec210 124 tHalUint8 format;
ostapsky 0:aa1e012ec210 125 tHalInt8 exp;
ostapsky 0:aa1e012ec210 126 tHalUint16 unit;
ostapsky 0:aa1e012ec210 127 tHalUint8 name_space;
ostapsky 0:aa1e012ec210 128 tHalUint16 desc;
ostapsky 0:aa1e012ec210 129 } PACKED charactFormat;
ostapsky 0:aa1e012ec210 130
ostapsky 0:aa1e012ec210 131 #define FORMAT_UINT8 0x04
ostapsky 0:aa1e012ec210 132 #define FORMAT_UINT16 0x06
ostapsky 0:aa1e012ec210 133 #define FORMAT_SINT16 0x0E
ostapsky 0:aa1e012ec210 134 #define FORMAT_SINT24 0x0F
ostapsky 0:aa1e012ec210 135
ostapsky 0:aa1e012ec210 136
ostapsky 0:aa1e012ec210 137 #define UNIT_UNITLESS 0x2700
ostapsky 0:aa1e012ec210 138 #define UNIT_TEMP_CELSIUS 0x272F
ostapsky 0:aa1e012ec210 139 #define UNIT_PRESSURE_BAR 0x2780
ostapsky 0:aa1e012ec210 140
ostapsky 0:aa1e012ec210 141
ostapsky 0:aa1e012ec210 142 /*
ostapsky 0:aa1e012ec210 143 * Default MTU size
ostapsky 0:aa1e012ec210 144 */
ostapsky 0:aa1e012ec210 145 #define ATT_DEFAULT_MTU (23)
ostapsky 0:aa1e012ec210 146
ostapsky 0:aa1e012ec210 147
ostapsky 0:aa1e012ec210 148 #endif /* __GATT_SERVER_H__ */
ostapsky 0:aa1e012ec210 149