my fork
Embed:
(wiki syntax)
Show/hide line numbers
gatt_server.h
00001 /******************** (C) COPYRIGHT 2012 STMicroelectronics ******************** 00002 * File Name : gatt_server.h 00003 * Author : AMS - HEA&RF BU 00004 * Version : V1.0.0 00005 * Date : 19-July-2012 00006 * Description : Header file for BlueNRG's GATT server layer. 00007 ******************************************************************************** 00008 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 00009 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. 00010 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, 00011 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE 00012 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING 00013 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 00014 *******************************************************************************/ 00015 00016 #ifndef __GATT_SERVER_H__ 00017 #define __GATT_SERVER_H__ 00018 00019 #include "compiler.h" 00020 #include "ble_status.h" 00021 00022 /** 00023 * @defgroup Well_known_UUIDs Well-Known UUIDs 00024 * @{ 00025 */ 00026 #define PRIMARY_SERVICE_UUID (0x2800) 00027 #define SECONDARY_SERVICE_UUID (0x2801) 00028 #define INCLUDE_SERVICE_UUID (0x2802) 00029 #define CHARACTERISTIC_UUID (0x2803) 00030 #define CHAR_EXTENDED_PROP_DESC_UUID (0x2900) 00031 #define CHAR_USER_DESC_UUID (0x2901) 00032 #define CHAR_CLIENT_CONFIG_DESC_UUID (0x2902) 00033 #define CHAR_SERVER_CONFIG_DESC_UUID (0x2903) 00034 #define CHAR_FORMAT_DESC_UUID (0x2904) 00035 #define CHAR_AGGR_FMT_DESC_UUID (0x2905) 00036 #define GATT_SERVICE_UUID (0x1801) 00037 #define GAP_SERVICE_UUID (0x1800) 00038 #define SERVICE_CHANGED_UUID (0x2A05) 00039 /** 00040 * @} 00041 */ 00042 00043 /****************************************************************************** 00044 * Types 00045 *****************************************************************************/ 00046 00047 /** 00048 * @defgroup Access_permissions Access permissions 00049 * @brief Access permissions for an attribute 00050 * @{ 00051 */ 00052 #define ATTR_NO_ACCESS (0x00) 00053 #define ATTR_ACCESS_READ_ONLY (0x01) 00054 #define ATTR_ACCESS_WRITE_REQ_ONLY (0x02) 00055 #define ATTR_ACCESS_READ_WRITE (0x03) 00056 #define ATTR_ACCESS_WRITE_WITHOUT_RESPONSE (0x04) 00057 #define ATTR_ACCESS_SIGNED_WRITE_ALLOWED (0x08) 00058 /** 00059 * @} 00060 */ 00061 00062 /** 00063 * Allows all write procedures 00064 */ 00065 #define ATTR_ACCESS_WRITE_ANY (0x0E) 00066 00067 /** 00068 * @defgroup Char_properties Characteristic properties. 00069 * @brief Characteristic properties. 00070 * @{ 00071 */ 00072 #define CHAR_PROP_BROADCAST (0x01) 00073 #define CHAR_PROP_READ (0x02) 00074 #define CHAR_PROP_WRITE_WITHOUT_RESP (0x04) 00075 #define CHAR_PROP_WRITE (0x08) 00076 #define CHAR_PROP_NOTIFY (0x10) 00077 #define CHAR_PROP_INDICATE (0x20) 00078 #define CHAR_PROP_SIGNED_WRITE (0x40) 00079 #define CHAR_PROP_EXT (0x80) 00080 /** 00081 * @} 00082 */ 00083 00084 00085 /** 00086 * @defgroup Security_permissions Security permissions 00087 * @brief Security permissions for an attribute. 00088 * @{ 00089 */ 00090 #define ATTR_PERMISSION_NONE (0x00) /**< No security. */ 00091 #define ATTR_PERMISSION_AUTHEN_READ (0x01) /**< Need authentication to read */ 00092 #define ATTR_PERMISSION_AUTHOR_READ (0x02) /**< Need authorization to read */ 00093 #define ATTR_PERMISSION_ENCRY_READ (0x04) /**< Link must be encrypted to read */ 00094 #define ATTR_PERMISSION_AUTHEN_WRITE (0x08) /**< Need authentication to write */ 00095 #define ATTR_PERMISSION_AUTHOR_WRITE (0x10) /**< Need authorization to write */ 00096 #define ATTR_PERMISSION_ENCRY_WRITE (0x20) /**< Link must be encrypted for write */ 00097 /** 00098 * @} 00099 */ 00100 00101 /** 00102 * @defgroup UUID_Types UUID type 00103 * @brief Type of UUID (16 bit or 128 bit). 00104 * @{ 00105 */ 00106 #define UUID_TYPE_16 (0x01) 00107 #define UUID_TYPE_128 (0x02) 00108 /** 00109 * @} 00110 */ 00111 00112 /** 00113 * @defgroup Service_type Type of service 00114 * @brief Type of service (primary or secondary) 00115 * @{ 00116 */ 00117 #define PRIMARY_SERVICE (0x01) 00118 #define SECONDARY_SERVICE (0x02) 00119 /** 00120 * @} 00121 */ 00122 00123 /** 00124 * @defgroup Gatt_Event_Mask GATT Server event bit mask 00125 * @brief Type of event generated by GATT server 00126 * @{ 00127 */ 00128 #define GATT_DONT_NOTIFY_EVENTS (0x00) /**< Do not notify events. */ 00129 #define GATT_NOTIFY_ATTRIBUTE_WRITE (0x01) /**< The application will be notified when a client writes to this attribute. 00130 An @ref EVT_BLUE_GATT_ATTRIBUTE_MODIFIED will be issued. */ 00131 #define GATT_NOTIFY_WRITE_REQ_AND_WAIT_FOR_APPL_RESP (0x02) /**< The application will be notified when a write request, a write cmd 00132 or a signed write cmd are received by the server for this attribute. 00133 An @ref EVT_BLUE_GATT_WRITE_PERMIT_REQ will be issued. */ 00134 #define GATT_NOTIFY_READ_REQ_AND_WAIT_FOR_APPL_RESP (0x04) /**< The application will be notified when a read request of any type is 00135 received for this attribute. An @ref EVT_BLUE_GATT_READ_PERMIT_REQ will be issued. */ 00136 /** 00137 * @} 00138 */ 00139 00140 /** 00141 * @defgroup Charac_len Characteristic length 00142 * @brief See aci_gatt_add_char() 00143 * @{ 00144 */ 00145 #define CHAR_VALUE_LEN_CONSTANT (0x00) 00146 #define CHAR_VALUE_LEN_VARIABLE (0x01) 00147 /** 00148 * @} 00149 */ 00150 00151 00152 /** 00153 * Min encryption key size 00154 */ 00155 #define MIN_ENCRY_KEY_SIZE (7) 00156 00157 /** 00158 * Max encryption key size 00159 */ 00160 #define MAX_ENCRY_KEY_SIZE (0x10) 00161 00162 00163 typedef __packed struct _charactFormat { 00164 uint8_t format; 00165 int8_t exp; 00166 uint16_t unit; 00167 uint8_t name_space; 00168 uint16_t desc; 00169 } PACKED charactFormat; 00170 00171 #define FORMAT_UINT8 0x04 00172 #define FORMAT_UINT16 0x06 00173 #define FORMAT_SINT16 0x0E 00174 #define FORMAT_SINT24 0x0F 00175 00176 00177 #define UNIT_UNITLESS 0x2700 00178 #define UNIT_TEMP_CELSIUS 0x272F 00179 #define UNIT_PRESSURE_BAR 0x2780 00180 00181 00182 /* 00183 * Default MTU size 00184 */ 00185 #define ATT_DEFAULT_MTU (23) 00186 00187 00188 #endif /* __GATT_SERVER_H__ */ 00189
Generated on Tue Jul 12 2022 17:28:29 by
1.7.2