ver:init

Committer:
iv123
Date:
Sun Jun 18 16:11:03 2017 +0000
Revision:
0:4946262d6030
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iv123 0:4946262d6030 1 /******************** (C) COPYRIGHT 2012 STMicroelectronics ********************
iv123 0:4946262d6030 2 * File Name : bluenrg_gatt_server.h
iv123 0:4946262d6030 3 * Author : AMS - HEA&RF BU
iv123 0:4946262d6030 4 * Version : V1.0.0
iv123 0:4946262d6030 5 * Date : 19-July-2012
iv123 0:4946262d6030 6 * Description : Header file for BlueNRG's GATT server layer.
iv123 0:4946262d6030 7 ********************************************************************************
iv123 0:4946262d6030 8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
iv123 0:4946262d6030 9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
iv123 0:4946262d6030 10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
iv123 0:4946262d6030 11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
iv123 0:4946262d6030 12 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
iv123 0:4946262d6030 13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
iv123 0:4946262d6030 14 *******************************************************************************/
iv123 0:4946262d6030 15
iv123 0:4946262d6030 16 #ifndef __BNRG_GATT_SERVER_H__
iv123 0:4946262d6030 17 #define __BNRG_GATT_SERVER_H__
iv123 0:4946262d6030 18
iv123 0:4946262d6030 19 #include "ble_compiler.h"
iv123 0:4946262d6030 20 #include "ble_status.h"
iv123 0:4946262d6030 21
iv123 0:4946262d6030 22 /**
iv123 0:4946262d6030 23 *@addtogroup GATT GATT
iv123 0:4946262d6030 24 *@{
iv123 0:4946262d6030 25 */
iv123 0:4946262d6030 26
iv123 0:4946262d6030 27 /**
iv123 0:4946262d6030 28 * @anchor Well-Known_UUIDs
iv123 0:4946262d6030 29 * @name Well-Known UUIDs
iv123 0:4946262d6030 30 * @{
iv123 0:4946262d6030 31 */
iv123 0:4946262d6030 32 #define PRIMARY_SERVICE_UUID (0x2800)
iv123 0:4946262d6030 33 #define SECONDARY_SERVICE_UUID (0x2801)
iv123 0:4946262d6030 34 #define INCLUDE_SERVICE_UUID (0x2802)
iv123 0:4946262d6030 35 #define CHARACTERISTIC_UUID (0x2803)
iv123 0:4946262d6030 36 #define CHAR_EXTENDED_PROP_DESC_UUID (0x2900)
iv123 0:4946262d6030 37 #define CHAR_USER_DESC_UUID (0x2901)
iv123 0:4946262d6030 38 #define CHAR_CLIENT_CONFIG_DESC_UUID (0x2902)
iv123 0:4946262d6030 39 #define CHAR_SERVER_CONFIG_DESC_UUID (0x2903)
iv123 0:4946262d6030 40 #define CHAR_FORMAT_DESC_UUID (0x2904)
iv123 0:4946262d6030 41 #define CHAR_AGGR_FMT_DESC_UUID (0x2905)
iv123 0:4946262d6030 42 #define GATT_SERVICE_UUID (0x1801)
iv123 0:4946262d6030 43 #define GAP_SERVICE_UUID (0x1800)
iv123 0:4946262d6030 44 #define SERVICE_CHANGED_UUID (0x2A05)
iv123 0:4946262d6030 45 /**
iv123 0:4946262d6030 46 * @}
iv123 0:4946262d6030 47 */
iv123 0:4946262d6030 48
iv123 0:4946262d6030 49 /**
iv123 0:4946262d6030 50 * @anchor Access_permissions
iv123 0:4946262d6030 51 * @name Access permissions
iv123 0:4946262d6030 52 * Access permissions for an attribute
iv123 0:4946262d6030 53 * @{
iv123 0:4946262d6030 54 */
iv123 0:4946262d6030 55 #define ATTR_NO_ACCESS (0x00)
iv123 0:4946262d6030 56 #define ATTR_ACCESS_READ_ONLY (0x01)
iv123 0:4946262d6030 57 #define ATTR_ACCESS_WRITE_REQ_ONLY (0x02)
iv123 0:4946262d6030 58 #define ATTR_ACCESS_READ_WRITE (0x03)
iv123 0:4946262d6030 59 #define ATTR_ACCESS_WRITE_WITHOUT_RESPONSE (0x04)
iv123 0:4946262d6030 60 #define ATTR_ACCESS_SIGNED_WRITE_ALLOWED (0x08)
iv123 0:4946262d6030 61 /**
iv123 0:4946262d6030 62 * Allows all write procedures
iv123 0:4946262d6030 63 */
iv123 0:4946262d6030 64 #define ATTR_ACCESS_WRITE_ANY (0x0E)
iv123 0:4946262d6030 65 /**
iv123 0:4946262d6030 66 * @}
iv123 0:4946262d6030 67 */
iv123 0:4946262d6030 68
iv123 0:4946262d6030 69 /**
iv123 0:4946262d6030 70 * @anchor Char_properties
iv123 0:4946262d6030 71 * @name Characteristic properties.
iv123 0:4946262d6030 72 * @{
iv123 0:4946262d6030 73 */
iv123 0:4946262d6030 74 #define CHAR_PROP_BROADCAST (0x01)
iv123 0:4946262d6030 75 #define CHAR_PROP_READ (0x02)
iv123 0:4946262d6030 76 #define CHAR_PROP_WRITE_WITHOUT_RESP (0x04)
iv123 0:4946262d6030 77 #define CHAR_PROP_WRITE (0x08)
iv123 0:4946262d6030 78 #define CHAR_PROP_NOTIFY (0x10)
iv123 0:4946262d6030 79 #define CHAR_PROP_INDICATE (0x20)
iv123 0:4946262d6030 80 #define CHAR_PROP_SIGNED_WRITE (0x40)
iv123 0:4946262d6030 81 #define CHAR_PROP_EXT (0x80)
iv123 0:4946262d6030 82 /**
iv123 0:4946262d6030 83 * @}
iv123 0:4946262d6030 84 */
iv123 0:4946262d6030 85
iv123 0:4946262d6030 86
iv123 0:4946262d6030 87 /**
iv123 0:4946262d6030 88 * @anchor Security_permissions
iv123 0:4946262d6030 89 * @name Security permissions for an attribute.
iv123 0:4946262d6030 90 * @{
iv123 0:4946262d6030 91 */
iv123 0:4946262d6030 92 #define ATTR_PERMISSION_NONE (0x00) /**< No security. */
iv123 0:4946262d6030 93 #define ATTR_PERMISSION_AUTHEN_READ (0x01) /**< Need authentication to read */
iv123 0:4946262d6030 94 #define ATTR_PERMISSION_AUTHOR_READ (0x02) /**< Need authorization to read */
iv123 0:4946262d6030 95 #define ATTR_PERMISSION_ENCRY_READ (0x04) /**< Link must be encrypted to read */
iv123 0:4946262d6030 96 #define ATTR_PERMISSION_AUTHEN_WRITE (0x08) /**< Need authentication to write */
iv123 0:4946262d6030 97 #define ATTR_PERMISSION_AUTHOR_WRITE (0x10) /**< Need authorization to write */
iv123 0:4946262d6030 98 #define ATTR_PERMISSION_ENCRY_WRITE (0x20) /**< Link must be encrypted for write */
iv123 0:4946262d6030 99 /**
iv123 0:4946262d6030 100 * @}
iv123 0:4946262d6030 101 */
iv123 0:4946262d6030 102
iv123 0:4946262d6030 103 /**
iv123 0:4946262d6030 104 * @anchor UUID_Types
iv123 0:4946262d6030 105 * @name Type of UUID (16 bit or 128 bit).
iv123 0:4946262d6030 106 * @{
iv123 0:4946262d6030 107 */
iv123 0:4946262d6030 108 #define UUID_TYPE_16 (0x01)
iv123 0:4946262d6030 109 #define UUID_TYPE_128 (0x02)
iv123 0:4946262d6030 110 /**
iv123 0:4946262d6030 111 * @}
iv123 0:4946262d6030 112 */
iv123 0:4946262d6030 113
iv123 0:4946262d6030 114 /**
iv123 0:4946262d6030 115 * @anchor Service_type
iv123 0:4946262d6030 116 * @name Type of service (primary or secondary)
iv123 0:4946262d6030 117 * @{
iv123 0:4946262d6030 118 */
iv123 0:4946262d6030 119 #define PRIMARY_SERVICE (0x01)
iv123 0:4946262d6030 120 #define SECONDARY_SERVICE (0x02)
iv123 0:4946262d6030 121 /**
iv123 0:4946262d6030 122 * @}
iv123 0:4946262d6030 123 */
iv123 0:4946262d6030 124
iv123 0:4946262d6030 125 /**
iv123 0:4946262d6030 126 * @anchor Gatt_Event_Mask
iv123 0:4946262d6030 127 * @name Gatt Event Mask
iv123 0:4946262d6030 128 * Type of event generated by GATT server
iv123 0:4946262d6030 129 * @{
iv123 0:4946262d6030 130 */
iv123 0:4946262d6030 131 #define GATT_DONT_NOTIFY_EVENTS (0x00) /**< Do not notify events. */
iv123 0:4946262d6030 132 #define GATT_NOTIFY_ATTRIBUTE_WRITE (0x01) /**< The application will be notified when a client writes to this attribute.
iv123 0:4946262d6030 133 An @ref EVT_BLUE_GATT_ATTRIBUTE_MODIFIED will be issued. */
iv123 0:4946262d6030 134 #define GATT_NOTIFY_WRITE_REQ_AND_WAIT_FOR_APPL_RESP (0x02) /**< The application will be notified when a write request, a write cmd
iv123 0:4946262d6030 135 or a signed write cmd are received by the server for this attribute.
iv123 0:4946262d6030 136 An @ref EVT_BLUE_GATT_WRITE_PERMIT_REQ will be issued. */
iv123 0:4946262d6030 137 #define GATT_NOTIFY_READ_REQ_AND_WAIT_FOR_APPL_RESP (0x04) /**< The application will be notified when a read request of any type is
iv123 0:4946262d6030 138 received for this attribute. An @ref EVT_BLUE_GATT_READ_PERMIT_REQ will be issued. */
iv123 0:4946262d6030 139 /**
iv123 0:4946262d6030 140 * @}
iv123 0:4946262d6030 141 */
iv123 0:4946262d6030 142
iv123 0:4946262d6030 143 /**
iv123 0:4946262d6030 144 * @name Type of characteristic length
iv123 0:4946262d6030 145 * See aci_gatt_add_char()
iv123 0:4946262d6030 146 * @{
iv123 0:4946262d6030 147 */
iv123 0:4946262d6030 148 #define CHAR_VALUE_LEN_CONSTANT (0x00)
iv123 0:4946262d6030 149 #define CHAR_VALUE_LEN_VARIABLE (0x01)
iv123 0:4946262d6030 150 /**
iv123 0:4946262d6030 151 * @}
iv123 0:4946262d6030 152 */
iv123 0:4946262d6030 153
iv123 0:4946262d6030 154
iv123 0:4946262d6030 155 /**
iv123 0:4946262d6030 156 * @name Encryption key size
iv123 0:4946262d6030 157 * @{
iv123 0:4946262d6030 158 */
iv123 0:4946262d6030 159 /**
iv123 0:4946262d6030 160 * Minimum encryption key size
iv123 0:4946262d6030 161 */
iv123 0:4946262d6030 162 #define MIN_ENCRY_KEY_SIZE (7)
iv123 0:4946262d6030 163
iv123 0:4946262d6030 164 /**
iv123 0:4946262d6030 165 * Maximum encryption key size
iv123 0:4946262d6030 166 */
iv123 0:4946262d6030 167 #define MAX_ENCRY_KEY_SIZE (0x10)
iv123 0:4946262d6030 168 /**
iv123 0:4946262d6030 169 * @}
iv123 0:4946262d6030 170 */
iv123 0:4946262d6030 171
iv123 0:4946262d6030 172 /**
iv123 0:4946262d6030 173 * @name Characteristic Presentation Format
iv123 0:4946262d6030 174 * @{
iv123 0:4946262d6030 175 */
iv123 0:4946262d6030 176 typedef __packed struct _charactFormat {
iv123 0:4946262d6030 177 uint8_t format;
iv123 0:4946262d6030 178 int8_t exp;
iv123 0:4946262d6030 179 uint16_t unit;
iv123 0:4946262d6030 180 uint8_t name_space;
iv123 0:4946262d6030 181 uint16_t desc;
iv123 0:4946262d6030 182 } PACKED charactFormat;
iv123 0:4946262d6030 183
iv123 0:4946262d6030 184 /**
iv123 0:4946262d6030 185 * @}
iv123 0:4946262d6030 186 */
iv123 0:4946262d6030 187
iv123 0:4946262d6030 188 /**
iv123 0:4946262d6030 189 * @name Format
iv123 0:4946262d6030 190 * @{
iv123 0:4946262d6030 191 */
iv123 0:4946262d6030 192 #define FORMAT_UINT8 0x04
iv123 0:4946262d6030 193 #define FORMAT_UINT16 0x06
iv123 0:4946262d6030 194 #define FORMAT_SINT16 0x0E
iv123 0:4946262d6030 195 #define FORMAT_SINT24 0x0F
iv123 0:4946262d6030 196 /**
iv123 0:4946262d6030 197 * @}
iv123 0:4946262d6030 198 */
iv123 0:4946262d6030 199
iv123 0:4946262d6030 200 /**
iv123 0:4946262d6030 201 * @name Unit
iv123 0:4946262d6030 202 * @{
iv123 0:4946262d6030 203 */
iv123 0:4946262d6030 204 #define UNIT_UNITLESS 0x2700
iv123 0:4946262d6030 205 #define UNIT_TEMP_CELSIUS 0x272F
iv123 0:4946262d6030 206 #define UNIT_PRESSURE_BAR 0x2780
iv123 0:4946262d6030 207 /**
iv123 0:4946262d6030 208 * @}
iv123 0:4946262d6030 209 */
iv123 0:4946262d6030 210
iv123 0:4946262d6030 211
iv123 0:4946262d6030 212 /**
iv123 0:4946262d6030 213 * ATT MTU size
iv123 0:4946262d6030 214 */
iv123 0:4946262d6030 215 #define ATT_MTU (23)
iv123 0:4946262d6030 216
iv123 0:4946262d6030 217 /**
iv123 0:4946262d6030 218 * @}
iv123 0:4946262d6030 219 */
iv123 0:4946262d6030 220
iv123 0:4946262d6030 221
iv123 0:4946262d6030 222
iv123 0:4946262d6030 223 #endif /* __BNRG_GATT_SERVER_H__ */