| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | /******************************************************************************
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *  Copyright (C) 2003-2013 Broadcom Corporation | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *  Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  |  *  you may not use this file except in compliance with the License. | 
					
						
							|  |  |  |  *  You may obtain a copy of the License at: | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *  http://www.apache.org/licenses/LICENSE-2.0
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *  Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  |  *  distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  |  *  See the License for the specific language governing permissions and | 
					
						
							|  |  |  |  *  limitations under the License. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  ******************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /******************************************************************************
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *  This is the public interface file for BTA GATT. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  ******************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef BTA_GATT_API_H
 | 
					
						
							|  |  |  | #define BTA_GATT_API_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "bta_api.h"
 | 
					
						
							|  |  |  | #include "gatt_api.h"
 | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | #include "list.h"
 | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifndef     BTA_GATT_INCLUDED
 | 
					
						
							|  |  |  | #warning BTA_GATT_INCLUDED not defined
 | 
					
						
							|  |  |  | #define     BTA_GATT_INCLUDED     FALSE
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if ((BLE_INCLUDED == FALSE) && (BTA_GATT_INCLUDED == TRUE))
 | 
					
						
							|  |  |  | #undef BTA_GATT_INCLUDED
 | 
					
						
							|  |  |  | #define BTA_GATT_INCLUDED        FALSE
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef     BTA_GATT_DEBUG
 | 
					
						
							|  |  |  | #define     BTA_GATT_DEBUG       FALSE
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | typedef enum { | 
					
						
							|  |  |  |     BTGATT_DB_PRIMARY_SERVICE, | 
					
						
							|  |  |  |     BTGATT_DB_SECONDARY_SERVICE, | 
					
						
							|  |  |  |     BTGATT_DB_CHARACTERISTIC, | 
					
						
							|  |  |  |     BTGATT_DB_DESCRIPTOR, | 
					
						
							|  |  |  |     BTGATT_DB_INCLUDED_SERVICE, | 
					
						
							|  |  |  | }bt_gatt_db_attribute_type_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef enum { | 
					
						
							|  |  |  |     GATT_OP_GET_SVC_BY_UUID, | 
					
						
							|  |  |  |     GATT_OP_GET_ALL_CHAR, | 
					
						
							|  |  |  |     GATT_OP_GET_ALL_DESCRI, | 
					
						
							|  |  |  |     GATT_OP_GET_CHAR_BY_UUID, | 
					
						
							|  |  |  |     GATT_OP_GET_DESCRI_BY_UUID, | 
					
						
							|  |  |  |     GATT_OP_GET_DESCRI_BY_HANDLE, | 
					
						
							|  |  |  |     GATT_OP_GET_INCLUDE_SVC, | 
					
						
							|  |  |  | }bt_gatt_get_db_op_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     bt_gatt_db_attribute_type_t type; | 
					
						
							|  |  |  |     UINT16                      attribute_handle; | 
					
						
							|  |  |  |     UINT16                      start_handle; | 
					
						
							|  |  |  |     UINT16                      end_handle; | 
					
						
							|  |  |  |     UINT16                      id; | 
					
						
							|  |  |  |     UINT8                       properties; | 
					
						
							|  |  |  |     bt_uuid_t                   uuid; | 
					
						
							|  |  |  | }btgatt_db_element_t; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | /*****************************************************************************
 | 
					
						
							|  |  |  | **  Constants and data types | 
					
						
							|  |  |  | *****************************************************************************/ | 
					
						
							|  |  |  | /**************************
 | 
					
						
							|  |  |  | **  Common Definitions | 
					
						
							|  |  |  | ***************************/ | 
					
						
							|  |  |  | /* GATT ID */ | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBT_UUID    uuid;           /* uuid of the attribute */ | 
					
						
							|  |  |  |     UINT8       inst_id;        /* instance ID */ | 
					
						
							|  |  |  | } __attribute__((packed)) tBTA_GATT_ID; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  | /* relate to ESP_GATT_xxx in esp_gatt_def.h */ | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | /* Success code and error codes */ | 
					
						
							|  |  |  | #define  BTA_GATT_OK                        GATT_SUCCESS
 | 
					
						
							|  |  |  | #define  BTA_GATT_INVALID_HANDLE            GATT_INVALID_HANDLE                /* 0x0001 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_READ_NOT_PERMIT           GATT_READ_NOT_PERMIT               /* 0x0002 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_WRITE_NOT_PERMIT          GATT_WRITE_NOT_PERMIT              /* 0x0003 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_INVALID_PDU               GATT_INVALID_PDU                   /* 0x0004 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_INSUF_AUTHENTICATION      GATT_INSUF_AUTHENTICATION          /* 0x0005 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_REQ_NOT_SUPPORTED         GATT_REQ_NOT_SUPPORTED             /* 0x0006 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_INVALID_OFFSET            GATT_INVALID_OFFSET                /* 0x0007 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_INSUF_AUTHORIZATION       GATT_INSUF_AUTHORIZATION           /* 0x0008 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_PREPARE_Q_FULL            GATT_PREPARE_Q_FULL                /* 0x0009 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_NOT_FOUND                 GATT_NOT_FOUND                     /* 0x000a */
 | 
					
						
							|  |  |  | #define  BTA_GATT_NOT_LONG                  GATT_NOT_LONG                      /* 0x000b */
 | 
					
						
							|  |  |  | #define  BTA_GATT_INSUF_KEY_SIZE            GATT_INSUF_KEY_SIZE                /* 0x000c */
 | 
					
						
							|  |  |  | #define  BTA_GATT_INVALID_ATTR_LEN          GATT_INVALID_ATTR_LEN              /* 0x000d */
 | 
					
						
							|  |  |  | #define  BTA_GATT_ERR_UNLIKELY              GATT_ERR_UNLIKELY                  /* 0x000e */
 | 
					
						
							|  |  |  | #define  BTA_GATT_INSUF_ENCRYPTION          GATT_INSUF_ENCRYPTION              /* 0x000f */
 | 
					
						
							|  |  |  | #define  BTA_GATT_UNSUPPORT_GRP_TYPE        GATT_UNSUPPORT_GRP_TYPE            /* 0x0010 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_INSUF_RESOURCE            GATT_INSUF_RESOURCE                /* 0x0011 */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define  BTA_GATT_NO_RESOURCES              GATT_NO_RESOURCES                  /* 0x80 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_INTERNAL_ERROR            GATT_INTERNAL_ERROR                /* 0x81 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_WRONG_STATE               GATT_WRONG_STATE                   /* 0x82 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_DB_FULL                   GATT_DB_FULL                       /* 0x83 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_BUSY                      GATT_BUSY                          /* 0x84 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_ERROR                     GATT_ERROR                         /* 0x85 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_CMD_STARTED               GATT_CMD_STARTED                   /* 0x86 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_ILLEGAL_PARAMETER         GATT_ILLEGAL_PARAMETER             /* 0x87 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_PENDING                   GATT_PENDING                       /* 0x88 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_AUTH_FAIL                 GATT_AUTH_FAIL                     /* 0x89 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_MORE                      GATT_MORE                          /* 0x8a */
 | 
					
						
							|  |  |  | #define  BTA_GATT_INVALID_CFG               GATT_INVALID_CFG                   /* 0x8b */
 | 
					
						
							|  |  |  | #define  BTA_GATT_SERVICE_STARTED           GATT_SERVICE_STARTED               /* 0x8c */
 | 
					
						
							|  |  |  | #define  BTA_GATT_ENCRYPED_MITM             GATT_ENCRYPED_MITM                 /* GATT_SUCCESS */
 | 
					
						
							|  |  |  | #define  BTA_GATT_ENCRYPED_NO_MITM          GATT_ENCRYPED_NO_MITM              /* 0x8d */
 | 
					
						
							|  |  |  | #define  BTA_GATT_NOT_ENCRYPTED             GATT_NOT_ENCRYPTED                 /* 0x8e */
 | 
					
						
							|  |  |  | #define  BTA_GATT_CONGESTED                 GATT_CONGESTED                     /* 0x8f */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  | #define  BTA_GATT_DUP_REG                   GATT_DUP_REG                       /* 0x90 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_ALREADY_OPEN              GATT_ALREADY_OPEN                  /* 0x91 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_CANCEL                    GATT_CANCEL                        /* 0x92 */
 | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* 0xE0 ~ 0xFC reserved for future use */ | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  | #define  BTA_GATT_STACK_RSP                 GATT_STACK_RSP                    /* 0xE0 */
 | 
					
						
							|  |  |  | #define  BTA_GATT_APP_RSP                   GATT_APP_RSP                      /* 0xE1 */
 | 
					
						
							|  |  |  | //Error caused by customer application or stack bug
 | 
					
						
							|  |  |  | #define  BTA_GATT_UNKNOWN_ERROR             GATT_UNKNOWN_ERROR                /* 0XEF */
 | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  |                                              /* 0xE0 ~ 0xFC reserved for future use */ | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  | #define  BTA_GATT_CCC_CFG_ERR               GATT_CCC_CFG_ERR     /* 0xFD Client Characteristic Configuration Descriptor Improperly Configured */
 | 
					
						
							|  |  |  | #define  BTA_GATT_PRC_IN_PROGRESS           GATT_PRC_IN_PROGRESS /* 0xFE Procedure Already in progress */
 | 
					
						
							|  |  |  | #define  BTA_GATT_OUT_OF_RANGE              GATT_OUT_OF_RANGE    /* 0xFFAttribute value out of range */
 | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef UINT8 tBTA_GATT_STATUS; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BTA_GATT_INVALID_CONN_ID   GATT_INVALID_CONN_ID
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Client callback function events */ | 
					
						
							|  |  |  | #define BTA_GATTC_REG_EVT               0   /* GATT client is registered. */
 | 
					
						
							|  |  |  | #define BTA_GATTC_DEREG_EVT             1   /* GATT client deregistered event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_OPEN_EVT              2   /* GATTC open request status  event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_READ_CHAR_EVT         3   /* GATT read characteristic event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_WRITE_CHAR_EVT        4   /* GATT write characteristic or char descriptor event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_CLOSE_EVT             5   /* GATTC  close request status event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_SEARCH_CMPL_EVT       6   /* GATT discovery complete event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_SEARCH_RES_EVT        7   /* GATT discovery result event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_READ_DESCR_EVT        8   /* GATT read characterisitc descriptor event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_WRITE_DESCR_EVT       9   /* GATT write characteristic descriptor event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_NOTIF_EVT             10  /* GATT attribute notification event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_PREP_WRITE_EVT        11  /* GATT prepare write  event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_EXEC_EVT              12  /* execute write complete event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_ACL_EVT               13  /* ACL up event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_CANCEL_OPEN_EVT       14  /* cancel open event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_SRVC_CHG_EVT          15  /* service change event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_LISTEN_EVT            16  /* listen event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_ENC_CMPL_CB_EVT       17  /* encryption complete callback event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_CFG_MTU_EVT           18  /* configure MTU complete event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_ADV_DATA_EVT          19  /* ADV data event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_MULT_ADV_ENB_EVT      20  /* Enable Multi ADV event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_MULT_ADV_UPD_EVT      21  /* Update parameter event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_MULT_ADV_DATA_EVT     22  /* Multi ADV data event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_MULT_ADV_DIS_EVT      23  /* Disable Multi ADV event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_CONGEST_EVT           24  /* Congestion event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_BTH_SCAN_ENB_EVT      25 /* Enable batch scan event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_BTH_SCAN_CFG_EVT      26 /* Config storage event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_BTH_SCAN_RD_EVT       27 /* Batch scan reports read event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_BTH_SCAN_THR_EVT      28 /* Batch scan threshold event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_BTH_SCAN_PARAM_EVT    29 /* Batch scan param event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_BTH_SCAN_DIS_EVT      30 /* Disable batch scan event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_SCAN_FLT_CFG_EVT      31 /* Scan filter config event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_SCAN_FLT_PARAM_EVT    32 /* Param filter event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_SCAN_FLT_STATUS_EVT   33 /* Filter status event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_ADV_VSC_EVT           34 /* ADV VSC event */
 | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  | #define BTA_GATTC_CONNECT_EVT           35 /* GATTC CONNECT  event */
 | 
					
						
							|  |  |  | #define BTA_GATTC_DISCONNECT_EVT        36 /* GATTC DISCONNECT  event */
 | 
					
						
							| 
									
										
										
										
											2017-10-13 22:07:41 +03:00
										 |  |  | #define BTA_GATTC_READ_MUTIPLE_EVT      37 /* GATTC Read mutiple event */
 | 
					
						
							| 
									
										
										
										
											2017-11-23 23:26:53 +01:00
										 |  |  | #define BTA_GATTC_QUEUE_FULL_EVT        38 /* GATTC queue full event */
 | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef UINT8 tBTA_GATTC_EVT; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef tGATT_IF tBTA_GATTC_IF; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16              unit;       /* as UUIUD defined by SIG */ | 
					
						
							|  |  |  |     UINT16              descr;      /* as UUID as defined by SIG */ | 
					
						
							|  |  |  |     tGATT_FORMAT        format; | 
					
						
							|  |  |  |     INT8                exp; | 
					
						
							|  |  |  |     UINT8               name_spc;   /* The name space of the description */ | 
					
						
							|  |  |  | } tBTA_GATT_CHAR_PRES; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BTA_GATT_CLT_CONFIG_NONE               GATT_CLT_CONFIG_NONE         /* 0x0000    */
 | 
					
						
							|  |  |  | #define BTA_GATT_CLT_CONFIG_NOTIFICATION       GATT_CLT_CONFIG_NOTIFICATION /* 0x0001 */
 | 
					
						
							|  |  |  | #define BTA_GATT_CLT_CONFIG_INDICATION         GATT_CLT_CONFIG_INDICATION   /* 0x0002 */
 | 
					
						
							|  |  |  | typedef UINT16  tBTA_GATT_CLT_CHAR_CONFIG; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* characteristic descriptor: server configuration value
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | #define BTA_GATT_SVR_CONFIG_NONE            GATT_SVR_CONFIG_NONE            /* 0x0000 */
 | 
					
						
							|  |  |  | #define BTA_GATT_SVR_CONFIG_BROADCAST       GATT_SVR_CONFIG_BROADCAST       /* 0x0001 */
 | 
					
						
							|  |  |  | typedef UINT16  tBTA_GATT_SVR_CHAR_CONFIG; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Characteristic Aggregate Format attribute value
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | #define BTA_GATT_AGGR_HANDLE_NUM_MAX        10
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT8                   num_handle; | 
					
						
							|  |  |  |     UINT16                  handle_list[BTA_GATT_AGGR_HANDLE_NUM_MAX]; | 
					
						
							|  |  |  | } tBTA_GATT_CHAR_AGGRE; | 
					
						
							|  |  |  | typedef tGATT_VALID_RANGE           tBTA_GATT_VALID_RANGE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16  len; | 
					
						
							|  |  |  |     UINT8   *p_value; | 
					
						
							|  |  |  | } tBTA_GATT_UNFMT; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BTA_GATT_MAX_ATTR_LEN       GATT_MAX_ATTR_LEN
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BTA_GATTC_TYPE_WRITE             GATT_WRITE
 | 
					
						
							|  |  |  | #define BTA_GATTC_TYPE_WRITE_NO_RSP      GATT_WRITE_NO_RSP
 | 
					
						
							|  |  |  | typedef UINT8 tBTA_GATTC_WRITE_TYPE; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  | /* relate to ESP_GATT_CONN_xxx in esp_gatt_defs.h */ | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | #define BTA_GATT_CONN_UNKNOWN                   0
 | 
					
						
							|  |  |  | #define BTA_GATT_CONN_L2C_FAILURE               GATT_CONN_L2C_FAILURE         /* general l2cap resource failure */
 | 
					
						
							|  |  |  | #define BTA_GATT_CONN_TIMEOUT                   GATT_CONN_TIMEOUT             /* 0x08 connection timeout  */
 | 
					
						
							|  |  |  | #define BTA_GATT_CONN_TERMINATE_PEER_USER       GATT_CONN_TERMINATE_PEER_USER /* 0x13 connection terminate by peer user  */
 | 
					
						
							|  |  |  | #define BTA_GATT_CONN_TERMINATE_LOCAL_HOST      GATT_CONN_TERMINATE_LOCAL_HOST/* 0x16 connectionterminated by local host  */
 | 
					
						
							|  |  |  | #define BTA_GATT_CONN_FAIL_ESTABLISH            GATT_CONN_FAIL_ESTABLISH      /* 0x03E connection fail to establish  */
 | 
					
						
							|  |  |  | #define BTA_GATT_CONN_LMP_TIMEOUT               GATT_CONN_LMP_TIMEOUT          /* 0x22 connection fail for LMP response tout */
 | 
					
						
							|  |  |  | #define BTA_GATT_CONN_CANCEL                    GATT_CONN_CANCEL               /* 0x0100 L2CAP connection cancelled  */
 | 
					
						
							|  |  |  | #define BTA_GATT_CONN_NONE                      0x0101                          /* 0x0101 no connection to cancel  */
 | 
					
						
							|  |  |  | typedef UINT16 tBTA_GATT_REASON; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATT_ID        id; | 
					
						
							|  |  |  |     BOOLEAN             is_primary; | 
					
						
							|  |  |  | } tBTA_GATT_SRVC_ID; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BTA_GATTC_MULTI_MAX    GATT_MAX_READ_MULTI_HANDLES
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT8                       num_attr; | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  |     UINT16                      handles[BTA_GATTC_MULTI_MAX]; | 
					
						
							|  |  |  | }tBTA_GATTC_MULTI; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  | /* relate to ESP_GATT_xxx in esp_gatt_def.h */ | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | #define BTA_GATT_AUTH_REQ_NONE           GATT_AUTH_REQ_NONE
 | 
					
						
							|  |  |  | #define BTA_GATT_AUTH_REQ_NO_MITM        GATT_AUTH_REQ_NO_MITM            /* unauthenticated encryption */
 | 
					
						
							|  |  |  | #define BTA_GATT_AUTH_REQ_MITM           GATT_AUTH_REQ_MITM               /* authenticated encryption */
 | 
					
						
							|  |  |  | #define BTA_GATT_AUTH_REQ_SIGNED_NO_MITM GATT_AUTH_REQ_SIGNED_NO_MITM
 | 
					
						
							|  |  |  | #define BTA_GATT_AUTH_REQ_SIGNED_MITM    GATT_AUTH_REQ_SIGNED_MITM
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef tGATT_AUTH_REQ tBTA_GATT_AUTH_REQ; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum { | 
					
						
							|  |  |  |     BTA_GATTC_ATTR_TYPE_INCL_SRVC, | 
					
						
							|  |  |  |     BTA_GATTC_ATTR_TYPE_CHAR, | 
					
						
							|  |  |  |     BTA_GATTC_ATTR_TYPE_CHAR_DESCR, | 
					
						
							|  |  |  |     BTA_GATTC_ATTR_TYPE_SRVC | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | typedef UINT8 tBTA_GATTC_ATTR_TYPE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBT_UUID    uuid; | 
					
						
							|  |  |  |     UINT16      s_handle; | 
					
						
							|  |  |  |     UINT16      e_handle;   /* used for service only */ | 
					
						
							|  |  |  |     UINT8       attr_type; | 
					
						
							|  |  |  |     UINT8       id; | 
					
						
							|  |  |  |     UINT8       prop;       /* used when attribute type is characteristic */ | 
					
						
							|  |  |  |     BOOLEAN     is_primary; /* used when attribute type is service */ | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  |     UINT16      incl_srvc_handle; /* used when attribute type is included service */ | 
					
						
							|  |  |  | }tBTA_GATTC_NV_ATTR; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* callback data structure */ | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  |     tBTA_GATTC_IF       client_if; | 
					
						
							|  |  |  |     tBT_UUID            app_uuid; | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | }tBTA_GATTC_REG; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16              conn_id; | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  |     UINT16              handle; | 
					
						
							|  |  |  |     tBTA_GATT_UNFMT  *p_value; | 
					
						
							|  |  |  | }tBTA_GATTC_READ; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16              conn_id; | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  |     UINT16              handle; | 
					
						
							| 
									
										
										
										
											2017-11-23 23:26:53 +01:00
										 |  |  |     UINT16              offset; | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | }tBTA_GATTC_WRITE; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16              conn_id; | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  | } tBTA_GATTC_EXEC_CMPL; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16              conn_id; | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  | } tBTA_GATTC_SEARCH_CMPL; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16              conn_id; | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  |     UINT16              start_handle; | 
					
						
							|  |  |  |     UINT16              end_handle; | 
					
						
							|  |  |  |     tBTA_GATT_ID        service_uuid; | 
					
						
							|  |  |  | }tBTA_GATTC_SRVC_RES; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16              conn_id; | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  |     UINT16              mtu; | 
					
						
							|  |  |  | } tBTA_GATTC_CFG_MTU; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  |     UINT16              conn_id; | 
					
						
							|  |  |  |     tBTA_GATTC_IF       client_if; | 
					
						
							|  |  |  |     BD_ADDR             remote_bda; | 
					
						
							|  |  |  |     tBTA_TRANSPORT      transport; | 
					
						
							|  |  |  |     UINT16              mtu; | 
					
						
							|  |  |  | } tBTA_GATTC_OPEN; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  |     UINT16              conn_id; | 
					
						
							|  |  |  |     tBTA_GATTC_IF       client_if; | 
					
						
							|  |  |  |     BD_ADDR             remote_bda; | 
					
						
							|  |  |  |     tBTA_GATT_REASON    reason;         /* disconnect reason code, not useful when connect event is reported */ | 
					
						
							|  |  |  | } tBTA_GATTC_CLOSE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16              conn_id; | 
					
						
							|  |  |  |     BD_ADDR             bda; | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  |     UINT16              handle; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  |     UINT16              len; | 
					
						
							|  |  |  |     UINT8               value[BTA_GATT_MAX_ATTR_LEN]; | 
					
						
							|  |  |  |     BOOLEAN             is_notify; | 
					
						
							|  |  |  | } tBTA_GATTC_NOTIFY; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16 conn_id; | 
					
						
							|  |  |  |     BOOLEAN congested; /* congestion indicator */ | 
					
						
							|  |  |  | } tBTA_GATTC_CONGEST; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-23 23:26:53 +01:00
										 |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATT_STATUS status; | 
					
						
							|  |  |  |     UINT16 conn_id; | 
					
						
							|  |  |  |     BOOLEAN is_full; | 
					
						
							|  |  |  | } tBTA_GATTC_QUEUE_FULL; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATT_STATUS        status; | 
					
						
							|  |  |  |     tBTA_GATTC_IF           client_if; | 
					
						
							|  |  |  |     UINT16                  conn_id; | 
					
						
							|  |  |  |     BD_ADDR                 remote_bda; | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | }tBTA_GATTC_OPEN_CLOSE; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATTC_IF           client_if; | 
					
						
							|  |  |  |     BD_ADDR                 remote_bda; | 
					
						
							|  |  |  | } tBTA_GATTC_ENC_CMPL_CB; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16              conn_id; | 
					
						
							|  |  |  |     tBTA_GATTC_IF       client_if; | 
					
						
							|  |  |  |     BD_ADDR             remote_bda; | 
					
						
							|  |  |  | } tBTA_GATTC_CONNECT; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							| 
									
										
										
										
											2017-11-23 23:26:53 +01:00
										 |  |  |     tGATT_DISCONN_REASON reason; | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  |     UINT16              conn_id; | 
					
						
							|  |  |  |     tBTA_GATTC_IF       client_if; | 
					
						
							|  |  |  |     BD_ADDR             remote_bda; | 
					
						
							|  |  |  | } tBTA_GATTC_DISCONNECT; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | typedef union { | 
					
						
							|  |  |  |     tBTA_GATT_STATUS        status; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     tBTA_GATTC_SEARCH_CMPL  search_cmpl;          /* discovery complete */ | 
					
						
							|  |  |  |     tBTA_GATTC_SRVC_RES     srvc_res;          /* discovery result */ | 
					
						
							|  |  |  |     tBTA_GATTC_REG          reg_oper;              /* registration data */ | 
					
						
							|  |  |  |     tBTA_GATTC_OPEN         open; | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  |     tBTA_GATTC_CONNECT      connect; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  |     tBTA_GATTC_CLOSE        close; | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  |     tBTA_GATTC_DISCONNECT   disconnect; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  |     tBTA_GATTC_READ         read;             /* read attribute/descriptor data */ | 
					
						
							|  |  |  |     tBTA_GATTC_WRITE        write;            /* write complete data */ | 
					
						
							|  |  |  |     tBTA_GATTC_EXEC_CMPL    exec_cmpl;       /*  execute complete */ | 
					
						
							|  |  |  |     tBTA_GATTC_NOTIFY       notify;           /* notification/indication event data */ | 
					
						
							|  |  |  |     tBTA_GATTC_ENC_CMPL_CB  enc_cmpl; | 
					
						
							|  |  |  |     BD_ADDR                 remote_bda;     /* service change event */ | 
					
						
							|  |  |  |     tBTA_GATTC_CFG_MTU      cfg_mtu;        /* configure MTU operation */ | 
					
						
							|  |  |  |     tBTA_GATTC_CONGEST      congest; | 
					
						
							| 
									
										
										
										
											2017-11-23 23:26:53 +01:00
										 |  |  |     tBTA_GATTC_QUEUE_FULL   queue_full; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | } tBTA_GATTC; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* GATTC enable callback function */ | 
					
						
							|  |  |  | typedef void (tBTA_GATTC_ENB_CBACK)(tBTA_GATT_STATUS status); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Client callback function */ | 
					
						
							|  |  |  | typedef void (tBTA_GATTC_CBACK)(tBTA_GATTC_EVT event, tBTA_GATTC *p_data); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* GATT Server Data Structure */ | 
					
						
							|  |  |  | /* Server callback function events */ | 
					
						
							|  |  |  | #define BTA_GATTS_REG_EVT                               0
 | 
					
						
							|  |  |  | #define BTA_GATTS_READ_EVT                              GATTS_REQ_TYPE_READ         /* 1 */
 | 
					
						
							|  |  |  | #define BTA_GATTS_WRITE_EVT                             GATTS_REQ_TYPE_WRITE        /* 2 */
 | 
					
						
							|  |  |  | #define BTA_GATTS_EXEC_WRITE_EVT                        GATTS_REQ_TYPE_WRITE_EXEC   /* 3 */
 | 
					
						
							|  |  |  | #define BTA_GATTS_MTU_EVT                               GATTS_REQ_TYPE_MTU          /* 4 */
 | 
					
						
							|  |  |  | #define BTA_GATTS_CONF_EVT                              GATTS_REQ_TYPE_CONF         /* 5 */
 | 
					
						
							|  |  |  | #define BTA_GATTS_DEREG_EVT                             6
 | 
					
						
							|  |  |  | #define BTA_GATTS_CREATE_EVT                            7
 | 
					
						
							|  |  |  | #define BTA_GATTS_ADD_INCL_SRVC_EVT                     8
 | 
					
						
							|  |  |  | #define BTA_GATTS_ADD_CHAR_EVT                          9
 | 
					
						
							|  |  |  | #define BTA_GATTS_ADD_CHAR_DESCR_EVT                    10
 | 
					
						
							|  |  |  | #define BTA_GATTS_DELELTE_EVT                           11
 | 
					
						
							|  |  |  | #define BTA_GATTS_START_EVT                             12
 | 
					
						
							|  |  |  | #define BTA_GATTS_STOP_EVT                              13
 | 
					
						
							|  |  |  | #define BTA_GATTS_CONNECT_EVT                           14
 | 
					
						
							|  |  |  | #define BTA_GATTS_DISCONNECT_EVT                        15
 | 
					
						
							|  |  |  | #define BTA_GATTS_OPEN_EVT                              16
 | 
					
						
							|  |  |  | #define BTA_GATTS_CANCEL_OPEN_EVT                       17
 | 
					
						
							|  |  |  | #define BTA_GATTS_CLOSE_EVT                             18
 | 
					
						
							|  |  |  | #define BTA_GATTS_LISTEN_EVT                            19
 | 
					
						
							|  |  |  | #define BTA_GATTS_CONGEST_EVT                           20
 | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  | #define BTA_GATTS_SET_ATTR_VAL_EVT                      23
 | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef UINT8  tBTA_GATTS_EVT; | 
					
						
							|  |  |  | typedef tGATT_IF tBTA_GATTS_IF; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Attribute permissions
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | #define BTA_GATT_PERM_READ              GATT_PERM_READ              /* bit 0 -  0x0001 */
 | 
					
						
							|  |  |  | #define BTA_GATT_PERM_READ_ENCRYPTED    GATT_PERM_READ_ENCRYPTED    /* bit 1 -  0x0002 */
 | 
					
						
							|  |  |  | #define BTA_GATT_PERM_READ_ENC_MITM     GATT_PERM_READ_ENC_MITM     /* bit 2 -  0x0004 */
 | 
					
						
							|  |  |  | #define BTA_GATT_PERM_WRITE             GATT_PERM_WRITE             /* bit 4 -  0x0010 */
 | 
					
						
							|  |  |  | #define BTA_GATT_PERM_WRITE_ENCRYPTED   GATT_PERM_WRITE_ENCRYPTED   /* bit 5 -  0x0020 */
 | 
					
						
							|  |  |  | #define BTA_GATT_PERM_WRITE_ENC_MITM    GATT_PERM_WRITE_ENC_MITM    /* bit 6 -  0x0040 */
 | 
					
						
							|  |  |  | #define BTA_GATT_PERM_WRITE_SIGNED      GATT_PERM_WRITE_SIGNED      /* bit 7 -  0x0080 */
 | 
					
						
							|  |  |  | #define BTA_GATT_PERM_WRITE_SIGNED_MITM GATT_PERM_WRITE_SIGNED_MITM /* bit 8 -  0x0100 */
 | 
					
						
							|  |  |  | typedef UINT16 tBTA_GATT_PERM; | 
					
						
							|  |  |  | typedef tGATT_ATTR_VAL tBTA_GATT_ATTR_VAL; | 
					
						
							|  |  |  | typedef tGATTS_ATTR_CONTROL tBTA_GATTS_ATTR_CONTROL; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BTA_GATTS_INVALID_APP   0xff
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BTA_GATTS_INVALID_IF    0
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* definition of characteristic properties */ | 
					
						
							|  |  |  | #define BTA_GATT_CHAR_PROP_BIT_BROADCAST        GATT_CHAR_PROP_BIT_BROADCAST    /* 0x01 */
 | 
					
						
							|  |  |  | #define BTA_GATT_CHAR_PROP_BIT_READ             GATT_CHAR_PROP_BIT_READ         /* 0x02 */
 | 
					
						
							|  |  |  | #define BTA_GATT_CHAR_PROP_BIT_WRITE_NR         GATT_CHAR_PROP_BIT_WRITE_NR     /* 0x04 */
 | 
					
						
							|  |  |  | #define BTA_GATT_CHAR_PROP_BIT_WRITE            GATT_CHAR_PROP_BIT_WRITE        /* 0x08 */
 | 
					
						
							|  |  |  | #define BTA_GATT_CHAR_PROP_BIT_NOTIFY           GATT_CHAR_PROP_BIT_NOTIFY       /* 0x10 */
 | 
					
						
							|  |  |  | #define BTA_GATT_CHAR_PROP_BIT_INDICATE         GATT_CHAR_PROP_BIT_INDICATE     /* 0x20 */
 | 
					
						
							|  |  |  | #define BTA_GATT_CHAR_PROP_BIT_AUTH             GATT_CHAR_PROP_BIT_AUTH         /* 0x40 */
 | 
					
						
							|  |  |  | #define BTA_GATT_CHAR_PROP_BIT_EXT_PROP         GATT_CHAR_PROP_BIT_EXT_PROP     /* 0x80 */
 | 
					
						
							|  |  |  | typedef UINT8 tBTA_GATT_CHAR_PROP; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef BTA_GATTC_CHAR_DESCR_MAX
 | 
					
						
							|  |  |  | #define BTA_GATTC_CHAR_DESCR_MAX        7
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /***********************  NV callback Data Definitions   **********************
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBT_UUID app_uuid128; | 
					
						
							|  |  |  |     tBT_UUID svc_uuid; | 
					
						
							|  |  |  |     UINT16   svc_inst; | 
					
						
							|  |  |  |     UINT16   s_handle; | 
					
						
							|  |  |  |     UINT16   e_handle; | 
					
						
							|  |  |  |     BOOLEAN  is_primary;      /* primary service or secondary */ | 
					
						
							|  |  |  | } tBTA_GATTS_HNDL_RANGE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BTA_GATTS_SRV_CHG_CMD_ADD_CLIENT       GATTS_SRV_CHG_CMD_ADD_CLIENT
 | 
					
						
							|  |  |  | #define BTA_GATTS_SRV_CHG_CMD_UPDATE_CLIENT    GATTS_SRV_CHG_CMD_UPDATE_CLIENT
 | 
					
						
							|  |  |  | #define BTA_GATTS_SRV_CHG_CMD_REMOVE_CLIENT    GATTS_SRV_CHG_CMD_REMOVE_CLIENT
 | 
					
						
							|  |  |  | #define BTA_GATTS_SRV_CHG_CMD_READ_NUM_CLENTS  GATTS_SRV_CHG_CMD_READ_NUM_CLENTS
 | 
					
						
							|  |  |  | #define BTA_GATTS_SRV_CHG_CMD_READ_CLENT       GATTS_SRV_CHG_CMD_READ_CLENT
 | 
					
						
							|  |  |  | typedef tGATTS_SRV_CHG_CMD tBTA_GATTS_SRV_CHG_CMD; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef tGATTS_SRV_CHG     tBTA_GATTS_SRV_CHG; | 
					
						
							|  |  |  | typedef tGATTS_SRV_CHG_REQ tBTA_GATTS_SRV_CHG_REQ; | 
					
						
							|  |  |  | typedef tGATTS_SRV_CHG_RSP tBTA_GATTS_SRV_CHG_RSP; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BTA_GATT_TRANSPORT_LE           GATT_TRANSPORT_LE
 | 
					
						
							|  |  |  | #define BTA_GATT_TRANSPORT_BR_EDR       GATT_TRANSPORT_BR_EDR
 | 
					
						
							|  |  |  | #define BTA_GATT_TRANSPORT_LE_BR_EDR    GATT_TRANSPORT_LE_BR_EDR
 | 
					
						
							|  |  |  | typedef UINT8 tBTA_GATT_TRANSPORT; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* attribute value */ | 
					
						
							|  |  |  | typedef tGATT_VALUE tBTA_GATT_VALUE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* attribute response data */ | 
					
						
							|  |  |  | typedef tGATTS_RSP tBTA_GATTS_RSP; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  | /* relate to ESP_GATT_PREP_WRITE_xxx in esp_gatt_defs.h */ | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | /* attribute request data from the client */ | 
					
						
							|  |  |  | #define BTA_GATT_PREP_WRITE_CANCEL   0x00
 | 
					
						
							|  |  |  | #define BTA_GATT_PREP_WRITE_EXEC     0x01
 | 
					
						
							|  |  |  | typedef tGATT_EXEC_FLAG tBTA_GATT_EXEC_FLAG; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* read request always based on UUID */ | 
					
						
							|  |  |  | typedef tGATT_READ_REQ tBTA_GATT_READ_REQ; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* write request data */ | 
					
						
							|  |  |  | typedef tGATT_WRITE_REQ tBTA_GATT_WRITE_REQ; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* callback data for server access request from client */ | 
					
						
							|  |  |  | typedef tGATTS_DATA tBTA_GATTS_REQ_DATA; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  |     BD_ADDR             remote_bda; | 
					
						
							|  |  |  |     UINT32              trans_id; | 
					
						
							|  |  |  |     UINT16              conn_id; | 
					
						
							|  |  |  |     tBTA_GATTS_REQ_DATA *p_data; | 
					
						
							| 
									
										
										
										
											2017-11-23 23:26:53 +01:00
										 |  |  |     UINT16  data_len; | 
					
						
							|  |  |  |     UINT8   *value; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | } tBTA_GATTS_REQ; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATTS_IF       server_if; | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  |     tBT_UUID            uuid; | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | }tBTA_GATTS_REG_OPER; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATTS_IF       server_if; | 
					
						
							|  |  |  |     UINT16              service_id; | 
					
						
							|  |  |  |     UINT16              svc_instance; | 
					
						
							|  |  |  |     BOOLEAN             is_primary; | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  |     tBT_UUID            uuid; | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | }tBTA_GATTS_CREATE; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATTS_IF       server_if; | 
					
						
							|  |  |  |     UINT16              service_id; | 
					
						
							|  |  |  |     UINT16              attr_id; | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  |     tBT_UUID            char_uuid; | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | }tBTA_GATTS_ADD_RESULT; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | typedef struct{ | 
					
						
							|  |  |  |     tBTA_GATTS_IF       server_if; | 
					
						
							|  |  |  |     UINT16              service_id; | 
					
						
							|  |  |  |     UINT16              attr_id; | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  | }tBAT_GATTS_ATTR_VAL_RESULT; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATTS_IF       server_if; | 
					
						
							|  |  |  |     UINT16              service_id; | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  | } tBTA_GATTS_SRVC_OPER; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATTS_IF       server_if; | 
					
						
							|  |  |  |     BD_ADDR             remote_bda; | 
					
						
							|  |  |  |     UINT16              conn_id; | 
					
						
							|  |  |  |     tBTA_GATT_REASON    reason; /* report disconnect reason */ | 
					
						
							|  |  |  |     tBTA_GATT_TRANSPORT transport; | 
					
						
							|  |  |  | } tBTA_GATTS_CONN; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16 conn_id; | 
					
						
							|  |  |  |     BOOLEAN congested; /* report channel congestion indicator */ | 
					
						
							|  |  |  | } tBTA_GATTS_CONGEST; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16 conn_id; /* connection ID */ | 
					
						
							|  |  |  |     tBTA_GATT_STATUS status; /* notification/indication status */ | 
					
						
							|  |  |  | } tBTA_GATTS_CONF; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  |     UINT16              conn_id;    /* connection ID */ | 
					
						
							|  |  |  | } tBTA_GATTS_CLOSE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  |     tBTA_GATTS_IF       server_if; | 
					
						
							|  |  |  | } tBTA_GATTS_OPEN; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     tBTA_GATT_STATUS    status; | 
					
						
							|  |  |  |     tBTA_GATTS_IF       server_if; | 
					
						
							|  |  |  | } tBTA_GATTS_CANCEL_OPEN; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | /* GATTS callback data */ | 
					
						
							|  |  |  | typedef union { | 
					
						
							|  |  |  |     tBTA_GATTS_REG_OPER         reg_oper; | 
					
						
							|  |  |  |     tBTA_GATTS_CREATE           create; | 
					
						
							|  |  |  |     tBTA_GATTS_SRVC_OPER        srvc_oper; | 
					
						
							|  |  |  |     tBTA_GATT_STATUS            status;         /* BTA_GATTS_LISTEN_EVT */ | 
					
						
							|  |  |  |     tBTA_GATTS_ADD_RESULT       add_result;     /* add included service: BTA_GATTS_ADD_INCL_SRVC_EVT
 | 
					
						
							|  |  |  |                                                 add char : BTA_GATTS_ADD_CHAR_EVT | 
					
						
							|  |  |  |                                                 add char descriptor: BTA_GATTS_ADD_CHAR_DESCR_EVT */ | 
					
						
							|  |  |  |     tBAT_GATTS_ATTR_VAL_RESULT  attr_val; | 
					
						
							|  |  |  |     tBTA_GATTS_REQ              req_data; | 
					
						
							|  |  |  |     tBTA_GATTS_CONN             conn;           /* BTA_GATTS_CONN_EVT */ | 
					
						
							|  |  |  |     tBTA_GATTS_CONGEST          congest;        /* BTA_GATTS_CONGEST_EVT callback data */ | 
					
						
							|  |  |  |     tBTA_GATTS_CONF             confirm;        /* BTA_GATTS_CONF_EVT callback data */ | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  |     tBTA_GATTS_CLOSE            close;          /* BTA_GATTS_CLOSE_EVT callback data */ | 
					
						
							|  |  |  |     tBTA_GATTS_OPEN             open;           /* BTA_GATTS_OPEN_EVT callback data */ | 
					
						
							|  |  |  |     tBTA_GATTS_CANCEL_OPEN      cancel_open;    /* tBTA_GATTS_CANCEL_OPEN callback data */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | } tBTA_GATTS; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-01 08:51:04 +03:00
										 |  |  | /* GATTC wait for service change ccc timer callback data */ | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  |     UINT16 conn_id; | 
					
						
							|  |  |  |     BD_ADDR remote_bda; | 
					
						
							|  |  |  |     UINT8 count; | 
					
						
							|  |  |  |     UINT8 last_status; | 
					
						
							|  |  |  | }tBTA_GATTC_WAIT_CCC_TIMER; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | /* GATTS enable callback function */ | 
					
						
							|  |  |  | typedef void (tBTA_GATTS_ENB_CBACK)(tBTA_GATT_STATUS status); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Server callback function */ | 
					
						
							|  |  |  | typedef void (tBTA_GATTS_CBACK)(tBTA_GATTS_EVT event,  tBTA_GATTS *p_data); | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | typedef struct | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     tBT_UUID                uuid; | 
					
						
							|  |  |  |     BOOLEAN                 is_primary; | 
					
						
							|  |  |  |     UINT16                  handle; | 
					
						
							|  |  |  |     UINT16                  s_handle; | 
					
						
							|  |  |  |     UINT16                  e_handle; | 
					
						
							|  |  |  |     list_t                 *characteristics; /* list of tBTA_GATTC_CHARACTERISTIC */ | 
					
						
							|  |  |  |     list_t                 *included_svc; /* list of tBTA_GATTC_INCLUDED_SVC */ | 
					
						
							|  |  |  | } __attribute__((packed)) tBTA_GATTC_SERVICE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     tBT_UUID                uuid; | 
					
						
							|  |  |  |     UINT16                  handle; | 
					
						
							|  |  |  |     tBTA_GATT_CHAR_PROP     properties; | 
					
						
							|  |  |  |     tBTA_GATTC_SERVICE     *service; /* owning service*/ | 
					
						
							|  |  |  |     list_t                 *descriptors; /* list of tBTA_GATTC_DESCRIPTOR */ | 
					
						
							|  |  |  | } __attribute__((packed)) tBTA_GATTC_CHARACTERISTIC; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     tBT_UUID                    uuid; | 
					
						
							|  |  |  |     UINT16                      handle; | 
					
						
							|  |  |  |     tBTA_GATTC_CHARACTERISTIC  *characteristic; /* owning characteristic */ | 
					
						
							|  |  |  | } __attribute__((packed)) tBTA_GATTC_DESCRIPTOR; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     tBT_UUID                uuid; | 
					
						
							|  |  |  |     UINT16                  handle; | 
					
						
							|  |  |  |     UINT16                  incl_srvc_s_handle; | 
					
						
							|  |  |  |     tBTA_GATTC_SERVICE     *owning_service; /* owning service*/ | 
					
						
							|  |  |  |     tBTA_GATTC_SERVICE     *included_service; | 
					
						
							|  |  |  | } __attribute__((packed)) tBTA_GATTC_INCLUDED_SVC; | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*****************************************************************************
 | 
					
						
							|  |  |  | **  External Function Declarations | 
					
						
							|  |  |  | *****************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**************************
 | 
					
						
							|  |  |  | **  Client Functions | 
					
						
							|  |  |  | ***************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_Disable | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to disable the GATTC module | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       None. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_Disable(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_AppRegister | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to register application callbacks | 
					
						
							|  |  |  | **                    with BTA GATTC module. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       p_app_uuid - applicaiton UUID | 
					
						
							|  |  |  | **                  p_client_cb - pointer to the application callback function. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_AppRegister(tBT_UUID *p_app_uuid, tBTA_GATTC_CBACK *p_client_cb); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_AppDeregister | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to deregister an application | 
					
						
							|  |  |  | **                  from BTA GATTC module. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       client_if - client interface identifier. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_AppDeregister (tBTA_GATTC_IF client_if); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_Open | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      Open a direct connection or add a background auto connection | 
					
						
							|  |  |  | **                  bd address | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       client_if: server interface. | 
					
						
							|  |  |  | **                  remote_bda: remote device BD address. | 
					
						
							|  |  |  | **                  is_direct: direct connection or background auto connection | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_Open(tBTA_GATTC_IF client_if, BD_ADDR remote_bda, | 
					
						
							|  |  |  |                            BOOLEAN is_direct, tBTA_GATT_TRANSPORT transport); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_CancelOpen | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      Open a direct connection or add a background auto connection | 
					
						
							|  |  |  | **                  bd address | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       client_if: server interface. | 
					
						
							|  |  |  | **                  remote_bda: remote device BD address. | 
					
						
							|  |  |  | **                  is_direct: direct connection or background auto connection | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_CancelOpen(tBTA_GATTC_IF client_if, BD_ADDR remote_bda, BOOLEAN is_direct); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_Close | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      Close a connection to a GATT server. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id: connection ID to be closed. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_Close(UINT16 conn_id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_ServiceSearchRequest | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to request a GATT service discovery | 
					
						
							|  |  |  | **                    on a GATT server. This function report service search result | 
					
						
							|  |  |  | **                  by a callback event, and followed by a service search complete | 
					
						
							|  |  |  | **                  event. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id: connection ID. | 
					
						
							|  |  |  | **                  p_srvc_uuid: a UUID of the service application is interested in. | 
					
						
							|  |  |  | **                              If Null, discover for all services. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_ServiceSearchRequest(UINT16 conn_id, tBT_UUID *p_srvc_uuid); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Function         BTA_GATTC_GetServices | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Description      This function is called to find the services on the given server. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id: connection ID which identify the server. | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Returns          returns list_t of tBTA_GATTC_SERVICE or NULL. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | extern const list_t* BTA_GATTC_GetServices(UINT16 conn_id); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Function         BTA_GATTC_GetCharacteristic | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Description      This function is called to find the characteristic on the given server. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id: connection ID which identify the server. | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | **                  handle: characteristic handle | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Returns          returns pointer to tBTA_GATTC_CHARACTERISTIC or NULL. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | extern const tBTA_GATTC_CHARACTERISTIC* BTA_GATTC_GetCharacteristic(UINT16 conn_id, UINT16 handle); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Function         BTA_GATTC_GetDescriptor | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Description      This function is called to find the characteristic on the given server. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id: connection ID which identify the server. | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | **                  handle: descriptor handle | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Returns          returns pointer to tBTA_GATTC_DESCRIPTOR or NULL. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | extern const tBTA_GATTC_DESCRIPTOR* BTA_GATTC_GetDescriptor(UINT16 conn_id, UINT16 handle); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | extern void BTA_GATTC_GetServiceWithUUID(UINT16 conn_id, tBT_UUID *svc_uuid,  | 
					
						
							|  |  |  |                                          btgatt_db_element_t **db, int *count); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | extern void BTA_GATTC_GetAllChar(UINT16 conn_id, UINT16 start_handle, UINT16 end_handle, | 
					
						
							|  |  |  |                                  btgatt_db_element_t **db, int *count); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | extern void BTA_GATTC_GetAllDescriptor(UINT16 conn_id, UINT16 char_handle, | 
					
						
							|  |  |  |                                        btgatt_db_element_t **db, int *count); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void BTA_GATTC_GetCharByUUID(UINT16 conn_id, UINT16 start_handle, UINT16 end_handle, tBT_UUID char_uuid, | 
					
						
							|  |  |  |                                     btgatt_db_element_t **db, int *count); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void BTA_GATTC_GetDescrByUUID(UINT16 conn_id, uint16_t start_handle, uint16_t end_handle, | 
					
						
							|  |  |  |                                      tBT_UUID char_uuid, tBT_UUID descr_uuid, | 
					
						
							|  |  |  |                                      btgatt_db_element_t **db, int *count); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void BTA_GATTC_GetDescrByCharHandle(UINT16 conn_id, UINT16 char_handle, tBT_UUID descr_uuid, | 
					
						
							|  |  |  |                                            btgatt_db_element_t **db, int *count); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void BTA_GATTC_GetIncludeService(UINT16 conn_id, UINT16 start_handle, UINT16 end_handle, | 
					
						
							|  |  |  |                                         tBT_UUID *incl_uuid, btgatt_db_element_t **db, int *count); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void BTA_GATTC_GetDBSize(UINT16 conn_id, UINT16 start_handle, UINT16 end_handle, int *count); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void BTA_GATTC_GetDBSizeByType(UINT16 conn_id, bt_gatt_db_attribute_type_t type, | 
					
						
							|  |  |  |                                       UINT16 start_handle, UINT16 end_handle, UINT16 char_handle, int *count); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Function         BTA_GATTC_GetGattDb | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Description      This function is called to get gatt db. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id: connection ID which identify the server. | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | **                  db: output parameter which will contain gatt db copy. | 
					
						
							|  |  |  | **                      Caller is responsible for freeing it. | 
					
						
							|  |  |  | **                  count: number of elements in db. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | extern void BTA_GATTC_GetGattDb(UINT16 conn_id, UINT16 start_handle, UINT16 end_handle, | 
					
						
							|  |  |  |                                 btgatt_db_element_t **db, int *count); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_ReadCharacteristic | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Description      This function is called to read a characteristics value | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Parameters       conn_id - connectino ID. | 
					
						
							|  |  |  | **                  handle - characteritic handle to read. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | void BTA_GATTC_ReadCharacteristic(UINT16 conn_id, UINT16 handle, tBTA_GATT_AUTH_REQ auth_req); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_ReadCharDescr | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Description      This function is called to read a descriptor value. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id - connection ID. | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | **                  handle - descriptor handle to read. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | void BTA_GATTC_ReadCharDescr (UINT16 conn_id, UINT16 handle, tBTA_GATT_AUTH_REQ auth_req); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_WriteCharValue | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to write characteristic value. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id - connection ID. | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | **                  handle - characteristic handle to write. | 
					
						
							|  |  |  | **                  write_type - type of write. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | **                  len: length of the data to be written. | 
					
						
							|  |  |  | **                  p_value - the value to be written. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | void BTA_GATTC_WriteCharValue ( UINT16 conn_id, | 
					
						
							|  |  |  |                                 UINT16 handle, | 
					
						
							|  |  |  |                                 tBTA_GATTC_WRITE_TYPE  write_type, | 
					
						
							|  |  |  |                                 UINT16 len, | 
					
						
							|  |  |  |                                 UINT8 *p_value, | 
					
						
							|  |  |  |                                 tBTA_GATT_AUTH_REQ auth_req); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_WriteCharDescr | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Description      This function is called to write descriptor value. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id - connection ID | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | **                  handle - descriptor handle to write. | 
					
						
							|  |  |  | **                  write_type - type of write. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | **                  p_value - the value to be written. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | void BTA_GATTC_WriteCharDescr (UINT16 conn_id, | 
					
						
							|  |  |  |                                UINT16 handle, | 
					
						
							|  |  |  |                                tBTA_GATTC_WRITE_TYPE  write_type, | 
					
						
							|  |  |  |                                tBTA_GATT_UNFMT      *p_data, | 
					
						
							|  |  |  |                                tBTA_GATT_AUTH_REQ auth_req); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_SendIndConfirm | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to send handle value confirmation. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id - connection ID. | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | **                  handle - characteristic handle to confirm. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | extern void BTA_GATTC_SendIndConfirm (UINT16 conn_id, UINT16 handle); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_RegisterForNotifications | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to register for notification of a service. | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | ** Parameters       client_if - client interface. | 
					
						
							|  |  |  | **                  remote_bda - target GATT server. | 
					
						
							|  |  |  | **                  handle - GATT characteristic handle. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Returns          OK if registration succeed, otherwise failed. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern tBTA_GATT_STATUS BTA_GATTC_RegisterForNotifications (tBTA_GATTC_IF      client_if, | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  |                                                             BD_ADDR            remote_bda, | 
					
						
							|  |  |  |                                                             UINT16             handle); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_DeregisterForNotifications | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to de-register for notification of a servbice. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       client_if - client interface. | 
					
						
							|  |  |  | **                  remote_bda - target GATT server. | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | **                  handle - GATT characteristic handle. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Returns          OK if deregistration succeed, otherwise failed. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern tBTA_GATT_STATUS BTA_GATTC_DeregisterForNotifications (tBTA_GATTC_IF      client_if, | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  |                                                               BD_ADDR            remote_bda, | 
					
						
							|  |  |  |                                                               UINT16             handle); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_PrepareWrite | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to prepare write a characteristic value. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id - connection ID. | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | **                  handle - GATT characteritic handle. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | **                  offset - offset of the write value. | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  | **                  len - length of the data to be written. | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | **                  p_value - the value to be written. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_PrepareWrite  (UINT16 conn_id, | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  |                                      UINT16 handle, | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  |                                      UINT16 offset, | 
					
						
							|  |  |  |                                      UINT16 len, | 
					
						
							|  |  |  |                                      UINT8 *p_value, | 
					
						
							|  |  |  |                                      tBTA_GATT_AUTH_REQ auth_req); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-05-06 20:29:12 +03:00
										 |  |  | ** Function         BTA_GATTC_PrepareWriteCharDescr | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to prepare write a characteristic descriptor value. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id - connection ID. | 
					
						
							|  |  |  | **                  p_char_descr_id - GATT characteritic descriptor ID of the service. | 
					
						
							|  |  |  | **                  offset - offset of the write value. | 
					
						
							|  |  |  | **                  len: length of the data to be written. | 
					
						
							|  |  |  | **                  p_value - the value to be written. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_PrepareWriteCharDescr  (UINT16 conn_id, | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  |                                               UINT16 handle, | 
					
						
							| 
									
										
										
										
											2017-05-06 20:29:12 +03:00
										 |  |  |                                               UINT16 offset, | 
					
						
							|  |  |  |                                               tBTA_GATT_UNFMT   *p_data, | 
					
						
							|  |  |  |                                               tBTA_GATT_AUTH_REQ auth_req); | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** Function         BTA_GATTC_ExecuteWrite | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to execute write a prepare write sequence. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id - connection ID. | 
					
						
							|  |  |  | **                    is_execute - execute or cancel. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_ExecuteWrite  (UINT16 conn_id, BOOLEAN is_execute); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_ReadMultiple | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to read multiple characteristic or | 
					
						
							|  |  |  | **                  characteristic descriptors. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id - connection ID. | 
					
						
							|  |  |  | **                    p_read_multi - read multiple parameters. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_ReadMultiple(UINT16 conn_id, tBTA_GATTC_MULTI *p_read_multi, | 
					
						
							|  |  |  |                                    tBTA_GATT_AUTH_REQ auth_req); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_Refresh | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      Refresh the server cache of the remote device | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       remote_bda: remote device BD address. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_Refresh(BD_ADDR remote_bda); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_Listen | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      Start advertisement to listen for connection request. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       client_if: server interface. | 
					
						
							|  |  |  | **                  start: to start or stop listening for connection | 
					
						
							|  |  |  | **                  remote_bda: remote device BD address, if listen to all device | 
					
						
							|  |  |  | **                              use NULL. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_Listen(tBTA_GATTC_IF client_if, BOOLEAN start, BD_ADDR_PTR target_bda); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_Broadcast | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      Start broadcasting (non-connectable advertisements) | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       client_if: client interface. | 
					
						
							|  |  |  | **                  start: to start or stop listening for connection | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTC_Broadcast(tBTA_GATTC_IF client_if, BOOLEAN start); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTC_ConfigureMTU | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      Configure the MTU size in the GATT channel. This can be done | 
					
						
							|  |  |  | **                  only once per connection. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id: connection ID. | 
					
						
							| 
									
										
										
										
											2017-09-12 09:40:52 +03:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							| 
									
										
										
										
											2017-09-12 09:40:52 +03:00
										 |  |  | extern void BTA_GATTC_ConfigureMTU (UINT16 conn_id); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | **  BTA GATT Server API | 
					
						
							|  |  |  | ********************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_Init | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to initalize GATTS module | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_Init(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_Disable | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to disable GATTS module | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       None. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_Disable(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_AppRegister | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to register application callbacks | 
					
						
							|  |  |  | **                    with BTA GATTS module. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       p_app_uuid - applicaiton UUID | 
					
						
							|  |  |  | **                  p_cback - pointer to the application callback function. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_AppRegister(tBT_UUID *p_app_uuid, tBTA_GATTS_CBACK *p_cback); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_AppDeregister | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      De-register with BTA GATT Server. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       server_if: server interface | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_AppDeregister(tBTA_GATTS_IF server_if); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_CreateService | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      Create a service. When service creation is done, a callback | 
					
						
							|  |  |  | **                  event BTA_GATTS_CREATE_SRVC_EVT is called to report status | 
					
						
							|  |  |  | **                  and service ID to the profile. The service ID obtained in | 
					
						
							|  |  |  | **                  the callback function needs to be used when adding included | 
					
						
							|  |  |  | **                  service and characteristics/descriptors into the service. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       server_if: server interface. | 
					
						
							|  |  |  | **                  p_service_uuid: service UUID. | 
					
						
							|  |  |  | **                  inst: instance ID number of this service. | 
					
						
							|  |  |  | **                  num_handle: numble of handle requessted for this service. | 
					
						
							|  |  |  | **                  is_primary: is this service a primary one or not. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_CreateService(tBTA_GATTS_IF server_if, tBT_UUID *p_service_uuid, | 
					
						
							|  |  |  |                                     UINT8 inst, UINT16 num_handle, BOOLEAN is_primary); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_AddIncludeService | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to add an included service. After included | 
					
						
							|  |  |  | **                  service is included, a callback event BTA_GATTS_ADD_INCL_SRVC_EVT | 
					
						
							|  |  |  | **                  is reported the included service ID. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       service_id: service ID to which this included service is to | 
					
						
							|  |  |  | **                              be added. | 
					
						
							|  |  |  | **                  included_service_id: the service ID to be included. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_AddIncludeService(UINT16 service_id, UINT16 included_service_id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_AddCharacteristic | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to add a characteristic into a service. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       service_id: service ID to which this included service is to | 
					
						
							|  |  |  | **                              be added. | 
					
						
							|  |  |  | **                  p_char_uuid : Characteristic UUID. | 
					
						
							|  |  |  | **                  perm      : Characteristic value declaration attribute permission. | 
					
						
							|  |  |  | **                  property  : Characteristic Properties | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_AddCharacteristic (UINT16 service_id,  tBT_UUID  *p_char_uuid, | 
					
						
							|  |  |  |                                   tBTA_GATT_PERM perm, tBTA_GATT_CHAR_PROP property, tGATT_ATTR_VAL *attr_val,  | 
					
						
							|  |  |  |                                   tBTA_GATTS_ATTR_CONTROL *control); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_AddCharDescriptor | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to add characteristic descriptor. When | 
					
						
							|  |  |  | **                  it's done, a callback event BTA_GATTS_ADD_DESCR_EVT is called | 
					
						
							|  |  |  | **                  to report the status and an ID number for this descriptor. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       service_id: service ID to which this charatceristic descriptor is to | 
					
						
							|  |  |  | **                              be added. | 
					
						
							|  |  |  | **                  perm: descriptor access permission. | 
					
						
							|  |  |  | **                  p_descr_uuid: descriptor UUID. | 
					
						
							|  |  |  | **                  p_descr_params: descriptor value if it's read only descriptor. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          returns status. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_AddCharDescriptor (UINT16 service_id, | 
					
						
							|  |  |  |                                   tBTA_GATT_PERM perm, | 
					
						
							|  |  |  |                                   tBT_UUID   *p_descr_uuid, tBTA_GATT_ATTR_VAL *attr_val,  | 
					
						
							|  |  |  |                                   tBTA_GATTS_ATTR_CONTROL *control); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_DeleteService | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to delete a service. When this is done, | 
					
						
							|  |  |  | **                  a callback event BTA_GATTS_DELETE_EVT is report with the status. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       service_id: service_id to be deleted. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          returns none. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void  BTA_GATTS_DeleteService(UINT16 service_id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_StartService | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to start a service. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       service_id: the service ID to be started. | 
					
						
							|  |  |  | **                  sup_transport: supported trasnport. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void  BTA_GATTS_StartService(UINT16 service_id, tBTA_GATT_TRANSPORT sup_transport); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_StopService | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to stop a service. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       service_id - service to be topped. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_StopService(UINT16 service_id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_HandleValueIndication | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to read a characteristics descriptor. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id - connection identifier. | 
					
						
							|  |  |  | **                  attr_id - attribute ID to indicate. | 
					
						
							|  |  |  | **                  data_len - indicate data length. | 
					
						
							|  |  |  | **                  p_data: data to indicate. | 
					
						
							|  |  |  | **                  need_confirm - if this indication expects a confirmation or not. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_HandleValueIndication (UINT16 conn_id, UINT16 attr_id, | 
					
						
							| 
									
										
										
										
											2017-09-22 17:28:54 +08:00
										 |  |  |                                              UINT16 data_len, | 
					
						
							|  |  |  |                                              UINT8 *p_data, | 
					
						
							|  |  |  |                                              BOOLEAN need_confirm); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_SendRsp | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to send a response to a request. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id - connection identifier. | 
					
						
							|  |  |  | **                  trans_id - transaction ID. | 
					
						
							|  |  |  | **                  status - response status | 
					
						
							|  |  |  | **                  p_msg - response data. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_SendRsp (UINT16 conn_id, UINT32 trans_id, | 
					
						
							|  |  |  |                                tBTA_GATT_STATUS status, tBTA_GATTS_RSP *p_msg); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_SetAttributeValue | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to set the attribute value in the gatt database | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters   attr_handle - the attribute value handle. | 
					
						
							|  |  |  | **                      length - the value length which has been set to the attribute. | 
					
						
							|  |  |  | **                      value - the pointer to the value | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          None | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_SetAttributeValue(UINT16 attr_handle, UINT16 length, UINT8 *value); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GetAttributeValue | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      This function is called to get the attribute value in the gatt database | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters   attr_handle - the attribute value handle. | 
					
						
							|  |  |  | **                      length - the value length which has been set to the attribute. | 
					
						
							|  |  |  | **                      value - the pointer to the value | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2017-09-12 09:40:52 +03:00
										 |  |  | ** Returns          tBTA_GATT_STATUS | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							| 
									
										
										
										
											2017-09-12 09:40:52 +03:00
										 |  |  | extern tBTA_GATT_STATUS BTA_GetAttributeValue(UINT16 attr_handle, UINT16 *length, UINT8 **value); | 
					
						
							| 
									
										
										
										
											2017-02-06 15:17:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_Open | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      Open a direct open connection or add a background auto connection | 
					
						
							|  |  |  | **                  bd address | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       server_if: server interface. | 
					
						
							|  |  |  | **                  remote_bda: remote device BD address. | 
					
						
							|  |  |  | **                  is_direct: direct connection or background auto connection | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_Open(tBTA_GATTS_IF server_if, BD_ADDR remote_bda, | 
					
						
							|  |  |  |                            BOOLEAN is_direct, tBTA_GATT_TRANSPORT transport); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_CancelOpen | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      Cancel a direct open connection or remove a background auto connection | 
					
						
							|  |  |  | **                  bd address | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       server_if: server interface. | 
					
						
							|  |  |  | **                  remote_bda: remote device BD address. | 
					
						
							|  |  |  | **                  is_direct: direct connection or background auto connection | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_CancelOpen(tBTA_GATTS_IF server_if, BD_ADDR remote_bda, BOOLEAN is_direct); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_Close | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      Close a connection  a remote device. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       conn_id: connection ID to be closed. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_Close(UINT16 conn_id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*******************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Function         BTA_GATTS_Listen | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Description      Start advertisement to listen for connection request for a | 
					
						
							|  |  |  | **                  GATT server | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Parameters       server_if: server interface. | 
					
						
							|  |  |  | **                  start: to start or stop listening for connection | 
					
						
							|  |  |  | **                  remote_bda: remote device BD address, if listen to all device | 
					
						
							|  |  |  | **                              use NULL. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Returns          void | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | *******************************************************************************/ | 
					
						
							|  |  |  | extern void BTA_GATTS_Listen(tBTA_GATTS_IF server_if, BOOLEAN start, | 
					
						
							|  |  |  |                              BD_ADDR_PTR target_bda); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* BTA_GATT_API_H */
 |