S145 SoftDevice for nRF54LS05 API documentation 10.0.0
Loading...
Searching...
No Matches
ble_gatt.h
1/*
2 * Copyright (c) Nordic Semiconductor ASA
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without modification,
6 * are permitted provided that the following conditions are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright notice, this
9 * list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form, except as embedded into a Nordic
12 * Semiconductor ASA integrated circuit in a product or a software update for
13 * such product, must reproduce the above copyright notice, this list of
14 * conditions and the following disclaimer in the documentation and/or other
15 * materials provided with the distribution.
16 *
17 * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
18 * contributors may be used to endorse or promote products derived from this
19 * software without specific prior written permission.
20 *
21 * 4. This software, with or without modification, must only be used with a
22 * Nordic Semiconductor ASA integrated circuit.
23 *
24 * 5. Any software provided in binary form under this license must not be reverse
25 * engineered, decompiled, modified and/or disassembled.
26 *
27 * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
28 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
29 * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
30 * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
31 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
33 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
35 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
36 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 */
38
45#ifndef BLE_GATT_H__
46#define BLE_GATT_H__
47
48#include <stdint.h>
49#include "nrf_svc.h"
50#include "nrf_error.h"
51#include "ble_hci.h"
52#include "ble_ranges.h"
53#include "ble_types.h"
54#include "ble_err.h"
55
56#ifdef __cplusplus
57extern "C" {
58#endif
59
64#define BLE_GATT_ATT_MTU_DEFAULT 23
65
67#define BLE_GATT_HANDLE_INVALID 0x0000
68
70#define BLE_GATT_HANDLE_START 0x0001
71
73#define BLE_GATT_HANDLE_END 0xFFFF
74
77#define BLE_GATT_TIMEOUT_SRC_PROTOCOL 0x00
82#define BLE_GATT_OP_INVALID 0x00
83#define BLE_GATT_OP_WRITE_REQ 0x01
84#define BLE_GATT_OP_WRITE_CMD 0x02
85#define BLE_GATT_OP_PREP_WRITE_REQ 0x04
86#define BLE_GATT_OP_EXEC_WRITE_REQ 0x05
91#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_CANCEL 0x00
92#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_WRITE 0x01
97#define BLE_GATT_HVX_INVALID 0x00
98#define BLE_GATT_HVX_NOTIFICATION 0x01
99#define BLE_GATT_HVX_INDICATION 0x02
104#define BLE_GATT_STATUS_SUCCESS 0x0000
105#define BLE_GATT_STATUS_UNKNOWN 0x0001
106#define BLE_GATT_STATUS_ATTERR_INVALID 0x0100
107#define BLE_GATT_STATUS_ATTERR_INVALID_HANDLE 0x0101
108#define BLE_GATT_STATUS_ATTERR_READ_NOT_PERMITTED 0x0102
109#define BLE_GATT_STATUS_ATTERR_WRITE_NOT_PERMITTED 0x0103
110#define BLE_GATT_STATUS_ATTERR_INVALID_PDU 0x0104
111#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHENTICATION 0x0105
112#define BLE_GATT_STATUS_ATTERR_REQUEST_NOT_SUPPORTED 0x0106
113#define BLE_GATT_STATUS_ATTERR_INVALID_OFFSET 0x0107
114#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHORIZATION 0x0108
115#define BLE_GATT_STATUS_ATTERR_PREPARE_QUEUE_FULL 0x0109
116#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND 0x010A
117#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_LONG 0x010B
118#define BLE_GATT_STATUS_ATTERR_INSUF_ENC_KEY_SIZE 0x010C
119#define BLE_GATT_STATUS_ATTERR_INVALID_ATT_VAL_LENGTH 0x010D
120#define BLE_GATT_STATUS_ATTERR_UNLIKELY_ERROR 0x010E
121#define BLE_GATT_STATUS_ATTERR_INSUF_ENCRYPTION 0x010F
122#define BLE_GATT_STATUS_ATTERR_UNSUPPORTED_GROUP_TYPE 0x0110
123#define BLE_GATT_STATUS_ATTERR_INSUF_RESOURCES 0x0111
124#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_BEGIN 0x0112
125#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_END 0x017F
126#define BLE_GATT_STATUS_ATTERR_APP_BEGIN 0x0180
127#define BLE_GATT_STATUS_ATTERR_APP_END 0x019F
128#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_BEGIN 0x01A0
129#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_END 0x01DF
130#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_BEGIN 0x01E0
131#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_END 0x01FC
132#define BLE_GATT_STATUS_ATTERR_CPS_WRITE_REQ_REJECTED 0x01FC
133#define BLE_GATT_STATUS_ATTERR_CPS_CCCD_CONFIG_ERROR 0x01FD
134#define BLE_GATT_STATUS_ATTERR_CPS_PROC_ALR_IN_PROG 0x01FE
135#define BLE_GATT_STATUS_ATTERR_CPS_OUT_OF_RANGE 0x01FF
142#define BLE_GATT_CPF_FORMAT_RFU 0x00
143#define BLE_GATT_CPF_FORMAT_BOOLEAN 0x01
144#define BLE_GATT_CPF_FORMAT_2BIT 0x02
145#define BLE_GATT_CPF_FORMAT_NIBBLE 0x03
146#define BLE_GATT_CPF_FORMAT_UINT8 0x04
147#define BLE_GATT_CPF_FORMAT_UINT12 0x05
148#define BLE_GATT_CPF_FORMAT_UINT16 0x06
149#define BLE_GATT_CPF_FORMAT_UINT24 0x07
150#define BLE_GATT_CPF_FORMAT_UINT32 0x08
151#define BLE_GATT_CPF_FORMAT_UINT48 0x09
152#define BLE_GATT_CPF_FORMAT_UINT64 0x0A
153#define BLE_GATT_CPF_FORMAT_UINT128 0x0B
154#define BLE_GATT_CPF_FORMAT_SINT8 0x0C
155#define BLE_GATT_CPF_FORMAT_SINT12 0x0D
156#define BLE_GATT_CPF_FORMAT_SINT16 0x0E
157#define BLE_GATT_CPF_FORMAT_SINT24 0x0F
158#define BLE_GATT_CPF_FORMAT_SINT32 0x10
159#define BLE_GATT_CPF_FORMAT_SINT48 0x11
160#define BLE_GATT_CPF_FORMAT_SINT64 0x12
161#define BLE_GATT_CPF_FORMAT_SINT128 0x13
162#define BLE_GATT_CPF_FORMAT_FLOAT32 0x14
163#define BLE_GATT_CPF_FORMAT_FLOAT64 0x15
164#define BLE_GATT_CPF_FORMAT_SFLOAT 0x16
165#define BLE_GATT_CPF_FORMAT_FLOAT 0x17
166#define BLE_GATT_CPF_FORMAT_DUINT16 0x18
167#define BLE_GATT_CPF_FORMAT_UTF8S 0x19
168#define BLE_GATT_CPF_FORMAT_UTF16S 0x1A
169#define BLE_GATT_CPF_FORMAT_STRUCT 0x1B
175#define BLE_GATT_CPF_NAMESPACE_BTSIG 0x01
176#define BLE_GATT_CPF_NAMESPACE_DESCRIPTION_UNKNOWN 0x0000
189typedef struct
190{
191 uint16_t att_mtu;
199
201typedef struct
202{
203 /* Standard properties */
204 uint8_t broadcast :1;
205 uint8_t read :1;
206 uint8_t write_wo_resp :1;
207 uint8_t write :1;
208 uint8_t notify :1;
209 uint8_t indicate :1;
210 uint8_t auth_signed_wr :1;
212
214typedef struct
215{
216 /* Extended properties */
217 uint8_t reliable_wr :1;
218 uint8_t wr_aux :1;
220
223#ifdef __cplusplus
224}
225#endif
226#endif // BLE_GATT_H__
227
uint8_t wr_aux
Definition ble_gatt.h:218
uint8_t reliable_wr
Definition ble_gatt.h:217
GATT Characteristic Extended Properties.
Definition ble_gatt.h:215
uint8_t read
Definition ble_gatt.h:205
uint8_t indicate
Definition ble_gatt.h:209
uint8_t write_wo_resp
Definition ble_gatt.h:206
uint8_t broadcast
Definition ble_gatt.h:204
uint8_t notify
Definition ble_gatt.h:208
uint8_t auth_signed_wr
Definition ble_gatt.h:210
uint8_t write
Definition ble_gatt.h:207
GATT Characteristic Properties.
Definition ble_gatt.h:202
uint16_t att_mtu
Definition ble_gatt.h:191
BLE GATT connection configuration parameters, set with sd_ble_cfg_set.
Definition ble_gatt.h:190