119e95205Sopenharmony_ci/* 219e95205Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd. 319e95205Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 419e95205Sopenharmony_ci * you may not use this file except in compliance with the License. 519e95205Sopenharmony_ci * You may obtain a copy of the License at 619e95205Sopenharmony_ci * 719e95205Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 819e95205Sopenharmony_ci * 919e95205Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1019e95205Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1119e95205Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1219e95205Sopenharmony_ci * See the License for the specific language governing permissions and 1319e95205Sopenharmony_ci * limitations under the License. 1419e95205Sopenharmony_ci */ 1519e95205Sopenharmony_ci 1619e95205Sopenharmony_ci/** 1719e95205Sopenharmony_ci * @file att.h 1819e95205Sopenharmony_ci * 1919e95205Sopenharmony_ci * @brief Declares extern interface, including register interface, callback interface etc. 2019e95205Sopenharmony_ci * 2119e95205Sopenharmony_ci */ 2219e95205Sopenharmony_ci 2319e95205Sopenharmony_ci#ifndef ATT_H 2419e95205Sopenharmony_ci#define ATT_H 2519e95205Sopenharmony_ci 2619e95205Sopenharmony_ci#include <stdint.h> 2719e95205Sopenharmony_ci#include "btstack.h" 2819e95205Sopenharmony_ci#include "buffer.h" 2919e95205Sopenharmony_ci#ifdef __cplusplus 3019e95205Sopenharmony_ciextern "C" { 3119e95205Sopenharmony_ci#endif 3219e95205Sopenharmony_ci 3319e95205Sopenharmony_ci// Transport type 3419e95205Sopenharmony_ci#define BT_TRANSPORT_INVALID 0 3519e95205Sopenharmony_ci#define BT_TRANSPORT_BR_EDR 1 3619e95205Sopenharmony_ci#define BT_TRANSPORT_LE 2 3719e95205Sopenharmony_ci 3819e95205Sopenharmony_ci// client callback event id 3919e95205Sopenharmony_ci#define ATT_ERROR_RESPONSE_ID 0x0101 4019e95205Sopenharmony_ci#define ATT_EXCHANGE_MTU_RESPONSE_ID 0x0103 4119e95205Sopenharmony_ci#define ATT_FIND_INFORMATION_RESPONSE_ID 0x0105 4219e95205Sopenharmony_ci#define ATT_FIND_BY_TYPE_VALUE_RESPONSE_ID 0x0107 4319e95205Sopenharmony_ci#define ATT_READ_BY_TYPE_RESPONSE_ID 0x0109 4419e95205Sopenharmony_ci#define ATT_READ_RESPONSE_ID 0x010B 4519e95205Sopenharmony_ci#define ATT_READ_BLOB_RESPONSE_ID 0x010D 4619e95205Sopenharmony_ci#define ATT_READ_MULTIPLE_RESPONSE_ID 0x010F 4719e95205Sopenharmony_ci#define ATT_READ_BY_GROUP_TYPE_RESPONSE_ID 0x0202 4819e95205Sopenharmony_ci#define ATT_WRITE_RESPONSE_ID 0x0204 4919e95205Sopenharmony_ci#define ATT_PREPARE_WRITE_RESPONSE_ID 0x0208 5019e95205Sopenharmony_ci#define ATT_EXECUTE_WRITE_RESPONSE_ID 0x020A 5119e95205Sopenharmony_ci#define ATT_HANDLE_VALUE_NOTIFICATION_ID 0x020B 5219e95205Sopenharmony_ci#define ATT_HANDLE_VALUE_INDICATION_ID 0x020C 5319e95205Sopenharmony_ci#define ATT_TRANSACTION_TIME_OUT_ID 0x020E 5419e95205Sopenharmony_ci 5519e95205Sopenharmony_ci// server callback event id 5619e95205Sopenharmony_ci#define ATT_EXCHANGE_MTU_REQUEST_ID 0x0102 5719e95205Sopenharmony_ci#define ATT_FIND_INFORMATION_REQUEST_ID 0x0104 5819e95205Sopenharmony_ci#define ATT_FIND_BY_TYPE_VALUE_REQUEST_ID 0x0106 5919e95205Sopenharmony_ci#define ATT_READ_BY_TYPE_REQUEST_ID 0x0108 6019e95205Sopenharmony_ci#define ATT_READ_REQUEST_ID 0x010A 6119e95205Sopenharmony_ci#define ATT_READ_BLOB_REQUEST_ID 0x010C 6219e95205Sopenharmony_ci#define ATT_READ_MULTIPLE_REQUEST_ID 0x010E 6319e95205Sopenharmony_ci#define ATT_READ_BY_GROUP_TYPE_REQUEST_ID 0x0201 6419e95205Sopenharmony_ci#define ATT_WRITE_REQUEST_ID 0x0203 6519e95205Sopenharmony_ci#define ATT_WRITE_COMMAND_ID 0x0205 6619e95205Sopenharmony_ci#define ATT_SIGNED_WRITE_COMMAND_ID 0x0206 6719e95205Sopenharmony_ci#define ATT_PREPARE_WRITE_REQUEST_ID 0x0207 6819e95205Sopenharmony_ci#define ATT_EXECUTE_WRITE_REQUEST_ID 0x0209 6919e95205Sopenharmony_ci#define ATT_HANDLE_VALUE_CONFIRMATION_ID 0x020D 7019e95205Sopenharmony_ci#define ATT_UNKNOW_OPCODE_ID 0x020F 7119e95205Sopenharmony_ci 7219e95205Sopenharmony_ci// error response code 7319e95205Sopenharmony_ci#define ATT_INVALID_HANDLE 0x01 7419e95205Sopenharmony_ci#define ATT_READ_NOT_PERMITTED 0x02 7519e95205Sopenharmony_ci#define ATT_WRITE_NOT_PERMITTED 0x03 7619e95205Sopenharmony_ci#define ATT_INVALID_PDU 0x04 7719e95205Sopenharmony_ci#define ATT_INSUFFICIENT_AUTHENTICATION 0x05 7819e95205Sopenharmony_ci#define ATT_REQUEST_NOT_SUPPORTED 0x06 7919e95205Sopenharmony_ci#define ATT_INVALID_OFFSET 0x07 8019e95205Sopenharmony_ci#define ATT_INSUFFICIENT_AUTHORIZATION 0x08 8119e95205Sopenharmony_ci#define ATT_PREPARE_QUEUE_FULL 0x09 8219e95205Sopenharmony_ci#define ATT_ATTRIBUTE_NOT_FOUND 0x0A 8319e95205Sopenharmony_ci#define ATT_ATTRIBUTE_NOT_LONG 0x0B 8419e95205Sopenharmony_ci#define ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE 0x0C 8519e95205Sopenharmony_ci#define ATT_INVALID_ATTRIBUTE_VALUE_LENGTH 0x0D 8619e95205Sopenharmony_ci#define ATT_UNLIKELY_ERROR 0x0E 8719e95205Sopenharmony_ci#define ATT_INSUFFICIENT_ENCRYPTION 0x0F 8819e95205Sopenharmony_ci#define ATT_UNSUPPORTED_GROUP_TYPE 0x10 8919e95205Sopenharmony_ci#define ATT_INSUFFICIENT_RESOURECES 0x11 9019e95205Sopenharmony_ci#define ATT_WRITE_REQUEST_REJECTED 0xFC 9119e95205Sopenharmony_ci#define ATT_CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_IMPROPERLY_CONFIGURED 0xFD 9219e95205Sopenharmony_ci#define ATT_PROCEDURE_ALREADY_IN_PROGRESS 0xFE 9319e95205Sopenharmony_ci#define ATT_OUT_OF_RANGE 0xFF 9419e95205Sopenharmony_ci 9519e95205Sopenharmony_ci// opcode 9619e95205Sopenharmony_ci#define ERROR_RESPONSE 0x01 9719e95205Sopenharmony_ci#define EXCHANGE_MTU_REQUEST 0x02 9819e95205Sopenharmony_ci#define EXCHANGE_MTU_RESPONSE 0x03 9919e95205Sopenharmony_ci#define FIND_INFORMATION_REQUEST 0x04 10019e95205Sopenharmony_ci#define FIND_INFORMATION_RESPONSE 0x05 10119e95205Sopenharmony_ci#define FIND_BY_TYPE_VALUE_REQUEST 0x06 10219e95205Sopenharmony_ci#define FIND_BY_TYPE_VALUE_RESPONSE 0x07 10319e95205Sopenharmony_ci#define READ_BY_TYPE_REQUEST 0x08 10419e95205Sopenharmony_ci#define READ_BY_TYPE_RESPONSE 0x09 10519e95205Sopenharmony_ci#define READ_REQUEST 0x0A 10619e95205Sopenharmony_ci#define READ_RESPONSE 0x0B 10719e95205Sopenharmony_ci#define READ_BLOB_REQUEST 0x0C 10819e95205Sopenharmony_ci#define READ_BLOB_RESPONSE 0x0D 10919e95205Sopenharmony_ci#define READ_MULTIPLE_REQUEST 0x0E 11019e95205Sopenharmony_ci#define READ_MULTIPLE_RESPONSE 0x0F 11119e95205Sopenharmony_ci#define READ_BY_GROUP_TYPE_REQUEST 0x10 11219e95205Sopenharmony_ci#define READ_BY_GROUP_TYPE_RESPONSE 0x11 11319e95205Sopenharmony_ci#define WRITE_REQUEST 0x12 11419e95205Sopenharmony_ci#define WRITE_RESPONSE 0x13 11519e95205Sopenharmony_ci#define WRITE_COMMAND 0x52 11619e95205Sopenharmony_ci#define SIGNED_WRITE_COMMAND 0xD2 11719e95205Sopenharmony_ci#define PREPARE_WRITE_REQUEST 0x16 11819e95205Sopenharmony_ci#define PREPARE_WRITE_RESPONSE 0x17 11919e95205Sopenharmony_ci#define EXECUTE_WRITE_REQUEST 0x18 12019e95205Sopenharmony_ci#define EXECUTE_WRITE_RESPONSE 0x19 12119e95205Sopenharmony_ci#define HANDLE_VALUE_NOTIFICATION 0x1B 12219e95205Sopenharmony_ci#define HANDLE_VALUE_INDICATION 0x1D 12319e95205Sopenharmony_ci#define HANDLE_VALUE_CONFIRMATION 0x1E 12419e95205Sopenharmony_ci#define READ_MULTIPLE_VARIABLE_RESPONSE 0x21 12519e95205Sopenharmony_ci#define MULTIPLE_HANDLE_VALUE_NOTIFICATION 0x23 12619e95205Sopenharmony_ci 12719e95205Sopenharmony_ci// gap security authentication result code 12819e95205Sopenharmony_ci#define SECURITY_AUTHENTICATION_SUCCESS 0x45 12919e95205Sopenharmony_ci#define SECURITY_AUTHENTICATION_FAIL 0x46 13019e95205Sopenharmony_ci 13119e95205Sopenharmony_ci// bredr connect callback result code 13219e95205Sopenharmony_ci#define BREDR_CONNECT_SUCCESS 0x49 13319e95205Sopenharmony_ci#define BREDR_CONNECT_FAIL 0x50 13419e95205Sopenharmony_ci 13519e95205Sopenharmony_ci// le connect callback result code 13619e95205Sopenharmony_ci#define LE_CONNECT_SUCCESS 0x51 13719e95205Sopenharmony_ci#define LE_CONNECT_FAIL 0x52 13819e95205Sopenharmony_ci 13919e95205Sopenharmony_ci// le disconnect result code 14019e95205Sopenharmony_ci#define LE_DISCONNECT_SUCCESS 0x53 14119e95205Sopenharmony_ci#define LE_DISCONNECT_FAIL 0x54 14219e95205Sopenharmony_ci 14319e95205Sopenharmony_ci// bredr disconnect callback result code 14419e95205Sopenharmony_ci#define INITIATIVECONNECT_DISCONNECT_SUCCESS 0x55 14519e95205Sopenharmony_ci#define INITIATIVECONNECT_DISCONNECT_FAIL 0x56 14619e95205Sopenharmony_ci#define PASSIVECONNECT_DISCONNECT_SUCCESS 0x57 14719e95205Sopenharmony_ci#define PASSIVECONNECT_DISCONNECT_FAIL 0x58 14819e95205Sopenharmony_ci#define DISCONNECT_ABNORMAL 0x59 14919e95205Sopenharmony_ci 15019e95205Sopenharmony_ci// bredr connect response result 15119e95205Sopenharmony_ci#define BREDR_CONNECT_ACCEPT 0x00 15219e95205Sopenharmony_ci#define BREDR_CONNECT_REJECTED 0x04 15319e95205Sopenharmony_ci 15419e95205Sopenharmony_ci// att connect timeout 15519e95205Sopenharmony_ci#define ATT_CONNECT_TIMEOUT 0x0060 15619e95205Sopenharmony_ci 15719e95205Sopenharmony_citypedef struct { 15819e95205Sopenharmony_ci uint16_t attHandle; 15919e95205Sopenharmony_ci BtUuid uuid; 16019e95205Sopenharmony_ci} AttHandleUuid; 16119e95205Sopenharmony_ci 16219e95205Sopenharmony_citypedef struct { 16319e95205Sopenharmony_ci uint16_t attHandle; 16419e95205Sopenharmony_ci uint16_t groupEndHandle; 16519e95205Sopenharmony_ci} AttHandleInfo; 16619e95205Sopenharmony_ci 16719e95205Sopenharmony_citypedef struct { 16819e95205Sopenharmony_ci uint8_t properties; 16919e95205Sopenharmony_ci uint16_t attributeHandle; 17019e95205Sopenharmony_ci BtUuid *uuid; 17119e95205Sopenharmony_ci} AttSpecificAttributeValue; 17219e95205Sopenharmony_ci 17319e95205Sopenharmony_citypedef struct { 17419e95205Sopenharmony_ci uint16_t attHandle; 17519e95205Sopenharmony_ci} AttHandleValue; 17619e95205Sopenharmony_ci 17719e95205Sopenharmony_citypedef struct { 17819e95205Sopenharmony_ci uint16_t attHandle; 17919e95205Sopenharmony_ci uint16_t groupEndHandle; 18019e95205Sopenharmony_ci uint8_t *attributeValue; 18119e95205Sopenharmony_ci} AttReadGoupAttributeData; 18219e95205Sopenharmony_ci 18319e95205Sopenharmony_citypedef struct { 18419e95205Sopenharmony_ci uint16_t mtuSize; 18519e95205Sopenharmony_ci} AttExchangeMTUType; 18619e95205Sopenharmony_ci 18719e95205Sopenharmony_citypedef struct { 18819e95205Sopenharmony_ci uint16_t startHandle; 18919e95205Sopenharmony_ci uint16_t endHandle; 19019e95205Sopenharmony_ci} AttHandleRange; 19119e95205Sopenharmony_ci 19219e95205Sopenharmony_citypedef struct { 19319e95205Sopenharmony_ci uint8_t reqOpcode; 19419e95205Sopenharmony_ci uint16_t attHandleInError; 19519e95205Sopenharmony_ci uint8_t errorCode; 19619e95205Sopenharmony_ci} AttError; 19719e95205Sopenharmony_ci 19819e95205Sopenharmony_citypedef struct { 19919e95205Sopenharmony_ci AttHandleUuid *handleUuidPairs; 20019e95205Sopenharmony_ci uint16_t pairNum; 20119e95205Sopenharmony_ci uint8_t format; 20219e95205Sopenharmony_ci} AttFindInformationRsp; 20319e95205Sopenharmony_ci 20419e95205Sopenharmony_citypedef struct { 20519e95205Sopenharmony_ci AttHandleRange handleRange; 20619e95205Sopenharmony_ci uint16_t attType; 20719e95205Sopenharmony_ci} AttFindByTypeValueReq; 20819e95205Sopenharmony_ci 20919e95205Sopenharmony_citypedef struct { 21019e95205Sopenharmony_ci AttHandleInfo *handleInfoList; 21119e95205Sopenharmony_ci uint16_t listNum; 21219e95205Sopenharmony_ci} AttFindByTypeValueRsp; 21319e95205Sopenharmony_ci 21419e95205Sopenharmony_citypedef union { 21519e95205Sopenharmony_ci AttHandleRange findInformationRequest; 21619e95205Sopenharmony_ci AttFindInformationRsp findInforRsponse; 21719e95205Sopenharmony_ci AttFindByTypeValueReq findByTypeValueRequest; 21819e95205Sopenharmony_ci AttFindByTypeValueRsp findByTypeValueResponse; 21919e95205Sopenharmony_ci} AttFind; 22019e95205Sopenharmony_ci 22119e95205Sopenharmony_citypedef struct { 22219e95205Sopenharmony_ci AttHandleRange handleRange; 22319e95205Sopenharmony_ci BtUuid *uuid; 22419e95205Sopenharmony_ci} AttReadByTypeReq; 22519e95205Sopenharmony_ci 22619e95205Sopenharmony_citypedef struct { 22719e95205Sopenharmony_ci AttHandleValue attHandle; 22819e95205Sopenharmony_ci uint8_t *attributeValue; 22919e95205Sopenharmony_ci} AttReadByTypeRspDataList; 23019e95205Sopenharmony_ci 23119e95205Sopenharmony_citypedef struct { 23219e95205Sopenharmony_ci AttReadByTypeRspDataList *valueList; 23319e95205Sopenharmony_ci uint16_t valueNum; 23419e95205Sopenharmony_ci uint8_t len; 23519e95205Sopenharmony_ci} AttReadByTypeRsp; 23619e95205Sopenharmony_ci 23719e95205Sopenharmony_citypedef struct { 23819e95205Sopenharmony_ci uint16_t attHandle; 23919e95205Sopenharmony_ci} AttReadReq; 24019e95205Sopenharmony_ci 24119e95205Sopenharmony_citypedef struct { 24219e95205Sopenharmony_ci uint16_t attHandle; 24319e95205Sopenharmony_ci uint16_t offset; 24419e95205Sopenharmony_ci} AttReadBlobReqPrepareWriteValue; 24519e95205Sopenharmony_ci 24619e95205Sopenharmony_citypedef struct { 24719e95205Sopenharmony_ci uint16_t *setHandles; 24819e95205Sopenharmony_ci} AttReadMultipleReq; 24919e95205Sopenharmony_ci 25019e95205Sopenharmony_citypedef struct { 25119e95205Sopenharmony_ci uint8_t *setValues; 25219e95205Sopenharmony_ci} AttReadMultipleRes; 25319e95205Sopenharmony_ci 25419e95205Sopenharmony_citypedef struct { 25519e95205Sopenharmony_ci AttHandleRange handleRange; 25619e95205Sopenharmony_ci BtUuid *uuid; 25719e95205Sopenharmony_ci} AttReadGroupReq; 25819e95205Sopenharmony_ci 25919e95205Sopenharmony_citypedef struct { 26019e95205Sopenharmony_ci uint8_t length; 26119e95205Sopenharmony_ci uint16_t num; 26219e95205Sopenharmony_ci AttReadGoupAttributeData *attributeData; 26319e95205Sopenharmony_ci} AttReadGroupRes; 26419e95205Sopenharmony_ci 26519e95205Sopenharmony_citypedef union { 26619e95205Sopenharmony_ci AttReadByTypeReq readHandleRangeUuid; 26719e95205Sopenharmony_ci AttReadByTypeRsp readHandleListNum; 26819e95205Sopenharmony_ci AttReadReq readHandle; 26919e95205Sopenharmony_ci AttReadBlobReqPrepareWriteValue readBlob; 27019e95205Sopenharmony_ci AttReadMultipleReq readMultRequest; 27119e95205Sopenharmony_ci AttReadMultipleRes readMultResponse; 27219e95205Sopenharmony_ci AttReadGroupReq readGroupRequest; 27319e95205Sopenharmony_ci AttReadGroupRes readGroupResponse; 27419e95205Sopenharmony_ci} AttRead; 27519e95205Sopenharmony_ci 27619e95205Sopenharmony_citypedef enum { 27719e95205Sopenharmony_ci SIGNATURE_OK, 27819e95205Sopenharmony_ci SIGNATURE_ERR_EXECUTION, 27919e95205Sopenharmony_ci SIGNATURE_ERR_COUNTER, 28019e95205Sopenharmony_ci SIGNATURE_ERR_ALGORITHM, 28119e95205Sopenharmony_ci GAP_REJECT, 28219e95205Sopenharmony_ci} AttSignedWriteCommandResult; 28319e95205Sopenharmony_ci 28419e95205Sopenharmony_citypedef struct { 28519e95205Sopenharmony_ci AttHandleValue attHandleValueObj; 28619e95205Sopenharmony_ci uint8_t authSignature[12]; 28719e95205Sopenharmony_ci uint16_t authSignatureLen; 28819e95205Sopenharmony_ci AttSignedWriteCommandResult result; 28919e95205Sopenharmony_ci} AttSignedWriteComm; 29019e95205Sopenharmony_ci 29119e95205Sopenharmony_citypedef struct { 29219e95205Sopenharmony_ci AttHandleValue handleValue; 29319e95205Sopenharmony_ci uint16_t offset; 29419e95205Sopenharmony_ci} AttPrepareWrite; 29519e95205Sopenharmony_ci 29619e95205Sopenharmony_citypedef struct { 29719e95205Sopenharmony_ci uint8_t flag; 29819e95205Sopenharmony_ci} AttExecuteWrite; 29919e95205Sopenharmony_ci 30019e95205Sopenharmony_citypedef union { 30119e95205Sopenharmony_ci AttHandleValue writeRequest; 30219e95205Sopenharmony_ci AttHandleValue writeCommand; 30319e95205Sopenharmony_ci AttHandleValue confirmation; 30419e95205Sopenharmony_ci AttSignedWriteComm signedWriteCommand; 30519e95205Sopenharmony_ci AttPrepareWrite prepareWrite; 30619e95205Sopenharmony_ci AttExecuteWrite excuteWrite; 30719e95205Sopenharmony_ci} AttWrite; 30819e95205Sopenharmony_ci 30919e95205Sopenharmony_citypedef struct { 31019e95205Sopenharmony_ci uint8_t status; 31119e95205Sopenharmony_ci uint8_t role; 31219e95205Sopenharmony_ci BtAddr addr; 31319e95205Sopenharmony_ci} AttLeConnectCallback; 31419e95205Sopenharmony_ci 31519e95205Sopenharmony_citypedef struct { 31619e95205Sopenharmony_ci uint8_t status; 31719e95205Sopenharmony_ci uint8_t reason; 31819e95205Sopenharmony_ci} AttLeDisconnectCallback; 31919e95205Sopenharmony_ci 32019e95205Sopenharmony_citypedef struct { 32119e95205Sopenharmony_ci BtAddr addr; 32219e95205Sopenharmony_ci uint8_t status; 32319e95205Sopenharmony_ci uint16_t mtu; 32419e95205Sopenharmony_ci} AttBredrConnectCallback; 32519e95205Sopenharmony_ci 32619e95205Sopenharmony_citypedef struct { 32719e95205Sopenharmony_ci uint8_t reason; 32819e95205Sopenharmony_ci} AttBredrDisconnectCallback; 32919e95205Sopenharmony_ci 33019e95205Sopenharmony_citypedef struct { 33119e95205Sopenharmony_ci uint16_t connIntervalMin; 33219e95205Sopenharmony_ci uint16_t connIntervalMax; 33319e95205Sopenharmony_ci uint16_t connLatency; 33419e95205Sopenharmony_ci uint16_t supervisionTimeout; 33519e95205Sopenharmony_ci} AttLeConnect; 33619e95205Sopenharmony_ci 33719e95205Sopenharmony_citypedef struct { 33819e95205Sopenharmony_ci uint16_t mtu; 33919e95205Sopenharmony_ci uint16_t flushTimeout; 34019e95205Sopenharmony_ci uint8_t mode; 34119e95205Sopenharmony_ci} AttBredrConnect; 34219e95205Sopenharmony_ci 34319e95205Sopenharmony_citypedef union { 34419e95205Sopenharmony_ci AttLeConnect leConnParaVar; 34519e95205Sopenharmony_ci AttBredrConnect bredrConnParaVar; 34619e95205Sopenharmony_ci} AttConnect; 34719e95205Sopenharmony_ci 34819e95205Sopenharmony_citypedef union AttEventData { 34919e95205Sopenharmony_ci AttError attErrorResponse; 35019e95205Sopenharmony_ci AttExchangeMTUType attExchangeMtuRequest; 35119e95205Sopenharmony_ci AttExchangeMTUType attExchangeMtuResponse; 35219e95205Sopenharmony_ci AttFind attFindInformationRequest; 35319e95205Sopenharmony_ci AttFind attFindInformationResponse; 35419e95205Sopenharmony_ci AttFind attFindByTypeValueRequest; 35519e95205Sopenharmony_ci AttFind attFindByTypeValueResponse; 35619e95205Sopenharmony_ci AttRead attReadByTypeRequest; 35719e95205Sopenharmony_ci AttRead attReadByTypeResponse; 35819e95205Sopenharmony_ci AttRead attReadRequest; 35919e95205Sopenharmony_ci AttRead attReadResponse; 36019e95205Sopenharmony_ci AttRead attReadBlobRequest; 36119e95205Sopenharmony_ci AttRead attReadBlobResponse; 36219e95205Sopenharmony_ci AttRead attReadMultipleRequest; 36319e95205Sopenharmony_ci AttRead attReadMultipleResponse; 36419e95205Sopenharmony_ci AttRead attReadByGroupTypeRequest; 36519e95205Sopenharmony_ci AttRead attReadByGroupTypeResponse; 36619e95205Sopenharmony_ci AttWrite attWriteRequest; 36719e95205Sopenharmony_ci AttWrite attWriteResponse; 36819e95205Sopenharmony_ci AttWrite attWriteCommand; 36919e95205Sopenharmony_ci AttWrite attSignedWriteCommand; 37019e95205Sopenharmony_ci AttWrite attPreprareWriteRequest; 37119e95205Sopenharmony_ci AttWrite attPrepareWriteResponse; 37219e95205Sopenharmony_ci AttWrite attExecuteWriteRequest; 37319e95205Sopenharmony_ci AttWrite attExecuteWriteResponse; 37419e95205Sopenharmony_ci AttHandleValue attNotification; 37519e95205Sopenharmony_ci AttHandleValue attIndication; 37619e95205Sopenharmony_ci AttHandleValue attHandleValueConfirmation; 37719e95205Sopenharmony_ci AttWrite attTimeOut; 37819e95205Sopenharmony_ci} AttEventData; 37919e95205Sopenharmony_ci 38019e95205Sopenharmony_citypedef struct { 38119e95205Sopenharmony_ci void (*attLEConnectCompleted)(uint16_t connectHandle, AttLeConnectCallback *data, void *context); 38219e95205Sopenharmony_ci void (*attLEDisconnectCompleted)(uint16_t connectHandle, AttLeDisconnectCallback *data, void *context); 38319e95205Sopenharmony_ci void (*attBREDRConnectCompleted)(uint16_t connectHandle, AttBredrConnectCallback *data, void *context); 38419e95205Sopenharmony_ci void (*attBREDRDisconnectCompleted)(uint16_t connectHandle, AttBredrDisconnectCallback *data, void *context); 38519e95205Sopenharmony_ci void (*attBREDRConnectInd)(uint16_t connectHandle, void *context); 38619e95205Sopenharmony_ci} AttConnectCallback; 38719e95205Sopenharmony_ci 38819e95205Sopenharmony_citypedef void (*attCallback)(uint16_t connectHandle, uint16_t event, void *eventData, Buffer *buffer, void *context); 38919e95205Sopenharmony_citypedef void (*attSendDataCallback)(uint16_t retGattConnectHandle, int result, void *context); 39019e95205Sopenharmony_ci 39119e95205Sopenharmony_citypedef struct { 39219e95205Sopenharmony_ci attSendDataCallback attSendDataCB; 39319e95205Sopenharmony_ci void *context; 39419e95205Sopenharmony_ci} AttClientSendDataCallback; 39519e95205Sopenharmony_ci 39619e95205Sopenharmony_citypedef struct { 39719e95205Sopenharmony_ci attSendDataCallback attSendDataCB; 39819e95205Sopenharmony_ci void *context; 39919e95205Sopenharmony_ci} AttServerSendDataCallback; 40019e95205Sopenharmony_ci 40119e95205Sopenharmony_ci/** 40219e95205Sopenharmony_ci * @brief Gatt register the client data callback to att. 40319e95205Sopenharmony_ci * 40419e95205Sopenharmony_ci * @param1 dataCallback Indicates the pointer to callback. 40519e95205Sopenharmony_ci * @param2 context Indicates the pointer to context. 40619e95205Sopenharmony_ci */ 40719e95205Sopenharmony_civoid BTSTACK_API ATT_ClientDataRegister(attCallback dataCallback, void *context); 40819e95205Sopenharmony_ci 40919e95205Sopenharmony_ci/** 41019e95205Sopenharmony_ci * @brief Gatt deregister the client data callback to att. 41119e95205Sopenharmony_ci * 41219e95205Sopenharmony_ci */ 41319e95205Sopenharmony_civoid BTSTACK_API ATT_ClientDataDeregister(); 41419e95205Sopenharmony_ci 41519e95205Sopenharmony_ci/** 41619e95205Sopenharmony_ci * @brief Gatt register the server data callback to att. 41719e95205Sopenharmony_ci * 41819e95205Sopenharmony_ci * @param1 dataCallback Indicates the pointer to callback. 41919e95205Sopenharmony_ci * @param2 context Indicates the pointer to context. 42019e95205Sopenharmony_ci */ 42119e95205Sopenharmony_civoid BTSTACK_API ATT_ServerDataRegister(attCallback dataCallback, void *context); 42219e95205Sopenharmony_ci 42319e95205Sopenharmony_ci/** 42419e95205Sopenharmony_ci * @brief Gatt deregister the server data callback to att. 42519e95205Sopenharmony_ci * 42619e95205Sopenharmony_ci */ 42719e95205Sopenharmony_civoid BTSTACK_API ATT_ServerDataDeregister(); 42819e95205Sopenharmony_ci 42919e95205Sopenharmony_ci/** 43019e95205Sopenharmony_ci * @brief Gatt register the connection callback to att. 43119e95205Sopenharmony_ci * 43219e95205Sopenharmony_ci * @param1 connectBack Indicates the struct to callback. 43319e95205Sopenharmony_ci * @param2 context Indicates the pointer to context. 43419e95205Sopenharmony_ci */ 43519e95205Sopenharmony_civoid BTSTACK_API ATT_ConnectRegister(AttConnectCallback connectBack, void *context); 43619e95205Sopenharmony_ci 43719e95205Sopenharmony_ci/** 43819e95205Sopenharmony_ci * @brief Gatt deregister the connection callback to att. 43919e95205Sopenharmony_ci * 44019e95205Sopenharmony_ci */ 44119e95205Sopenharmony_civoid BTSTACK_API ATT_ConnectDeregister(); 44219e95205Sopenharmony_ci 44319e95205Sopenharmony_ci/** 44419e95205Sopenharmony_ci * @brief Gatt client register the send data callback to att. 44519e95205Sopenharmony_ci * 44619e95205Sopenharmony_ci * @param1 attSendDataCB Indicates pointer of attSendDataCallback. 44719e95205Sopenharmony_ci * @param2 context Indicates the pointer to context. 44819e95205Sopenharmony_ci */ 44919e95205Sopenharmony_civoid BTSTACK_API ATT_ClientSendDataRegister(attSendDataCallback attSendDataCB, void *context); 45019e95205Sopenharmony_ci 45119e95205Sopenharmony_ci/** 45219e95205Sopenharmony_ci * @brief Gatt client deregister the send data callback to att. 45319e95205Sopenharmony_ci */ 45419e95205Sopenharmony_civoid BTSTACK_API ATT_ClientSendDataDeRegister(); 45519e95205Sopenharmony_ci 45619e95205Sopenharmony_ci/** 45719e95205Sopenharmony_ci * @brief Gatt server register the send data callback to att. 45819e95205Sopenharmony_ci * 45919e95205Sopenharmony_ci * @param1 AttSendDataCB Indicates pointer of attSendDataCallback. 46019e95205Sopenharmony_ci * @param2 context Indicates the pointer to context. 46119e95205Sopenharmony_ci */ 46219e95205Sopenharmony_civoid BTSTACK_API ATT_ServerSendDataRegister(attSendDataCallback AttSendDataCB, void *context); 46319e95205Sopenharmony_ci 46419e95205Sopenharmony_ci/** 46519e95205Sopenharmony_ci * @brief Gatt server deregister the send data callback to att. 46619e95205Sopenharmony_ci */ 46719e95205Sopenharmony_civoid BTSTACK_API ATT_ServerSendDataDeRegister(); 46819e95205Sopenharmony_ci 46919e95205Sopenharmony_ci/** 47019e95205Sopenharmony_ci * @brief Send a connect request. 47119e95205Sopenharmony_ci * 47219e95205Sopenharmony_ci * @param1 transportType Indicates the connect type. 47319e95205Sopenharmony_ci * @param2 connParaPtr Indicates the pointer to const connect parameter. 47419e95205Sopenharmony_ci * @param3 btAddress Indicates the pointer to const address. 47519e95205Sopenharmony_ci * @param4 bredrconnectHandle Indicates the pointer to connecthandle be outputted. 47619e95205Sopenharmony_ci */ 47719e95205Sopenharmony_civoid BTSTACK_API ATT_ConnectReq( 47819e95205Sopenharmony_ci uint8_t transportType, const AttConnect *connParaPtr, const BtAddr *btAddress, const uint16_t *bredrconnectHandle); 47919e95205Sopenharmony_ci 48019e95205Sopenharmony_ci/** 48119e95205Sopenharmony_ci * @brief Send a connect response. 48219e95205Sopenharmony_ci * 48319e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 48419e95205Sopenharmony_ci * @param2 result Indicates the variable of result. 48519e95205Sopenharmony_ci * @param3 status Indicates the result of status. 48619e95205Sopenharmony_ci * @param4 cfg Indicates the pointer to const connect parameter. 48719e95205Sopenharmony_ci */ 48819e95205Sopenharmony_civoid BTSTACK_API ATT_ConnectRsp(uint16_t connectHandle, uint16_t result, uint16_t status, const AttConnect *cfg); 48919e95205Sopenharmony_ci 49019e95205Sopenharmony_ci/** 49119e95205Sopenharmony_ci * @brief Send a disconnect request. 49219e95205Sopenharmony_ci * 49319e95205Sopenharmony_ci * @param connectHandle Indicates the connect handle. 49419e95205Sopenharmony_ci */ 49519e95205Sopenharmony_civoid BTSTACK_API ATT_DisconnectReq(uint16_t connectHandle); 49619e95205Sopenharmony_ci 49719e95205Sopenharmony_ci/** 49819e95205Sopenharmony_ci * @brief Send an error response. 49919e95205Sopenharmony_ci * 50019e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 50119e95205Sopenharmony_ci * @param2 ATTErrorPtr Indicates the pointer to const error response parameter. 50219e95205Sopenharmony_ci */ 50319e95205Sopenharmony_civoid BTSTACK_API ATT_ErrorResponse(uint16_t connectHandle, const AttError *ATTErrorPtr); 50419e95205Sopenharmony_ci 50519e95205Sopenharmony_ci/** 50619e95205Sopenharmony_ci * @brief Send an exchange MTU request . 50719e95205Sopenharmony_ci * 50819e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 50919e95205Sopenharmony_ci * @param2 clientRxMTU Indicates the client receive MTU size. 51019e95205Sopenharmony_ci */ 51119e95205Sopenharmony_civoid BTSTACK_API ATT_ExchangeMTURequest(uint16_t connectHandle, uint16_t clientRxMTU); 51219e95205Sopenharmony_ci 51319e95205Sopenharmony_ci/** 51419e95205Sopenharmony_ci * @brief Send an exchange MTU response. 51519e95205Sopenharmony_ci * 51619e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 51719e95205Sopenharmony_ci * @param2 serverRxMTU Indicates the attribute server receive MTU size. 51819e95205Sopenharmony_ci */ 51919e95205Sopenharmony_civoid BTSTACK_API ATT_ExchangeMTUResponse(uint16_t connectHandle, uint16_t serverRxMTU); 52019e95205Sopenharmony_ci 52119e95205Sopenharmony_ci/** 52219e95205Sopenharmony_ci * @brief Send a find Information request. 52319e95205Sopenharmony_ci * 52419e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 52519e95205Sopenharmony_ci * @param2 startHandle Indicates the first requested handle number. 52619e95205Sopenharmony_ci * @param3 endHandle Indicates the last requested handle number. 52719e95205Sopenharmony_ci */ 52819e95205Sopenharmony_civoid BTSTACK_API ATT_FindInformationRequest(uint16_t connectHandle, uint16_t startHandle, uint16_t endHandle); 52919e95205Sopenharmony_ci 53019e95205Sopenharmony_ci/** 53119e95205Sopenharmony_ci * @brief Send a find Information response. 53219e95205Sopenharmony_ci * 53319e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 53419e95205Sopenharmony_ci * @param2 format Indicates the format of the information data. 53519e95205Sopenharmony_ci * @param3 handleUUIDPairs Indicates the pointer to const information data. 53619e95205Sopenharmony_ci * @param4 pairNum Indicates the paris number of the Information Data. 53719e95205Sopenharmony_ci */ 53819e95205Sopenharmony_civoid BTSTACK_API ATT_FindInformationResponse( 53919e95205Sopenharmony_ci uint16_t connectHandle, uint8_t format, AttHandleUuid *handleUUIDPairs, uint16_t pairNum); 54019e95205Sopenharmony_ci 54119e95205Sopenharmony_ci/** 54219e95205Sopenharmony_ci * @brief Send a find by type value request. 54319e95205Sopenharmony_ci * 54419e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 54519e95205Sopenharmony_ci * @param2 attFindByTypePtreve Indicates the pointer to const the parameter of AttFindByTypeValueReq. 54619e95205Sopenharmony_ci * @param3 attValue Indicates the pointer to attribute value to find. 54719e95205Sopenharmony_ci */ 54819e95205Sopenharmony_civoid BTSTACK_API ATT_FindByTypeValueRequest( 54919e95205Sopenharmony_ci uint16_t connectHandle, const AttFindByTypeValueReq *attFindByTypePtreve, const Buffer *attValue); 55019e95205Sopenharmony_ci 55119e95205Sopenharmony_ci/** 55219e95205Sopenharmony_ci * @brief Send a find by type value response. 55319e95205Sopenharmony_ci * 55419e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 55519e95205Sopenharmony_ci * @param2 handleInfoList Indicates the pointer to const a list of 1 or more Handle Information. 55619e95205Sopenharmony_ci * @param3 listNum Indicates the number of handles information list. 55719e95205Sopenharmony_ci */ 55819e95205Sopenharmony_civoid BTSTACK_API ATT_FindByTypeValueResponse( 55919e95205Sopenharmony_ci uint16_t connectHandle, const AttHandleInfo *handleInfoList, uint16_t listNum); 56019e95205Sopenharmony_ci 56119e95205Sopenharmony_ci/** 56219e95205Sopenharmony_ci * @brief Send a read by type request. 56319e95205Sopenharmony_ci * 56419e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 56519e95205Sopenharmony_ci * @param2 startHandle Indicates the first requested handle number. 56619e95205Sopenharmony_ci * @param3 endHandle Indicates the last requested handle number. 56719e95205Sopenharmony_ci * @param4 uuid Indicates the pointer to const 2 or 16 octet UUID. 56819e95205Sopenharmony_ci */ 56919e95205Sopenharmony_civoid BTSTACK_API ATT_ReadByTypeRequest( 57019e95205Sopenharmony_ci uint16_t connectHandle, uint16_t startHandle, uint16_t endHandle, const BtUuid *uuid); 57119e95205Sopenharmony_ci 57219e95205Sopenharmony_ci/** 57319e95205Sopenharmony_ci * @brief Send a read by type response. 57419e95205Sopenharmony_ci * 57519e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 57619e95205Sopenharmony_ci * @param2 length Indicates the size of each attribute handlevalue pair. 57719e95205Sopenharmony_ci * @param3 valueList Indicates the pointer to const a list of attribute data. 57819e95205Sopenharmony_ci * @param4 attrValueNum Indicates the value of attribute value number. 57919e95205Sopenharmony_ci */ 58019e95205Sopenharmony_civoid BTSTACK_API ATT_ReadByTypeResponse( 58119e95205Sopenharmony_ci uint16_t connectHandle, uint8_t length, const AttReadByTypeRspDataList *valueList, uint16_t attrValueNum); 58219e95205Sopenharmony_ci 58319e95205Sopenharmony_ci/** 58419e95205Sopenharmony_ci * @brief Send a read request. 58519e95205Sopenharmony_ci * 58619e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 58719e95205Sopenharmony_ci * @param2 attHandle Indicates the handle of the attribute to be read. 58819e95205Sopenharmony_ci */ 58919e95205Sopenharmony_civoid BTSTACK_API ATT_ReadRequest(uint16_t connectHandle, uint16_t attHandle); 59019e95205Sopenharmony_ci 59119e95205Sopenharmony_ci/** 59219e95205Sopenharmony_ci * @brief Send a read response. 59319e95205Sopenharmony_ci * 59419e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 59519e95205Sopenharmony_ci * @param2 attValue Indicates the pointer to the value of the attribute with the handle given. 59619e95205Sopenharmony_ci */ 59719e95205Sopenharmony_civoid BTSTACK_API ATT_ReadResponse(uint16_t connectHandle, const Buffer *attValue); 59819e95205Sopenharmony_ci 59919e95205Sopenharmony_ci/** 60019e95205Sopenharmony_ci * @brief Send a read blob request. 60119e95205Sopenharmony_ci * 60219e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 60319e95205Sopenharmony_ci * @param2 attHandle Indicates the handle of the attribute to be read. 60419e95205Sopenharmony_ci * @param3 offset Indicates the offset of the first octet to be read. 60519e95205Sopenharmony_ci */ 60619e95205Sopenharmony_civoid BTSTACK_API ATT_ReadBlobRequest(uint16_t connectHandle, uint16_t attHandle, uint16_t offset); 60719e95205Sopenharmony_ci 60819e95205Sopenharmony_ci/** 60919e95205Sopenharmony_ci * @brief Send a read blob response. 61019e95205Sopenharmony_ci * 61119e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 61219e95205Sopenharmony_ci * @param2 attReadBlobResObj Indicates the pointer to part of the value of the attribute with the handle given. 61319e95205Sopenharmony_ci */ 61419e95205Sopenharmony_civoid BTSTACK_API ATT_ReadBlobResponse(uint16_t connectHandle, const Buffer *attReadBlobResObj); 61519e95205Sopenharmony_ci 61619e95205Sopenharmony_ci/** 61719e95205Sopenharmony_ci * @brief Send a read multiple request. 61819e95205Sopenharmony_ci * 61919e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 62019e95205Sopenharmony_ci * @param2 handleList Indicates the pointer to a set of two or more attribute handles. 62119e95205Sopenharmony_ci */ 62219e95205Sopenharmony_civoid BTSTACK_API ATT_ReadMultipleRequest(uint16_t connectHandle, const Buffer *handleList); 62319e95205Sopenharmony_ci 62419e95205Sopenharmony_ci/** 62519e95205Sopenharmony_ci * @brief Send a read multiple response. 62619e95205Sopenharmony_ci * 62719e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 62819e95205Sopenharmony_ci * @param2 valueList Indicates the pointer to a set of two or more values. 62919e95205Sopenharmony_ci */ 63019e95205Sopenharmony_civoid BTSTACK_API ATT_ReadMultipleResponse(uint16_t connectHandle, const Buffer *valueList); 63119e95205Sopenharmony_ci 63219e95205Sopenharmony_ci/** 63319e95205Sopenharmony_ci * @brief Send a read by group type request. 63419e95205Sopenharmony_ci * 63519e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 63619e95205Sopenharmony_ci * @param2 startHandle Indicates the first requested handle number. 63719e95205Sopenharmony_ci * @param3 endHandle Indicates the last requested handle number. 63819e95205Sopenharmony_ci * @param4 uuid Indicates the pointer to 2 or 16 octet UUID. 63919e95205Sopenharmony_ci */ 64019e95205Sopenharmony_civoid BTSTACK_API ATT_ReadByGroupTypeRequest( 64119e95205Sopenharmony_ci uint16_t connectHandle, uint16_t startHandle, uint16_t endHandle, const BtUuid *uuid); 64219e95205Sopenharmony_ci 64319e95205Sopenharmony_ci/** 64419e95205Sopenharmony_ci * @brief Send a read by group type response. 64519e95205Sopenharmony_ci * 64619e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 64719e95205Sopenharmony_ci * @param2 length Indicates the size of each attribute data. 64819e95205Sopenharmony_ci * @param3 serviceList Indicates the pointer to const a list of attribute data. 64919e95205Sopenharmony_ci * @param4 serviceNum Indicates the number of attribute data. 65019e95205Sopenharmony_ci */ 65119e95205Sopenharmony_civoid BTSTACK_API ATT_ReadByGroupTypeResponse( 65219e95205Sopenharmony_ci uint16_t connectHandle, uint8_t length, const AttReadGoupAttributeData *serviceList, uint16_t serviceNum); 65319e95205Sopenharmony_ci 65419e95205Sopenharmony_ci/** 65519e95205Sopenharmony_ci * @brief Send a write request. 65619e95205Sopenharmony_ci * 65719e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 65819e95205Sopenharmony_ci * @param2 attHandle Indicates the handle of the attribute to be written. 65919e95205Sopenharmony_ci * @param3 attValue Indicates the pointer to the value to be written to the attribute. 66019e95205Sopenharmony_ci */ 66119e95205Sopenharmony_civoid BTSTACK_API ATT_WriteRequest(uint16_t connectHandle, uint16_t attHandle, const Buffer *attValue); 66219e95205Sopenharmony_ci 66319e95205Sopenharmony_ci/** 66419e95205Sopenharmony_ci * @brief Send a write response. 66519e95205Sopenharmony_ci * 66619e95205Sopenharmony_ci * @param connectHandle Indicates the connect handle. 66719e95205Sopenharmony_ci */ 66819e95205Sopenharmony_civoid BTSTACK_API ATT_WriteResponse(uint16_t connectHandle); 66919e95205Sopenharmony_ci 67019e95205Sopenharmony_ci/** 67119e95205Sopenharmony_ci * @brief Send a write command. 67219e95205Sopenharmony_ci * 67319e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 67419e95205Sopenharmony_ci * @param2 attHandle Indicates the handle of the attribute to be set. 67519e95205Sopenharmony_ci * @param3 attValue Indicates the pointer to the value of be written to the attribute. 67619e95205Sopenharmony_ci */ 67719e95205Sopenharmony_civoid BTSTACK_API ATT_WriteCommand(uint16_t connectHandle, uint16_t attHandle, const Buffer *attValue); 67819e95205Sopenharmony_ci 67919e95205Sopenharmony_ci/** 68019e95205Sopenharmony_ci * @brief Send a signed write command. 68119e95205Sopenharmony_ci * 68219e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 68319e95205Sopenharmony_ci * @param2 attHandle Indicates the the handle of the attribute to be set. 68419e95205Sopenharmony_ci * @param3 attValue Indicates the pointer to the value to be written to the attribute. 68519e95205Sopenharmony_ci */ 68619e95205Sopenharmony_civoid BTSTACK_API ATT_SignedWriteCommand(uint16_t connectHandle, uint16_t attHandle, const Buffer *attValue); 68719e95205Sopenharmony_ci 68819e95205Sopenharmony_ci/** 68919e95205Sopenharmony_ci * @brief Send a prepare write request. 69019e95205Sopenharmony_ci * 69119e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 69219e95205Sopenharmony_ci * @param2 attReadBlobObj Indicates the value of the struct AttReadBlobReqPrepareWriteValue. 69319e95205Sopenharmony_ci * @param3 attValue Indicates the pointer to the value of the attribute to be written. 69419e95205Sopenharmony_ci */ 69519e95205Sopenharmony_civoid BTSTACK_API ATT_PrepareWriteRequest( 69619e95205Sopenharmony_ci uint16_t connectHandle, AttReadBlobReqPrepareWriteValue attReadBlobObj, const Buffer *attValue); 69719e95205Sopenharmony_ci 69819e95205Sopenharmony_ci/** 69919e95205Sopenharmony_ci * @brief Send a prepare write response. 70019e95205Sopenharmony_ci * 70119e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 70219e95205Sopenharmony_ci * @param2 attReadBlobObj Indicates the value of the struct AttReadBlobReqPrepareWriteValue. 70319e95205Sopenharmony_ci * @param3 attValue Indicates the pointer to the value of the attribute to be written. 70419e95205Sopenharmony_ci */ 70519e95205Sopenharmony_civoid BTSTACK_API ATT_PrepareWriteResponse( 70619e95205Sopenharmony_ci uint16_t connectHandle, AttReadBlobReqPrepareWriteValue attReadBlobObj, const Buffer *attValue); 70719e95205Sopenharmony_ci 70819e95205Sopenharmony_ci/** 70919e95205Sopenharmony_ci * @brief Send a execute write request. 71019e95205Sopenharmony_ci * 71119e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 71219e95205Sopenharmony_ci * @param2 flag Indicates the value of flags. 71319e95205Sopenharmony_ci */ 71419e95205Sopenharmony_civoid BTSTACK_API ATT_ExecuteWriteRequest(uint16_t connectHandle, uint8_t flag); 71519e95205Sopenharmony_ci 71619e95205Sopenharmony_ci/** 71719e95205Sopenharmony_ci * @brief Send a execute write response. 71819e95205Sopenharmony_ci * 71919e95205Sopenharmony_ci * @param connectHandle Indicates the connect handle. 72019e95205Sopenharmony_ci */ 72119e95205Sopenharmony_civoid BTSTACK_API ATT_ExecuteWriteResponse(uint16_t connectHandle); 72219e95205Sopenharmony_ci 72319e95205Sopenharmony_ci/** 72419e95205Sopenharmony_ci * @brief Send a handle value notification. 72519e95205Sopenharmony_ci * 72619e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 72719e95205Sopenharmony_ci * @param2 attHandle Indicates the handle of the attribute. 72819e95205Sopenharmony_ci * @param3 attValue Indicates the pointer to the current value of the attribute. 72919e95205Sopenharmony_ci */ 73019e95205Sopenharmony_civoid BTSTACK_API ATT_HandleValueNotification(uint16_t connectHandle, uint16_t attHandle, const Buffer *attValue); 73119e95205Sopenharmony_ci 73219e95205Sopenharmony_ci/** 73319e95205Sopenharmony_ci * @brief Send a handle value indication. 73419e95205Sopenharmony_ci * 73519e95205Sopenharmony_ci * @param1 connectHandle Indicates the connect handle. 73619e95205Sopenharmony_ci * @param2 attHandle Indicates the handle of the attribute. 73719e95205Sopenharmony_ci * @param3 attValue Indicates the pointer to the current value of the attribute. 73819e95205Sopenharmony_ci */ 73919e95205Sopenharmony_civoid BTSTACK_API ATT_HandleValueIndication(uint16_t connectHandle, uint16_t attHandle, const Buffer *attValue); 74019e95205Sopenharmony_ci 74119e95205Sopenharmony_ci/** 74219e95205Sopenharmony_ci * @brief Send a handle value confirmation. 74319e95205Sopenharmony_ci * 74419e95205Sopenharmony_ci * @param connectHandle Indicates the connect handle. 74519e95205Sopenharmony_ci */ 74619e95205Sopenharmony_civoid BTSTACK_API ATT_HandleValueConfirmation(uint16_t connectHandle); 74719e95205Sopenharmony_ci 74819e95205Sopenharmony_ci/** 74919e95205Sopenharmony_ci * @brief Cancel Le ACL connection 75019e95205Sopenharmony_ci * 75119e95205Sopenharmony_ci * @return Returns BT_SUCCESS if the operation is successful, otherwise the operation fails. 75219e95205Sopenharmony_ci */ 75319e95205Sopenharmony_ciint BTSTACK_API ATT_LeConnectCancel(const BtAddr *addr); 75419e95205Sopenharmony_ci 75519e95205Sopenharmony_ci#ifdef __cplusplus 75619e95205Sopenharmony_ci} 75719e95205Sopenharmony_ci#endif 75819e95205Sopenharmony_ci 75919e95205Sopenharmony_ci#endif // ATT_H 760