The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 2 /*!
AnnaBridge 171:3a7713b1edbc 3 * \file att_api.h
AnnaBridge 171:3a7713b1edbc 4 *
AnnaBridge 171:3a7713b1edbc 5 * \brief Attribute protocol client and server API.
AnnaBridge 171:3a7713b1edbc 6 *
AnnaBridge 171:3a7713b1edbc 7 * $Date: 2016-01-06 07:40:44 -0800 (Wed, 06 Jan 2016) $
AnnaBridge 171:3a7713b1edbc 8 * $Revision: 5284 $
AnnaBridge 171:3a7713b1edbc 9 *
AnnaBridge 171:3a7713b1edbc 10 * Copyright (c) 2009 Wicentric, Inc., all rights reserved.
AnnaBridge 171:3a7713b1edbc 11 * Wicentric confidential and proprietary.
AnnaBridge 171:3a7713b1edbc 12 *
AnnaBridge 171:3a7713b1edbc 13 * IMPORTANT. Your use of this file is governed by a Software License Agreement
AnnaBridge 171:3a7713b1edbc 14 * ("Agreement") that must be accepted in order to download or otherwise receive a
AnnaBridge 171:3a7713b1edbc 15 * copy of this file. You may not use or copy this file for any purpose other than
AnnaBridge 171:3a7713b1edbc 16 * as described in the Agreement. If you do not agree to all of the terms of the
AnnaBridge 171:3a7713b1edbc 17 * Agreement do not use this file and delete all copies in your possession or control;
AnnaBridge 171:3a7713b1edbc 18 * if you do not have a copy of the Agreement, you must contact Wicentric, Inc. prior
AnnaBridge 171:3a7713b1edbc 19 * to any use, copying or further distribution of this software.
AnnaBridge 171:3a7713b1edbc 20 */
AnnaBridge 171:3a7713b1edbc 21 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 22 #ifndef ATT_API_H
AnnaBridge 171:3a7713b1edbc 23 #define ATT_API_H
AnnaBridge 171:3a7713b1edbc 24
AnnaBridge 171:3a7713b1edbc 25 #include "wsf_timer.h"
AnnaBridge 171:3a7713b1edbc 26 #include "att_defs.h"
AnnaBridge 171:3a7713b1edbc 27 #include "att_uuid.h"
AnnaBridge 171:3a7713b1edbc 28 #include "dm_api.h"
AnnaBridge 171:3a7713b1edbc 29 #include "cfg_stack.h"
AnnaBridge 171:3a7713b1edbc 30
AnnaBridge 171:3a7713b1edbc 31 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 32 extern "C" {
AnnaBridge 171:3a7713b1edbc 33 #endif
AnnaBridge 171:3a7713b1edbc 34
AnnaBridge 171:3a7713b1edbc 35 /**************************************************************************************************
AnnaBridge 171:3a7713b1edbc 36 Macros
AnnaBridge 171:3a7713b1edbc 37 **************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 38
AnnaBridge 171:3a7713b1edbc 39 /*! ATT server attribute settings */
AnnaBridge 171:3a7713b1edbc 40 #define ATTS_SET_UUID_128 0x01 /*! Set if the UUID is 128 bits in length */
AnnaBridge 171:3a7713b1edbc 41 #define ATTS_SET_WRITE_CBACK 0x02 /*! Set if the group callback is executed when
AnnaBridge 171:3a7713b1edbc 42 this attribute is written by a client device */
AnnaBridge 171:3a7713b1edbc 43 #define ATTS_SET_READ_CBACK 0x04 /*! Set if the group callback is executed when
AnnaBridge 171:3a7713b1edbc 44 this attribute is read by a client device */
AnnaBridge 171:3a7713b1edbc 45 #define ATTS_SET_VARIABLE_LEN 0x08 /*! Set if the attribute has a variable length */
AnnaBridge 171:3a7713b1edbc 46 #define ATTS_SET_ALLOW_OFFSET 0x10 /*! Set if writes are allowed with an offset */
AnnaBridge 171:3a7713b1edbc 47 #define ATTS_SET_CCC 0x20 /*! Set if the attribute is a client characteristic
AnnaBridge 171:3a7713b1edbc 48 configuration descriptor */
AnnaBridge 171:3a7713b1edbc 49 #define ATTS_SET_ALLOW_SIGNED 0x40 /*! Set if signed writes are allowed */
AnnaBridge 171:3a7713b1edbc 50 #define ATTS_SET_REQ_SIGNED 0x80 /*! Set if signed writes are required if link
AnnaBridge 171:3a7713b1edbc 51 is not encrypted */
AnnaBridge 171:3a7713b1edbc 52
AnnaBridge 171:3a7713b1edbc 53 /*! ATT server attribute permissions */
AnnaBridge 171:3a7713b1edbc 54 #define ATTS_PERMIT_READ 0x01 /*! Set if attribute can be read */
AnnaBridge 171:3a7713b1edbc 55 #define ATTS_PERMIT_READ_AUTH 0x02 /*! Set if attribute read requires authentication */
AnnaBridge 171:3a7713b1edbc 56 #define ATTS_PERMIT_READ_AUTHORIZ 0x04 /*! Set if attribute read requires authorization */
AnnaBridge 171:3a7713b1edbc 57 #define ATTS_PERMIT_READ_ENC 0x08 /*! Set if attribute read requires encryption */
AnnaBridge 171:3a7713b1edbc 58 #define ATTS_PERMIT_WRITE 0x10 /*! Set if attribute can be written */
AnnaBridge 171:3a7713b1edbc 59 #define ATTS_PERMIT_WRITE_AUTH 0x20 /*! Set if attribute write requires authentication */
AnnaBridge 171:3a7713b1edbc 60 #define ATTS_PERMIT_WRITE_AUTHORIZ 0x40 /*! Set if attribute write requires authorization */
AnnaBridge 171:3a7713b1edbc 61 #define ATTS_PERMIT_WRITE_ENC 0x80 /*! Set if attribute write requires encryption */
AnnaBridge 171:3a7713b1edbc 62
AnnaBridge 171:3a7713b1edbc 63 /*! ATT client characteristic discovery and configuration settings */
AnnaBridge 171:3a7713b1edbc 64 #define ATTC_SET_UUID_128 0x01 /*! Set if the UUID is 128 bits in length */
AnnaBridge 171:3a7713b1edbc 65 #define ATTC_SET_REQUIRED 0x02 /*! Set if characteristic must be discovered */
AnnaBridge 171:3a7713b1edbc 66 #define ATTC_SET_DESCRIPTOR 0x04 /*! Set if this is a characteristic descriptor */
AnnaBridge 171:3a7713b1edbc 67
AnnaBridge 171:3a7713b1edbc 68 /*! ATT callback events */
AnnaBridge 171:3a7713b1edbc 69 #define ATT_CBACK_START 0x02 /*! ATT callback event starting value */
AnnaBridge 171:3a7713b1edbc 70 enum /*! Internal note: event values match method values */
AnnaBridge 171:3a7713b1edbc 71 {
AnnaBridge 171:3a7713b1edbc 72 /*! ATT client callback events */
AnnaBridge 171:3a7713b1edbc 73 ATTC_FIND_INFO_RSP = ATT_CBACK_START, /*! Find information response */
AnnaBridge 171:3a7713b1edbc 74 ATTC_FIND_BY_TYPE_VALUE_RSP, /*! Find by type value response */
AnnaBridge 171:3a7713b1edbc 75 ATTC_READ_BY_TYPE_RSP, /*! Read by type value response */
AnnaBridge 171:3a7713b1edbc 76 ATTC_READ_RSP, /*! Read response */
AnnaBridge 171:3a7713b1edbc 77 ATTC_READ_LONG_RSP, /*! Read long response */
AnnaBridge 171:3a7713b1edbc 78 ATTC_READ_MULTIPLE_RSP, /*! Read multiple response */
AnnaBridge 171:3a7713b1edbc 79 ATTC_READ_BY_GROUP_TYPE_RSP, /*! Read group type response */
AnnaBridge 171:3a7713b1edbc 80 ATTC_WRITE_RSP, /*! Write response */
AnnaBridge 171:3a7713b1edbc 81 ATTC_WRITE_CMD_RSP, /*! Write command response */
AnnaBridge 171:3a7713b1edbc 82 ATTC_PREPARE_WRITE_RSP, /*! Prepare write response */
AnnaBridge 171:3a7713b1edbc 83 ATTC_EXECUTE_WRITE_RSP, /*! Execute write response */
AnnaBridge 171:3a7713b1edbc 84 ATTC_HANDLE_VALUE_NTF, /*! Handle value notification */
AnnaBridge 171:3a7713b1edbc 85 ATTC_HANDLE_VALUE_IND, /*! Handle value indication */
AnnaBridge 171:3a7713b1edbc 86 /*! ATT server callback events */
AnnaBridge 171:3a7713b1edbc 87 ATTS_HANDLE_VALUE_CNF, /*! Handle value confirmation */
AnnaBridge 171:3a7713b1edbc 88 ATTS_CCC_STATE_IND /*! Client chracteristic configuration state change */
AnnaBridge 171:3a7713b1edbc 89 };
AnnaBridge 171:3a7713b1edbc 90
AnnaBridge 171:3a7713b1edbc 91 /*! ATT callback events */
AnnaBridge 171:3a7713b1edbc 92 #define ATT_CBACK_END ATTS_CCC_STATE_IND /*! ATT callback event ending value */
AnnaBridge 171:3a7713b1edbc 93
AnnaBridge 171:3a7713b1edbc 94 /*! Base value for HCI error status values passed through ATT */
AnnaBridge 171:3a7713b1edbc 95 #define ATT_HCI_ERR_BASE 0x20
AnnaBridge 171:3a7713b1edbc 96
AnnaBridge 171:3a7713b1edbc 97 /**************************************************************************************************
AnnaBridge 171:3a7713b1edbc 98 Data Types
AnnaBridge 171:3a7713b1edbc 99 **************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 100
AnnaBridge 171:3a7713b1edbc 101 /*! Configurable parameters */
AnnaBridge 171:3a7713b1edbc 102 typedef struct
AnnaBridge 171:3a7713b1edbc 103 {
AnnaBridge 171:3a7713b1edbc 104 wsfTimerTicks_t discIdleTimeout; /*! ATT server service discovery connection idle timeout in seconds */
AnnaBridge 171:3a7713b1edbc 105 uint16_t mtu; /*! desired ATT MTU */
AnnaBridge 171:3a7713b1edbc 106 uint8_t transTimeout; /*! transcation timeout in seconds */
AnnaBridge 171:3a7713b1edbc 107 uint8_t numPrepWrites; /*! number of queued prepare writes supported by server */
AnnaBridge 171:3a7713b1edbc 108 } attCfg_t;
AnnaBridge 171:3a7713b1edbc 109
AnnaBridge 171:3a7713b1edbc 110 /*!
AnnaBridge 171:3a7713b1edbc 111 * Attribute server data types
AnnaBridge 171:3a7713b1edbc 112 */
AnnaBridge 171:3a7713b1edbc 113
AnnaBridge 171:3a7713b1edbc 114 /*! Attribute structure */
AnnaBridge 171:3a7713b1edbc 115 typedef struct
AnnaBridge 171:3a7713b1edbc 116 {
AnnaBridge 171:3a7713b1edbc 117 uint8_t const *pUuid; /*! Pointer to the attribute's UUID */
AnnaBridge 171:3a7713b1edbc 118 uint8_t *pValue; /*! Pointer to the attribute's value */
AnnaBridge 171:3a7713b1edbc 119 uint16_t *pLen; /*! Pointer to the length of the attribute's value */
AnnaBridge 171:3a7713b1edbc 120 uint16_t maxLen; /*! Maximum length of attribute's value */
AnnaBridge 171:3a7713b1edbc 121 uint8_t settings; /*! Attribute settings */
AnnaBridge 171:3a7713b1edbc 122 uint8_t permissions; /*! Attribute permissions */
AnnaBridge 171:3a7713b1edbc 123 } attsAttr_t;
AnnaBridge 171:3a7713b1edbc 124
AnnaBridge 171:3a7713b1edbc 125 /*! Attribute group read callback */
AnnaBridge 171:3a7713b1edbc 126 typedef uint8_t (*attsReadCback_t)(dmConnId_t connId, uint16_t handle, uint8_t operation,
AnnaBridge 171:3a7713b1edbc 127 uint16_t offset, attsAttr_t *pAttr);
AnnaBridge 171:3a7713b1edbc 128
AnnaBridge 171:3a7713b1edbc 129 /*! Attribute group write callback */
AnnaBridge 171:3a7713b1edbc 130 typedef uint8_t (*attsWriteCback_t)(dmConnId_t connId, uint16_t handle, uint8_t operation,
AnnaBridge 171:3a7713b1edbc 131 uint16_t offset, uint16_t len, uint8_t *pValue,
AnnaBridge 171:3a7713b1edbc 132 attsAttr_t *pAttr);
AnnaBridge 171:3a7713b1edbc 133
AnnaBridge 171:3a7713b1edbc 134 /*! Attribute group */
AnnaBridge 171:3a7713b1edbc 135 typedef struct attsGroup_tag
AnnaBridge 171:3a7713b1edbc 136 {
AnnaBridge 171:3a7713b1edbc 137 struct attsGroup_tag *pNext; /*! For internal use only */
AnnaBridge 171:3a7713b1edbc 138 attsAttr_t *pAttr; /*! Pointer to attribute list for this group */
AnnaBridge 171:3a7713b1edbc 139 attsReadCback_t readCback; /*! Read callback function */
AnnaBridge 171:3a7713b1edbc 140 attsWriteCback_t writeCback; /*! Write callback function */
AnnaBridge 171:3a7713b1edbc 141 uint16_t startHandle; /*! The handle of the first attribute in this group */
AnnaBridge 171:3a7713b1edbc 142 uint16_t endHandle; /*! The handle of the last attribute in this group */
AnnaBridge 171:3a7713b1edbc 143 } attsGroup_t;
AnnaBridge 171:3a7713b1edbc 144
AnnaBridge 171:3a7713b1edbc 145 /*! Client characteristc configuration settings */
AnnaBridge 171:3a7713b1edbc 146 typedef struct
AnnaBridge 171:3a7713b1edbc 147 {
AnnaBridge 171:3a7713b1edbc 148 uint16_t handle; /*! Client characteristc configuration descriptor handle */
AnnaBridge 171:3a7713b1edbc 149 uint16_t valueRange; /*! Acceptable value range of the descriptor value */
AnnaBridge 171:3a7713b1edbc 150 uint8_t secLevel; /*! Security level of characteristic value */
AnnaBridge 171:3a7713b1edbc 151 } attsCccSet_t;
AnnaBridge 171:3a7713b1edbc 152
AnnaBridge 171:3a7713b1edbc 153 /*! ATT client structure for characteristic and descriptor discovery */
AnnaBridge 171:3a7713b1edbc 154 typedef struct attcDiscChar_tag
AnnaBridge 171:3a7713b1edbc 155 {
AnnaBridge 171:3a7713b1edbc 156 uint8_t const *pUuid; /*! Pointer to UUID */
AnnaBridge 171:3a7713b1edbc 157 uint8_t settings; /*! Characteristic discovery settings */
AnnaBridge 171:3a7713b1edbc 158 } attcDiscChar_t;
AnnaBridge 171:3a7713b1edbc 159
AnnaBridge 171:3a7713b1edbc 160 /*! ATT client structure for characteristic and descriptor configuration */
AnnaBridge 171:3a7713b1edbc 161 typedef struct
AnnaBridge 171:3a7713b1edbc 162 {
AnnaBridge 171:3a7713b1edbc 163 uint8_t const *pValue; /*! Pointer to default value or NULL */
AnnaBridge 171:3a7713b1edbc 164 uint8_t valueLen; /*! Default value length */
AnnaBridge 171:3a7713b1edbc 165 uint8_t hdlIdx; /*! Index of its handle in handle list */
AnnaBridge 171:3a7713b1edbc 166 } attcDiscCfg_t;
AnnaBridge 171:3a7713b1edbc 167
AnnaBridge 171:3a7713b1edbc 168 /*! ATT client discovery control block */
AnnaBridge 171:3a7713b1edbc 169 typedef struct
AnnaBridge 171:3a7713b1edbc 170 {
AnnaBridge 171:3a7713b1edbc 171 attcDiscChar_t **pCharList; /*! Characterisic list for discovery */
AnnaBridge 171:3a7713b1edbc 172 uint16_t *pHdlList; /*! Characteristic handle list */
AnnaBridge 171:3a7713b1edbc 173 attcDiscCfg_t *pCfgList; /*! Characterisic list for configuration */
AnnaBridge 171:3a7713b1edbc 174 uint8_t charListLen; /*! Characteristic and handle list length */
AnnaBridge 171:3a7713b1edbc 175 uint8_t cfgListLen; /*! Configuration list length */
AnnaBridge 171:3a7713b1edbc 176
AnnaBridge 171:3a7713b1edbc 177 /* the following are for internal use only */
AnnaBridge 171:3a7713b1edbc 178 uint16_t svcStartHdl;
AnnaBridge 171:3a7713b1edbc 179 uint16_t svcEndHdl;
AnnaBridge 171:3a7713b1edbc 180 uint8_t charListIdx;
AnnaBridge 171:3a7713b1edbc 181 uint8_t endHdlIdx;
AnnaBridge 171:3a7713b1edbc 182 } attcDiscCb_t;
AnnaBridge 171:3a7713b1edbc 183
AnnaBridge 171:3a7713b1edbc 184 /*!
AnnaBridge 171:3a7713b1edbc 185 * ATT callback parameters:
AnnaBridge 171:3a7713b1edbc 186 *
AnnaBridge 171:3a7713b1edbc 187 * \param hdr.event Callback event
AnnaBridge 171:3a7713b1edbc 188 * \param hdr.param DM connection ID
AnnaBridge 171:3a7713b1edbc 189 * \param hdr.status Event status: ATT_SUCCESS or error status
AnnaBridge 171:3a7713b1edbc 190 * \param pValue Pointer to value data, valid if valueLen > 0
AnnaBridge 171:3a7713b1edbc 191 * \param valueLen Length of value data
AnnaBridge 171:3a7713b1edbc 192 * \param handle Attribute handle
AnnaBridge 171:3a7713b1edbc 193 */
AnnaBridge 171:3a7713b1edbc 194 typedef struct
AnnaBridge 171:3a7713b1edbc 195 {
AnnaBridge 171:3a7713b1edbc 196 wsfMsgHdr_t hdr; /*! Header structure */
AnnaBridge 171:3a7713b1edbc 197 uint8_t *pValue; /*! Value */
AnnaBridge 171:3a7713b1edbc 198 uint16_t valueLen; /*! Value length */
AnnaBridge 171:3a7713b1edbc 199 uint16_t handle; /*! Attribute handle */
AnnaBridge 171:3a7713b1edbc 200 bool_t continuing; /*! TRUE if more response packets expected */
AnnaBridge 171:3a7713b1edbc 201 } attEvt_t;
AnnaBridge 171:3a7713b1edbc 202
AnnaBridge 171:3a7713b1edbc 203 /*! ATTS client characteristic configuration callback structure */
AnnaBridge 171:3a7713b1edbc 204 typedef struct
AnnaBridge 171:3a7713b1edbc 205 {
AnnaBridge 171:3a7713b1edbc 206 wsfMsgHdr_t hdr; /*! Header structure */
AnnaBridge 171:3a7713b1edbc 207 uint16_t handle; /*! CCCD handle */
AnnaBridge 171:3a7713b1edbc 208 uint16_t value; /*! CCCD value */
AnnaBridge 171:3a7713b1edbc 209 uint8_t idx; /*! CCCD settings index */
AnnaBridge 171:3a7713b1edbc 210 } attsCccEvt_t;
AnnaBridge 171:3a7713b1edbc 211
AnnaBridge 171:3a7713b1edbc 212 /*! ATT callback type */
AnnaBridge 171:3a7713b1edbc 213 typedef void (*attCback_t)(attEvt_t *pEvt);
AnnaBridge 171:3a7713b1edbc 214
AnnaBridge 171:3a7713b1edbc 215 /*! ATTS authorization callback type */
AnnaBridge 171:3a7713b1edbc 216 typedef uint8_t (*attsAuthorCback_t)(dmConnId_t connId, uint8_t permit, uint16_t handle);
AnnaBridge 171:3a7713b1edbc 217
AnnaBridge 171:3a7713b1edbc 218 /*! ATTS client characteristic configuration callback */
AnnaBridge 171:3a7713b1edbc 219 typedef void (*attsCccCback_t)(attsCccEvt_t *pEvt);
AnnaBridge 171:3a7713b1edbc 220
AnnaBridge 171:3a7713b1edbc 221 /**************************************************************************************************
AnnaBridge 171:3a7713b1edbc 222 Global Variables
AnnaBridge 171:3a7713b1edbc 223 **************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 224
AnnaBridge 171:3a7713b1edbc 225 /*! Configuration pointer */
AnnaBridge 171:3a7713b1edbc 226 extern attCfg_t *pAttCfg;
AnnaBridge 171:3a7713b1edbc 227
AnnaBridge 171:3a7713b1edbc 228 /**************************************************************************************************
AnnaBridge 171:3a7713b1edbc 229 Function Declarations
AnnaBridge 171:3a7713b1edbc 230 **************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 231
AnnaBridge 171:3a7713b1edbc 232 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 233 /*!
AnnaBridge 171:3a7713b1edbc 234 * \fn AttRegister
AnnaBridge 171:3a7713b1edbc 235 *
AnnaBridge 171:3a7713b1edbc 236 * \brief Register a callback with ATT.
AnnaBridge 171:3a7713b1edbc 237 *
AnnaBridge 171:3a7713b1edbc 238 * \param cback Client callback function.
AnnaBridge 171:3a7713b1edbc 239 *
AnnaBridge 171:3a7713b1edbc 240 * \return None.
AnnaBridge 171:3a7713b1edbc 241 */
AnnaBridge 171:3a7713b1edbc 242 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 243 void AttRegister(attCback_t cback);
AnnaBridge 171:3a7713b1edbc 244
AnnaBridge 171:3a7713b1edbc 245 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 246 /*!
AnnaBridge 171:3a7713b1edbc 247 * \fn AttConnRegister
AnnaBridge 171:3a7713b1edbc 248 *
AnnaBridge 171:3a7713b1edbc 249 * \brief Register a connection callback with ATT. The callback is typically used to
AnnaBridge 171:3a7713b1edbc 250 * manage the attribute server database.
AnnaBridge 171:3a7713b1edbc 251 *
AnnaBridge 171:3a7713b1edbc 252 * \param cback Client callback function.
AnnaBridge 171:3a7713b1edbc 253 *
AnnaBridge 171:3a7713b1edbc 254 * \return None.
AnnaBridge 171:3a7713b1edbc 255 */
AnnaBridge 171:3a7713b1edbc 256 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 257 void AttConnRegister(dmCback_t cback);
AnnaBridge 171:3a7713b1edbc 258
AnnaBridge 171:3a7713b1edbc 259
AnnaBridge 171:3a7713b1edbc 260 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 261 /*!
AnnaBridge 171:3a7713b1edbc 262 * \fn AttGetMtu
AnnaBridge 171:3a7713b1edbc 263 *
AnnaBridge 171:3a7713b1edbc 264 * \brief Get the attribute protocol MTU of a connection.
AnnaBridge 171:3a7713b1edbc 265 *
AnnaBridge 171:3a7713b1edbc 266 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 267 *
AnnaBridge 171:3a7713b1edbc 268 * \return MTU of the connection.
AnnaBridge 171:3a7713b1edbc 269 */
AnnaBridge 171:3a7713b1edbc 270 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 271 uint16_t AttGetMtu(dmConnId_t connId);
AnnaBridge 171:3a7713b1edbc 272
AnnaBridge 171:3a7713b1edbc 273 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 274 /*!
AnnaBridge 171:3a7713b1edbc 275 * \fn AttsInit
AnnaBridge 171:3a7713b1edbc 276 *
AnnaBridge 171:3a7713b1edbc 277 * \brief Initialize ATT server.
AnnaBridge 171:3a7713b1edbc 278 *
AnnaBridge 171:3a7713b1edbc 279 * \return None.
AnnaBridge 171:3a7713b1edbc 280 */
AnnaBridge 171:3a7713b1edbc 281 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 282 void AttsInit(void);
AnnaBridge 171:3a7713b1edbc 283
AnnaBridge 171:3a7713b1edbc 284 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 285 /*!
AnnaBridge 171:3a7713b1edbc 286 * \fn AttsIndInit
AnnaBridge 171:3a7713b1edbc 287 *
AnnaBridge 171:3a7713b1edbc 288 * \brief Initialize ATT server for indications/notifications.
AnnaBridge 171:3a7713b1edbc 289 *
AnnaBridge 171:3a7713b1edbc 290 * \return None.
AnnaBridge 171:3a7713b1edbc 291 */
AnnaBridge 171:3a7713b1edbc 292 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 293 void AttsIndInit(void);
AnnaBridge 171:3a7713b1edbc 294
AnnaBridge 171:3a7713b1edbc 295 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 296 /*!
AnnaBridge 171:3a7713b1edbc 297 * \fn AttsSignInit
AnnaBridge 171:3a7713b1edbc 298 *
AnnaBridge 171:3a7713b1edbc 299 * \brief Initialize ATT server for data signing.
AnnaBridge 171:3a7713b1edbc 300 *
AnnaBridge 171:3a7713b1edbc 301 * \return None.
AnnaBridge 171:3a7713b1edbc 302 */
AnnaBridge 171:3a7713b1edbc 303 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 304 void AttsSignInit(void);
AnnaBridge 171:3a7713b1edbc 305
AnnaBridge 171:3a7713b1edbc 306 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 307 /*!
AnnaBridge 171:3a7713b1edbc 308 * \fn AttsAuthorRegister
AnnaBridge 171:3a7713b1edbc 309 *
AnnaBridge 171:3a7713b1edbc 310 * \brief Register an authorization callback with the attribute server.
AnnaBridge 171:3a7713b1edbc 311 *
AnnaBridge 171:3a7713b1edbc 312 * \param cback Client callback function.
AnnaBridge 171:3a7713b1edbc 313 *
AnnaBridge 171:3a7713b1edbc 314 * \return None.
AnnaBridge 171:3a7713b1edbc 315 */
AnnaBridge 171:3a7713b1edbc 316 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 317 void AttsAuthorRegister(attsAuthorCback_t cback);
AnnaBridge 171:3a7713b1edbc 318
AnnaBridge 171:3a7713b1edbc 319 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 320 /*!
AnnaBridge 171:3a7713b1edbc 321 * \fn AttsAddGroup
AnnaBridge 171:3a7713b1edbc 322 *
AnnaBridge 171:3a7713b1edbc 323 * \brief Add an attribute group to the attribute server.
AnnaBridge 171:3a7713b1edbc 324 *
AnnaBridge 171:3a7713b1edbc 325 * \param pGroup Pointer to an attribute group structure.
AnnaBridge 171:3a7713b1edbc 326 *
AnnaBridge 171:3a7713b1edbc 327 * \return None.
AnnaBridge 171:3a7713b1edbc 328 */
AnnaBridge 171:3a7713b1edbc 329 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 330 void AttsAddGroup(attsGroup_t *pGroup);
AnnaBridge 171:3a7713b1edbc 331
AnnaBridge 171:3a7713b1edbc 332 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 333 /*!
AnnaBridge 171:3a7713b1edbc 334 * \fn AttsRemoveGroup
AnnaBridge 171:3a7713b1edbc 335 *
AnnaBridge 171:3a7713b1edbc 336 * \brief Remove an attribute group from the attribute server.
AnnaBridge 171:3a7713b1edbc 337 *
AnnaBridge 171:3a7713b1edbc 338 * \param startHandle Start handle of attribute group to be removed.
AnnaBridge 171:3a7713b1edbc 339 *
AnnaBridge 171:3a7713b1edbc 340 * \return None.
AnnaBridge 171:3a7713b1edbc 341 */
AnnaBridge 171:3a7713b1edbc 342 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 343 void AttsRemoveGroup(uint16_t startHandle);
AnnaBridge 171:3a7713b1edbc 344
AnnaBridge 171:3a7713b1edbc 345 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 346 /*!
AnnaBridge 171:3a7713b1edbc 347 * \fn AttsSetAttr
AnnaBridge 171:3a7713b1edbc 348 *
AnnaBridge 171:3a7713b1edbc 349 * \brief Set an attribute value in the attribute server.
AnnaBridge 171:3a7713b1edbc 350 *
AnnaBridge 171:3a7713b1edbc 351 * \param handle Attribute handle.
AnnaBridge 171:3a7713b1edbc 352 * \param valueLen Attribute length.
AnnaBridge 171:3a7713b1edbc 353 * \param pValue Attribute value.
AnnaBridge 171:3a7713b1edbc 354 *
AnnaBridge 171:3a7713b1edbc 355 * \return ATT_SUCCESS if successful otherwise error.
AnnaBridge 171:3a7713b1edbc 356 */
AnnaBridge 171:3a7713b1edbc 357 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 358 uint8_t AttsSetAttr(uint16_t handle, uint16_t valueLen, uint8_t *pValue);
AnnaBridge 171:3a7713b1edbc 359
AnnaBridge 171:3a7713b1edbc 360 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 361 /*!
AnnaBridge 171:3a7713b1edbc 362 * \fn AttsGetAttr
AnnaBridge 171:3a7713b1edbc 363 *
AnnaBridge 171:3a7713b1edbc 364 * \brief Get an attribute value in the attribute server.
AnnaBridge 171:3a7713b1edbc 365 *
AnnaBridge 171:3a7713b1edbc 366 * \param handle Attribute handle.
AnnaBridge 171:3a7713b1edbc 367 * \param pLen Returned attribute length pointer.
AnnaBridge 171:3a7713b1edbc 368 * \param pValue Returned attribute value pointer.
AnnaBridge 171:3a7713b1edbc 369 *
AnnaBridge 171:3a7713b1edbc 370 * \return ATT_SUCCESS if successful otherwise error.
AnnaBridge 171:3a7713b1edbc 371 * \return This function returns the attribute length in pLen and a pointer to the attribute
AnnaBridge 171:3a7713b1edbc 372 * value in pValue.
AnnaBridge 171:3a7713b1edbc 373 */
AnnaBridge 171:3a7713b1edbc 374 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 375 uint8_t AttsGetAttr(uint16_t handle, uint16_t *pLen, uint8_t **pValue);
AnnaBridge 171:3a7713b1edbc 376
AnnaBridge 171:3a7713b1edbc 377 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 378 /*!
AnnaBridge 171:3a7713b1edbc 379 * \fn AttsHandleValueInd
AnnaBridge 171:3a7713b1edbc 380 *
AnnaBridge 171:3a7713b1edbc 381 * \brief Send an attribute protocol Handle Value Indication.
AnnaBridge 171:3a7713b1edbc 382 *
AnnaBridge 171:3a7713b1edbc 383 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 384 * \param handle Attribute handle.
AnnaBridge 171:3a7713b1edbc 385 * \param valueLen Length of value data.
AnnaBridge 171:3a7713b1edbc 386 * \param pValue Pointer to value data.
AnnaBridge 171:3a7713b1edbc 387 *
AnnaBridge 171:3a7713b1edbc 388 * \return None.
AnnaBridge 171:3a7713b1edbc 389 */
AnnaBridge 171:3a7713b1edbc 390 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 391 void AttsHandleValueInd(dmConnId_t connId, uint16_t handle, uint16_t valueLen, uint8_t *pValue);
AnnaBridge 171:3a7713b1edbc 392
AnnaBridge 171:3a7713b1edbc 393 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 394 /*!
AnnaBridge 171:3a7713b1edbc 395 * \fn AttsHandleValueNtf
AnnaBridge 171:3a7713b1edbc 396 *
AnnaBridge 171:3a7713b1edbc 397 * \brief Send an attribute protocol Handle Value Notification.
AnnaBridge 171:3a7713b1edbc 398 *
AnnaBridge 171:3a7713b1edbc 399 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 400 * \param handle Attribute handle.
AnnaBridge 171:3a7713b1edbc 401 * \param valueLen Length of value data.
AnnaBridge 171:3a7713b1edbc 402 * \param pValue Pointer to value data.
AnnaBridge 171:3a7713b1edbc 403 *
AnnaBridge 171:3a7713b1edbc 404 * \return None.
AnnaBridge 171:3a7713b1edbc 405 */
AnnaBridge 171:3a7713b1edbc 406 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 407 void AttsHandleValueNtf(dmConnId_t connId, uint16_t handle, uint16_t valueLen, uint8_t *pValue);
AnnaBridge 171:3a7713b1edbc 408
AnnaBridge 171:3a7713b1edbc 409 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 410 /*!
AnnaBridge 171:3a7713b1edbc 411 * \fn AttsCccRegister
AnnaBridge 171:3a7713b1edbc 412 *
AnnaBridge 171:3a7713b1edbc 413 * \brief Register the utility service for managing client characteristic
AnnaBridge 171:3a7713b1edbc 414 * configuration descriptors. This function is typically called once on
AnnaBridge 171:3a7713b1edbc 415 * system initialization.
AnnaBridge 171:3a7713b1edbc 416 *
AnnaBridge 171:3a7713b1edbc 417 * \param setLen Length of settings array.
AnnaBridge 171:3a7713b1edbc 418 * \param pSet Array of CCC descriptor settings.
AnnaBridge 171:3a7713b1edbc 419 * \param cback Client callback function.
AnnaBridge 171:3a7713b1edbc 420 *
AnnaBridge 171:3a7713b1edbc 421 * \return None.
AnnaBridge 171:3a7713b1edbc 422 */
AnnaBridge 171:3a7713b1edbc 423 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 424 void AttsCccRegister(uint8_t setLen, attsCccSet_t *pSet, attsCccCback_t cback);
AnnaBridge 171:3a7713b1edbc 425
AnnaBridge 171:3a7713b1edbc 426 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 427 /*!
AnnaBridge 171:3a7713b1edbc 428 * \fn AttsCccInitTable
AnnaBridge 171:3a7713b1edbc 429 *
AnnaBridge 171:3a7713b1edbc 430 * \brief Initialize the client characteristic configuration descriptor value table for a
AnnaBridge 171:3a7713b1edbc 431 * connection. The table is initialized with the values from pCccTbl. If pCccTbl
AnnaBridge 171:3a7713b1edbc 432 * is NULL the table will be initialized to zero.
AnnaBridge 171:3a7713b1edbc 433 *
AnnaBridge 171:3a7713b1edbc 434 * This function must be called when a connection is established or when a
AnnaBridge 171:3a7713b1edbc 435 * device is bonded.
AnnaBridge 171:3a7713b1edbc 436 *
AnnaBridge 171:3a7713b1edbc 437 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 438 * \param pCccTbl Pointer to the descriptor value array. The length of the array
AnnaBridge 171:3a7713b1edbc 439 * must equal the value of setLen passed to AttsCccRegister().
AnnaBridge 171:3a7713b1edbc 440 *
AnnaBridge 171:3a7713b1edbc 441 * \return None.
AnnaBridge 171:3a7713b1edbc 442 */
AnnaBridge 171:3a7713b1edbc 443 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 444 void AttsCccInitTable(dmConnId_t connId, uint16_t *pCccTbl);
AnnaBridge 171:3a7713b1edbc 445
AnnaBridge 171:3a7713b1edbc 446 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 447 /*!
AnnaBridge 171:3a7713b1edbc 448 * \fn AttsCccClearTable
AnnaBridge 171:3a7713b1edbc 449 *
AnnaBridge 171:3a7713b1edbc 450 * \brief Clear and deallocate the client characteristic configuration descriptor value
AnnaBridge 171:3a7713b1edbc 451 * table for a connection. This function must be called when a connection is closed.
AnnaBridge 171:3a7713b1edbc 452 *
AnnaBridge 171:3a7713b1edbc 453 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 454 *
AnnaBridge 171:3a7713b1edbc 455 * \return None.
AnnaBridge 171:3a7713b1edbc 456 */
AnnaBridge 171:3a7713b1edbc 457 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 458 void AttsCccClearTable(dmConnId_t connId);
AnnaBridge 171:3a7713b1edbc 459
AnnaBridge 171:3a7713b1edbc 460 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 461 /*!
AnnaBridge 171:3a7713b1edbc 462 * \fn AttsCccGet
AnnaBridge 171:3a7713b1edbc 463 *
AnnaBridge 171:3a7713b1edbc 464 * \brief Get the value of a client characteristic configuration descriptor by its index.
AnnaBridge 171:3a7713b1edbc 465 * If not found, return zero.
AnnaBridge 171:3a7713b1edbc 466 *
AnnaBridge 171:3a7713b1edbc 467 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 468 * \param idx Index of descriptor in CCC descriptor handle table.
AnnaBridge 171:3a7713b1edbc 469 *
AnnaBridge 171:3a7713b1edbc 470 * \return Value of the descriptor.
AnnaBridge 171:3a7713b1edbc 471 */
AnnaBridge 171:3a7713b1edbc 472 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 473 uint16_t AttsCccGet(dmConnId_t connId, uint8_t idx);
AnnaBridge 171:3a7713b1edbc 474
AnnaBridge 171:3a7713b1edbc 475 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 476 /*!
AnnaBridge 171:3a7713b1edbc 477 * \fn AttsCccSet
AnnaBridge 171:3a7713b1edbc 478 *
AnnaBridge 171:3a7713b1edbc 479 * \brief Set the value of a client characteristic configuration descriptor by its index.
AnnaBridge 171:3a7713b1edbc 480 *
AnnaBridge 171:3a7713b1edbc 481 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 482 * \param idx Index of descriptor in CCC descriptor handle table.
AnnaBridge 171:3a7713b1edbc 483 * \param value Value of the descriptor.
AnnaBridge 171:3a7713b1edbc 484 *
AnnaBridge 171:3a7713b1edbc 485 * \return None.
AnnaBridge 171:3a7713b1edbc 486 */
AnnaBridge 171:3a7713b1edbc 487 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 488 void AttsCccSet(dmConnId_t connId, uint8_t idx, uint16_t value);
AnnaBridge 171:3a7713b1edbc 489
AnnaBridge 171:3a7713b1edbc 490 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 491 /*!
AnnaBridge 171:3a7713b1edbc 492 * \fn AttsCccEnabled
AnnaBridge 171:3a7713b1edbc 493 *
AnnaBridge 171:3a7713b1edbc 494 * \brief Check if a client characteristic configuration descriptor is enabled and if
AnnaBridge 171:3a7713b1edbc 495 * the characteristic's security level has been met.
AnnaBridge 171:3a7713b1edbc 496 *
AnnaBridge 171:3a7713b1edbc 497 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 498 * \param idx Index of descriptor in CCC descriptor handle table.
AnnaBridge 171:3a7713b1edbc 499 *
AnnaBridge 171:3a7713b1edbc 500 * \return Value of the descriptor if security level is met, otherwise zero.
AnnaBridge 171:3a7713b1edbc 501 */
AnnaBridge 171:3a7713b1edbc 502 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 503 uint16_t AttsCccEnabled(dmConnId_t connId, uint8_t idx);
AnnaBridge 171:3a7713b1edbc 504
AnnaBridge 171:3a7713b1edbc 505 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 506 /*!
AnnaBridge 171:3a7713b1edbc 507 * \fn AttsSetCsrk
AnnaBridge 171:3a7713b1edbc 508 *
AnnaBridge 171:3a7713b1edbc 509 * \brief Set the peer's data signing key on this connection. This function
AnnaBridge 171:3a7713b1edbc 510 * is typically called from the ATT connection callback when the connection is
AnnaBridge 171:3a7713b1edbc 511 * established. The caller is responsible for maintaining the memory that
AnnaBridge 171:3a7713b1edbc 512 * contains the key.
AnnaBridge 171:3a7713b1edbc 513 *
AnnaBridge 171:3a7713b1edbc 514 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 515 * \param pCsrk Pointer to data signing key (CSRK).
AnnaBridge 171:3a7713b1edbc 516 *
AnnaBridge 171:3a7713b1edbc 517 * \return None.
AnnaBridge 171:3a7713b1edbc 518 */
AnnaBridge 171:3a7713b1edbc 519 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 520 void AttsSetCsrk(dmConnId_t connId, uint8_t *pCsrk);
AnnaBridge 171:3a7713b1edbc 521
AnnaBridge 171:3a7713b1edbc 522 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 523 /*!
AnnaBridge 171:3a7713b1edbc 524 * \fn AttsSetSignCounter
AnnaBridge 171:3a7713b1edbc 525 *
AnnaBridge 171:3a7713b1edbc 526 * \brief Set the peer's sign counter on this connection. This function
AnnaBridge 171:3a7713b1edbc 527 * is typically called from the ATT connection callback when the connection is
AnnaBridge 171:3a7713b1edbc 528 * established. ATT maintains the value of the sign counter internally and
AnnaBridge 171:3a7713b1edbc 529 * sets the value when a signed packet is successfully received.
AnnaBridge 171:3a7713b1edbc 530 *
AnnaBridge 171:3a7713b1edbc 531 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 532 * \param signCounter Sign counter.
AnnaBridge 171:3a7713b1edbc 533 *
AnnaBridge 171:3a7713b1edbc 534 * \return None.
AnnaBridge 171:3a7713b1edbc 535 */
AnnaBridge 171:3a7713b1edbc 536 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 537 void AttsSetSignCounter(dmConnId_t connId, uint32_t signCounter);
AnnaBridge 171:3a7713b1edbc 538
AnnaBridge 171:3a7713b1edbc 539 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 540 /*!
AnnaBridge 171:3a7713b1edbc 541 * \fn AttsGetSignCounter
AnnaBridge 171:3a7713b1edbc 542 *
AnnaBridge 171:3a7713b1edbc 543 * \brief Get the current value peer's sign counter on this connection. This function
AnnaBridge 171:3a7713b1edbc 544 * is typically called from the ATT connection callback when the connection is
AnnaBridge 171:3a7713b1edbc 545 * closed so the application can store the sign counter for use on future
AnnaBridge 171:3a7713b1edbc 546 * connections.
AnnaBridge 171:3a7713b1edbc 547 *
AnnaBridge 171:3a7713b1edbc 548 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 549 *
AnnaBridge 171:3a7713b1edbc 550 * \return Sign counter.
AnnaBridge 171:3a7713b1edbc 551 */
AnnaBridge 171:3a7713b1edbc 552 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 553 uint32_t AttsGetSignCounter(dmConnId_t connId);
AnnaBridge 171:3a7713b1edbc 554
AnnaBridge 171:3a7713b1edbc 555 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 556 /*!
AnnaBridge 171:3a7713b1edbc 557 * \fn AttcInit
AnnaBridge 171:3a7713b1edbc 558 *
AnnaBridge 171:3a7713b1edbc 559 * \brief Initialize ATT client.
AnnaBridge 171:3a7713b1edbc 560 *
AnnaBridge 171:3a7713b1edbc 561 * \return None.
AnnaBridge 171:3a7713b1edbc 562 */
AnnaBridge 171:3a7713b1edbc 563 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 564 void AttcInit(void);
AnnaBridge 171:3a7713b1edbc 565
AnnaBridge 171:3a7713b1edbc 566 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 567 /*!
AnnaBridge 171:3a7713b1edbc 568 * \fn AttcSignInit
AnnaBridge 171:3a7713b1edbc 569 *
AnnaBridge 171:3a7713b1edbc 570 * \brief Initialize ATT client for data signing.
AnnaBridge 171:3a7713b1edbc 571 *
AnnaBridge 171:3a7713b1edbc 572 * \return None.
AnnaBridge 171:3a7713b1edbc 573 */
AnnaBridge 171:3a7713b1edbc 574 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 575 void AttcSignInit(void);
AnnaBridge 171:3a7713b1edbc 576
AnnaBridge 171:3a7713b1edbc 577 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 578 /*!
AnnaBridge 171:3a7713b1edbc 579 * \fn AttcFindInfoReq
AnnaBridge 171:3a7713b1edbc 580 *
AnnaBridge 171:3a7713b1edbc 581 * \brief Initiate an attribute protocol Find Information Request.
AnnaBridge 171:3a7713b1edbc 582 *
AnnaBridge 171:3a7713b1edbc 583 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 584 * \param startHandle Attribute start handle.
AnnaBridge 171:3a7713b1edbc 585 * \param endHandle Attribute end handle.
AnnaBridge 171:3a7713b1edbc 586 * \param continuing TRUE if ATTC continues sending requests until complete.
AnnaBridge 171:3a7713b1edbc 587 *
AnnaBridge 171:3a7713b1edbc 588 * \return None.
AnnaBridge 171:3a7713b1edbc 589 */
AnnaBridge 171:3a7713b1edbc 590 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 591 void AttcFindInfoReq(dmConnId_t connId, uint16_t startHandle, uint16_t endHandle, bool_t continuing);
AnnaBridge 171:3a7713b1edbc 592
AnnaBridge 171:3a7713b1edbc 593 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 594 /*!
AnnaBridge 171:3a7713b1edbc 595 * \fn AttcFindByTypeValueReq
AnnaBridge 171:3a7713b1edbc 596 *
AnnaBridge 171:3a7713b1edbc 597 * \brief Initiate an attribute protocol Find By Type Value Request.
AnnaBridge 171:3a7713b1edbc 598 *
AnnaBridge 171:3a7713b1edbc 599 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 600 * \param startHandle Attribute start handle.
AnnaBridge 171:3a7713b1edbc 601 * \param endHandle Attribute end handle.
AnnaBridge 171:3a7713b1edbc 602 * \param uuid16 16-bit UUID to find.
AnnaBridge 171:3a7713b1edbc 603 * \param valueLen Length of value data.
AnnaBridge 171:3a7713b1edbc 604 * \param pValue Pointer to value data.
AnnaBridge 171:3a7713b1edbc 605 * \param continuing TRUE if ATTC continues sending requests until complete.
AnnaBridge 171:3a7713b1edbc 606 *
AnnaBridge 171:3a7713b1edbc 607 * \return None.
AnnaBridge 171:3a7713b1edbc 608 */
AnnaBridge 171:3a7713b1edbc 609 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 610 void AttcFindByTypeValueReq(dmConnId_t connId, uint16_t startHandle, uint16_t endHandle,
AnnaBridge 171:3a7713b1edbc 611 uint16_t uuid16, uint16_t valueLen, uint8_t *pValue, bool_t continuing);
AnnaBridge 171:3a7713b1edbc 612
AnnaBridge 171:3a7713b1edbc 613 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 614 /*!
AnnaBridge 171:3a7713b1edbc 615 * \fn AttcReadByTypeReq
AnnaBridge 171:3a7713b1edbc 616 *
AnnaBridge 171:3a7713b1edbc 617 * \brief Initiate an attribute protocol Read By Type Request.
AnnaBridge 171:3a7713b1edbc 618 *
AnnaBridge 171:3a7713b1edbc 619 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 620 * \param startHandle Attribute start handle.
AnnaBridge 171:3a7713b1edbc 621 * \param endHandle Attribute end handle.
AnnaBridge 171:3a7713b1edbc 622 * \param uuidLen Length of UUID (2 or 16).
AnnaBridge 171:3a7713b1edbc 623 * \param pUuid Pointer to UUID data.
AnnaBridge 171:3a7713b1edbc 624 * \param continuing TRUE if ATTC continues sending requests until complete.
AnnaBridge 171:3a7713b1edbc 625 *
AnnaBridge 171:3a7713b1edbc 626 * \return None.
AnnaBridge 171:3a7713b1edbc 627 */
AnnaBridge 171:3a7713b1edbc 628 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 629 void AttcReadByTypeReq(dmConnId_t connId, uint16_t startHandle, uint16_t endHandle,
AnnaBridge 171:3a7713b1edbc 630 uint8_t uuidLen, uint8_t *pUuid, bool_t continuing);
AnnaBridge 171:3a7713b1edbc 631
AnnaBridge 171:3a7713b1edbc 632 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 633 /*!
AnnaBridge 171:3a7713b1edbc 634 * \fn AttcReadReq
AnnaBridge 171:3a7713b1edbc 635 *
AnnaBridge 171:3a7713b1edbc 636 * \brief Initiate an attribute protocol Read Request.
AnnaBridge 171:3a7713b1edbc 637 *
AnnaBridge 171:3a7713b1edbc 638 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 639 * \param handle Attribute handle.
AnnaBridge 171:3a7713b1edbc 640 *
AnnaBridge 171:3a7713b1edbc 641 * \return None.
AnnaBridge 171:3a7713b1edbc 642 */
AnnaBridge 171:3a7713b1edbc 643 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 644 void AttcReadReq(dmConnId_t connId, uint16_t handle);
AnnaBridge 171:3a7713b1edbc 645
AnnaBridge 171:3a7713b1edbc 646 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 647 /*!
AnnaBridge 171:3a7713b1edbc 648 * \fn AttcReadLongReq
AnnaBridge 171:3a7713b1edbc 649 *
AnnaBridge 171:3a7713b1edbc 650 * \brief Initiate an attribute protocol Read Long Request.
AnnaBridge 171:3a7713b1edbc 651 *
AnnaBridge 171:3a7713b1edbc 652 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 653 * \param handle Attribute handle.
AnnaBridge 171:3a7713b1edbc 654 * \param offset Read attribute data starting at this offset.
AnnaBridge 171:3a7713b1edbc 655 * \param continuing TRUE if ATTC continues sending requests until complete.
AnnaBridge 171:3a7713b1edbc 656 *
AnnaBridge 171:3a7713b1edbc 657 * \return None.
AnnaBridge 171:3a7713b1edbc 658 */
AnnaBridge 171:3a7713b1edbc 659 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 660 void AttcReadLongReq(dmConnId_t connId, uint16_t handle, uint16_t offset, bool_t continuing);
AnnaBridge 171:3a7713b1edbc 661
AnnaBridge 171:3a7713b1edbc 662 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 663 /*!
AnnaBridge 171:3a7713b1edbc 664 * \fn AttcReadMultipleReq
AnnaBridge 171:3a7713b1edbc 665 *
AnnaBridge 171:3a7713b1edbc 666 * \brief Initiate an attribute protocol Read Multiple Request.
AnnaBridge 171:3a7713b1edbc 667 *
AnnaBridge 171:3a7713b1edbc 668 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 669 * \param numHandles Number of handles in attribute handle list.
AnnaBridge 171:3a7713b1edbc 670 * \param pHandles List of attribute handles.
AnnaBridge 171:3a7713b1edbc 671 *
AnnaBridge 171:3a7713b1edbc 672 * \return None.
AnnaBridge 171:3a7713b1edbc 673 */
AnnaBridge 171:3a7713b1edbc 674 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 675 void AttcReadMultipleReq(dmConnId_t connId, uint8_t numHandles, uint16_t *pHandles);
AnnaBridge 171:3a7713b1edbc 676
AnnaBridge 171:3a7713b1edbc 677 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 678 /*!
AnnaBridge 171:3a7713b1edbc 679 * \fn AttcReadByGroupTypeReq
AnnaBridge 171:3a7713b1edbc 680 *
AnnaBridge 171:3a7713b1edbc 681 * \brief Initiate an attribute protocol Read By Group Type Request.
AnnaBridge 171:3a7713b1edbc 682 *
AnnaBridge 171:3a7713b1edbc 683 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 684 * \param startHandle Attribute start handle.
AnnaBridge 171:3a7713b1edbc 685 * \param endHandle Attribute end handle.
AnnaBridge 171:3a7713b1edbc 686 * \param uuidLen Length of UUID (2 or 16).
AnnaBridge 171:3a7713b1edbc 687 * \param pUuid Pointer to UUID data.
AnnaBridge 171:3a7713b1edbc 688 * \param continuing TRUE if ATTC continues sending requests until complete.
AnnaBridge 171:3a7713b1edbc 689 *
AnnaBridge 171:3a7713b1edbc 690 * \return None.
AnnaBridge 171:3a7713b1edbc 691 */
AnnaBridge 171:3a7713b1edbc 692 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 693 void AttcReadByGroupTypeReq(dmConnId_t connId, uint16_t startHandle, uint16_t endHandle,
AnnaBridge 171:3a7713b1edbc 694 uint8_t uuidLen, uint8_t *pUuid, bool_t continuing);
AnnaBridge 171:3a7713b1edbc 695
AnnaBridge 171:3a7713b1edbc 696 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 697 /*!
AnnaBridge 171:3a7713b1edbc 698 * \fn AttcWriteReq
AnnaBridge 171:3a7713b1edbc 699 *
AnnaBridge 171:3a7713b1edbc 700 * \brief Initiate an attribute protocol Write Request.
AnnaBridge 171:3a7713b1edbc 701 *
AnnaBridge 171:3a7713b1edbc 702 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 703 * \param handle Attribute handle.
AnnaBridge 171:3a7713b1edbc 704 * \param valueLen Length of value data.
AnnaBridge 171:3a7713b1edbc 705 * \param pValue Pointer to value data.
AnnaBridge 171:3a7713b1edbc 706 *
AnnaBridge 171:3a7713b1edbc 707 * \return None.
AnnaBridge 171:3a7713b1edbc 708 */
AnnaBridge 171:3a7713b1edbc 709 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 710 void AttcWriteReq(dmConnId_t connId, uint16_t handle, uint16_t valueLen, uint8_t *pValue);
AnnaBridge 171:3a7713b1edbc 711
AnnaBridge 171:3a7713b1edbc 712 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 713 /*!
AnnaBridge 171:3a7713b1edbc 714 * \fn AttcWriteCmd
AnnaBridge 171:3a7713b1edbc 715 *
AnnaBridge 171:3a7713b1edbc 716 * \brief Initiate an attribute protocol Write Command.
AnnaBridge 171:3a7713b1edbc 717 *
AnnaBridge 171:3a7713b1edbc 718 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 719 * \param handle Attribute handle.
AnnaBridge 171:3a7713b1edbc 720 * \param valueLen Length of value data.
AnnaBridge 171:3a7713b1edbc 721 * \param pValue Pointer to value data.
AnnaBridge 171:3a7713b1edbc 722 *
AnnaBridge 171:3a7713b1edbc 723 * \return None.
AnnaBridge 171:3a7713b1edbc 724 */
AnnaBridge 171:3a7713b1edbc 725 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 726 void AttcWriteCmd(dmConnId_t connId, uint16_t handle, uint16_t valueLen, uint8_t *pValue);
AnnaBridge 171:3a7713b1edbc 727
AnnaBridge 171:3a7713b1edbc 728 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 729 /*!
AnnaBridge 171:3a7713b1edbc 730 * \fn AttcSignedWriteCmd
AnnaBridge 171:3a7713b1edbc 731 *
AnnaBridge 171:3a7713b1edbc 732 * \brief Initiate an attribute protocol signed Write Command.
AnnaBridge 171:3a7713b1edbc 733 *
AnnaBridge 171:3a7713b1edbc 734 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 735 * \param handle Attribute handle.
AnnaBridge 171:3a7713b1edbc 736 * \param signCounter Value of the sign counter.
AnnaBridge 171:3a7713b1edbc 737 * \param valueLen Length of value data.
AnnaBridge 171:3a7713b1edbc 738 * \param pValue Pointer to value data.
AnnaBridge 171:3a7713b1edbc 739 *
AnnaBridge 171:3a7713b1edbc 740 * \return None.
AnnaBridge 171:3a7713b1edbc 741 */
AnnaBridge 171:3a7713b1edbc 742 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 743 void AttcSignedWriteCmd(dmConnId_t connId, uint16_t handle, uint32_t signCounter,
AnnaBridge 171:3a7713b1edbc 744 uint16_t valueLen, uint8_t *pValue);
AnnaBridge 171:3a7713b1edbc 745
AnnaBridge 171:3a7713b1edbc 746 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 747 /*!
AnnaBridge 171:3a7713b1edbc 748 * \fn AttcPrepareWriteReq
AnnaBridge 171:3a7713b1edbc 749 *
AnnaBridge 171:3a7713b1edbc 750 * \brief Initiate an attribute protocol Prepare Write Request.
AnnaBridge 171:3a7713b1edbc 751 *
AnnaBridge 171:3a7713b1edbc 752 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 753 * \param handle Attribute handle.
AnnaBridge 171:3a7713b1edbc 754 * \param offset Write attribute data starting at this offset.
AnnaBridge 171:3a7713b1edbc 755 * \param valueLen Length of value data.
AnnaBridge 171:3a7713b1edbc 756 * \param pValue Pointer to value data.
AnnaBridge 171:3a7713b1edbc 757 * \param valueByRef TRUE if pValue data is accessed by reference rather than copied.
AnnaBridge 171:3a7713b1edbc 758 * \param continuing TRUE if ATTC continues sending requests until complete.
AnnaBridge 171:3a7713b1edbc 759 *
AnnaBridge 171:3a7713b1edbc 760 * \return None.
AnnaBridge 171:3a7713b1edbc 761 */
AnnaBridge 171:3a7713b1edbc 762 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 763 void AttcPrepareWriteReq(dmConnId_t connId, uint16_t handle, uint16_t offset, uint16_t valueLen,
AnnaBridge 171:3a7713b1edbc 764 uint8_t *pValue, bool_t valueByRef, bool_t continuing);
AnnaBridge 171:3a7713b1edbc 765
AnnaBridge 171:3a7713b1edbc 766 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 767 /*!
AnnaBridge 171:3a7713b1edbc 768 * \fn AttcExecuteWriteReq
AnnaBridge 171:3a7713b1edbc 769 *
AnnaBridge 171:3a7713b1edbc 770 * \brief Initiate an attribute protocol Execute Write Request.
AnnaBridge 171:3a7713b1edbc 771 *
AnnaBridge 171:3a7713b1edbc 772 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 773 * \param writeAll TRUE to write all queued writes, FALSE to cancel all queued writes.
AnnaBridge 171:3a7713b1edbc 774 *
AnnaBridge 171:3a7713b1edbc 775 * \return None.
AnnaBridge 171:3a7713b1edbc 776 */
AnnaBridge 171:3a7713b1edbc 777 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 778 void AttcExecuteWriteReq(dmConnId_t connId, bool_t writeAll);
AnnaBridge 171:3a7713b1edbc 779
AnnaBridge 171:3a7713b1edbc 780 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 781 /*!
AnnaBridge 171:3a7713b1edbc 782 * \fn AttcCancelReq
AnnaBridge 171:3a7713b1edbc 783 *
AnnaBridge 171:3a7713b1edbc 784 * \brief Cancel an attribute protocol request in progress.
AnnaBridge 171:3a7713b1edbc 785 *
AnnaBridge 171:3a7713b1edbc 786 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 787 *
AnnaBridge 171:3a7713b1edbc 788 * \return None.
AnnaBridge 171:3a7713b1edbc 789 */
AnnaBridge 171:3a7713b1edbc 790 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 791 void AttcCancelReq(dmConnId_t connId);
AnnaBridge 171:3a7713b1edbc 792
AnnaBridge 171:3a7713b1edbc 793 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 794 /*!
AnnaBridge 171:3a7713b1edbc 795 * \fn AttcDiscService
AnnaBridge 171:3a7713b1edbc 796 *
AnnaBridge 171:3a7713b1edbc 797 * \brief This utility function discovers the given service on a peer device. Function
AnnaBridge 171:3a7713b1edbc 798 * AttcFindByTypeValueReq() is called to initiate the discovery procedure.
AnnaBridge 171:3a7713b1edbc 799 *
AnnaBridge 171:3a7713b1edbc 800 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 801 * \param pCb Pointer to discovery control block.
AnnaBridge 171:3a7713b1edbc 802 * \param uuidLen Length of service UUID (2 or 16).
AnnaBridge 171:3a7713b1edbc 803 * \param pUuid Pointer to service UUID.
AnnaBridge 171:3a7713b1edbc 804 *
AnnaBridge 171:3a7713b1edbc 805 * \return None.
AnnaBridge 171:3a7713b1edbc 806 */
AnnaBridge 171:3a7713b1edbc 807 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 808 void AttcDiscService(dmConnId_t connId, attcDiscCb_t *pCb, uint8_t uuidLen, uint8_t *pUuid);
AnnaBridge 171:3a7713b1edbc 809
AnnaBridge 171:3a7713b1edbc 810 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 811 /*!
AnnaBridge 171:3a7713b1edbc 812 * \fn AttcDiscServiceCmpl
AnnaBridge 171:3a7713b1edbc 813 *
AnnaBridge 171:3a7713b1edbc 814 * \brief This utility function processes a service discovery result. It should be called
AnnaBridge 171:3a7713b1edbc 815 * when an ATTC_FIND_BY_TYPE_VALUE_RSP callback event is received after service
AnnaBridge 171:3a7713b1edbc 816 * discovery is initiated by calling AttcDiscService().
AnnaBridge 171:3a7713b1edbc 817 *
AnnaBridge 171:3a7713b1edbc 818 * \param pCb Pointer to discovery control block.
AnnaBridge 171:3a7713b1edbc 819 * \param pMsg ATT callback event message.
AnnaBridge 171:3a7713b1edbc 820 *
AnnaBridge 171:3a7713b1edbc 821 * \return ATT_SUCCESS if successful otherwise error.
AnnaBridge 171:3a7713b1edbc 822 */
AnnaBridge 171:3a7713b1edbc 823 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 824 uint8_t AttcDiscServiceCmpl(attcDiscCb_t *pCb, attEvt_t *pMsg);
AnnaBridge 171:3a7713b1edbc 825
AnnaBridge 171:3a7713b1edbc 826 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 827 /*!
AnnaBridge 171:3a7713b1edbc 828 * \fn AttcDiscCharStart
AnnaBridge 171:3a7713b1edbc 829 *
AnnaBridge 171:3a7713b1edbc 830 * \brief This utility function starts characteristic and characteristic descriptor
AnnaBridge 171:3a7713b1edbc 831 * discovery for a service on a peer device. The service must have been previously
AnnaBridge 171:3a7713b1edbc 832 * discovered by calling AttcDiscService() and AttcDiscServiceCmpl().
AnnaBridge 171:3a7713b1edbc 833 *
AnnaBridge 171:3a7713b1edbc 834 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 835 * \param pCb Pointer to discovery control block.
AnnaBridge 171:3a7713b1edbc 836 *
AnnaBridge 171:3a7713b1edbc 837 * \return None.
AnnaBridge 171:3a7713b1edbc 838 */
AnnaBridge 171:3a7713b1edbc 839 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 840 void AttcDiscCharStart(dmConnId_t connId, attcDiscCb_t *pCb);
AnnaBridge 171:3a7713b1edbc 841
AnnaBridge 171:3a7713b1edbc 842 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 843 /*!
AnnaBridge 171:3a7713b1edbc 844 * \fn AttcDiscCharCmpl
AnnaBridge 171:3a7713b1edbc 845 *
AnnaBridge 171:3a7713b1edbc 846 * \brief This utility function processes a characteristic discovery result. It should be
AnnaBridge 171:3a7713b1edbc 847 * called when an ATTC_READ_BY_TYPE_RSP or ATTC_FIND_INFO_RSP callback event is
AnnaBridge 171:3a7713b1edbc 848 * received after characteristic discovery is initiated by calling AttcDiscCharStart().
AnnaBridge 171:3a7713b1edbc 849 *
AnnaBridge 171:3a7713b1edbc 850 * \param pCb Pointer to discovery control block.
AnnaBridge 171:3a7713b1edbc 851 * \param pMsg ATT callback event message.
AnnaBridge 171:3a7713b1edbc 852 *
AnnaBridge 171:3a7713b1edbc 853 * \return ATT_CONTINUING if successful and the discovery procedure is continuing.
AnnaBridge 171:3a7713b1edbc 854 * ATT_SUCCESS if the discovery procedure completed successfully.
AnnaBridge 171:3a7713b1edbc 855 * Otherwise the discovery procedure failed.
AnnaBridge 171:3a7713b1edbc 856 */
AnnaBridge 171:3a7713b1edbc 857 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 858 uint8_t AttcDiscCharCmpl(attcDiscCb_t *pCb, attEvt_t *pMsg);
AnnaBridge 171:3a7713b1edbc 859
AnnaBridge 171:3a7713b1edbc 860 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 861 /*!
AnnaBridge 171:3a7713b1edbc 862 * \fn AttcDiscConfigStart
AnnaBridge 171:3a7713b1edbc 863 *
AnnaBridge 171:3a7713b1edbc 864 * \brief This utility function starts characteristic configuration for characteristics on a
AnnaBridge 171:3a7713b1edbc 865 * peer device. The characteristics must have been previously discovered by calling
AnnaBridge 171:3a7713b1edbc 866 * AttcDiscCharStart() and AttcDiscCharCmpl().
AnnaBridge 171:3a7713b1edbc 867 *
AnnaBridge 171:3a7713b1edbc 868 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 869 * \param pCb Pointer to discovery control block.
AnnaBridge 171:3a7713b1edbc 870 *
AnnaBridge 171:3a7713b1edbc 871 * \return ATT_CONTINUING if successful and configuration procedure is continuing.
AnnaBridge 171:3a7713b1edbc 872 * ATT_SUCCESS if nothing to configure.
AnnaBridge 171:3a7713b1edbc 873 */
AnnaBridge 171:3a7713b1edbc 874 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 875 uint8_t AttcDiscConfigStart(dmConnId_t connId, attcDiscCb_t *pCb);
AnnaBridge 171:3a7713b1edbc 876
AnnaBridge 171:3a7713b1edbc 877 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 878 /*!
AnnaBridge 171:3a7713b1edbc 879 * \fn AttcDiscConfigCmpl
AnnaBridge 171:3a7713b1edbc 880 *
AnnaBridge 171:3a7713b1edbc 881 * \brief This utility function initiates the next characteristic configuration procedure.
AnnaBridge 171:3a7713b1edbc 882 * It should be called when an ATTC_READ_RSP or ATTC_WRITE_RSP callback event is received
AnnaBridge 171:3a7713b1edbc 883 * after characteristic configuration is initiated by calling AttcDiscConfigStart().
AnnaBridge 171:3a7713b1edbc 884 *
AnnaBridge 171:3a7713b1edbc 885 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 886 * \param pCb Pointer to discovery control block.
AnnaBridge 171:3a7713b1edbc 887 *
AnnaBridge 171:3a7713b1edbc 888 * \return ATT_CONTINUING if successful and configuration procedure is continuing.
AnnaBridge 171:3a7713b1edbc 889 * ATT_SUCCESS if configuration procedure completed successfully.
AnnaBridge 171:3a7713b1edbc 890 */
AnnaBridge 171:3a7713b1edbc 891 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 892 uint8_t AttcDiscConfigCmpl(dmConnId_t connId, attcDiscCb_t *pCb);
AnnaBridge 171:3a7713b1edbc 893
AnnaBridge 171:3a7713b1edbc 894 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 895 /*!
AnnaBridge 171:3a7713b1edbc 896 * \fn AttcDiscConfigResume
AnnaBridge 171:3a7713b1edbc 897 *
AnnaBridge 171:3a7713b1edbc 898 * \brief This utility function resumes the characteristic configuration procedure. It can
AnnaBridge 171:3a7713b1edbc 899 * be called when an ATTC_READ_RSP or ATTC_WRITE_RSP callback event is received
AnnaBridge 171:3a7713b1edbc 900 * with failure status to attempt the read or write procedure again.
AnnaBridge 171:3a7713b1edbc 901 *
AnnaBridge 171:3a7713b1edbc 902 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 903 * \param pCb Pointer to discovery control block.
AnnaBridge 171:3a7713b1edbc 904 *
AnnaBridge 171:3a7713b1edbc 905 * \return ATT_CONTINUING if successful and configuration procedure is continuing.
AnnaBridge 171:3a7713b1edbc 906 * ATT_SUCCESS if configuration procedure completed successfully.
AnnaBridge 171:3a7713b1edbc 907 */
AnnaBridge 171:3a7713b1edbc 908 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 909 uint8_t AttcDiscConfigResume(dmConnId_t connId, attcDiscCb_t *pCb);
AnnaBridge 171:3a7713b1edbc 910
AnnaBridge 171:3a7713b1edbc 911 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 912 /*!
AnnaBridge 171:3a7713b1edbc 913 * \fn AttcMtuReq
AnnaBridge 171:3a7713b1edbc 914 *
AnnaBridge 171:3a7713b1edbc 915 * \brief For internal use only.
AnnaBridge 171:3a7713b1edbc 916 *
AnnaBridge 171:3a7713b1edbc 917 * \param connId DM connection ID.
AnnaBridge 171:3a7713b1edbc 918 * \param mtu Attribute protocol MTU.
AnnaBridge 171:3a7713b1edbc 919 *
AnnaBridge 171:3a7713b1edbc 920 * \return None.
AnnaBridge 171:3a7713b1edbc 921 */
AnnaBridge 171:3a7713b1edbc 922 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 923 void AttcMtuReq(dmConnId_t connId, uint16_t mtu);
AnnaBridge 171:3a7713b1edbc 924
AnnaBridge 171:3a7713b1edbc 925 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 926 /*!
AnnaBridge 171:3a7713b1edbc 927 * \fn AttsErrorTest
AnnaBridge 171:3a7713b1edbc 928 *
AnnaBridge 171:3a7713b1edbc 929 * \brief For testing purposes only.
AnnaBridge 171:3a7713b1edbc 930 *
AnnaBridge 171:3a7713b1edbc 931 * \param status ATT status
AnnaBridge 171:3a7713b1edbc 932 *
AnnaBridge 171:3a7713b1edbc 933 * \return None.
AnnaBridge 171:3a7713b1edbc 934 */
AnnaBridge 171:3a7713b1edbc 935 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 936 void AttsErrorTest(uint8_t status);
AnnaBridge 171:3a7713b1edbc 937
AnnaBridge 171:3a7713b1edbc 938 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 939 };
AnnaBridge 171:3a7713b1edbc 940 #endif
AnnaBridge 171:3a7713b1edbc 941
AnnaBridge 171:3a7713b1edbc 942 #endif /* ATT_API_H */