15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 1999-2012 Broadcom Corporation 45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * you may not use this file except in compliance with the License. 75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * You may obtain a copy of the License at: 85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * See the License for the specific language governing permissions and 155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * limitations under the License. 165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef GATT_API_H 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_API_H 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h" 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "gattdefs.h" 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Constants 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Success code and error codes */ 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_SUCCESS 0x0000 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INVALID_HANDLE 0x0001 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_READ_NOT_PERMIT 0x0002 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_WRITE_NOT_PERMIT 0x0003 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INVALID_PDU 0x0004 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INSUF_AUTHENTICATION 0x0005 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_REQ_NOT_SUPPORTED 0x0006 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INVALID_OFFSET 0x0007 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INSUF_AUTHORIZATION 0x0008 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PREPARE_Q_FULL 0x0009 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_NOT_FOUND 0x000a 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_NOT_LONG 0x000b 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INSUF_KEY_SIZE 0x000c 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INVALID_ATTR_LEN 0x000d 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_ERR_UNLIKELY 0x000e 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INSUF_ENCRYPTION 0x000f 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_UNSUPPORT_GRP_TYPE 0x0010 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INSUF_RESOURCE 0x0011 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_ILLEGAL_PARAMETER 0x0087 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_NO_RESOURCES 0x0080 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INTERNAL_ERROR 0x0081 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_WRONG_STATE 0x0082 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_DB_FULL 0x0083 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_BUSY 0x0084 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_ERROR 0x0085 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CMD_STARTED 0x0086 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PENDING 0x0088 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AUTH_FAIL 0x0089 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_MORE 0x008a 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INVALID_CFG 0x008b 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_SERVICE_STARTED 0x008c 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_ENCRYPED_MITM GATT_SUCCESS 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_ENCRYPED_NO_MITM 0x008d 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_NOT_ENCRYPTED 0x008e 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_STATUS; 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_RSP_ERROR 0x01 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_REQ_MTU 0x02 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_RSP_MTU 0x03 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_REQ_FIND_INFO 0x04 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_RSP_FIND_INFO 0x05 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_REQ_FIND_TYPE_VALUE 0x06 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_RSP_FIND_TYPE_VALUE 0x07 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_REQ_READ_BY_TYPE 0x08 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_RSP_READ_BY_TYPE 0x09 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_REQ_READ 0x0A 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_RSP_READ 0x0B 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_REQ_READ_BLOB 0x0C 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_RSP_READ_BLOB 0x0D 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_REQ_READ_MULTI 0x0E 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_RSP_READ_MULTI 0x0F 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_REQ_READ_BY_GRP_TYPE 0x10 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_RSP_READ_BY_GRP_TYPE 0x11 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_REQ_WRITE 0x12 /* 0001-0010 (write)*/ 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_RSP_WRITE 0x13 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CMD_WRITE 0x52 /* changed in V4.0 01001-0010(write cmd)*/ 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_REQ_PREPARE_WRITE 0x16 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_RSP_PREPARE_WRITE 0x17 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_REQ_EXEC_WRITE 0x18 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_RSP_EXEC_WRITE 0x19 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_HANDLE_VALUE_NOTIF 0x1B 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_HANDLE_VALUE_IND 0x1D 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_HANDLE_VALUE_CONF 0x1E 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_SIGN_CMD_WRITE 0xD2 /* changed in V4.0 1101-0010 (signed write) see write cmd above*/ 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_OP_CODE_MAX GATT_HANDLE_VALUE_CONF + 1 /* 0x1E = 30 + 1 = 31*/ 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_HANDLE_IS_VALID(x) ((x) != 0) 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CONN_UNKNOWN 0 1036975b4d711142b885af479721cada448952c6b41Andre Eisenbach#define GATT_CONN_L2C_FAILURE 1 /* general L2cap failure */ 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CONN_TIMEOUT HCI_ERR_CONNECTION_TOUT /* 0x08 connection timeout */ 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CONN_TERMINATE_PEER_USER HCI_ERR_PEER_USER /* 0x13 connection terminate by peer user */ 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CONN_TERMINATE_LOCAL_HOST HCI_ERR_CONN_CAUSE_LOCAL_HOST /* 0x16 connectionterminated by local host */ 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CONN_FAIL_ESTABLISH HCI_ERR_CONN_FAILED_ESTABLISHMENT/* 0x03E connection fail to establish */ 1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CONN_LMP_TIMEOUT HCI_ERR_LMP_RESPONSE_TIMEOUT /* 0x22 connection fail for LMP response tout */ 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CONN_CANCEL L2CAP_CONN_CANCEL /* 0x0100 L2CAP connection cancelled */ 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tGATT_DISCONN_REASON; 1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MAX GATT MTU size 1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef GATT_MAX_MTU_SIZE 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project #define GATT_MAX_MTU_SIZE 517 1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* max legth of an attribute value 1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef GATT_MAX_ATTR_LEN 1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project #define GATT_MAX_ATTR_LEN 600 1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* default GATT MTU size over LE link 1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_DEF_BLE_MTU_SIZE 23 1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* invalid connection ID 1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INVALID_CONN_ID 0xFFFF 1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef GATT_CL_MAX_LCB 1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project #define GATT_CL_MAX_LCB 22 1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef GATT_MAX_SCCB 1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project #define GATT_MAX_SCCB 10 1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 140ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#ifndef GATTP_TRANSPORT_SUPPORTED 141ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define GATTP_TRANSPORT_SUPPORTED GATT_TRANSPORT_LE_BR_EDR 142ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#endif 1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT notification caching timer, default to be three seconds 1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef GATTC_NOTIF_TIMEOUT 1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project #define GATTC_NOTIF_TIMEOUT 3 1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** GATT Structure Definition 1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Attribute permissions 1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PERM_READ (1 << 0) /* bit 0 */ 1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PERM_READ_ENCRYPTED (1 << 1) /* bit 1 */ 1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PERM_READ_ENC_MITM (1 << 2) /* bit 2 */ 1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PERM_WRITE (1 << 4) /* bit 4 */ 1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PERM_WRITE_ENCRYPTED (1 << 5) /* bit 5 */ 1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PERM_WRITE_ENC_MITM (1 << 6) /* bit 6 */ 1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PERM_WRITE_SIGNED (1 << 7) /* bit 7 */ 1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PERM_WRITE_SIGNED_MITM (1 << 8) /* bit 8 */ 1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tGATT_PERM; 1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_ENCRYPT_KEY_SIZE_MASK (0xF000) /* the MS nibble of tGATT_PERM; key size 7=0; size 16=9 */ 1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_READ_ALLOWED (GATT_PERM_READ | GATT_PERM_READ_ENCRYPTED | GATT_PERM_READ_ENC_MITM) 170ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define GATT_READ_AUTH_REQUIRED (GATT_PERM_READ_ENCRYPTED) 1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_READ_MITM_REQUIRED (GATT_PERM_READ_ENC_MITM) 1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_READ_ENCRYPTED_REQUIRED (GATT_PERM_READ_ENCRYPTED | GATT_PERM_READ_ENC_MITM) 1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_WRITE_ALLOWED (GATT_PERM_WRITE | GATT_PERM_WRITE_ENCRYPTED | GATT_PERM_WRITE_ENC_MITM | \ 1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_PERM_WRITE_SIGNED | GATT_PERM_WRITE_SIGNED_MITM) 1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_WRITE_AUTH_REQUIRED (GATT_PERM_WRITE_ENCRYPTED | GATT_PERM_WRITE_SIGNED) 1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_WRITE_MITM_REQUIRED (GATT_PERM_WRITE_ENC_MITM | GATT_PERM_WRITE_SIGNED_MITM) 1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_WRITE_ENCRYPTED_PERM (GATT_PERM_WRITE_ENCRYPTED | GATT_PERM_WRITE_ENC_MITM) 1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_WRITE_SIGNED_PERM (GATT_PERM_WRITE_SIGNED | GATT_PERM_WRITE_SIGNED_MITM) 1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Characteristic properties 1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_PROP_BIT_BROADCAST (1 << 0) 1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_PROP_BIT_READ (1 << 1) 1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_PROP_BIT_WRITE_NR (1 << 2) 1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_PROP_BIT_WRITE (1 << 3) 1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_PROP_BIT_NOTIFY (1 << 4) 1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_PROP_BIT_INDICATE (1 << 5) 1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_PROP_BIT_AUTH (1 << 6) 1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_PROP_BIT_EXT_PROP (1 << 7) 1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_CHAR_PROP; 1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Format of the value of a characteristic. enumeration type 2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_RES, /* rfu */ 2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_BOOL, /* 0x01 boolean */ 2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_2BITS, /* 0x02 2 bit */ 2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_NIBBLE, /* 0x03 nibble */ 2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_UINT8, /* 0x04 uint8 */ 2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_UINT12, /* 0x05 uint12 */ 2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_UINT16, /* 0x06 uint16 */ 2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_UINT24, /* 0x07 uint24 */ 2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_UINT32, /* 0x08 uint32 */ 2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_UINT48, /* 0x09 uint48 */ 2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_UINT64, /* 0x0a uint64 */ 2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_UINT128, /* 0x0B uint128 */ 2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_SINT8, /* 0x0C signed 8 bit integer */ 2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_SINT12, /* 0x0D signed 12 bit integer */ 2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_SINT16, /* 0x0E signed 16 bit integer */ 2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_SINT24, /* 0x0F signed 24 bit integer */ 2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_SINT32, /* 0x10 signed 32 bit integer */ 2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_SINT48, /* 0x11 signed 48 bit integer */ 2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_SINT64, /* 0x12 signed 64 bit integer */ 2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_SINT128, /* 0x13 signed 128 bit integer */ 2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_FLOAT32, /* 0x14 float 32 */ 2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_FLOAT64, /* 0x15 float 64*/ 2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_SFLOAT, /* 0x16 IEEE-11073 16 bit SFLOAT */ 2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_FLOAT, /* 0x17 IEEE-11073 32 bit SFLOAT */ 2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_DUINT16, /* 0x18 IEEE-20601 format */ 2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_UTF8S, /* 0x19 UTF-8 string */ 2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_UTF16S, /* 0x1a UTF-16 string */ 2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_STRUCT, /* 0x1b Opaque structure*/ 2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_FORMAT_MAX /* 0x1c or above reserved */ 2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_FORMAT; 2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Characteristic Presentation Format Descriptor value 2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 unit; /* as UUIUD defined by SIG */ 2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 descr; /* as UUID as defined by SIG */ 2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_FORMAT format; 2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project INT8 exp; 2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 name_spc; /* The name space of the description */ 2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_CHAR_PRES; 2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2476975b4d711142b885af479721cada448952c6b41Andre Eisenbach/* Characteristic Report reference Descriptor format 2486975b4d711142b885af479721cada448952c6b41Andre Eisenbach*/ 2496975b4d711142b885af479721cada448952c6b41Andre Eisenbachtypedef struct 2506975b4d711142b885af479721cada448952c6b41Andre Eisenbach{ 2516975b4d711142b885af479721cada448952c6b41Andre Eisenbach UINT8 rpt_id; /* report ID */ 2526975b4d711142b885af479721cada448952c6b41Andre Eisenbach UINT8 rpt_type; /* report type */ 2536975b4d711142b885af479721cada448952c6b41Andre Eisenbach} tGATT_CHAR_RPT_REF; 2546975b4d711142b885af479721cada448952c6b41Andre Eisenbach 2556975b4d711142b885af479721cada448952c6b41Andre Eisenbach 2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_VALID_RANGE_MAX_SIZE 16 2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 format; 2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 len; 2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 lower_range[GATT_VALID_RANGE_MAX_SIZE]; /* in little endian format */ 2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 upper_range[GATT_VALID_RANGE_MAX_SIZE]; 2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_VALID_RANGE; 2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Characteristic Aggregate Format attribute value 2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AGGR_HANDLE_NUM_MAX 10 2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 num_handle; 2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle_list[GATT_AGGR_HANDLE_NUM_MAX]; 2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_CHAR_AGGRE; 2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Characteristic descriptor: Extended Properties value 2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_BIT_REL_WRITE 0x0001 /* permits reliable writes of the Characteristic Value */ 2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_BIT_WRITE_AUX 0x0002 /* permits writes to the characteristic descriptor */ 2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* characteristic descriptor: client configuration value 2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CLT_CONFIG_NONE 0x0000 2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CLT_CONFIG_NOTIFICATION 0x0001 2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CLT_CONFIG_INDICATION 0x0002 2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tGATT_CLT_CHAR_CONFIG; 2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* characteristic descriptor: server configuration value 2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_SVR_CONFIG_NONE 0x0000 2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_SVR_CONFIG_BROADCAST 0x0001 2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tGATT_SVR_CHAR_CONFIG; 2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Characteristic descriptor: Extended Properties value 2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_BIT_REL_WRITE 0x0001 /* permits reliable writes of the Characteristic Value */ 2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_BIT_WRITE_AUX 0x0002 /* permits writes to the characteristic descriptor */ 2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* authentication requirement 3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AUTH_REQ_NONE 0 3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AUTH_REQ_NO_MITM 1 /* unauthenticated encryption */ 3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AUTH_REQ_MITM 2 /* authenticated encryption */ 3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AUTH_REQ_SIGNED_NO_MITM 3 3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AUTH_REQ_SIGNED_MITM 4 3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_AUTH_REQ; 3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Attribute Value structure 3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 conn_id; 3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* attribute handle */ 3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 offset; /* attribute value offset, if no offfset is needed for the command, ignore it */ 3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 len; /* length of attribute value */ 3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_AUTH_REQ auth_req; /* authentication request */ 3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 value[GATT_MAX_ATTR_LEN]; /* the actual attribute value */ 3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_VALUE; 3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of the event data which is used in the server respond API to carry the server response information 3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* data type member event */ 3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_VALUE attr_value; /* READ, HANDLE_VALUE_IND, PREPARE_WRITE */ 3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* READ_BLOB, READ_BY_TYPE */ 3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* WRITE, WRITE_BLOB */ 3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_RSP; 3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Transports for the primary service */ 3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_TRANSPORT_LE, 3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_TRANSPORT_BR_EDR, 3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_TRANSPORT_LE_BR_EDR 3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_TRANSPORT; 3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PREP_WRITE_CANCEL 0x00 3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PREP_WRITE_EXEC 0x01 3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_EXEC_FLAG; 3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* read request always based on UUID */ 3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; 3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 offset; 3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_long; 3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_READ_REQ; 3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* write request data */ 3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* attribute handle */ 3565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 offset; /* attribute value offset, if no offfset is needed for the command, ignore it */ 3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 len; /* length of attribute value */ 3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 value[GATT_MAX_ATTR_LEN]; /* the actual attribute value */ 3595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN need_rsp; /* need write response */ 3605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_prep; /* is prepare write */ 3615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_WRITE_REQ; 3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* callback data for server access request from client */ 3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_REQ read_req; /* read request, read by Type, read blob */ 3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_WRITE_REQ write_req; /* write */ 3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* prepare write */ 3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* write blob */ 3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* handle value confirmation */ 3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 mtu; /* MTU exchange request */ 3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_EXEC_FLAG exec_write; /* execute write */ 3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_DATA; 3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_SERV_IF; /* GATT Service Interface */ 3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 3795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATTS_REQ_TYPE_READ = 1, /* Attribute read request */ 3815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATTS_REQ_TYPE_WRITE, /* Attribute write request */ 3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATTS_REQ_TYPE_WRITE_EXEC, /* Execute write */ 3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATTS_REQ_TYPE_MTU, /* MTU exchange information */ 3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATTS_REQ_TYPE_CONF /* handle value confirmation */ 3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATTS_REQ_TYPE; 3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Client Used Data Structure 3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* definition of different discovery types */ 3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_SRVC_ALL = 1, /* discover all services */ 3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_SRVC_BY_UUID, /* discover service of a special type */ 3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_INC_SRVC, /* discover the included service within a service */ 3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_CHAR, /* discover characteristics of a service with/without type requirement */ 3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_CHAR_DSCPT, /* discover characteristic descriptors of a character */ 4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_MAX /* maximnun discover type */ 4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_DISC_TYPE; 4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Discover parameters of different discovery types 4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID service; 4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 s_handle; 4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 e_handle; 4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tGATT_DISC_PARAM; 4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT read type enumeration 4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_READ_BY_TYPE = 1, 4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_READ_BY_HANDLE, 4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_READ_MULTIPLE, 4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_READ_CHAR_VALUE, 4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_READ_PARTIAL, 4225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_READ_MAX 4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_READ_TYPE; 4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read By Type Request (GATT_READ_BY_TYPE) Data 4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_AUTH_REQ auth_req; 4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 s_handle; 4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 e_handle; 4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID uuid; 4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_READ_BY_TYPE; 4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT_READ_MULTIPLE request data 4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_MAX_READ_MULTI_HANDLES 10 /* Max attributes to read in one request */ 4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 4405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_AUTH_REQ auth_req; 4425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 num_handles; /* number of handles to read */ 4435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handles[GATT_MAX_READ_MULTI_HANDLES]; /* handles list to be read */ 4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_READ_MULTI; 4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read By Handle Request (GATT_READ_BY_HANDLE) data */ 4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_AUTH_REQ auth_req; 4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; 4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_READ_BY_HANDLE; 4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* READ_BT_HANDLE_Request data */ 4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_AUTH_REQ auth_req; 4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; 4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 offset; 4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_READ_PARTIAL; 4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read Request Data 4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_BY_TYPE service; 4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_BY_TYPE char_type; /* characterisitc type */ 4675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_MULTI read_multiple; 4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_BY_HANDLE by_handle; 4695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_PARTIAL partial; 4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_READ_PARAM; 4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT write type enumeration */ 4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_WRITE_NO_RSP = 1, 4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_WRITE , 4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_WRITE_PREPARE 4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_WRITE_TYPE; 4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Client Operation Complete Callback Data 4825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_VALUE att_value; 4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 mtu; 4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; 4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_CL_COMPLETE; 4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT client operation type, used in client callback function 4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_NONE 0 4935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_DISCOVERY 1 4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_READ 2 4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_WRITE 3 4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_EXE_WRITE 4 4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_CONFIG 5 4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_NOTIFICATION 6 4995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_INDICATION 7 5005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATTC_OPTYPE; 5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* characteristic declaration 5035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 5045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 5055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_CHAR_PROP char_prop; /* characterisitc properties */ 5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 val_handle; /* characteristic value attribute handle */ 5085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID char_uuid; /* characteristic UUID type */ 5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_CHAR_DCLR_VAL; 5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* primary service group data 5125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 e_handle; /* ending handle of the group */ 5165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID service_type; /* group type */ 5175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_GROUP_VALUE; 5185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* included service attribute value 5215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 5225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 5235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID service_type; /* included service UUID */ 5255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 s_handle; /* starting handle */ 5265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 e_handle; /* ending handle */ 5275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_INCL_SRVC; 5285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 5305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_INCL_SRVC incl_service; /* include service value */ 5325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_GROUP_VALUE group_value; /* Service UUID type. 5335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project This field is used with GATT_DISC_SRVC_ALL 5346975b4d711142b885af479721cada448952c6b41Andre Eisenbach or GATT_DISC_SRVC_BY_UUID 5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project type of discovery result callback. */ 5365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5376975b4d711142b885af479721cada448952c6b41Andre Eisenbach UINT16 handle; /* When used with GATT_DISC_INC_SRVC type discovery result, 5385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project it is the included service starting handle.*/ 5395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_CHAR_DCLR_VAL dclr_value; /* Characteristic declaration value. 5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project This field is used with GATT_DISC_CHAR type discovery.*/ 5425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_DISC_VALUE; 5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* discover result record 5455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 5465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 5475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID type; 5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; 5505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_DISC_VALUE value; 5515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_DISC_RES; 5525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_IF; 5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_LINK_IDLE_TIMEOUT_WHEN_NO_APP 0 /* start a idle timer for this duration when no application 5565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project need to use the link */ 5575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_LINK_NO_IDLE_TIMEOUT 0xFFFF 5595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INVALID_ACL_HANDLE 0xFFFF 5615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* discover result callback function */ 5625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tGATT_DISC_RES_CB) (UINT16 conn_id, tGATT_DISC_TYPE disc_type, tGATT_DISC_RES *p_data); 5635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* discover complete callback function */ 5655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tGATT_DISC_CMPL_CB) (UINT16 conn_id, tGATT_DISC_TYPE disc_type, tGATT_STATUS status); 5665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define a callback function for when read/write/disc/config operation is completed. */ 5685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tGATT_CMPL_CBACK) (UINT16 conn_id, tGATTC_OPTYPE op, tGATT_STATUS status, tGATT_CL_COMPLETE *p_data); 5695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define a callback function when an initialized connection is established. */ 5715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tGATT_CONN_CBACK) (tGATT_IF gatt_if, BD_ADDR bda, UINT16 conn_id, BOOLEAN connected, tGATT_DISCONN_REASON reason); 5725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* attribute request callback for ATT server */ 5745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tGATT_REQ_CBACK )(UINT16 conn_id, UINT32 trans_id, tGATTS_REQ_TYPE type, tGATTS_DATA *p_data); 5755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 576b9912730d082c7bca7d94bb9ddac4447cfad362fZhihai Xu/* Define a callback function when encryption is established. */ 577b9912730d082c7bca7d94bb9ddac4447cfad362fZhihai Xutypedef void (tGATT_ENC_CMPL_CB)(tGATT_IF gatt_if, BD_ADDR bda); 5785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the structure that applications use to register with 5815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** GATT. This structure includes callback functions. All functions 5825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** MUST be provided. 5835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 5845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 5855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_CONN_CBACK *p_conn_cb; 5875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_CMPL_CBACK *p_cmpl_cb; 5885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_DISC_RES_CB *p_disc_res_cb; 5895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_DISC_CMPL_CB *p_disc_cmpl_cb; 5905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_REQ_CBACK *p_req_cb; 591b9912730d082c7bca7d94bb9ddac4447cfad362fZhihai Xu tGATT_ENC_CMPL_CB *p_enc_cmpl_cb; 5925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_CBACK; 5935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*********************** Start Handle Management Definitions ********************** 5955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 5965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 5995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID app_uuid128; 6015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID svc_uuid; 6025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 svc_inst; 6035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 s_handle; 6045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 e_handle; 6055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_primary; /* primary service or secondary */ 6065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_HNDL_RANGE; 6075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTS_SRV_CHG_CMD_ADD_CLIENT 1 6115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTS_SRV_CHG_CMD_UPDATE_CLIENT 2 6125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTS_SRV_CHG_CMD_REMOVE_CLIENT 3 6135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTS_SRV_CHG_CMD_READ_NUM_CLENTS 4 6145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTS_SRV_CHG_CMD_READ_CLENT 5 6155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATTS_SRV_CHG_CMD; 6165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 6185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR bda; 6205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN srv_changed; 6215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_SRV_CHG; 6225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 6255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATTS_SRV_CHG srv_chg; 6275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 client_read_index; /* only used for sequential reading client srv chg info */ 6285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_SRV_CHG_REQ; 6295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 6315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATTS_SRV_CHG srv_chg; 6335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 num_clients; 6345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_SRV_CHG_RSP; 6355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 6395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATTS_HNDL_RANGE *p_new_srv_start; 6415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_PENDING_NEW_SRV_START; 6425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Attibute server handle ranges NV storage callback functions 6445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tGATTS_NV_SAVE_CBACK)(BOOLEAN is_saved, tGATTS_HNDL_RANGE *p_hndl_range); 6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef BOOLEAN (tGATTS_NV_SRV_CHG_CBACK)(tGATTS_SRV_CHG_CMD cmd, tGATTS_SRV_CHG_REQ *p_req, tGATTS_SRV_CHG_RSP *p_rsp); 6475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 6495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATTS_NV_SAVE_CBACK *p_nv_save_callback; 6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATTS_NV_SRV_CHG_CBACK *p_srv_chg_callback; 6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_APPL_INFO; 6535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 6555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*********************** End Handle Management Definitions **********************/ 6565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 6585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** External Function Declarations 6595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 6605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus 6615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern "C" 6625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 6645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_SetTraceLevel 6685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function sets the trace level. If called with 6705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** a value of 0xFF, it simply returns the current trace level. 6715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns The new or current trace level 6735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 6755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern UINT8 GATT_SetTraceLevel (UINT8 new_level); 6765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************/ 6795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT Profile API Functions */ 6805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************/ 6815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT Profile Server Functions */ 6825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************/ 6835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_AddHandleRange 6865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function add the allocated handles range for the specifed 6885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** application UUID, service UUID and service instance 6895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter p_hndl_range: pointer to allocated handles information 6915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if handle range is added sucessfully; otherwise FALSE. 6935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 6955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATTS_AddHandleRange(tGATTS_HNDL_RANGE *p_hndl_range); 6975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_NVRegister 7015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Application manager calls this function to register for 7035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** NV save callback function. There can be one and only one 7045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** NV save callback function. 7055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter p_cb_info : callback informaiton 7075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if registered OK, else FALSE 7095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATTS_NVRegister (tGATT_APPL_INFO *p_cb_info); 7125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_CreateService 7175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to reserve a block of handles for a service. 7195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** *** It should be called only once per service instance *** 7215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter gatt_if : application if 7235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_svc_uuid : service UUID 7245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** svc_inst : instance of the service inside the application 7255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** num_handles : number of handles needed by the service. 7265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is_pri : is a primary service or not. 7275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns service handle if sucessful, otherwise 0. 7295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern UINT16 GATTS_CreateService (tGATT_IF gatt_if, tBT_UUID *p_svc_uuid, 7325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 svc_inst, UINT16 num_handles, BOOLEAN is_pri); 7335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_AddIncludeService 7385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to add an included service. 7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter service_handle : To which service this included service is added to. 7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** include_svc_handle : included service handle. 7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns included service attribute handle. If 0, add included service 7455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** fail. 7465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern UINT16 GATTS_AddIncludeService (UINT16 service_handle, 7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 include_svc_handle); 7505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_AddCharacteristic 7555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to add a characteristic into a service. 7575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** It will add a characteristic declaration and characteristic 7585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** value declaration into the service database identified by the 7595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** service handle. 7605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter service_handle : To which service this included service is added to. 7625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** char_uuid : Characteristic UUID. 7635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** perm : Characteristic value declaration attribute permission. 7645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** property : Characteristic Properties 7655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns Characteristic value declaration attribute handle. 0 if add 7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** characteristic failed. 7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern UINT16 GATTS_AddCharacteristic (UINT16 service_handle, tBT_UUID *char_uuid, 7715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_PERM perm,tGATT_CHAR_PROP property); 7725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_AddCharDescriptor 7765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to add a characteristic descriptor 7785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** into a service database. Add descriptor should follow add char 7795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** to which it belongs, and next add char should be done only 7805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** after all add descriptors for the previous char. 7815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter service_handle : To which service this characteristic descriptor 7835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is added to. 7845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** perm : Characteristic value declaration attribute 7855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** permission. 7865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_descr_uuid : Characteristic descriptor UUID. 7875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns Characteristic descriptor attribute handle. 0 if add 7895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** characteristic descriptor failed. 7905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern UINT16 GATTS_AddCharDescriptor (UINT16 service_handle, tGATT_PERM perm, 7935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID * p_descr_uuid); 7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_DeleteService 7985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to delete a service. 8005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter gatt_if : application interface 8025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_svc_uuid : service UUID 8035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** svc_inst : instance of the service inside the application 8045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if operation succeed, FALSE if handle block was not found. 8065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATTS_DeleteService (tGATT_IF gatt_if, tBT_UUID *p_svc_uuid, UINT16 svc_inst); 8095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_StartService 8135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to start a service with GATT 8155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter gatt_if : service handle. 8175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_cback : application service callback functions. 8185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** sup_transport : supported transport(s) for this primary service 8195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** return GATT_SUCCESS if sucessfully started; otherwise error code. 8215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTS_StartService (tGATT_IF gatt_if, UINT16 service_handle, 8245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_TRANSPORT sup_transport); 8255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_StopService 8305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to stop a service 8325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter service_handle : this is the start handle of a service 8345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns None. 8365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern void GATTS_StopService (UINT16 service_handle); 8395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTs_HandleValueIndication 8445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function sends a handle value indication to a client. 8465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter conn_id: connection identifier. 8485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** attr_handle: Attribute handle of this handle value indication. 8495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** val_len: Length of the indicated attribute value. 8505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_val: Pointer to the indicated attribute value data. 8515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if sucessfully sent or queued; otherwise error code. 8535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTS_HandleValueIndication (UINT16 conn_id, 8565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 attr_handle, 8575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 val_len, UINT8 *p_val); 8585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_HandleValueNotification 8625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function sends a handle value notification to a client. 8645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter conn_id: connection identifier. 8665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** attr_handle: Attribute handle of this handle value indication. 8675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** val_len: Length of the indicated attribute value. 8685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_val: Pointer to the indicated attribute value data. 8695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if sucessfully sent; otherwise error code. 8715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTS_HandleValueNotification (UINT16 conn_id, UINT16 attr_handle, 8745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 val_len, UINT8 *p_val); 8755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_SendRsp 8805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function sends the server response to client. 8825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter conn_id: connection identifier. 8845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** trans_id: transaction id 8855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** status: response status 8865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_msg: pointer to message parameters structure. 8875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if sucessfully sent; otherwise error code. 8895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTS_SendRsp (UINT16 conn_id, UINT32 trans_id, 8925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_STATUS status, tGATTS_RSP *p_msg); 8935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************/ 8965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT Profile Client Functions */ 8975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************/ 8985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTC_ConfigureMTU 9025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to configure the ATT MTU size for 9045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** a connection on an LE transport. 9055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 9075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** mtu - attribute MTU size.. 9085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if command started successfully. 9105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTC_ConfigureMTU (UINT16 conn_id, UINT16 mtu); 9135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTC_Discover 9175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to do a discovery procedure on ATT server. 9195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 9215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** disc_type:discovery type. 9225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_param: parameters of discovery requirement. 9235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if command received/sent successfully. 9255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTC_Discover (UINT16 conn_id, 9285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_DISC_TYPE disc_type, 9295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_DISC_PARAM *p_param ); 9305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTC_Read 9335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to read the value of an attribute from 9355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the server. 9365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 9385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** type - attribute read type. 9395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_read - read operation parameters. 9405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if command started successfully. 9425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTC_Read (UINT16 conn_id, tGATT_READ_TYPE type, 9455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_PARAM *p_read); 9465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTC_Write 9505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to read the value of an attribute from 9525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the server. 9535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 9555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** type - attribute write type. 9565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_write - write operation parameters. 9575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if command started successfully. 9595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTC_Write (UINT16 conn_id, tGATT_WRITE_TYPE type, 9625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_VALUE *p_write); 9635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTC_ExecuteWrite 9685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to send an Execute write request to 9705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the server. 9715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 9735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is_execute - to execute or cancel the prepare write requet(s) 9745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if command started successfully. 9765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTC_ExecuteWrite (UINT16 conn_id, BOOLEAN is_execute); 9795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTC_SendHandleValueConfirm 9835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to send a handle value confirmation 9855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** as response to a handle value notification from server. 9865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 9885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** handle: the handle of the attribute confirmation. 9895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if command started successfully. 9915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTC_SendHandleValueConfirm (UINT16 conn_id, UINT16 handle); 9945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_SetIdleTimeout 9995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function (common to both client and server) sets the idle 10015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** timeout for a tansport connection 10025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter bd_addr: target device bd address. 10045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** idle_tout: timeout value in seconds. 10055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 10075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern void GATT_SetIdleTimeout (BD_ADDR bd_addr, UINT16 idle_tout); 10105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_Register 10155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to register an application 10175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** with GATT 10185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter p_app_uuid128: Application UUID 10205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_cb_info: callback functions. 10215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns 0 for error, otherwise the index of the client registered with GATT 10235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_IF GATT_Register (tBT_UUID *p_app_uuid128, tGATT_CBACK *p_cb_info); 10265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_Deregister 10305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function deregistered the application from GATT. 10325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters gatt_if: applicaiton interface. 10345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns None. 10365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern void GATT_Deregister (tGATT_IF gatt_if); 10395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_StartIf 10435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called after registration to start receiving 10455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** callbacks for registered interface. Function may call back 10465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** with connection status and queued notifications 10475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter gatt_if: applicaiton interface. 10495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns None 10515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern void GATT_StartIf (tGATT_IF gatt_if); 10545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_Connect 10585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10596975b4d711142b885af479721cada448952c6b41Andre Eisenbach** Description This function initiate a connecttion to a remote device on GATT 10606975b4d711142b885af479721cada448952c6b41Andre Eisenbach** channel. 10615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters gatt_if: applicaiton interface 10635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** bd_addr: peer device address. 10645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is_direct: is a direct conenection or a background auto connection 10655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if connection started; FALSE if connection start failure. 10675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATT_Connect (tGATT_IF gatt_if, BD_ADDR bd_addr, BOOLEAN is_direct); 10705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_CancelConnect 10755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10766975b4d711142b885af479721cada448952c6b41Andre Eisenbach** Description This function terminate the connection initaition to a remote 10776975b4d711142b885af479721cada448952c6b41Andre Eisenbach** device on GATT channel. 10785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters gatt_if: client interface. If 0 used as unconditionally disconnect, 10805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** typically used for direct connection cancellation. 10815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** bd_addr: peer device address. 10825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is_direct: is a direct conenection or a background auto connection 10835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if connection started; FALSE if connection start failure. 10855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATT_CancelConnect (tGATT_IF gatt_if, BD_ADDR bd_addr, BOOLEAN is_direct); 10885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_Disconnect 10925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10936975b4d711142b885af479721cada448952c6b41Andre Eisenbach** Description This function disconnect the GATT channel for this registered 10946975b4d711142b885af479721cada448952c6b41Andre Eisenbach** application. 10955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 10975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if disconnected. 10995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 11015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATT_Disconnect (UINT16 conn_id); 11025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_GetConnectionInfor 11085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function use conn_id to find its associated BD address and applciation 11105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** interface 11115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection id (input) 11135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_gatt_if: applicaiton interface (output) 11145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** bd_addr: peer device address. (output) 11155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE the ligical link information is found for conn_id 11175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 11195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATT_GetConnectionInfor(UINT16 conn_id, tGATT_IF *p_gatt_if, BD_ADDR bd_addr); 11205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_GetConnIdIfConnected 11255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function find the conn_id if the logical link for BD address 11275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** and applciation interface is connected 11285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters gatt_if: applicaiton interface (input) 11305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** bd_addr: peer device address. (input) 11315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_conn_id: connection id (output) 11325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE the ligical link is connected 11345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 11365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATT_GetConnIdIfConnected(tGATT_IF gatt_if, BD_ADDR bd_addr, UINT16 *p_conn_id); 11375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1138ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1139ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 1140ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** 1141ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** Function GATT_Listen 1142ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** 1143ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** Description This function start or stop LE advertisement and listen for 1144ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** connection. 1145ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** 1146ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** Parameters gatt_if: applicaiton interface 1147ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** p_bd_addr: listen for specific address connection, or NULL for 1148ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** listen to all device connection. 1149ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** start: is a direct conenection or a background auto connection 1150ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** 1151ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** Returns TRUE if advertisement is started; FALSE if adv start failure. 1152ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** 1153ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta*******************************************************************************/ 1154ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta GATT_API extern BOOLEAN GATT_Listen (tGATT_IF gatt_if, BOOLEAN start, BD_ADDR_PTR bd_addr); 1155ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1156ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 11575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus 11585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 11605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 11615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* GATT_API_H */ 1163