MT2523 API Reference  LinkIt SDK v4
bt_gattc.h
1 /* Copyright Statement:
2  *
3  * (C) 2005-2016 MediaTek Inc. All rights reserved.
4  *
5  * This software/firmware and related documentation ("MediaTek Software") are
6  * protected under relevant copyright laws. The information contained herein
7  * is confidential and proprietary to MediaTek Inc. ("MediaTek") and/or its licensors.
8  * Without the prior written permission of MediaTek and/or its licensors,
9  * any reproduction, modification, use or disclosure of MediaTek Software,
10  * and information contained herein, in whole or in part, shall be strictly prohibited.
11  * You may only use, reproduce, modify, or distribute (as applicable) MediaTek Software
12  * if you have agreed to and been bound by the applicable license agreement with
13  * MediaTek ("License Agreement") and been granted explicit permission to do so within
14  * the License Agreement ("Permitted User"). If you are not a Permitted User,
15  * please cease any access or use of MediaTek Software immediately.
16  * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
17  * THAT MEDIATEK SOFTWARE RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES
18  * ARE PROVIDED TO RECEIVER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL
19  * WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
20  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
21  * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
22  * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
23  * SUPPLIED WITH MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
24  * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
25  * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
26  * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
27  * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
28  * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
29  * CUMULATIVE LIABILITY WITH RESPECT TO MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
30  * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE MEDIATEK SOFTWARE AT ISSUE,
31  * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
32  * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
33  */
34 
35 #ifndef __BT_GATT_H__
36 #define __BT_GATT_H__
37 
117 #include <stdint.h>
118 #include "bt_att.h"
119 #include "bt_gatt.h"
120 #include "bt_system.h"
121 #include "bt_platform.h"
122 #include "bt_type.h"
123 #include "bt_uuid.h"
124 
125 BT_EXTERN_C_BEGIN
126 
133 #define BT_GATTC_EXCHANGE_MTU (BT_MODULE_GATT | 0x00010000)
134 #define BT_GATTC_DISCOVER_PRIMARY_SERVICE (BT_MODULE_GATT | 0x00020000)
135 #define BT_GATTC_DISCOVER_PRIMARY_SERVICE_BY_UUID (BT_MODULE_GATT | 0x00030000)
136 #define BT_GATTC_FIND_INCLUDED_SERVICES (BT_MODULE_GATT | 0x00040000)
137 #define BT_GATTC_DISCOVER_CHARC (BT_MODULE_GATT | 0x00050000)
138 #define BT_GATTC_DISCOVER_CHARC_DESCRIPTOR (BT_MODULE_GATT | 0x00060000)
139 #define BT_GATTC_READ_CHARC (BT_MODULE_GATT | 0x00070000)
140 #define BT_GATTC_READ_LONG_CHARC (BT_MODULE_GATT | 0x00080000)
141 #define BT_GATTC_READ_USING_CHARC_UUID (BT_MODULE_GATT | 0x00090000)
142 #define BT_GATTC_READ_MULTI_CHARC_VALUES (BT_MODULE_GATT | 0x000A0000)
143 #define BT_GATTC_WRITE_CHARC (BT_MODULE_GATT | 0x000D0000)
144 #define BT_GATTC_WRITE_LONG_CHARC (BT_MODULE_GATT | 0x000E0000)
145 #define BT_GATTC_RELIABLE_WRITE_CHARC (BT_MODULE_GATT | 0x000F0000)
146 #define BT_GATTC_CHARC_VALUE_NOTIFICATION (BT_MODULE_GATT | 0x00110000)
147 #define BT_GATTC_CHARC_VALUE_INDICATION (BT_MODULE_GATT | 0x00120000)
148 #define BT_GATTC_CHARC_VALUE_CONFIRMATION (BT_MODULE_GATT | 0x00130000)
162 typedef bt_att_exchange_mtu_req_t bt_gattc_exchange_mtu_req_t;
163 
167 BT_PACKED (
168 typedef struct {
169  uint8_t opcode;
170  uint16_t starting_handle;
171  uint16_t ending_handle;
172  uint16_t type16;
174 
178 BT_PACKED (
179 typedef struct {
180  uint16_t attribute_value_length;
183 
188 
192 BT_PACKED (
193 typedef struct {
194  uint8_t opcode;
195  uint16_t starting_handle;
196  uint16_t ending_handle;
197  bt_uuid_t type;
199 
204 
209 
214 
219 
223 BT_PACKED (
224 typedef struct {
225  uint16_t handle_length;
226  bt_att_read_multiple_req_t *att_req;
228 
232 BT_PACKED (
233 typedef struct {
234  uint16_t attribute_value_length;
235  bt_att_write_command_t *att_req;
237 
241 BT_PACKED (
242 typedef struct {
243  uint16_t attribute_value_length;
244  bt_att_write_req_t *att_req;
246 
250 BT_PACKED (
251 typedef struct {
252  uint16_t attribute_value_length;
253  bt_att_prepare_write_req_t *att_req;
255 
260 
264 BT_PACKED (
265 typedef struct {
266  uint16_t attribute_value_length;
269 
273 BT_PACKED (
274 typedef struct {
275  uint16_t length;
276  bt_handle_t connection_handle;
277  bt_att_error_rsp_t *att_rsp;
279 
283 BT_PACKED (
284 typedef struct {
285  bt_handle_t connection_handle;
286  uint16_t server_rx_mtu;
288 
292 BT_PACKED (
293 typedef struct {
294  uint16_t length;
295  bt_handle_t connection_handle;
296  bt_att_find_info_rsp_t *att_rsp;
298 
302 BT_PACKED (
303 typedef struct {
304  uint16_t length;
305  bt_handle_t connection_handle;
308 
312 BT_PACKED (
313 typedef struct {
314  uint16_t length;
315  bt_handle_t connection_handle;
316  bt_att_read_by_type_rsp_t *att_rsp;
318 
322 BT_PACKED (
323 typedef struct {
324  uint16_t length;
325  bt_handle_t connection_handle;
326  bt_att_read_rsp_t *att_rsp;
328 
332 BT_PACKED (
333 typedef struct {
334  uint16_t length;
335  bt_handle_t connection_handle;
336  bt_att_read_blob_rsp_t *att_rsp;
338 
342 BT_PACKED (
343 typedef struct {
344  uint16_t length;
345  bt_handle_t connection_handle;
346  bt_att_read_multiple_rsp_t *att_rsp;
348 
352 BT_PACKED (
353 typedef struct {
354  uint16_t length;
355  bt_handle_t connection_handle;
358 
362 BT_PACKED (
363 typedef struct {
364  bt_handle_t connection_handle;
365  bt_att_write_rsp_t *att_rsp;
367 
371 BT_PACKED (
372 typedef struct {
373  uint16_t attribute_value_length;
374  bt_handle_t connection_handle;
375  bt_att_prepare_write_rsp_t *att_rsp;
377 
378 
382 BT_PACKED (
383 typedef struct {
384  bt_handle_t connection_handle;
385  bt_att_execute_write_rsp_t *att_rsp;
387 
391 BT_PACKED (
392 typedef struct {
393  uint16_t length;
394  bt_handle_t connection_handle;
397 
402 
407 
423 #define BT_GATTC_NEW_EXCHANGE_MTU_REQ(name, mtu) \
424  static bt_gattc_exchange_mtu_req_t name; \
425  name.opcode = BT_ATT_OPCODE_EXCHANGE_MTU_REQUEST; \
426  name.client_rx_mtu = mtu; \
427 
428 
432 #define BT_GATTC_NEW_DISCOVER_PRIMARY_SERVICE_REQ(name) \
433  static const bt_gattc_discover_primary_service_req_t name = { \
434  .opcode = BT_ATT_OPCODE_READ_BY_GROUP_TYPE_REQUEST, \
435  .starting_handle = 0x0001, \
436  .ending_handle = 0xFFFF, \
437  .type16 = BT_GATT_UUID16_PRIMARY_SERVICE \
438  }
439 
445 #define BT_GATTC_NEW_DISCOVER_PRIMARY_SERVICE_BY_UUID16_REQ(name, uuid16) \
446  static bt_gattc_discover_primary_service_by_uuid_req_t name; \
447  static uint8_t name##buf[9]; \
448  name.attribute_value_length = 2; \
449  name.att_req = (bt_att_find_by_type_value_req_t *)(name##buf); \
450  name.att_req->opcode = BT_ATT_OPCODE_FIND_BY_TYPE_VALUE_REQUEST; \
451  name.att_req->starting_handle = 0x0001; \
452  name.att_req->ending_handle = 0xFFFF; \
453  name.att_req->uuid = BT_GATT_UUID16_PRIMARY_SERVICE; \
454  memcpy(&(name.att_req->attribute_value), &uuid16, 2);
455 
461 #define BT_GATTC_NEW_DISCOVER_PRIMARY_SERVICE_BY_UUID128_REQ(name, uuid128) \
462  static bt_gattc_discover_primary_service_by_uuid_req_t name; \
463  static uint8_t name##buf[30]; \
464  name.attribute_value_length = 16; \
465  name.att_req = (bt_att_find_by_type_value_req_t *)(name##buf); \
466  name.att_req->opcode = BT_ATT_OPCODE_FIND_BY_TYPE_VALUE_REQUEST; \
467  name.att_req->starting_handle = 0x0001; \
468  name.att_req->ending_handle = 0xFFFF; \
469  name.att_req->uuid = BT_GATT_UUID16_PRIMARY_SERVICE; \
470  memcpy(&(name.att_req->attribute_value), &uuid128, 16);
471 
478 #define BT_GATTC_NEW_FIND_INCLUDED_SERVICE_REQ(name, start_handle, end_handle) \
479  static bt_gattc_find_included_services_req_t name; \
480  name.opcode = BT_ATT_OPCODE_READ_BY_TYPE_REQUEST; \
481  name.type16 = BT_GATT_UUID16_INCLUDE; \
482  name.starting_handle = start_handle; \
483  name.ending_handle = end_handle;
484 
491 #define BT_GATTC_NEW_DISCOVER_CHARC_REQ(name, start_handle, end_handle) \
492  static bt_gattc_discover_charc_req_t name; \
493  name.opcode = BT_ATT_OPCODE_READ_BY_TYPE_REQUEST; \
494  name.starting_handle = start_handle; \
495  name.ending_handle = end_handle; \
496  uint16_t name##uuid_16 = BT_GATT_UUID16_CHARC; \
497  bt_uuid_load(&(name.type), (void *)&(name##uuid_16), 2);
498 
507 #define BT_GATTC_NEW_DISCOVER_CHARC_BY_UUID_REQ(name, start_handle, end_handle, uuid, len) \
508  static bt_gattc_discover_charc_req_t name; \
509  name.opcode = BT_ATT_OPCODE_READ_BY_TYPE_REQUEST; \
510  name.starting_handle = start_handle; \
511  name.ending_handle = end_handle; \
512  bt_uuid_load(&(name.type), (void *)uuid, len);
513 
520 #define BT_GATTC_NEW_DISCOVER_CHARC_DESCRIPTOR_REQ(name, start_handle, end_handle) \
521  static bt_gattc_discover_charc_descriptor_req_t name; \
522  name.opcode = BT_ATT_OPCODE_FIND_INFORMATION_REQUEST; \
523  name.starting_handle = start_handle; \
524  name.ending_handle = end_handle;
525 
531 #define BT_GATTC_NEW_READ_CHARC_REQ(name, attr_handle) \
532  static bt_gattc_read_charc_req_t name; \
533  name.opcode = BT_ATT_OPCODE_READ_REQUEST; \
534  name.attribute_handle = attr_handle;
535 
542 #define BT_GATTC_NEW_READ_LONG_CHARC_REQ(name, attr_handle, offset) \
543  static bt_gattc_read_long_charc_value_req_t name; \
544  name.opcode = BT_ATT_OPCODE_READ_BLOB_REQUEST; \
545  name.attribute_handle = attr_handle; \
546  name.value_offset = offset;
547 
556 #define BT_GATTC_NEW_READ_USING_CHARC_UUID_REQ(name, start_handle, end_handle, uuid, len) \
557  static bt_gattc_read_using_charc_uuid_req_t name; \
558  name.opcode = BT_ATT_OPCODE_READ_BY_TYPE_REQUEST; \
559  name.starting_handle = start_handle; \
560  name.ending_handle = end_handle; \
561  bt_uuid_load(&name.type, (void *)uuid, len);
562 
572 #define BT_GATTC_NEW_WRITE_WITHOUT_RSP_REQ(name, buffer, type, attribute_handle, attribute_value, attribute_len) \
573  static bt_gattc_write_without_rsp_req_t name; \
574  name.attribute_value_length = attribute_len; \
575  name.att_req = (bt_att_write_command_t *)(buffer); \
576  name.att_req->opcode = (type == 0 ? BT_ATT_OPCODE_WRITE_COMMAND : BT_ATT_OPCODE_SIGNED_WRITE_COMMAND); \
577  name.att_req->attribute_handle = attribute_handle; \
578  memcpy(name.att_req->attribute_value, attribute_value, attribute_len);
579 
588 #define BT_GATTC_NEW_WRITE_CHARC_REQ(name, buffer, attribute_handle, attribute_value, attribute_len) \
589  static bt_gattc_write_charc_req_t name; \
590  name.attribute_value_length = attribute_len; \
591  name.att_req = (bt_att_write_req_t *)(buffer); \
592  name.att_req->opcode = BT_ATT_OPCODE_WRITE_REQUEST; \
593  name.att_req->attribute_handle = attribute_handle; \
594  memcpy(name.att_req->attribute_value, attribute_value, attribute_len);
595 
604 #define BT_GATTC_NEW_PREPARE_WRITE_REQ(name, attr_handle, offset, value, value_len) \
605  static bt_gattc_prepare_write_charc_req_t name; \
606  static bt_att_prepare_write_req_t name##att_req; \
607  (name##att_req).opcode = BT_ATT_OPCODE_PREPARE_WRITE_REQUEST; \
608  (name##att_req).attribute_handle = attr_handle; \
609  (name##att_req).value_offset = offset; \
610  (name##att_req).part_attribute_value = value; \
611  name.attribute_value_length = value_len; \
612  name.att_req = &(name##att_req);
613 
619 #define BT_GATTC_NEW_EXECUTE_WRITE_REQ(name, flag) \
620  static bt_gattc_execute_write_req_t name; \
621  name.opcode = BT_ATT_OPCODE_EXECUTE_WRITE_REQUEST; \
622  name.flags = flag;
623 
638  const bt_gattc_exchange_mtu_req_t *req);
639 
645 uint32_t bt_gattc_get_mtu(bt_handle_t connection_handle);
646 
657  bt_handle_t connection_handle,
659 
670  bt_handle_t connection_handle,
672 
683  bt_handle_t connection_handle,
684  const bt_gattc_find_included_services_req_t *req);
695  bt_handle_t connection_handle,
696  const bt_gattc_discover_charc_req_t *req);
697 
708  bt_handle_t connection_handle,
709  const bt_gattc_discover_charc_descriptor_req_t *req);
710 
721  bt_handle_t connection_handle,
722  const bt_gattc_read_charc_req_t *req);
723 
734  bt_handle_t connection_handle,
735  const bt_gattc_read_long_charc_value_req_t *req);
736 
747  bt_handle_t connection_handle,
748  const bt_gattc_read_using_charc_uuid_req_t *req);
749 
760  bt_handle_t connection_handle,
762 
774  bt_handle_t connection_handle,
775  uint8_t is_signed,
777 
778 
789  bt_handle_t connection_handle,
790  const bt_gattc_write_charc_req_t *req);
791 
804  bt_handle_t connection_handle,
805  uint8_t is_reliable,
806  uint16_t offset,
808 
819  bt_handle_t connection_handle,
820  const bt_gattc_execute_write_req_t *req);
821 
822 BT_EXTERN_C_END
823 
830 #endif /*__BT_GATT_H__*/
831 
832 
833 
ATT write request structure.
Definition: bt_att.h:297
ATT find by type value request structure.
Definition: bt_att.h:196
Discover Primary Service request.
Definition: bt_gattc.h:173
ATT handle value notification structure.
Definition: bt_att.h:355
bt_status_t bt_gattc_read_using_charc_uuid(bt_handle_t connection_handle, const bt_gattc_read_using_charc_uuid_req_t *req)
This function reads the characteristics of the GATT Server by UUID.
bt_gattc_discover_primary_service_req_t bt_gattc_find_included_services_req_t
Find Included Service request.
Definition: bt_gattc.h:187
ATT read multiple response structure.
Definition: bt_att.h:277
ATT write response structure.
Definition: bt_att.h:302
This structure defines the data type of the callback parameter for the event (BT_GATTC_WRITE_CHARC) w...
Definition: bt_gattc.h:366
bt_att_execute_write_req_t bt_gattc_execute_write_req_t
Execute Write request.
Definition: bt_gattc.h:259
This structure defines the data type of the callback parameter for the event (BT_GATTC_READ_CHARC or ...
Definition: bt_gattc.h:327
ATT read response structure.
Definition: bt_att.h:244
Discover Primary Service By UUID request.
Definition: bt_gattc.h:182
uint16_t bt_handle_t
Define the connection handle type.
Definition: bt_type.h:85
ATT execute write request structure.
Definition: bt_att.h:340
ATT exchange MTU request structure.
Definition: bt_att.h:155
This structure defines the data type of the callback parameter for the event (BT_GATTC_READ_MULTI_CHA...
Definition: bt_gattc.h:347
Read blob response.
Definition: bt_gattc.h:337
uint32_t bt_gattc_get_mtu(bt_handle_t connection_handle)
This function gets the MTU of this connection.
Write Long Characteristic Value or Write Long Characteristic Descriptors request. ...
Definition: bt_gattc.h:254
This structure defines the data type of the callback parameter for the event (BT_GATTC_WRITE_LONG_CHA...
Definition: bt_gattc.h:386
ATT prepare write response structure.
Definition: bt_att.h:331
ATT error response structure.
Definition: bt_att.h:146
bt_att_find_info_req_t bt_gattc_discover_charc_descriptor_req_t
Discover All Characteristic Descriptors request.
Definition: bt_gattc.h:203
Write Without Response or Signed Write Without Response request.
Definition: bt_gattc.h:236
ATT read blob request structure.
Definition: bt_att.h:254
ATT find information response structure.
Definition: bt_att.h:184
Error response.
Definition: bt_gattc.h:278
ATT read by type request structure.
Definition: bt_att.h:216
bt_status_t bt_gattc_discover_primary_service_by_uuid(bt_handle_t connection_handle, const bt_gattc_discover_primary_service_by_uuid_req_t *req)
This function discovers the primary service of the GATT Server by the UUID.
ATT find information request structure.
Definition: bt_att.h:174
bt_att_handle_value_confirmation_t bt_gattc_handle_value_confirmation_t
Handle value confirmation.
Definition: bt_gattc.h:406
ATT read request structure.
Definition: bt_att.h:235
Read Multiple Characteristic Values request.
Definition: bt_gattc.h:227
This structure defines the data type of the callback parameter for the event (BT_GATTC_FIND_INCLUDED_...
Definition: bt_gattc.h:317
Discover All Characteristics of a Service or Discover Characteristics by UUID request.
Definition: bt_gattc.h:198
bt_att_read_blob_req_t bt_gattc_read_long_charc_value_req_t
Read Long Characteristic Values or Read Long Characteristic Descriptors request.
Definition: bt_gattc.h:213
bt_status_t bt_gattc_read_long_charc(bt_handle_t connection_handle, const bt_gattc_read_long_charc_value_req_t *req)
This function reads a long characteristic value or a descriptor of the GATT Server.
Write Characteristic Value or Write Characteristic Descriptors request.
Definition: bt_gattc.h:245
This structure defines the data type of the callback parameter for the event (BT_GATTC_DISCOVER_PRIMA...
Definition: bt_gattc.h:307
bt_status_t bt_gattc_find_included_services(bt_handle_t connection_handle, const bt_gattc_find_included_services_req_t *req)
This function finds the included service on the GATT Server.
Prepare write response.
Definition: bt_gattc.h:376
bt_att_read_req_t bt_gattc_read_charc_req_t
Read Characteristic Value or Read Characteristic Descriptors request.
Definition: bt_gattc.h:208
bt_status_t bt_gattc_discover_primary_service(bt_handle_t connection_handle, const bt_gattc_discover_primary_service_req_t *req)
This function discovers the primary service of the GATT Server.
bt_uuid union.
Definition: bt_uuid.h:124
ATT find by type value response structure.
Definition: bt_att.h:205
int32_t bt_status_t
Define the status type, returned from the APIs, and defined as BT_STATUS_XXX.
Definition: bt_type.h:173
This structure defines the data type of the callback parameter for the event (BT_GATTC_EXCHANGE_MTU) ...
Definition: bt_gattc.h:287
bt_status_t bt_gattc_discover_charc(bt_handle_t connection_handle, const bt_gattc_discover_charc_req_t *req)
This function discovers all characteristics or a specific characteristic by UUID of the GATT Server...
ATT read multiple request structure.
Definition: bt_att.h:268
bt_status_t bt_gattc_send_execute_write_req(bt_handle_t connection_handle, const bt_gattc_execute_write_req_t *req)
This function sends an execute write request to the GATT Server.
This structure defines the data type of the callback parameter for the event (BT_GATTC_DISCOVER_CHARC...
Definition: bt_gattc.h:297
bt_att_read_by_type_req_t bt_gattc_read_using_charc_uuid_req_t
Read Using Characteristic UUID request.
Definition: bt_gattc.h:218
bt_gatt_handle_value_notification_t bt_gatt_handle_value_indication_t
This structure defines the data type of the callback parameter for the event (BT_GATTC_CHARC_VALUE_IN...
Definition: bt_gattc.h:401
This structure defines the data type of the callback parameter for the event (BT_GATTC_CHARC_VALUE_NO...
Definition: bt_gattc.h:396
bt_status_t bt_gattc_read_charc(bt_handle_t connection_handle, const bt_gattc_read_charc_req_t *req)
This function reads the value or the descriptor of a characteristic of the GATT Server.
bt_status_t bt_gattc_write_charc(bt_handle_t connection_handle, const bt_gattc_write_charc_req_t *req)
This function writes values or descriptors of a characteristic on the GATT Server.
bt_status_t bt_gattc_exchange_mtu(bt_handle_t connection_handle, const bt_gattc_exchange_mtu_req_t *req)
This function sends an exchange MTU request to the GATT Server.
bt_status_t bt_gattc_prepare_write_charc(bt_handle_t connection_handle, uint8_t is_reliable, uint16_t offset, const bt_gattc_prepare_write_charc_req_t *req)
This function prepares to write characteristic values to the GATT Server.
ATT read by type response structure.
Definition: bt_att.h:226
bt_status_t bt_gattc_write_without_rsp(bt_handle_t connection_handle, uint8_t is_signed, const bt_gattc_write_without_rsp_req_t *req)
This function writes characteristic values without a response from the GATT Server.
ATT prepare write request structure.
Definition: bt_att.h:320
Notification or Indication.
Definition: bt_gattc.h:268
bt_status_t bt_gattc_read_multi_charc_values(bt_handle_t connection_handle, const bt_gattc_read_multi_charc_values_req_t *req)
This function reads multiple characteristic values from the GATT Server.
This structure defines the data type of the callback parameter for the event (BT_GATTC_DISCOVER_PRIMA...
Definition: bt_gattc.h:357
bt_status_t bt_gattc_discover_charc_descriptor(bt_handle_t connection_handle, const bt_gattc_discover_charc_descriptor_req_t *req)
This function discovers characteristic descriptors.