gatt_api.h revision ead3cde4bac0c3e32cd31f149093f004eef8ceeb
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 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CONN_NO_RESOURCES L2CAP_CONN_NO_RESOURCES /* connection fail for l2cap resource 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 2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_VALID_RANGE_MAX_SIZE 16 2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 format; 2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 len; 2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 lower_range[GATT_VALID_RANGE_MAX_SIZE]; /* in little endian format */ 2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 upper_range[GATT_VALID_RANGE_MAX_SIZE]; 2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_VALID_RANGE; 2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Characteristic Aggregate Format attribute value 2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AGGR_HANDLE_NUM_MAX 10 2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 num_handle; 2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle_list[GATT_AGGR_HANDLE_NUM_MAX]; 2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_CHAR_AGGRE; 2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Characteristic descriptor: Extended Properties value 2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_BIT_REL_WRITE 0x0001 /* permits reliable writes of the Characteristic Value */ 2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_BIT_WRITE_AUX 0x0002 /* permits writes to the characteristic descriptor */ 2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* characteristic descriptor: client configuration value 2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CLT_CONFIG_NONE 0x0000 2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CLT_CONFIG_NOTIFICATION 0x0001 2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CLT_CONFIG_INDICATION 0x0002 2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tGATT_CLT_CHAR_CONFIG; 2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* characteristic descriptor: server configuration value 2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_SVR_CONFIG_NONE 0x0000 2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_SVR_CONFIG_BROADCAST 0x0001 2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tGATT_SVR_CHAR_CONFIG; 2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Characteristic descriptor: Extended Properties value 2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_BIT_REL_WRITE 0x0001 /* permits reliable writes of the Characteristic Value */ 2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_CHAR_BIT_WRITE_AUX 0x0002 /* permits writes to the characteristic descriptor */ 2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* authentication requirement 2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AUTH_REQ_NONE 0 2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AUTH_REQ_NO_MITM 1 /* unauthenticated encryption */ 2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AUTH_REQ_MITM 2 /* authenticated encryption */ 2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AUTH_REQ_SIGNED_NO_MITM 3 2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_AUTH_REQ_SIGNED_MITM 4 2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_AUTH_REQ; 2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Attribute Value structure 3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 conn_id; 3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* attribute handle */ 3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 offset; /* attribute value offset, if no offfset is needed for the command, ignore it */ 3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 len; /* length of attribute value */ 3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_AUTH_REQ auth_req; /* authentication request */ 3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 value[GATT_MAX_ATTR_LEN]; /* the actual attribute value */ 3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_VALUE; 3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of the event data which is used in the server respond API to carry the server response information 3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* data type member event */ 3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_VALUE attr_value; /* READ, HANDLE_VALUE_IND, PREPARE_WRITE */ 3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* READ_BLOB, READ_BY_TYPE */ 3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* WRITE, WRITE_BLOB */ 3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_RSP; 3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Transports for the primary service */ 3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_TRANSPORT_LE, 3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_TRANSPORT_BR_EDR, 3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_TRANSPORT_LE_BR_EDR 3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_TRANSPORT; 3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PREP_WRITE_CANCEL 0x00 3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_PREP_WRITE_EXEC 0x01 3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_EXEC_FLAG; 3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* read request always based on UUID */ 3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; 3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 offset; 3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_long; 3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_READ_REQ; 3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* write request data */ 3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* attribute handle */ 3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 offset; /* attribute value offset, if no offfset is needed for the command, ignore it */ 3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 len; /* length of attribute value */ 3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 value[GATT_MAX_ATTR_LEN]; /* the actual attribute value */ 3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN need_rsp; /* need write response */ 3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_prep; /* is prepare write */ 3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_WRITE_REQ; 3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* callback data for server access request from client */ 3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 3565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_REQ read_req; /* read request, read by Type, read blob */ 3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_WRITE_REQ write_req; /* write */ 3605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* prepare write */ 3615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* write blob */ 3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* handle value confirmation */ 3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 mtu; /* MTU exchange request */ 3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_EXEC_FLAG exec_write; /* execute write */ 3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_DATA; 3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_SERV_IF; /* GATT Service Interface */ 3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATTS_REQ_TYPE_READ = 1, /* Attribute read request */ 3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATTS_REQ_TYPE_WRITE, /* Attribute write request */ 3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATTS_REQ_TYPE_WRITE_EXEC, /* Execute write */ 3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATTS_REQ_TYPE_MTU, /* MTU exchange information */ 3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATTS_REQ_TYPE_CONF /* handle value confirmation */ 3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATTS_REQ_TYPE; 3785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Client Used Data Structure 3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* definition of different discovery types */ 3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_SRVC_ALL = 1, /* discover all services */ 3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_SRVC_BY_UUID, /* discover service of a special type */ 3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_INC_SRVC, /* discover the included service within a service */ 3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_CHAR, /* discover characteristics of a service with/without type requirement */ 3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_CHAR_DSCPT, /* discover characteristic descriptors of a character */ 3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_MAX /* maximnun discover type */ 3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_DISC_TYPE; 3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Discover parameters of different discovery types 3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID service; 4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 s_handle; 4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 e_handle; 4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}tGATT_DISC_PARAM; 4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT read type enumeration 4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_READ_BY_TYPE = 1, 4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_READ_BY_HANDLE, 4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_READ_MULTIPLE, 4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_READ_CHAR_VALUE, 4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_READ_PARTIAL, 4135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_READ_MAX 4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_READ_TYPE; 4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read By Type Request (GATT_READ_BY_TYPE) Data 4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_AUTH_REQ auth_req; 4225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 s_handle; 4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 e_handle; 4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID uuid; 4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_READ_BY_TYPE; 4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT_READ_MULTIPLE request data 4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_MAX_READ_MULTI_HANDLES 10 /* Max attributes to read in one request */ 4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_AUTH_REQ auth_req; 4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 num_handles; /* number of handles to read */ 4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handles[GATT_MAX_READ_MULTI_HANDLES]; /* handles list to be read */ 4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_READ_MULTI; 4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read By Handle Request (GATT_READ_BY_HANDLE) data */ 4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_AUTH_REQ auth_req; 4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; 4425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_READ_BY_HANDLE; 4435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* READ_BT_HANDLE_Request data */ 4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_AUTH_REQ auth_req; 4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; 4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 offset; 4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_READ_PARTIAL; 4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read Request Data 4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_BY_TYPE service; 4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_BY_TYPE char_type; /* characterisitc type */ 4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_MULTI read_multiple; 4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_BY_HANDLE by_handle; 4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_PARTIAL partial; 4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_READ_PARAM; 4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT write type enumeration */ 4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 4655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_WRITE_NO_RSP = 1, 4675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_WRITE , 4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_WRITE_PREPARE 4695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_WRITE_TYPE; 4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Client Operation Complete Callback Data 4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_VALUE att_value; 4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 mtu; 4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; 4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_CL_COMPLETE; 4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT client operation type, used in client callback function 4825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_NONE 0 4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_DISCOVERY 1 4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_READ 2 4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_WRITE 3 4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_EXE_WRITE 4 4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_CONFIG 5 4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_NOTIFICATION 6 4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTC_OPTYPE_INDICATION 7 4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATTC_OPTYPE; 4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* characteristic declaration 4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_CHAR_PROP char_prop; /* characterisitc properties */ 4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 val_handle; /* characteristic value attribute handle */ 4995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID char_uuid; /* characteristic UUID type */ 5005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_CHAR_DCLR_VAL; 5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* primary service group data 5035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 5045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 5055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 e_handle; /* ending handle of the group */ 5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID service_type; /* group type */ 5085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_GROUP_VALUE; 5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* included service attribute value 5125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID service_type; /* included service UUID */ 5165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 s_handle; /* starting handle */ 5175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 e_handle; /* ending handle */ 5185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_INCL_SRVC; 5195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 5215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_INCL_SRVC incl_service; /* include service value */ 5235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_GROUP_VALUE group_value; /* Service UUID type. 5245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project This field is used with GATT_DISC_SRVC_ALL 5255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project type of discovery result callback. */ 5265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* When used with GATT_DISC_SRVC_BY_UUID type 5285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project discovery result, it is the ending handle of a 5295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project known service to be discovered. When used with 5305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_DISC_INC_SRVC type discovery result, 5315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project it is the included service starting handle.*/ 5325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_CHAR_DCLR_VAL dclr_value; /* Characteristic declaration value. 5345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project This field is used with GATT_DISC_CHAR type discovery.*/ 5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_DISC_VALUE; 5365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* discover result record 5385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 5395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID type; 5425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; 5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_DISC_VALUE value; 5445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_DISC_RES; 5455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATT_IF; 5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_LINK_IDLE_TIMEOUT_WHEN_NO_APP 0 /* start a idle timer for this duration when no application 5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project need to use the link */ 5505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_LINK_NO_IDLE_TIMEOUT 0xFFFF 5525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATT_INVALID_ACL_HANDLE 0xFFFF 5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* discover result callback function */ 5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tGATT_DISC_RES_CB) (UINT16 conn_id, tGATT_DISC_TYPE disc_type, tGATT_DISC_RES *p_data); 5565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* discover complete callback function */ 5585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tGATT_DISC_CMPL_CB) (UINT16 conn_id, tGATT_DISC_TYPE disc_type, tGATT_STATUS status); 5595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define a callback function for when read/write/disc/config operation is completed. */ 5615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tGATT_CMPL_CBACK) (UINT16 conn_id, tGATTC_OPTYPE op, tGATT_STATUS status, tGATT_CL_COMPLETE *p_data); 5625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define a callback function when an initialized connection is established. */ 5645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tGATT_CONN_CBACK) (tGATT_IF gatt_if, BD_ADDR bda, UINT16 conn_id, BOOLEAN connected, tGATT_DISCONN_REASON reason); 5655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* attribute request callback for ATT server */ 5675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tGATT_REQ_CBACK )(UINT16 conn_id, UINT32 trans_id, tGATTS_REQ_TYPE type, tGATTS_DATA *p_data); 5685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the structure that applications use to register with 5735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** GATT. This structure includes callback functions. All functions 5745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** MUST be provided. 5755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 5765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 5775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_CONN_CBACK *p_conn_cb; 5795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_CMPL_CBACK *p_cmpl_cb; 5805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_DISC_RES_CB *p_disc_res_cb; 5815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_DISC_CMPL_CB *p_disc_cmpl_cb; 5825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_REQ_CBACK *p_req_cb; 5835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_CBACK; 5845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*********************** Start Handle Management Definitions ********************** 5865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 5875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 5905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 5915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID app_uuid128; 5925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID svc_uuid; 5935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 svc_inst; 5945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 s_handle; 5955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 e_handle; 5965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_primary; /* primary service or secondary */ 5975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_HNDL_RANGE; 5985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTS_SRV_CHG_CMD_ADD_CLIENT 1 6025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTS_SRV_CHG_CMD_UPDATE_CLIENT 2 6035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTS_SRV_CHG_CMD_REMOVE_CLIENT 3 6045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTS_SRV_CHG_CMD_READ_NUM_CLENTS 4 6055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define GATTS_SRV_CHG_CMD_READ_CLENT 5 6065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tGATTS_SRV_CHG_CMD; 6075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 6095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR bda; 6115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN srv_changed; 6125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_SRV_CHG; 6135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 6165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATTS_SRV_CHG srv_chg; 6185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 client_read_index; /* only used for sequential reading client srv chg info */ 6195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_SRV_CHG_REQ; 6205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 6225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATTS_SRV_CHG srv_chg; 6245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 num_clients; 6255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_SRV_CHG_RSP; 6265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 6305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATTS_HNDL_RANGE *p_new_srv_start; 6325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATTS_PENDING_NEW_SRV_START; 6335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Attibute server handle ranges NV storage callback functions 6355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 6365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tGATTS_NV_SAVE_CBACK)(BOOLEAN is_saved, tGATTS_HNDL_RANGE *p_hndl_range); 6375738f83aeb59361a0a2eda2460113f6dc919427The 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); 6385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 6405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATTS_NV_SAVE_CBACK *p_nv_save_callback; 6425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATTS_NV_SRV_CHG_CBACK *p_srv_chg_callback; 6435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tGATT_APPL_INFO; 6445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*********************** End Handle Management Definitions **********************/ 6475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 6495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** External Function Declarations 6505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus 6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern "C" 6535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 6545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 6555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_SetTraceLevel 6595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function sets the trace level. If called with 6615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** a value of 0xFF, it simply returns the current trace level. 6625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns The new or current trace level 6645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 6665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern UINT8 GATT_SetTraceLevel (UINT8 new_level); 6675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************/ 6705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT Profile API Functions */ 6715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************/ 6725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT Profile Server Functions */ 6735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************/ 6745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_AddHandleRange 6775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function add the allocated handles range for the specifed 6795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** application UUID, service UUID and service instance 6805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter p_hndl_range: pointer to allocated handles information 6825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if handle range is added sucessfully; otherwise FALSE. 6845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 6865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATTS_AddHandleRange(tGATTS_HNDL_RANGE *p_hndl_range); 6885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_NVRegister 6925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Application manager calls this function to register for 6945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** NV save callback function. There can be one and only one 6955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** NV save callback function. 6965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter p_cb_info : callback informaiton 6985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if registered OK, else FALSE 7005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATTS_NVRegister (tGATT_APPL_INFO *p_cb_info); 7035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_CreateService 7085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to reserve a block of handles for a service. 7105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** *** It should be called only once per service instance *** 7125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter gatt_if : application if 7145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_svc_uuid : service UUID 7155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** svc_inst : instance of the service inside the application 7165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** num_handles : number of handles needed by the service. 7175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is_pri : is a primary service or not. 7185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns service handle if sucessful, otherwise 0. 7205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern UINT16 GATTS_CreateService (tGATT_IF gatt_if, tBT_UUID *p_svc_uuid, 7235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 svc_inst, UINT16 num_handles, BOOLEAN is_pri); 7245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_AddIncludeService 7295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to add an included service. 7315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter service_handle : To which service this included service is added to. 7335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** include_svc_handle : included service handle. 7345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns included service attribute handle. If 0, add included service 7365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** fail. 7375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern UINT16 GATTS_AddIncludeService (UINT16 service_handle, 7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 include_svc_handle); 7415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_AddCharacteristic 7465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to add a characteristic into a service. 7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** It will add a characteristic declaration and characteristic 7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** value declaration into the service database identified by the 7505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** service handle. 7515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter service_handle : To which service this included service is added to. 7535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** char_uuid : Characteristic UUID. 7545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** perm : Characteristic value declaration attribute permission. 7555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** property : Characteristic Properties 7565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns Characteristic value declaration attribute handle. 0 if add 7585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** characteristic failed. 7595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern UINT16 GATTS_AddCharacteristic (UINT16 service_handle, tBT_UUID *char_uuid, 7625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_PERM perm,tGATT_CHAR_PROP property); 7635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_AddCharDescriptor 7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to add a characteristic descriptor 7695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** into a service database. Add descriptor should follow add char 7705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** to which it belongs, and next add char should be done only 7715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** after all add descriptors for the previous char. 7725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter service_handle : To which service this characteristic descriptor 7745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is added to. 7755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** perm : Characteristic value declaration attribute 7765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** permission. 7775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_descr_uuid : Characteristic descriptor UUID. 7785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns Characteristic descriptor attribute handle. 0 if add 7805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** characteristic descriptor failed. 7815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern UINT16 GATTS_AddCharDescriptor (UINT16 service_handle, tGATT_PERM perm, 7845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBT_UUID * p_descr_uuid); 7855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_DeleteService 7895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to delete a service. 7915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter gatt_if : application interface 7935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_svc_uuid : service UUID 7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** svc_inst : instance of the service inside the application 7955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if operation succeed, FALSE if handle block was not found. 7975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATTS_DeleteService (tGATT_IF gatt_if, tBT_UUID *p_svc_uuid, UINT16 svc_inst); 8005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_StartService 8045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to start a service with GATT 8065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter gatt_if : service handle. 8085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_cback : application service callback functions. 8095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** sup_transport : supported transport(s) for this primary service 8105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** return GATT_SUCCESS if sucessfully started; otherwise error code. 8125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTS_StartService (tGATT_IF gatt_if, UINT16 service_handle, 8155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_TRANSPORT sup_transport); 8165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_StopService 8215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to stop a service 8235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter service_handle : this is the start handle of a service 8255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns None. 8275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern void GATTS_StopService (UINT16 service_handle); 8305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTs_HandleValueIndication 8355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function sends a handle value indication to a client. 8375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter conn_id: connection identifier. 8395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** attr_handle: Attribute handle of this handle value indication. 8405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** val_len: Length of the indicated attribute value. 8415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_val: Pointer to the indicated attribute value data. 8425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if sucessfully sent or queued; otherwise error code. 8445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTS_HandleValueIndication (UINT16 conn_id, 8475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 attr_handle, 8485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 val_len, UINT8 *p_val); 8495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_HandleValueNotification 8535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function sends a handle value notification to a client. 8555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter conn_id: connection identifier. 8575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** attr_handle: Attribute handle of this handle value indication. 8585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** val_len: Length of the indicated attribute value. 8595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_val: Pointer to the indicated attribute value data. 8605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if sucessfully sent; otherwise error code. 8625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTS_HandleValueNotification (UINT16 conn_id, UINT16 attr_handle, 8655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 val_len, UINT8 *p_val); 8665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTS_SendRsp 8715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function sends the server response to client. 8735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter conn_id: connection identifier. 8755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** trans_id: transaction id 8765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** status: response status 8775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_msg: pointer to message parameters structure. 8785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if sucessfully sent; otherwise error code. 8805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTS_SendRsp (UINT16 conn_id, UINT32 trans_id, 8835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_STATUS status, tGATTS_RSP *p_msg); 8845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************/ 8875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GATT Profile Client Functions */ 8885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************/ 8895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTC_ConfigureMTU 8935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to configure the ATT MTU size for 8955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** a connection on an LE transport. 8965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 8985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** mtu - attribute MTU size.. 8995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if command started successfully. 9015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTC_ConfigureMTU (UINT16 conn_id, UINT16 mtu); 9045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTC_Discover 9085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to do a discovery procedure on ATT server. 9105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 9125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** disc_type:discovery type. 9135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_param: parameters of discovery requirement. 9145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if command received/sent successfully. 9165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTC_Discover (UINT16 conn_id, 9195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_DISC_TYPE disc_type, 9205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_DISC_PARAM *p_param ); 9215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTC_Read 9245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to read the value of an attribute from 9265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the server. 9275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 9295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** type - attribute read type. 9305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_read - read operation parameters. 9315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if command started successfully. 9335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTC_Read (UINT16 conn_id, tGATT_READ_TYPE type, 9365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_READ_PARAM *p_read); 9375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTC_Write 9415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to read the value of an attribute from 9435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the server. 9445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 9465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** type - attribute write type. 9475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_write - write operation parameters. 9485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if command started successfully. 9505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTC_Write (UINT16 conn_id, tGATT_WRITE_TYPE type, 9535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tGATT_VALUE *p_write); 9545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTC_ExecuteWrite 9595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to send an Execute write request to 9615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the server. 9625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 9645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is_execute - to execute or cancel the prepare write requet(s) 9655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if command started successfully. 9675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTC_ExecuteWrite (UINT16 conn_id, BOOLEAN is_execute); 9705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATTC_SendHandleValueConfirm 9745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to send a handle value confirmation 9765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** as response to a handle value notification from server. 9775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 9795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** handle: the handle of the attribute confirmation. 9805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if command started successfully. 9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATTC_SendHandleValueConfirm (UINT16 conn_id, UINT16 handle); 9855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_SetIdleTimeout 9905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function (common to both client and server) sets the idle 9925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** timeout for a tansport connection 9935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter bd_addr: target device bd address. 9955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** idle_tout: timeout value in seconds. 9965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 9985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern void GATT_SetIdleTimeout (BD_ADDR bd_addr, UINT16 idle_tout); 10015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_Register 10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called to register an application 10085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** with GATT 10095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter p_app_uuid128: Application UUID 10115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_cb_info: callback functions. 10125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns 0 for error, otherwise the index of the client registered with GATT 10145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_IF GATT_Register (tBT_UUID *p_app_uuid128, tGATT_CBACK *p_cb_info); 10175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_Deregister 10215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function deregistered the application from GATT. 10235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters gatt_if: applicaiton interface. 10255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns None. 10275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern void GATT_Deregister (tGATT_IF gatt_if); 10305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_StartIf 10345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called after registration to start receiving 10365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** callbacks for registered interface. Function may call back 10375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** with connection status and queued notifications 10385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameter gatt_if: applicaiton interface. 10405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns None 10425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern void GATT_StartIf (tGATT_IF gatt_if); 10455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_Connect 10495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function initiate a connecttion to a ATT server. 10515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters gatt_if: applicaiton interface 10535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** bd_addr: peer device address. 10545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is_direct: is a direct conenection or a background auto connection 10555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if connection started; FALSE if connection start failure. 10575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATT_Connect (tGATT_IF gatt_if, BD_ADDR bd_addr, BOOLEAN is_direct); 10605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_CancelConnect 10655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function initiate a cancel connecttion to a ATT server. 10675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters gatt_if: client interface. If 0 used as unconditionally disconnect, 10695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** typically used for direct connection cancellation. 10705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** bd_addr: peer device address. 10715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is_direct: is a direct conenection or a background auto connection 10725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if connection started; FALSE if connection start failure. 10745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATT_CancelConnect (tGATT_IF gatt_if, BD_ADDR bd_addr, BOOLEAN is_direct); 10775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_Disconnect 10815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function disconnect a logic channel. 10835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection identifier. 10855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns GATT_SUCCESS if disconnected. 10875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern tGATT_STATUS GATT_Disconnect (UINT16 conn_id); 10905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_GetConnectionInfor 10965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function use conn_id to find its associated BD address and applciation 10985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** interface 10995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters conn_id: connection id (input) 11015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_gatt_if: applicaiton interface (output) 11025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** bd_addr: peer device address. (output) 11035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE the ligical link information is found for conn_id 11055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 11075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATT_GetConnectionInfor(UINT16 conn_id, tGATT_IF *p_gatt_if, BD_ADDR bd_addr); 11085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function GATT_GetConnIdIfConnected 11135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function find the conn_id if the logical link for BD address 11155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** and applciation interface is connected 11165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters gatt_if: applicaiton interface (input) 11185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** bd_addr: peer device address. (input) 11195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_conn_id: connection id (output) 11205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE the ligical link is connected 11225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 11245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project GATT_API extern BOOLEAN GATT_GetConnIdIfConnected(tGATT_IF gatt_if, BD_ADDR bd_addr, UINT16 *p_conn_id); 11255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1126ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1127ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 1128ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** 1129ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** Function GATT_Listen 1130ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** 1131ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** Description This function start or stop LE advertisement and listen for 1132ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** connection. 1133ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** 1134ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** Parameters gatt_if: applicaiton interface 1135ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** p_bd_addr: listen for specific address connection, or NULL for 1136ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** listen to all device connection. 1137ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** start: is a direct conenection or a background auto connection 1138ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** 1139ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** Returns TRUE if advertisement is started; FALSE if adv start failure. 1140ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta** 1141ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta*******************************************************************************/ 1142ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta GATT_API extern BOOLEAN GATT_Listen (tGATT_IF gatt_if, BOOLEAN start, BD_ADDR_PTR bd_addr); 1143ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1144ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 11455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus 11465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 11485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 11495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* GATT_API_H */ 1151