33#include "ble_esp_gatt.h"
34#include "nimble/porting/nimble/include/syscfg/syscfg.h"
40struct ble_att_error_rsp;
43#define BLE_GATT_REGISTER_OP_SVC 1
44#define BLE_GATT_REGISTER_OP_CHR 2
45#define BLE_GATT_REGISTER_OP_DSC 3
47#define BLE_GATT_SVC_UUID16 0x1801
48#define BLE_GATT_DSC_CLT_CFG_UUID16 0x2902
49#define BLE_GATT_DSC_CLT_PRE_FMT16 0x2904
50#define BLE_GATT_DSC_CLT_AGG_FMT16 0x2905
52#define BLE_GATT_CHR_PROP_BROADCAST 0x01
53#define BLE_GATT_CHR_PROP_READ 0x02
54#define BLE_GATT_CHR_PROP_WRITE_NO_RSP 0x04
55#define BLE_GATT_CHR_PROP_WRITE 0x08
56#define BLE_GATT_CHR_PROP_NOTIFY 0x10
57#define BLE_GATT_CHR_PROP_INDICATE 0x20
58#define BLE_GATT_CHR_PROP_AUTH_SIGN_WRITE 0x40
59#define BLE_GATT_CHR_PROP_EXTENDED 0x80
61#define BLE_GATT_ACCESS_OP_READ_CHR 0
62#define BLE_GATT_ACCESS_OP_WRITE_CHR 1
63#define BLE_GATT_ACCESS_OP_READ_DSC 2
64#define BLE_GATT_ACCESS_OP_WRITE_DSC 3
66#define BLE_GATT_CHR_F_BROADCAST 0x0001
67#define BLE_GATT_CHR_F_READ 0x0002
68#define BLE_GATT_CHR_F_WRITE_NO_RSP 0x0004
69#define BLE_GATT_CHR_F_WRITE 0x0008
70#define BLE_GATT_CHR_F_NOTIFY 0x0010
71#define BLE_GATT_CHR_F_INDICATE 0x0020
72#define BLE_GATT_CHR_F_AUTH_SIGN_WRITE 0x0040
73#define BLE_GATT_CHR_F_RELIABLE_WRITE 0x0080
74#define BLE_GATT_CHR_F_AUX_WRITE 0x0100
75#define BLE_GATT_CHR_F_READ_ENC 0x0200
76#define BLE_GATT_CHR_F_READ_AUTHEN 0x0400
77#define BLE_GATT_CHR_F_READ_AUTHOR 0x0800
78#define BLE_GATT_CHR_F_WRITE_ENC 0x1000
79#define BLE_GATT_CHR_F_WRITE_AUTHEN 0x2000
80#define BLE_GATT_CHR_F_WRITE_AUTHOR 0x4000
82#define BLE_GATT_SVC_TYPE_END 0
83#define BLE_GATT_SVC_TYPE_PRIMARY 1
84#define BLE_GATT_SVC_TYPE_SECONDARY 2
91#define BLE_GATT_CHR_FORMAT_BOOLEAN 0x01
92#define BLE_GATT_CHR_FORMAT_UINT2 0x02
93#define BLE_GATT_CHR_FORMAT_UINT4 0x03
94#define BLE_GATT_CHR_FORMAT_UINT8 0x04
95#define BLE_GATT_CHR_FORMAT_UINT12 0x05
96#define BLE_GATT_CHR_FORMAT_UINT16 0x06
97#define BLE_GATT_CHR_FORMAT_UINT24 0x07
98#define BLE_GATT_CHR_FORMAT_UINT32 0x08
99#define BLE_GATT_CHR_FORMAT_UINT48 0x09
100#define BLE_GATT_CHR_FORMAT_UINT64 0x0A
101#define BLE_GATT_CHR_FORMAT_UINT128 0x0B
102#define BLE_GATT_CHR_FORMAT_SINT8 0x0C
103#define BLE_GATT_CHR_FORMAT_SINT12 0x0D
104#define BLE_GATT_CHR_FORMAT_SINT16 0x0E
105#define BLE_GATT_CHR_FORMAT_SINT24 0x0F
106#define BLE_GATT_CHR_FORMAT_SINT32 0x10
107#define BLE_GATT_CHR_FORMAT_SINT48 0x11
108#define BLE_GATT_CHR_FORMAT_SINT64 0x12
109#define BLE_GATT_CHR_FORMAT_SINT128 0x13
110#define BLE_GATT_CHR_FORMAT_FLOAT32 0x14
111#define BLE_GATT_CHR_FORMAT_FLOAT64 0x15
112#define BLE_GATT_CHR_FORMAT_MEDFLOAT16 0x16
113#define BLE_GATT_CHR_FORMAT_MEDFLOAT32 0x17
114#define BLE_GATT_CHR_FORMAT_UINT16_2 0x18
115#define BLE_GATT_CHR_FORMAT_UTF8S 0x19
116#define BLE_GATT_CHR_FORMAT_UTF16S 0x1A
117#define BLE_GATT_CHR_FORMAT_STRUCT 0x1B
118#define BLE_GATT_CHR_FORMAT_MEDASN1 0x1C
125#define BLE_GATT_CHR_UNIT_UNITLESS 0x2700
126#define BLE_GATT_CHR_UNIT_METRE 0x2701
127#define BLE_GATT_CHR_UNIT_KILOGRAM 0x2702
128#define BLE_GATT_CHR_UNIT_SECOND 0x2703
129#define BLE_GATT_CHR_UNIT_AMPERE 0x2704
130#define BLE_GATT_CHR_UNIT_KELVIN 0x2705
131#define BLE_GATT_CHR_UNIT_MOLE 0x2706
132#define BLE_GATT_CHR_UNIT_CANDELA 0x2707
133#define BLE_GATT_CHR_UNIT_SQUARE_METRES 0x2710
134#define BLE_GATT_CHR_UNIT_CUBIC_METRES 0x2711
135#define BLE_GATT_CHR_UNIT_METRES_PER_SECOND 0x2712
136#define BLE_GATT_CHR_UNIT_METRES_PER_SECOND_SQUARED 0x2713
137#define BLE_GATT_CHR_UNIT_RECIPROCAL_METRE 0x2714
138#define BLE_GATT_CHR_UNIT_KILOGRAM_PER_CUBIC_METRE_DENSITY 0x2715
139#define BLE_GATT_CHR_UNIT_KILOGRAM_PER_SQUARE_METRE 0x2716
140#define BLE_GATT_CHR_UNIT_CUBIC_METRE_PER_KILOGRAM 0x2717
141#define BLE_GATT_CHR_UNIT_AMPERE_PER_SQUARE_METRE 0x2718
142#define BLE_GATT_CHR_UNIT_AMPERE_PER_METRE 0x2719
143#define BLE_GATT_CHR_UNIT_MOLE_PER_CUBIC_METRE 0x271A
144#define BLE_GATT_CHR_UNIT_KILOGRAM_PER_CUBIC_METRE_MASS_CONC 0x271B
145#define BLE_GATT_CHR_UNIT_CANDELA_PER_SQUARE_METRE 0x271C
146#define BLE_GATT_CHR_UNIT_REFRACTIVE_INDEX 0x271D
147#define BLE_GATT_CHR_UNIT_RELATIVE_PERMEABILITY 0x271E
148#define BLE_GATT_CHR_UNIT_RADIAN 0x2720
149#define BLE_GATT_CHR_UNIT_STERADIAN 0x2721
150#define BLE_GATT_CHR_UNIT_HERTZ 0x2722
151#define BLE_GATT_CHR_UNIT_NEWTON 0x2723
152#define BLE_GATT_CHR_UNIT_PASCAL 0x2724
153#define BLE_GATT_CHR_UNIT_JOULE 0x2725
154#define BLE_GATT_CHR_UNIT_WATT 0x2726
155#define BLE_GATT_CHR_UNIT_COULOMB 0x2727
156#define BLE_GATT_CHR_UNIT_VOLT 0x2728
157#define BLE_GATT_CHR_UNIT_FARAD 0x2729
158#define BLE_GATT_CHR_UNIT_OHM 0x272A
159#define BLE_GATT_CHR_UNIT_SIEMENS 0x272B
160#define BLE_GATT_CHR_UNIT_WEBER 0x272C
161#define BLE_GATT_CHR_UNIT_TESLA 0x272D
162#define BLE_GATT_CHR_UNIT_HENRY 0x272E
163#define BLE_GATT_CHR_UNIT_DEGREE_CELSIUS 0x272F
164#define BLE_GATT_CHR_UNIT_LUMEN 0x2730
165#define BLE_GATT_CHR_UNIT_LUX 0x2731
166#define BLE_GATT_CHR_UNIT_BECQUEREL 0x2732
167#define BLE_GATT_CHR_UNIT_GRAY 0x2733
168#define BLE_GATT_CHR_UNIT_SIEVERT 0x2734
169#define BLE_GATT_CHR_UNIT_KATAL 0x2735
170#define BLE_GATT_CHR_UNIT_PASCAL_SECOND 0x2740
171#define BLE_GATT_CHR_UNIT_NEWTON_METRE 0x2741
172#define BLE_GATT_CHR_UNIT_NEWTON_PER_METRE 0x2742
173#define BLE_GATT_CHR_UNIT_RADIAN_PER_SECOND 0x2743
174#define BLE_GATT_CHR_UNIT_RADIAN_PER_SECOND_SQUARED 0x2744
175#define BLE_GATT_CHR_UNIT_WATT_PER_SQUARE_METRE_HEAT 0x2745
176#define BLE_GATT_CHR_UNIT_JOULE_PER_KELVIN 0x2746
177#define BLE_GATT_CHR_UNIT_JOULE_PER_KILOGRAM_KELVIN 0x2747
178#define BLE_GATT_CHR_UNIT_JOULE_PER_KILOGRAM 0x2748
179#define BLE_GATT_CHR_UNIT_WATT_PER_METRE_KELVIN 0x2749
180#define BLE_GATT_CHR_UNIT_JOULE_PER_CUBIC_METRE 0x274A
181#define BLE_GATT_CHR_UNIT_VOLT_PER_METRE 0x274B
182#define BLE_GATT_CHR_UNIT_COULOMB_PER_CUBIC_METRE 0x274C
183#define BLE_GATT_CHR_UNIT_COULOMB_PER_SQUARE_METRE_CHARGE 0x274D
184#define BLE_GATT_CHR_UNIT_COULOMB_PER_SQUARE_METRE_FLUX 0x274E
185#define BLE_GATT_CHR_UNIT_FARAD_PER_METRE 0x274F
186#define BLE_GATT_CHR_UNIT_HENRY_PER_METRE 0x2750
187#define BLE_GATT_CHR_UNIT_JOULE_PER_MOLE 0x2751
188#define BLE_GATT_CHR_UNIT_JOULE_PER_MOLE_KELVIN 0x2752
189#define BLE_GATT_CHR_UNIT_COULOMB_PER_KILOGRAM 0x2753
190#define BLE_GATT_CHR_UNIT_GRAY_PER_SECOND 0x2754
191#define BLE_GATT_CHR_UNIT_WATT_PER_STERADIAN 0x2755
192#define BLE_GATT_CHR_UNIT_WATT_PER_SQUARE_METRE_STERADIAN 0x2756
193#define BLE_GATT_CHR_UNIT_KATAL_PER_CUBIC_METRE 0x2757
194#define BLE_GATT_CHR_UNIT_MINUTE 0x2760
195#define BLE_GATT_CHR_UNIT_HOUR 0x2761
196#define BLE_GATT_CHR_UNIT_DAY 0x2762
197#define BLE_GATT_CHR_UNIT_DEGREE 0x2763
198#define BLE_GATT_CHR_UNIT_MINUTE_ANGLE 0x2764
199#define BLE_GATT_CHR_UNIT_SECOND_ANGLE 0x2765
200#define BLE_GATT_CHR_UNIT_HECTARE 0x2766
201#define BLE_GATT_CHR_UNIT_LITRE 0x2767
202#define BLE_GATT_CHR_UNIT_TONNE 0x2768
203#define BLE_GATT_CHR_UNIT_BAR 0x2780
204#define BLE_GATT_CHR_UNIT_MILLIMETRE_OF_MERCURY 0x2781
205#define BLE_GATT_CHR_UNIT_ANGSTROM 0x2782
206#define BLE_GATT_CHR_UNIT_NAUTICAL_MILE 0x2783
207#define BLE_GATT_CHR_UNIT_BARN 0x2784
208#define BLE_GATT_CHR_UNIT_KNOT 0x2785
209#define BLE_GATT_CHR_UNIT_NEPER 0x2786
210#define BLE_GATT_CHR_UNIT_BEL 0x2787
211#define BLE_GATT_CHR_UNIT_YARD 0x27A0
212#define BLE_GATT_CHR_UNIT_PARSEC 0x27A1
213#define BLE_GATT_CHR_UNIT_INCH 0x27A2
214#define BLE_GATT_CHR_UNIT_FOOT 0x27A3
215#define BLE_GATT_CHR_UNIT_MILE 0x27A4
216#define BLE_GATT_CHR_UNIT_POUND_FORCE_PER_SQUARE_INCH 0x27A5
217#define BLE_GATT_CHR_UNIT_KILOMETRE_PER_HOUR 0x27A6
218#define BLE_GATT_CHR_UNIT_MILE_PER_HOUR 0x27A7
219#define BLE_GATT_CHR_UNIT_REVOLUTION_PER_MINUTE 0x27A8
220#define BLE_GATT_CHR_UNIT_GRAM_CALORIE 0x27A9
221#define BLE_GATT_CHR_UNIT_KILOGRAM_CALORIE 0x27AA
222#define BLE_GATT_CHR_UNIT_KILOWATT_HOUR 0x27AB
223#define BLE_GATT_CHR_UNIT_DEGREE_FAHRENHEIT 0x27AC
224#define BLE_GATT_CHR_UNIT_PERCENTAGE 0x27AD
225#define BLE_GATT_CHR_UNIT_PER_MILLE 0x27AE
226#define BLE_GATT_CHR_UNIT_BEATS_PER_MINUTE 0x27AF
227#define BLE_GATT_CHR_UNIT_AMPERE_HOURS 0x27B0
228#define BLE_GATT_CHR_UNIT_MILLIGRAM_PER_DECILITRE 0x27B1
229#define BLE_GATT_CHR_UNIT_MILLIMOLE_PER_LITRE 0x27B2
230#define BLE_GATT_CHR_UNIT_YEAR 0x27B3
231#define BLE_GATT_CHR_UNIT_MONTH 0x27B4
232#define BLE_GATT_CHR_UNIT_COUNT_PER_CUBIC_METRE 0x27B5
233#define BLE_GATT_CHR_UNIT_WATT_PER_SQUARE_METRE_IRRADIANCE 0x27B6
234#define BLE_GATT_CHR_UNIT_PER_KILOGRAM_PER_MINUTE 0x27B7
235#define BLE_GATT_CHR_UNIT_POUND 0x27B8
236#define BLE_GATT_CHR_UNIT_METABOLIC_EQUIVALENT 0x27B9
237#define BLE_GATT_CHR_UNIT_PER_MINUTE_STEP 0x27BA
238#define BLE_GATT_CHR_UNIT_PER_MINUTE_STROKE 0x27BC
239#define BLE_GATT_CHR_UNIT_KILOMETRE_PER_MINUTE 0x27BD
240#define BLE_GATT_CHR_UNIT_LUMEN_PER_WATT 0x27BE
241#define BLE_GATT_CHR_UNIT_LUMEN_HOUR 0x27BF
242#define BLE_GATT_CHR_UNIT_LUX_HOUR 0x27C0
243#define BLE_GATT_CHR_UNIT_GRAM_PER_SECOND 0x27C1
244#define BLE_GATT_CHR_UNIT_LITRE_PER_SECOND 0x27C2
245#define BLE_GATT_CHR_UNIT_DECIBEL 0x27C3
246#define BLE_GATT_CHR_UNIT_PARTS_PER_MILLION 0x27C4
247#define BLE_GATT_CHR_UNIT_PARTS_PER_BILLION 0x27C5
248#define BLE_GATT_CHR_UNIT_MILLIGRAM_PER_DECILITRE_PER_MINUTE 0x27C6
249#define BLE_GATT_CHR_UNIT_KILOVOLT_AMPERE_HOUR 0x27C7
250#define BLE_GATT_CHR_UNIT_VOLT_AMPERE 0x27C8
257#define BLE_GATT_CHR_NAMESPACE_BT_SIG 0x01
264#define BLE_GATT_CHR_BT_SIG_DESC_UNKNOWN 0x0000
266#define BLE_GATT_CHR_BT_SIG_DESC_FRONT 0x0100
267#define BLE_GATT_CHR_BT_SIG_DESC_BACK 0x0101
268#define BLE_GATT_CHR_BT_SIG_DESC_TOP 0x0102
269#define BLE_GATT_CHR_BT_SIG_DESC_BOTTOM 0x0103
270#define BLE_GATT_CHR_BT_SIG_DESC_UPPER 0x0104
271#define BLE_GATT_CHR_BT_SIG_DESC_LOWER 0x0105
272#define BLE_GATT_CHR_BT_SIG_DESC_MAIN 0x0106
273#define BLE_GATT_CHR_BT_SIG_DESC_BACKUP 0x0107
274#define BLE_GATT_CHR_BT_SIG_DESC_AUXILIARY 0x0108
275#define BLE_GATT_CHR_BT_SIG_DESC_SUPPLEMENTARY 0x0109
276#define BLE_GATT_CHR_BT_SIG_DESC_FLASH 0x010A
277#define BLE_GATT_CHR_BT_SIG_DESC_INSIDE 0x010B
278#define BLE_GATT_CHR_BT_SIG_DESC_OUTSIDE 0x010C
279#define BLE_GATT_CHR_BT_SIG_DESC_LEFT 0x010D
280#define BLE_GATT_CHR_BT_SIG_DESC_RIGHT 0x010E
281#define BLE_GATT_CHR_BT_SIG_DESC_INTERNAL 0x010F
282#define BLE_GATT_CHR_BT_SIG_DESC_EXTERNAL 0x0110
285struct ble_gatt_error {
291 uint16_t start_handle;
296struct ble_gatt_attr {
314typedef int ble_gatt_mtu_fn(uint16_t conn_handle,
315 const struct ble_gatt_error *error,
316 uint16_t mtu,
void *arg);
317typedef int ble_gatt_disc_svc_fn(uint16_t conn_handle,
318 const struct ble_gatt_error *error,
319 const struct ble_gatt_svc *service,
328 const struct ble_gatt_error *error,
329 struct ble_gatt_attr *attr,
338 const struct ble_gatt_error *error,
339 struct ble_gatt_attr *attrs,
349 const struct ble_gatt_error *error,
350 struct ble_gatt_attr *attrs,
351 uint8_t num_attrs,
void *arg);
353typedef int ble_gatt_chr_fn(uint16_t conn_handle,
354 const struct ble_gatt_error *error,
355 const struct ble_gatt_chr *chr,
void *arg);
357typedef int ble_gatt_dsc_fn(uint16_t conn_handle,
358 const struct ble_gatt_error *error,
359 uint16_t chr_val_handle,
360 const struct ble_gatt_dsc *dsc,
376 ble_gatt_mtu_fn *cb,
void *cb_arg);
389 ble_gatt_disc_svc_fn *cb,
void *cb_arg);
405 ble_gatt_disc_svc_fn *cb,
void *cb_arg);
425 ble_gatt_disc_svc_fn *cb,
void *cb_arg);
444 uint16_t end_handle, ble_gatt_chr_fn *cb,
467 ble_gatt_chr_fn *cb,
void *cb_arg);
487 ble_gatt_dsc_fn *cb,
void *cb_arg);
559int ble_gattc_read_mult_var(uint16_t conn_handle,
const uint16_t *handles,
592 const void *data, uint16_t data_len);
646 const void *data, uint16_t data_len,
666 uint16_t offset,
struct os_mbuf *om,
689 struct ble_gatt_attr *attrs,
774int ble_gattc_init(
void);
779typedef int ble_gatt_access_fn(uint16_t conn_handle, uint16_t attr_handle,
782typedef uint16_t ble_gatt_chr_flags;
784struct ble_gatt_chr_def {
795 ble_gatt_access_fn *access_cb;
805 struct ble_gatt_dsc_def *descriptors;
808 ble_gatt_chr_flags flags;
811 uint8_t min_key_size;
817 uint16_t *val_handle;
823struct ble_gatt_svc_def {
843 const struct ble_gatt_svc_def **includes;
849 const struct ble_gatt_chr_def *characteristics;
852struct ble_gatt_dsc_def {
863 uint8_t min_key_size;
866 ble_gatt_access_fn *access_cb;
944 const struct ble_gatt_chr_def *
chr;
950 const struct ble_gatt_dsc_def *
dsc;
1002 const struct ble_gatt_svc_def *svc_def;
1020 const struct ble_gatt_chr_def *chr_def;
1026 const struct ble_gatt_svc_def *svc_def;
1034#if MYNEWT_VAL(BLE_DYNAMIC_SERVICE)
1035struct ble_gatts_clt_cfg {
1036 STAILQ_ENTRY(ble_gatts_clt_cfg) next;
1037 uint16_t chr_val_handle;
1043STAILQ_HEAD(ble_gatts_clt_cfg_list, ble_gatts_clt_cfg);
1060#if MYNEWT_VAL(BLE_DYNAMIC_SERVICE)
1073int ble_gatts_add_dynamic_svcs(
const struct ble_gatt_svc_def *svcs);
1083int ble_gatts_delete_svc(
const ble_uuid_t *uuid);
1156 uint16_t *out_def_handle, uint16_t *out_val_handle);
1174 const ble_uuid_t *dsc_uuid, uint16_t *out_dsc_handle);
1176typedef void (*ble_gatt_svc_foreach_fn)(
const struct ble_gatt_svc_def *svc,
1178 uint16_t end_group_handle,
1254#if MYNEWT_VAL(BLE_GATT_CACHING)
1255int ble_gatts_calculate_hash(uint8_t *out_hash_key);
int ble_gatts_start(void)
Definition ble_gatts.c:1628
int ble_gatts_get_cfgable_chrs(void)
Definition ble_gatts.c:3173
int ble_gattc_disc_svc_by_uuid(uint16_t conn_handle, const ble_uuid_t *uuid, ble_gatt_disc_svc_fn *cb, void *cb_arg)
int ble_gatt_reliable_attr_fn(uint16_t conn_handle, const struct ble_gatt_error *error, struct ble_gatt_attr *attrs, uint8_t num_attrs, void *arg)
Definition ble_gatt.h:348
int ble_gatts_find_svc(const ble_uuid_t *uuid, uint16_t *out_handle)
Definition ble_gatts.c:2634
int ble_gattc_write_flat(uint16_t conn_handle, uint16_t attr_handle, const void *data, uint16_t data_len, ble_gatt_attr_fn *cb, void *cb_arg)
int ble_gattc_find_inc_svcs(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle, ble_gatt_disc_svc_fn *cb, void *cb_arg)
int ble_gatts_indicate(uint16_t conn_handle, uint16_t chr_val_handle)
int ble_gattc_write_reliable(uint16_t conn_handle, struct ble_gatt_attr *attrs, int num_attrs, ble_gatt_reliable_attr_fn *cb, void *cb_arg)
int ble_gatts_peer_cl_sup_feat_get(uint16_t conn_handle, uint8_t *out_supported_feat, uint8_t len)
Definition ble_gatts.c:2181
int ble_gatts_find_chr(const ble_uuid_t *svc_uuid, const ble_uuid_t *chr_uuid, uint16_t *out_def_handle, uint16_t *out_val_handle)
Definition ble_gatts.c:2654
int ble_gattc_read_mult(uint16_t conn_handle, const uint16_t *handles, uint8_t num_handles, ble_gatt_attr_fn *cb, void *cb_arg)
int ble_gattc_disc_all_chrs(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle, ble_gatt_chr_fn *cb, void *cb_arg)
int ble_gattc_read(uint16_t conn_handle, uint16_t attr_handle, ble_gatt_attr_fn *cb, void *cb_arg)
int ble_gatts_count_cfg(const struct ble_gatt_svc_def *defs)
Definition ble_gatts.c:3152
int ble_gattc_read_by_uuid(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle, const ble_uuid_t *uuid, ble_gatt_attr_fn *cb, void *cb_arg)
int ble_gatts_indicate_custom(uint16_t conn_handle, uint16_t chr_val_handle, struct os_mbuf *txom)
int ble_gatts_reset(void)
Definition ble_gatts.c:3201
int ble_gatts_notify_custom(uint16_t conn_handle, uint16_t att_handle, struct os_mbuf *om)
int ble_gattc_indicate_custom(uint16_t conn_handle, uint16_t chr_val_handle, struct os_mbuf *txom)
void ble_gatts_chr_updated(uint16_t chr_val_handle)
Definition ble_gatts.c:2062
int ble_gatts_peer_cl_sup_feat_update(uint16_t conn_handle, struct os_mbuf *om)
Definition ble_gatts.c:2210
int ble_gattc_disc_all_dscs(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle, ble_gatt_dsc_fn *cb, void *cb_arg)
int ble_gatts_add_svcs(const struct ble_gatt_svc_def *svcs)
Definition ble_gatts.c:2961
int ble_gattc_signed_write(uint16_t conn_handle, uint16_t attr_handle, struct os_mbuf *txom)
int ble_gattc_write_no_rsp(uint16_t conn_handle, uint16_t attr_handle, struct os_mbuf *om)
int ble_gatts_find_dsc(const ble_uuid_t *svc_uuid, const ble_uuid_t *chr_uuid, const ble_uuid_t *dsc_uuid, uint16_t *out_dsc_handle)
Definition ble_gatts.c:2675
int ble_gattc_write_no_rsp_flat(uint16_t conn_handle, uint16_t attr_handle, const void *data, uint16_t data_len)
int ble_gattc_notify(uint16_t conn_handle, uint16_t chr_val_handle)
int ble_gatt_attr_mult_fn(uint16_t conn_handle, const struct ble_gatt_error *error, struct ble_gatt_attr *attrs, uint8_t num_attrs, void *arg)
Definition ble_gatt.h:337
int ble_gatts_notify(uint16_t conn_handle, uint16_t chr_val_handle)
int ble_gattc_indicate(uint16_t conn_handle, uint16_t chr_val_handle)
int ble_gattc_disc_all_svcs(uint16_t conn_handle, ble_gatt_disc_svc_fn *cb, void *cb_arg)
int ble_gatts_svc_set_visibility(uint16_t handle, int visible)
Definition ble_gatts.c:2991
int ble_gattc_disc_chrs_by_uuid(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle, const ble_uuid_t *uuid, ble_gatt_chr_fn *cb, void *cb_arg)
int ble_gattc_write_long(uint16_t conn_handle, uint16_t attr_handle, uint16_t offset, struct os_mbuf *om, ble_gatt_attr_fn *cb, void *cb_arg)
int ble_gattc_write(uint16_t conn_handle, uint16_t attr_handle, struct os_mbuf *om, ble_gatt_attr_fn *cb, void *cb_arg)
int ble_gattc_notify_custom(uint16_t conn_handle, uint16_t att_handle, struct os_mbuf *om)
int ble_gatt_attr_fn(uint16_t conn_handle, const struct ble_gatt_error *error, struct ble_gatt_attr *attr, void *arg)
Definition ble_gatt.h:327
int ble_gattc_exchange_mtu(uint16_t conn_handle, ble_gatt_mtu_fn *cb, void *cb_arg)
void ble_gatts_show_local(void)
int ble_gattc_read_long(uint16_t conn_handle, uint16_t handle, uint16_t offset, ble_gatt_attr_fn *cb, void *cb_arg)
Definition ble_gatt.h:911
uint8_t op
Definition ble_gatt.h:920
struct os_mbuf * om
Definition ble_gatt.h:931
const struct ble_gatt_chr_def * chr
Definition ble_gatt.h:944
const struct ble_gatt_dsc_def * dsc
Definition ble_gatt.h:950
Definition ble_gatt.h:886
uint8_t name_space
Definition ble_gatt.h:900
uint16_t unit
Definition ble_gatt.h:897
int8_t exponent
Definition ble_gatt.h:894
uint8_t format
Definition ble_gatt.h:891
uint16_t description
Definition ble_gatt.h:903
Definition ble_gatt.h:958
uint16_t def_handle
Definition ble_gatt.h:987
uint16_t val_handle
Definition ble_gatt.h:990
uint16_t handle
Definition ble_gatt.h:975
const struct ble_gatt_chr_def * chr_def
Definition ble_gatt.h:996
const struct ble_gatt_dsc_def * dsc_def
Definition ble_gatt.h:1014
struct ble_gatt_register_ctxt::@29::@31 svc
struct ble_gatt_register_ctxt::@29::@33 dsc
const struct ble_gatt_svc_def * svc_def
Definition ble_gatt.h:981
struct ble_gatt_register_ctxt::@29::@32 chr
uint8_t op
Definition ble_gatt.h:966
Bluetooth Host main configuration structure.
Definition ble_hs.h:193