Zephyr API Documentation 4.1.99
A Scalable Open Source RTOS
 4.1.99
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
bluetooth.h
Go to the documentation of this file.
1
6/*
7 * Copyright (c) 2017 Nordic Semiconductor ASA
8 * Copyright (c) 2015-2016 Intel Corporation
9 *
10 * SPDX-License-Identifier: Apache-2.0
11 */
12#ifndef ZEPHYR_INCLUDE_BLUETOOTH_BLUETOOTH_H_
13#define ZEPHYR_INCLUDE_BLUETOOTH_BLUETOOTH_H_
14
30#include <stdbool.h>
31#include <stdint.h>
32#include <string.h>
33
38#include <zephyr/net_buf.h>
39#include <zephyr/sys/slist.h>
40#include <zephyr/sys/util.h>
42#include <zephyr/toolchain.h>
43
44#ifdef __cplusplus
45extern "C" {
46#endif
47
71#define BT_ID_DEFAULT 0
72
78#define BT_LE_LOCAL_SUPPORTED_FEATURES_SIZE 8
79
81struct bt_le_ext_adv;
82
84struct bt_le_per_adv_sync;
85
86/* Don't require everyone to include conn.h */
87struct bt_conn;
88
89/* Don't require everyone to include iso.h */
90struct bt_iso_biginfo;
91
92/* Don't require everyone to include direction.h */
94
109
117 struct bt_conn *conn;
118};
119
129
146
181
213 void (*sent)(struct bt_le_ext_adv *adv,
214 struct bt_le_ext_adv_sent_info *info);
215
225 void (*connected)(struct bt_le_ext_adv *adv,
226 struct bt_le_ext_adv_connected_info *info);
227
238 void (*scanned)(struct bt_le_ext_adv *adv,
239 struct bt_le_ext_adv_scanned_info *info);
240
241#if defined(CONFIG_BT_PRIVACY)
258 bool (*rpa_expired)(struct bt_le_ext_adv *adv);
259#endif /* defined(CONFIG_BT_PRIVACY) */
260
261#if defined(CONFIG_BT_PER_ADV_RSP)
271 void (*pawr_data_request)(struct bt_le_ext_adv *adv,
272 const struct bt_le_per_adv_data_request *request);
282 void (*pawr_response)(struct bt_le_ext_adv *adv, struct bt_le_per_adv_response_info *info,
283 struct net_buf_simple *buf);
284
285#endif /* defined(CONFIG_BT_PER_ADV_RSP) */
286};
287
294typedef void (*bt_ready_cb_t)(int err);
295
316
336int bt_disable(void);
337
343bool bt_is_ready(void);
344
362int bt_set_name(const char *name);
363
371const char *bt_get_name(void);
372
384
399int bt_set_appearance(uint16_t new_appearance);
400
420void bt_id_get(bt_addr_le_t *addrs, size_t *count);
421
467
498
516
528#define BT_DATA_SERIALIZED_SIZE(data_len) ((data_len) + 2)
529
545
556#define BT_DATA(_type, _data, _data_len) \
557 { \
558 .type = (_type), \
559 .data_len = (_data_len), \
560 .data = (const uint8_t *)(_data), \
561 }
562
572#define BT_DATA_BYTES(_type, _bytes...) \
573 BT_DATA(_type, ((uint8_t []) { _bytes }), \
574 sizeof((uint8_t []) { _bytes }))
575
586size_t bt_data_get_len(const struct bt_data data[], size_t data_count);
587
602size_t bt_data_serialize(const struct bt_data *input, uint8_t *output);
603
673
686
993
1071
1072
1094
1116
1124
1127
1128#if defined(CONFIG_BT_PER_ADV_RSP)
1134 uint8_t num_subevents;
1135
1141 uint8_t subevent_interval;
1142
1148 uint8_t response_slot_delay;
1149
1155 uint8_t response_slot_spacing;
1156
1162 uint8_t num_response_slots;
1163#endif /* CONFIG_BT_PER_ADV_RSP */
1164};
1165
1175#define BT_LE_ADV_PARAM_INIT(_options, _int_min, _int_max, _peer) \
1176{ \
1177 .id = BT_ID_DEFAULT, \
1178 .sid = 0, \
1179 .secondary_max_skip = 0, \
1180 .options = (_options), \
1181 .interval_min = (_int_min), \
1182 .interval_max = (_int_max), \
1183 .peer = (_peer), \
1184}
1185
1195#define BT_LE_ADV_PARAM(_options, _int_min, _int_max, _peer) \
1196 ((const struct bt_le_adv_param[]) { \
1197 BT_LE_ADV_PARAM_INIT(_options, _int_min, _int_max, _peer) \
1198 })
1199
1200#define BT_LE_ADV_CONN_DIR(_peer) BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN, 0, 0, _peer)
1201
1208#define BT_LE_ADV_CONN \
1209 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE, BT_GAP_ADV_FAST_INT_MIN_2, \
1210 BT_GAP_ADV_FAST_INT_MAX_2, NULL) \
1211 __DEPRECATED_MACRO
1212
1241#define BT_LE_ADV_CONN_FAST_1 \
1242 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN, BT_GAP_ADV_FAST_INT_MIN_1, BT_GAP_ADV_FAST_INT_MAX_1, \
1243 NULL)
1244
1265#define BT_LE_ADV_CONN_FAST_2 \
1266 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN, BT_GAP_ADV_FAST_INT_MIN_2, BT_GAP_ADV_FAST_INT_MAX_2, \
1267 NULL)
1268
1269#define BT_LE_ADV_CONN_ONE_TIME BT_LE_ADV_CONN_FAST_2 __DEPRECATED_MACRO
1270
1275#define BT_LE_ADV_CONN_NAME BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE | \
1276 BT_LE_ADV_OPT_USE_NAME, \
1277 BT_GAP_ADV_FAST_INT_MIN_2, \
1278 BT_GAP_ADV_FAST_INT_MAX_2, NULL) \
1279 __DEPRECATED_MACRO
1280
1285#define BT_LE_ADV_CONN_NAME_AD BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE | \
1286 BT_LE_ADV_OPT_USE_NAME | \
1287 BT_LE_ADV_OPT_FORCE_NAME_IN_AD, \
1288 BT_GAP_ADV_FAST_INT_MIN_2, \
1289 BT_GAP_ADV_FAST_INT_MAX_2, NULL) \
1290 __DEPRECATED_MACRO
1291
1292#define BT_LE_ADV_CONN_DIR_LOW_DUTY(_peer) \
1293 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN | BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY, \
1294 BT_GAP_ADV_FAST_INT_MIN_2, BT_GAP_ADV_FAST_INT_MAX_2, _peer)
1295
1297#define BT_LE_ADV_NCONN BT_LE_ADV_PARAM(0, BT_GAP_ADV_FAST_INT_MIN_2, \
1298 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1299
1306#define BT_LE_ADV_NCONN_NAME BT_LE_ADV_PARAM(BT_LE_ADV_OPT_USE_NAME, \
1307 BT_GAP_ADV_FAST_INT_MIN_2, \
1308 BT_GAP_ADV_FAST_INT_MAX_2, NULL) \
1309 __DEPRECATED_MACRO
1310
1312#define BT_LE_ADV_NCONN_IDENTITY BT_LE_ADV_PARAM(BT_LE_ADV_OPT_USE_IDENTITY, \
1313 BT_GAP_ADV_FAST_INT_MIN_2, \
1314 BT_GAP_ADV_FAST_INT_MAX_2, \
1315 NULL)
1316
1318#define BT_LE_EXT_ADV_CONN \
1319 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | BT_LE_ADV_OPT_CONN, BT_GAP_ADV_FAST_INT_MIN_2, \
1320 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1321
1328#define BT_LE_EXT_ADV_CONN_NAME BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1329 BT_LE_ADV_OPT_CONNECTABLE | \
1330 BT_LE_ADV_OPT_USE_NAME, \
1331 BT_GAP_ADV_FAST_INT_MIN_2, \
1332 BT_GAP_ADV_FAST_INT_MAX_2, \
1333 NULL) \
1334 __DEPRECATED_MACRO
1335
1337#define BT_LE_EXT_ADV_SCAN BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1338 BT_LE_ADV_OPT_SCANNABLE, \
1339 BT_GAP_ADV_FAST_INT_MIN_2, \
1340 BT_GAP_ADV_FAST_INT_MAX_2, \
1341 NULL)
1342
1349#define BT_LE_EXT_ADV_SCAN_NAME BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1350 BT_LE_ADV_OPT_SCANNABLE | \
1351 BT_LE_ADV_OPT_USE_NAME, \
1352 BT_GAP_ADV_FAST_INT_MIN_2, \
1353 BT_GAP_ADV_FAST_INT_MAX_2, \
1354 NULL) \
1355 __DEPRECATED_MACRO
1356
1358#define BT_LE_EXT_ADV_NCONN BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV, \
1359 BT_GAP_ADV_FAST_INT_MIN_2, \
1360 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1361
1368#define BT_LE_EXT_ADV_NCONN_NAME BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1369 BT_LE_ADV_OPT_USE_NAME, \
1370 BT_GAP_ADV_FAST_INT_MIN_2, \
1371 BT_GAP_ADV_FAST_INT_MAX_2, \
1372 NULL) \
1373 __DEPRECATED_MACRO
1374
1376#define BT_LE_EXT_ADV_NCONN_IDENTITY \
1377 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1378 BT_LE_ADV_OPT_USE_IDENTITY, \
1379 BT_GAP_ADV_FAST_INT_MIN_2, \
1380 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1381
1383#define BT_LE_EXT_ADV_CODED_NCONN BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1384 BT_LE_ADV_OPT_CODED, \
1385 BT_GAP_ADV_FAST_INT_MIN_2, \
1386 BT_GAP_ADV_FAST_INT_MAX_2, \
1387 NULL)
1388
1396#define BT_LE_EXT_ADV_CODED_NCONN_NAME \
1397 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | BT_LE_ADV_OPT_CODED | \
1398 BT_LE_ADV_OPT_USE_NAME, \
1399 BT_GAP_ADV_FAST_INT_MIN_2, \
1400 BT_GAP_ADV_FAST_INT_MAX_2, NULL) \
1401 __DEPRECATED_MACRO
1402
1406#define BT_LE_EXT_ADV_CODED_NCONN_IDENTITY \
1407 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | BT_LE_ADV_OPT_CODED | \
1408 BT_LE_ADV_OPT_USE_IDENTITY, \
1409 BT_GAP_ADV_FAST_INT_MIN_2, \
1410 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1411
1418#define BT_LE_EXT_ADV_START_PARAM_INIT(_timeout, _n_evts) \
1419{ \
1420 .timeout = (_timeout), \
1421 .num_events = (_n_evts), \
1422}
1423
1430#define BT_LE_EXT_ADV_START_PARAM(_timeout, _n_evts) \
1431 ((const struct bt_le_ext_adv_start_param[]) { \
1432 BT_LE_EXT_ADV_START_PARAM_INIT((_timeout), (_n_evts)) \
1433 })
1434
1435#define BT_LE_EXT_ADV_START_DEFAULT BT_LE_EXT_ADV_START_PARAM(0, 0)
1436
1445#define BT_LE_PER_ADV_PARAM_INIT(_int_min, _int_max, _options) \
1446{ \
1447 .interval_min = (_int_min), \
1448 .interval_max = (_int_max), \
1449 .options = (_options), \
1450}
1451
1460#define BT_LE_PER_ADV_PARAM(_int_min, _int_max, _options) \
1461 ((struct bt_le_per_adv_param[]) { \
1462 BT_LE_PER_ADV_PARAM_INIT(_int_min, _int_max, _options) \
1463 })
1464
1465#define BT_LE_PER_ADV_DEFAULT BT_LE_PER_ADV_PARAM(BT_GAP_PER_ADV_SLOW_INT_MIN, \
1466 BT_GAP_PER_ADV_SLOW_INT_MAX, \
1467 BT_LE_PER_ADV_OPT_NONE)
1468
1499int bt_le_adv_start(const struct bt_le_adv_param *param,
1500 const struct bt_data *ad, size_t ad_len,
1501 const struct bt_data *sd, size_t sd_len);
1502
1515int bt_le_adv_update_data(const struct bt_data *ad, size_t ad_len,
1516 const struct bt_data *sd, size_t sd_len);
1517
1526
1542 const struct bt_le_ext_adv_cb *cb,
1543 struct bt_le_ext_adv **adv);
1544
1605
1619int bt_le_ext_adv_start(struct bt_le_ext_adv *adv,
1620 const struct bt_le_ext_adv_start_param *param);
1621
1632int bt_le_ext_adv_stop(struct bt_le_ext_adv *adv);
1633
1668int bt_le_ext_adv_set_data(struct bt_le_ext_adv *adv,
1669 const struct bt_data *ad, size_t ad_len,
1670 const struct bt_data *sd, size_t sd_len);
1671
1688int bt_le_ext_adv_update_param(struct bt_le_ext_adv *adv,
1689 const struct bt_le_adv_param *param);
1690
1699int bt_le_ext_adv_delete(struct bt_le_ext_adv *adv);
1700
1712uint8_t bt_le_ext_adv_get_index(struct bt_le_ext_adv *adv);
1713
1725
1734int bt_le_ext_adv_get_info(const struct bt_le_ext_adv *adv,
1735 struct bt_le_ext_adv_info *info);
1736
1750typedef void bt_le_scan_cb_t(const bt_addr_le_t *addr, int8_t rssi,
1751 uint8_t adv_type, struct net_buf_simple *buf);
1752
1765int bt_le_per_adv_set_param(struct bt_le_ext_adv *adv,
1766 const struct bt_le_per_adv_param *param);
1767
1781int bt_le_per_adv_set_data(const struct bt_le_ext_adv *adv,
1782 const struct bt_data *ad, size_t ad_len);
1783
1807
1823int bt_le_per_adv_set_subevent_data(const struct bt_le_ext_adv *adv, uint8_t num_subevents,
1824 const struct bt_le_per_adv_subevent_data_params *params);
1825
1843int bt_le_per_adv_start(struct bt_le_ext_adv *adv);
1844
1856int bt_le_per_adv_stop(struct bt_le_ext_adv *adv);
1857
1873
1876
1879
1882
1885
1892
1899 struct bt_conn *conn;
1900#if defined(CONFIG_BT_PER_ADV_SYNC_RSP)
1902 uint8_t num_subevents;
1903
1905 uint8_t subevent_interval;
1906
1908 uint8_t response_slot_delay;
1909
1911 uint8_t response_slot_spacing;
1912
1913#endif /* CONFIG_BT_PER_ADV_SYNC_RSP */
1914};
1915
1936
1951
1954
1957
1960
1963#if defined(CONFIG_BT_PER_ADV_SYNC_RSP)
1965 uint16_t periodic_event_counter;
1966
1968 uint8_t subevent;
1969#endif /* CONFIG_BT_PER_ADV_SYNC_RSP */
1970};
1971
1983
2006 void (*synced)(struct bt_le_per_adv_sync *sync,
2007 struct bt_le_per_adv_sync_synced_info *info);
2008
2018 void (*term)(struct bt_le_per_adv_sync *sync,
2019 const struct bt_le_per_adv_sync_term_info *info);
2020
2034 void (*recv)(struct bt_le_per_adv_sync *sync,
2035 const struct bt_le_per_adv_sync_recv_info *info,
2036 struct net_buf_simple *buf);
2037
2048 void (*state_changed)(struct bt_le_per_adv_sync *sync,
2049 const struct bt_le_per_adv_sync_state_info *info);
2050
2061 void (*biginfo)(struct bt_le_per_adv_sync *sync, const struct bt_iso_biginfo *biginfo);
2062
2070 void (*cte_report_cb)(struct bt_le_per_adv_sync *sync,
2071 struct bt_df_per_adv_sync_iq_samples_report const *info);
2072
2074};
2075
2111
2160
2172uint8_t bt_le_per_adv_sync_get_index(struct bt_le_per_adv_sync *per_adv_sync);
2173
2186struct bt_le_per_adv_sync *bt_le_per_adv_sync_lookup_index(uint8_t index);
2187
2202
2211int bt_le_per_adv_sync_get_info(struct bt_le_per_adv_sync *per_adv_sync,
2212 struct bt_le_per_adv_sync_info *info);
2213
2222struct bt_le_per_adv_sync *bt_le_per_adv_sync_lookup_addr(const bt_addr_le_t *adv_addr,
2223 uint8_t sid);
2224
2242 struct bt_le_per_adv_sync **out_sync);
2243
2260int bt_le_per_adv_sync_delete(struct bt_le_per_adv_sync *per_adv_sync);
2261
2277
2287int bt_le_per_adv_sync_recv_enable(struct bt_le_per_adv_sync *per_adv_sync);
2288
2298int bt_le_per_adv_sync_recv_disable(struct bt_le_per_adv_sync *per_adv_sync);
2299
2347
2378
2391int bt_le_per_adv_sync_transfer(const struct bt_le_per_adv_sync *per_adv_sync,
2392 const struct bt_conn *conn,
2393 uint16_t service_data);
2394
2395
2408int bt_le_per_adv_set_info_transfer(const struct bt_le_ext_adv *adv,
2409 const struct bt_conn *conn,
2410 uint16_t service_data);
2411
2426 const struct bt_conn *conn,
2427 const struct bt_le_per_adv_sync_transfer_param *param);
2428
2442int bt_le_per_adv_sync_transfer_unsubscribe(const struct bt_conn *conn);
2443
2458
2471
2480
2481
2502
2516
2567
2620
2623
2630 void (*recv)(const struct bt_le_scan_recv_info *info,
2631 struct net_buf_simple *buf);
2632
2634 void (*timeout)(void);
2635
2637};
2638
2647#define BT_LE_SCAN_PARAM_INIT(_type, _options, _interval, _window) \
2648{ \
2649 .type = (_type), \
2650 .options = (_options), \
2651 .interval = (_interval), \
2652 .window = (_window), \
2653 .timeout = 0, \
2654 .interval_coded = 0, \
2655 .window_coded = 0, \
2656}
2657
2666#define BT_LE_SCAN_PARAM(_type, _options, _interval, _window) \
2667 ((struct bt_le_scan_param[]) { \
2668 BT_LE_SCAN_PARAM_INIT(_type, _options, _interval, _window) \
2669 })
2670
2674#define BT_LE_SCAN_ACTIVE BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_ACTIVE, \
2675 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2676 BT_GAP_SCAN_FAST_INTERVAL, \
2677 BT_GAP_SCAN_FAST_WINDOW)
2678
2684#define BT_LE_SCAN_ACTIVE_CONTINUOUS BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_ACTIVE, \
2685 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2686 BT_GAP_SCAN_FAST_INTERVAL_MIN, \
2687 BT_GAP_SCAN_FAST_WINDOW)
2689 "Continuous scanning is requested by setting window and interval equal.");
2690
2697#define BT_LE_SCAN_PASSIVE BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_PASSIVE, \
2698 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2699 BT_GAP_SCAN_FAST_INTERVAL, \
2700 BT_GAP_SCAN_FAST_WINDOW)
2701
2708#define BT_LE_SCAN_PASSIVE_CONTINUOUS BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_PASSIVE, \
2709 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2710 BT_GAP_SCAN_FAST_INTERVAL_MIN, \
2711 BT_GAP_SCAN_FAST_WINDOW)
2713 "Continuous scanning is requested by setting window and interval equal.");
2714
2719#define BT_LE_SCAN_CODED_ACTIVE \
2720 BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_ACTIVE, \
2721 BT_LE_SCAN_OPT_CODED | \
2722 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2723 BT_GAP_SCAN_FAST_INTERVAL, \
2724 BT_GAP_SCAN_FAST_WINDOW)
2725
2733#define BT_LE_SCAN_CODED_PASSIVE \
2734 BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_PASSIVE, \
2735 BT_LE_SCAN_OPT_CODED | \
2736 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2737 BT_GAP_SCAN_FAST_INTERVAL, \
2738 BT_GAP_SCAN_FAST_WINDOW)
2739
2767
2777
2793
2802
2818
2834
2848
2858
2877int bt_le_set_rpa_timeout(uint16_t new_rpa_timeout);
2878
2897 bool (*func)(struct bt_data *data, void *user_data),
2898 void *user_data);
2899
2904
2907};
2908
2919
2949
2974int bt_le_ext_adv_oob_get_local(struct bt_le_ext_adv *adv,
2975 struct bt_le_oob *oob);
2976
2986int bt_unpair(uint8_t id, const bt_addr_le_t *addr);
2987
2993
3001void bt_foreach_bond(uint8_t id, void (*func)(const struct bt_bond_info *info,
3002 void *user_data),
3003 void *user_data);
3004
3021 const uint8_t *vs_config);
3022
3050
3061int bt_le_per_adv_sync_subevent(struct bt_le_per_adv_sync *per_adv_sync,
3062 struct bt_le_per_adv_sync_subevent_params *params);
3063
3098
3111int bt_le_per_adv_set_response_data(struct bt_le_per_adv_sync *per_adv_sync,
3112 const struct bt_le_per_adv_response_params *params,
3113 const struct net_buf_simple *data);
3114
3127
3132#ifdef __cplusplus
3133}
3134#endif
3139#endif /* ZEPHYR_INCLUDE_BLUETOOTH_BLUETOOTH_H_ */
Bluetooth device address definitions and utilities.
Bluetooth subsystem crypto APIs.
Bluetooth subsystem classic core APIs.
Bluetooth Generic Access Profile defines and Assigned Numbers.
#define BT_GAP_SCAN_FAST_WINDOW
Definition gap.h:719
#define BT_GAP_SCAN_FAST_INTERVAL_MIN
Definition gap.h:717
int bt_le_filter_accept_list_remove(const bt_addr_le_t *addr)
Remove device (LE) from filter accept list.
int bt_le_per_adv_sync_create(const struct bt_le_per_adv_sync_param *param, struct bt_le_per_adv_sync **out_sync)
Create a periodic advertising sync object.
void bt_id_get(bt_addr_le_t *addrs, size_t *count)
Get the currently configured identity addresses.
int bt_le_per_adv_sync_recv_enable(struct bt_le_per_adv_sync *per_adv_sync)
Enables receiving periodic advertising reports for a sync.
int bt_le_per_adv_sync_transfer_unsubscribe(const struct bt_conn *conn)
Unsubscribe from periodic advertising sync transfers (PASTs).
int bt_disable(void)
Disable Bluetooth.
int bt_le_per_adv_start(struct bt_le_ext_adv *adv)
Starts periodic advertising.
int bt_le_per_adv_list_remove(const bt_addr_le_t *addr, uint8_t sid)
Remove a device from the periodic advertising list.
int bt_le_adv_stop(void)
Stop advertising.
int bt_le_ext_adv_update_param(struct bt_le_ext_adv *adv, const struct bt_le_adv_param *param)
Update advertising parameters.
int bt_le_per_adv_stop(struct bt_le_ext_adv *adv)
Stops periodic advertising.
void bt_le_scan_cb_t(const bt_addr_le_t *addr, int8_t rssi, uint8_t adv_type, struct net_buf_simple *buf)
Callback type for reporting LE scan results.
Definition bluetooth.h:1750
int bt_le_ext_adv_stop(struct bt_le_ext_adv *adv)
Stop advertising with the given advertising set.
int bt_le_per_adv_list_add(const bt_addr_le_t *addr, uint8_t sid)
Add a device to the periodic advertising list.
int bt_le_oob_get_local(uint8_t id, struct bt_le_oob *oob)
Get local LE Out of Band (OOB) information.
bool bt_le_bond_exists(uint8_t id, const bt_addr_le_t *addr)
Check if a device identified by a Bluetooth LE address is bonded.
uint16_t bt_get_appearance(void)
Get local Bluetooth appearance.
size_t bt_data_serialize(const struct bt_data *input, uint8_t *output)
Serialize a bt_data struct into an advertising structure (a flat byte array).
size_t bt_data_get_len(const struct bt_data data[], size_t data_count)
Get the total size (in bytes) of a given set of bt_data structures.
int bt_le_per_adv_sync_recv_disable(struct bt_le_per_adv_sync *per_adv_sync)
Disables receiving periodic advertising reports for a sync.
int bt_le_filter_accept_list_add(const bt_addr_le_t *addr)
Add device (LE) to filter accept list.
int bt_le_per_adv_sync_cb_register(struct bt_le_per_adv_sync_cb *cb)
Register periodic advertising sync callbacks.
void(* bt_ready_cb_t)(int err)
Callback for notifying that Bluetooth has been enabled.
Definition bluetooth.h:294
int bt_le_per_adv_list_clear(void)
Clear the periodic advertising list.
struct bt_le_per_adv_sync * bt_le_per_adv_sync_lookup_index(uint8_t index)
Get a periodic advertising sync object from the array index.
int bt_le_ext_adv_delete(struct bt_le_ext_adv *adv)
Delete advertising set.
int bt_le_get_local_features(struct bt_le_local_features *local_features)
Get local Bluetooth LE controller features.
void bt_data_parse(struct net_buf_simple *ad, bool(*func)(struct bt_data *data, void *user_data), void *user_data)
Helper for parsing advertising (or EIR or OOB) data.
int bt_le_per_adv_sync_subevent(struct bt_le_per_adv_sync *per_adv_sync, struct bt_le_per_adv_sync_subevent_params *params)
Synchronize with a subset of subevents.
int bt_le_ext_adv_oob_get_local(struct bt_le_ext_adv *adv, struct bt_le_oob *oob)
Get local LE Out of Band (OOB) information.
int bt_le_per_adv_set_subevent_data(const struct bt_le_ext_adv *adv, uint8_t num_subevents, const struct bt_le_per_adv_subevent_data_params *params)
Set the periodic advertising with response subevent data.
int bt_configure_data_path(uint8_t dir, uint8_t id, uint8_t vs_config_len, const uint8_t *vs_config)
Configure vendor data path.
int bt_le_scan_cb_register(struct bt_le_scan_cb *cb)
Register scanner packet callbacks.
bt_le_per_adv_sync_transfer_opt
Periodic Advertising Sync Transfer options.
Definition bluetooth.h:2301
struct bt_le_per_adv_sync * bt_le_per_adv_sync_lookup_addr(const bt_addr_le_t *adv_addr, uint8_t sid)
Look up an existing periodic advertising sync object by advertiser address.
uint8_t bt_le_per_adv_sync_get_index(struct bt_le_per_adv_sync *per_adv_sync)
Get array index of an periodic advertising sync object.
int bt_le_adv_update_data(const struct bt_data *ad, size_t ad_len, const struct bt_data *sd, size_t sd_len)
Update advertising.
int bt_le_set_rpa_timeout(uint16_t new_rpa_timeout)
Set the Resolvable Private Address timeout in runtime.
int bt_le_per_adv_sync_transfer_subscribe(const struct bt_conn *conn, const struct bt_le_per_adv_sync_transfer_param *param)
Subscribe to periodic advertising sync transfers (PASTs).
int bt_le_per_adv_sync_delete(struct bt_le_per_adv_sync *per_adv_sync)
Delete periodic advertising sync.
#define BT_LE_LOCAL_SUPPORTED_FEATURES_SIZE
Number of octets for local supported.
Definition bluetooth.h:78
int bt_le_scan_stop(void)
Stop (LE) scanning.
int bt_le_per_adv_set_param(struct bt_le_ext_adv *adv, const struct bt_le_per_adv_param *param)
Set or update the periodic advertising parameters.
bool bt_is_ready(void)
Check if Bluetooth is ready.
void bt_foreach_bond(uint8_t id, void(*func)(const struct bt_bond_info *info, void *user_data), void *user_data)
Iterate through all existing bonds.
int bt_le_per_adv_set_response_data(struct bt_le_per_adv_sync *per_adv_sync, const struct bt_le_per_adv_response_params *params, const struct net_buf_simple *data)
Set the data for a response slot in a specific subevent of the PAwR.
bt_le_scan_opt
Definition bluetooth.h:2482
int bt_id_reset(uint8_t id, bt_addr_le_t *addr, uint8_t *irk)
Reset/reclaim an identity address for reuse.
int bt_le_set_chan_map(uint8_t chan_map[5])
Set (LE) channel map.
int bt_le_per_adv_sync_get_info(struct bt_le_per_adv_sync *per_adv_sync, struct bt_le_per_adv_sync_info *info)
Get periodic adv sync information.
int bt_le_ext_adv_get_info(const struct bt_le_ext_adv *adv, struct bt_le_ext_adv_info *info)
Get advertising set info.
void bt_le_scan_cb_unregister(struct bt_le_scan_cb *cb)
Unregister scanner packet callbacks.
int bt_enable(bt_ready_cb_t cb)
Enable Bluetooth.
int bt_le_scan_start(const struct bt_le_scan_param *param, bt_le_scan_cb_t cb)
Start (LE) scanning.
int bt_le_filter_accept_list_clear(void)
Clear filter accept list.
int bt_set_name(const char *name)
Set Bluetooth Device Name.
bt_le_per_adv_sync_opt
Periodic advertising sync options.
Definition bluetooth.h:2077
int bt_le_per_adv_set_info_transfer(const struct bt_le_ext_adv *adv, const struct bt_conn *conn, uint16_t service_data)
Transfer the information about a periodic advertising set.
int bt_unpair(uint8_t id, const bt_addr_le_t *addr)
Clear pairing information.
int bt_le_ext_adv_create(const struct bt_le_adv_param *param, const struct bt_le_ext_adv_cb *cb, struct bt_le_ext_adv **adv)
Create advertising set.
int bt_le_adv_start(const struct bt_le_adv_param *param, const struct bt_data *ad, size_t ad_len, const struct bt_data *sd, size_t sd_len)
Start advertising.
int bt_le_ext_adv_set_data(struct bt_le_ext_adv *adv, const struct bt_data *ad, size_t ad_len, const struct bt_data *sd, size_t sd_len)
Set an advertising set's advertising or scan response data.
const char * bt_get_name(void)
Get Bluetooth Device Name.
int bt_id_create(bt_addr_le_t *addr, uint8_t *irk)
Create a new identity address.
bt_le_per_adv_opt
Periodic Advertising options.
Definition bluetooth.h:1074
uint8_t bt_le_ext_adv_get_index(struct bt_le_ext_adv *adv)
Get array index of an advertising set.
int bt_set_appearance(uint16_t new_appearance)
Set local Bluetooth appearance.
int bt_le_ext_adv_start(struct bt_le_ext_adv *adv, const struct bt_le_ext_adv_start_param *param)
Start advertising with the given advertising set.
int bt_id_delete(uint8_t id)
Delete an identity address.
int bt_le_per_adv_sync_transfer(const struct bt_le_per_adv_sync *per_adv_sync, const struct bt_conn *conn, uint16_t service_data)
Transfer the periodic advertising sync information to a peer device.
bt_le_scan_type
Definition bluetooth.h:2503
bt_le_adv_opt
Advertising options.
Definition bluetooth.h:688
int bt_le_per_adv_set_data(const struct bt_le_ext_adv *adv, const struct bt_data *ad, size_t ad_len)
Set or update the periodic advertising data.
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_SYNC_NO_AOA
No Angle of Arrival (AoA)
Definition bluetooth.h:2310
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_REPORTING_INITIALLY_DISABLED
Sync to received PAST packets but don't generate sync reports.
Definition bluetooth.h:2337
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_SYNC_NO_AOD_2US
No Angle of Departure (AoD) 2.
Definition bluetooth.h:2326
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_SYNC_NO_AOD_1US
No Angle of Departure (AoD) 1 us.
Definition bluetooth.h:2318
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_FILTER_DUPLICATES
Sync to received PAST packets and generate sync reports with duplicate filtering.
Definition bluetooth.h:2345
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_SYNC_ONLY_CTE
Only sync to packets with constant tone extension.
Definition bluetooth.h:2329
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_NONE
Convenience value when no options are specified.
Definition bluetooth.h:2303
@ BT_LE_SCAN_OPT_FILTER_DUPLICATE
Filter duplicates.
Definition bluetooth.h:2487
@ BT_LE_SCAN_OPT_CODED
Enable scan on coded PHY (Long Range).
Definition bluetooth.h:2493
@ BT_LE_SCAN_OPT_NO_1M
Disable scan on 1M phy.
Definition bluetooth.h:2500
@ BT_LE_SCAN_OPT_NONE
Convenience value when no options are specified.
Definition bluetooth.h:2484
@ BT_LE_SCAN_OPT_FILTER_ACCEPT_LIST
Filter using filter accept list.
Definition bluetooth.h:2490
@ BT_LE_PER_ADV_SYNC_OPT_DONT_SYNC_AOD_2US
Sync with Angle of Departure (AoD) 2 us constant tone extension.
Definition bluetooth.h:2106
@ BT_LE_PER_ADV_SYNC_OPT_SYNC_ONLY_CONST_TONE_EXT
Do not sync to packets without a constant tone extension.
Definition bluetooth.h:2109
@ BT_LE_PER_ADV_SYNC_OPT_DONT_SYNC_AOD_1US
Sync with Angle of Departure (AoD) 1 us constant tone extension.
Definition bluetooth.h:2103
@ BT_LE_PER_ADV_SYNC_OPT_FILTER_DUPLICATE
Filter duplicate Periodic Advertising reports.
Definition bluetooth.h:2097
@ BT_LE_PER_ADV_SYNC_OPT_DONT_SYNC_AOA
Sync with Angle of Arrival (AoA) constant tone extension.
Definition bluetooth.h:2100
@ BT_LE_PER_ADV_SYNC_OPT_REPORTING_INITIALLY_DISABLED
Disables periodic advertising reports.
Definition bluetooth.h:2094
@ BT_LE_PER_ADV_SYNC_OPT_USE_PER_ADV_LIST
Use the periodic advertising list to sync with advertiser.
Definition bluetooth.h:2087
@ BT_LE_PER_ADV_SYNC_OPT_NONE
Convenience value when no options are specified.
Definition bluetooth.h:2079
@ BT_LE_PER_ADV_OPT_INCLUDE_ADI
Advertise with included AdvDataInfo (ADI).
Definition bluetooth.h:1092
@ BT_LE_PER_ADV_OPT_USE_TX_POWER
Advertise with transmit power.
Definition bluetooth.h:1084
@ BT_LE_PER_ADV_OPT_NONE
Convenience value when no options are specified.
Definition bluetooth.h:1076
@ BT_LE_SCAN_TYPE_PASSIVE
Scan without requesting additional information from advertisers.
Definition bluetooth.h:2505
@ BT_LE_SCAN_TYPE_ACTIVE
Scan and request additional information from advertisers.
Definition bluetooth.h:2514
@ BT_LE_ADV_OPT_FORCE_NAME_IN_AD
Put GAP device name into advert data.
Definition bluetooth.h:943
@ BT_LE_ADV_OPT_NOTIFY_SCAN_REQ
Notify the application when a scan response data has been sent to an active scanner.
Definition bluetooth.h:843
@ BT_LE_ADV_OPT_ANONYMOUS
Advertise without a device address (identity address or RPA).
Definition bluetooth.h:913
@ BT_LE_ADV_OPT_USE_NRPA
Advertise using a Non-Resolvable Private Address.
Definition bluetooth.h:957
@ BT_LE_ADV_OPT_CONNECTABLE
Advertise as connectable.
Definition bluetooth.h:712
@ BT_LE_ADV_OPT_USE_NAME
Advertise using GAP device name.
Definition bluetooth.h:808
@ BT_LE_ADV_OPT_USE_IDENTITY
Advertise using identity address.
Definition bluetooth.h:782
@ BT_LE_ADV_OPT_ONE_TIME
Advertise one time.
Definition bluetooth.h:742
@ BT_LE_ADV_OPT_FILTER_SCAN_REQ
Use filter accept list to filter devices that can request scan response data.
Definition bluetooth.h:835
@ BT_LE_ADV_OPT_DISABLE_CHAN_39
Disable advertising on channel index 39.
Definition bluetooth.h:930
@ BT_LE_ADV_OPT_NONE
Convenience value when no options are specified.
Definition bluetooth.h:690
@ BT_LE_ADV_OPT_REQUIRE_S2_CODING
Configures the advertiser to use the S=2 coding scheme for LE Coded PHY.
Definition bluetooth.h:974
@ BT_LE_ADV_OPT_CONN
Connectable advertising.
Definition bluetooth.h:770
@ BT_LE_ADV_OPT_REQUIRE_S8_CODING
Configures the advertiser to use the S=8 coding scheme for LE Coded PHY.
Definition bluetooth.h:991
@ BT_LE_ADV_OPT_DISABLE_CHAN_37
Disable advertising on channel index 37.
Definition bluetooth.h:924
@ BT_LE_ADV_OPT_DISABLE_CHAN_38
Disable advertising on channel index 38.
Definition bluetooth.h:927
@ BT_LE_ADV_OPT_DIR_ADDR_RPA
Directed advertising to privacy-enabled peer.
Definition bluetooth.h:830
@ BT_LE_ADV_OPT_CODED
Advertise on the LE Coded PHY (Long Range).
Definition bluetooth.h:905
@ BT_LE_ADV_OPT_FILTER_CONN
Use filter accept list to filter devices that can connect.
Definition bluetooth.h:838
@ BT_LE_ADV_OPT_EXT_ADV
Advertise with extended advertising.
Definition bluetooth.h:875
@ BT_LE_ADV_OPT_SCANNABLE
Support scan response data.
Definition bluetooth.h:853
@ BT_LE_ADV_OPT_NO_2M
Disable use of LE 2M PHY on the secondary advertising channel.
Definition bluetooth.h:892
@ BT_LE_ADV_OPT_USE_TX_POWER
Advertise with transmit power.
Definition bluetooth.h:921
@ BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY
Low duty cycle directed advertising.
Definition bluetooth.h:816
struct _snode sys_snode_t
Single-linked list node structure.
Definition slist.h:39
#define BIT(n)
Unsigned integer with bit position n set (signed in assembly language).
Definition util_macro.h:44
Buffer management.
#define bool
Definition stdbool.h:13
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
__INT8_TYPE__ int8_t
Definition stdint.h:72
Bluetooth LE Device Address.
Definition addr.h:49
Information about a bond with a remote device.
Definition bluetooth.h:2989
bt_addr_le_t addr
Address of the remote device.
Definition bluetooth.h:2991
Bluetooth data.
Definition bluetooth.h:537
uint8_t type
Type of scan response data or advertisement data.
Definition bluetooth.h:539
uint8_t data_len
Length of scan response data or advertisement data.
Definition bluetooth.h:541
const uint8_t * data
Pointer to Scan response or advertisement data.
Definition bluetooth.h:543
Definition direction.h:118
Broadcast Isochronous Group (BIG) information.
Definition iso.h:648
LE Advertising Parameters.
Definition bluetooth.h:995
uint32_t options
Bit-field of advertising options, see the bt_le_adv_opt field.
Definition bluetooth.h:1028
const bt_addr_le_t * peer
Directed advertising to peer.
Definition bluetooth.h:1069
uint8_t sid
Advertising Set Identifier, valid range 0x00 - 0x0f.
Definition bluetooth.h:1014
uint8_t secondary_max_skip
Secondary channel maximum skip count.
Definition bluetooth.h:1025
uint32_t interval_min
Minimum Advertising Interval (N * 0.625 milliseconds)
Definition bluetooth.h:1040
uint8_t id
Local identity handle.
Definition bluetooth.h:1006
uint32_t interval_max
Maximum Advertising Interval (N * 0.625 milliseconds)
Definition bluetooth.h:1052
Callback struct to notify about advertiser activity.
Definition bluetooth.h:202
void(* scanned)(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_scanned_info *info)
The advertising set has sent scan response data.
Definition bluetooth.h:238
void(* connected)(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_connected_info *info)
The advertising set has accepted a new connection.
Definition bluetooth.h:225
void(* sent)(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_sent_info *info)
The advertising set was disabled after reaching limit.
Definition bluetooth.h:213
Info of the advertising connected event.
Definition bluetooth.h:115
struct bt_conn * conn
Connection object of the new connection.
Definition bluetooth.h:117
Advertising set info structure.
Definition bluetooth.h:1715
uint8_t id
Local identity handle.
Definition bluetooth.h:1717
const bt_addr_le_t * addr
Current local advertising address used.
Definition bluetooth.h:1723
int8_t tx_power
Currently selected Transmit Power (dBM).
Definition bluetooth.h:1720
Info of the advertising scanned event.
Definition bluetooth.h:125
bt_addr_le_t * addr
Active scanner LE address and type.
Definition bluetooth.h:127
Info of the advertising sent event.
Definition bluetooth.h:100
uint8_t num_sent
If the advertising set was started with a non-zero bt_le_ext_adv_start_param::num_events,...
Definition bluetooth.h:107
Parameters for starting an extended advertising session.
Definition bluetooth.h:1558
uint16_t timeout
Maximum advertising set duration (N * 10 ms)
Definition bluetooth.h:1583
uint8_t num_events
Maximum number of extended advertising events to be sent.
Definition bluetooth.h:1603
Local Bluetooth LE controller features and capabilities.
Definition bluetooth.h:615
uint8_t acl_pkts
Total number of ACL data packets.
Definition bluetooth.h:643
uint16_t acl_mtu
ACL data packet length.
Definition bluetooth.h:641
uint8_t features[8]
Local LE controller supported features.
Definition bluetooth.h:623
uint8_t iso_pkts
Total number of ISO data packets.
Definition bluetooth.h:655
uint16_t max_adv_data_len
Maximum advertising data length.
Definition bluetooth.h:671
uint64_t states
Local LE controller supported states.
Definition bluetooth.h:631
uint8_t rl_size
Maximum size of the controller resolving list.
Definition bluetooth.h:662
uint16_t iso_mtu
ISO data packet length.
Definition bluetooth.h:653
LE Secure Connections pairing Out of Band data.
Definition bluetooth.h:2901
uint8_t c[16]
Confirm Value.
Definition bluetooth.h:2906
uint8_t r[16]
Random Number.
Definition bluetooth.h:2903
LE Out of Band information.
Definition bluetooth.h:2910
bt_addr_le_t addr
LE address.
Definition bluetooth.h:2914
struct bt_le_oob_sc_data le_sc_data
LE Secure Connections pairing Out of Band data.
Definition bluetooth.h:2917
Info of the PAwR subevents.
Definition bluetooth.h:139
uint8_t count
The number of subevents data can be set for.
Definition bluetooth.h:144
uint8_t start
The first subevent data can be set for.
Definition bluetooth.h:141
Parameters for configuring periodic advertising.
Definition bluetooth.h:1108
uint16_t interval_min
Minimum Periodic Advertising Interval (N * 1.25 ms)
Definition bluetooth.h:1115
uint16_t interval_max
Maximum Periodic Advertising Interval (N * 1.25 ms)
Definition bluetooth.h:1123
uint32_t options
Bit-field of periodic advertising options, see the bt_le_adv_opt field.
Definition bluetooth.h:1126
Info about the PAwR responses received.
Definition bluetooth.h:157
uint8_t subevent
The subevent the response was received in.
Definition bluetooth.h:159
int8_t rssi
The RSSI of the response in dBm.
Definition bluetooth.h:173
uint8_t cte_type
The Constant Tone Extension (CTE) of the advertisement (bt_df_cte_type)
Definition bluetooth.h:176
int8_t tx_power
The TX power of the response in dBm.
Definition bluetooth.h:170
uint8_t response_slot
The slot the response was received in.
Definition bluetooth.h:179
uint8_t tx_status
Status of the subevent indication.
Definition bluetooth.h:167
Parameters for sending a periodic advertising response.
Definition bluetooth.h:3072
uint8_t response_subevent
The subevent the response shall be sent in.
Definition bluetooth.h:3093
uint16_t request_event
The periodic event counter of the request the response is sent to.
Definition bluetooth.h:3082
uint8_t request_subevent
The subevent counter of the request the response is sent to.
Definition bluetooth.h:3090
uint8_t response_slot
The response slot the response shall be sent in.
Definition bluetooth.h:3096
Parameters for setting data for a specific periodic advertising with response subevent.
Definition bluetooth.h:1794
uint8_t response_slot_start
The first response slot to listen to.
Definition bluetooth.h:1799
const struct net_buf_simple * data
The data to send.
Definition bluetooth.h:1805
uint8_t subevent
The subevent to set data for.
Definition bluetooth.h:1796
uint8_t response_slot_count
The number of response slots to listen to.
Definition bluetooth.h:1802
Callback struct for periodic advertising sync events.
Definition bluetooth.h:1995
sys_snode_t node
Definition bluetooth.h:2073
void(* recv)(struct bt_le_per_adv_sync *sync, const struct bt_le_per_adv_sync_recv_info *info, struct net_buf_simple *buf)
Periodic advertising data received.
Definition bluetooth.h:2034
void(* state_changed)(struct bt_le_per_adv_sync *sync, const struct bt_le_per_adv_sync_state_info *info)
The periodic advertising sync state has changed.
Definition bluetooth.h:2048
void(* synced)(struct bt_le_per_adv_sync *sync, struct bt_le_per_adv_sync_synced_info *info)
The periodic advertising has been successfully synced.
Definition bluetooth.h:2006
void(* biginfo)(struct bt_le_per_adv_sync *sync, const struct bt_iso_biginfo *biginfo)
BIGInfo advertising report received.
Definition bluetooth.h:2061
void(* term)(struct bt_le_per_adv_sync *sync, const struct bt_le_per_adv_sync_term_info *info)
The periodic advertising sync has been terminated.
Definition bluetooth.h:2018
void(* cte_report_cb)(struct bt_le_per_adv_sync *sync, struct bt_df_per_adv_sync_iq_samples_report const *info)
Callback for IQ samples report collected when sampling CTE received with periodic advertising PDU.
Definition bluetooth.h:2070
Advertising set info structure.
Definition bluetooth.h:2189
uint16_t interval
Periodic advertising interval (N * 1.25 ms)
Definition bluetooth.h:2197
uint8_t phy
Advertiser PHY.
Definition bluetooth.h:2200
bt_addr_le_t addr
Periodic Advertiser Address.
Definition bluetooth.h:2191
uint8_t sid
Advertiser SID.
Definition bluetooth.h:2194
Parameters for creating a periodic advertising sync object.
Definition bluetooth.h:2123
uint16_t timeout
Synchronization timeout (N * 10 ms)
Definition bluetooth.h:2158
uint32_t options
Bit-field of periodic advertising sync options.
Definition bluetooth.h:2141
uint8_t sid
Advertiser SID.
Definition bluetooth.h:2138
bt_addr_le_t addr
Periodic Advertiser Address.
Definition bluetooth.h:2130
uint16_t skip
Maximum event skip.
Definition bluetooth.h:2150
Information about a received periodic advertising report.
Definition bluetooth.h:1948
uint8_t cte_type
The Constant Tone Extension (CTE) of the advertisement (bt_df_cte_type)
Definition bluetooth.h:1962
uint8_t sid
Advertiser SID.
Definition bluetooth.h:1953
const bt_addr_le_t * addr
Advertiser LE address and type.
Definition bluetooth.h:1950
int8_t tx_power
The TX power of the advertisement.
Definition bluetooth.h:1956
int8_t rssi
The RSSI of the advertisement excluding any CTE.
Definition bluetooth.h:1959
Information about the state of periodic advertising sync.
Definition bluetooth.h:1979
bool recv_enabled
True if receiving periodic advertisements, false otherwise.
Definition bluetooth.h:1981
Parameters for synchronizing with specific periodic advertising subevents.
Definition bluetooth.h:3032
uint8_t * subevents
The subevent(s) to synchronize with.
Definition bluetooth.h:3048
uint16_t properties
Periodic Advertising Properties.
Definition bluetooth.h:3038
uint8_t num_subevents
Number of subevents to sync to.
Definition bluetooth.h:3041
Information about the successful synchronization with periodic advertising.
Definition bluetooth.h:1870
bool recv_enabled
True if receiving periodic advertisements, false otherwise.
Definition bluetooth.h:1884
uint16_t interval
Periodic advertising interval (N * 1.25 ms)
Definition bluetooth.h:1878
uint8_t sid
Advertiser SID.
Definition bluetooth.h:1875
const bt_addr_le_t * addr
Advertiser LE address and type.
Definition bluetooth.h:1872
uint8_t phy
Advertiser PHY.
Definition bluetooth.h:1881
struct bt_conn * conn
Peer that transferred the periodic advertising sync.
Definition bluetooth.h:1899
uint16_t service_data
Service Data provided by the peer when sync is transferred.
Definition bluetooth.h:1891
Information about the termination of a periodic advertising sync.
Definition bluetooth.h:1926
const bt_addr_le_t * addr
Advertiser LE address and type.
Definition bluetooth.h:1928
uint8_t reason
Cause of periodic advertising termination.
Definition bluetooth.h:1934
uint8_t sid
Advertiser SID.
Definition bluetooth.h:1931
Parameters for periodic advertising sync transfer.
Definition bluetooth.h:2358
uint32_t options
Periodic Advertising Sync Transfer options.
Definition bluetooth.h:2376
uint16_t timeout
Synchronization timeout (N * 10 ms)
Definition bluetooth.h:2373
uint16_t skip
Maximum event skip.
Definition bluetooth.h:2365
Listener context for (LE) scanning.
Definition bluetooth.h:2622
void(* timeout)(void)
The scanner has stopped scanning after scan timeout.
Definition bluetooth.h:2634
sys_snode_t node
Definition bluetooth.h:2636
void(* recv)(const struct bt_le_scan_recv_info *info, struct net_buf_simple *buf)
Advertisement packet and scan response received callback.
Definition bluetooth.h:2630
LE scan parameters.
Definition bluetooth.h:2518
uint8_t type
Scan type.
Definition bluetooth.h:2520
uint16_t interval
Scan interval (N * 0.625 ms).
Definition bluetooth.h:2533
uint16_t window
Scan window (N * 0.625 ms)
Definition bluetooth.h:2543
uint16_t timeout
Scan timeout (N * 10 ms)
Definition bluetooth.h:2551
uint16_t interval_coded
Scan interval LE Coded PHY (N * 0.625 MS)
Definition bluetooth.h:2558
uint16_t window_coded
Scan window LE Coded PHY (N * 0.625 MS)
Definition bluetooth.h:2565
uint8_t options
Bit-field of scanning options.
Definition bluetooth.h:2523
LE advertisement and scan response packet information.
Definition bluetooth.h:2569
uint16_t interval
Periodic advertising interval (N * 1.25 ms).
Definition bluetooth.h:2612
int8_t tx_power
Transmit power of the advertiser.
Definition bluetooth.h:2585
uint8_t sid
Advertising Set Identifier.
Definition bluetooth.h:2579
uint8_t primary_phy
Primary advertising channel PHY.
Definition bluetooth.h:2615
int8_t rssi
Strength of advertiser signal.
Definition bluetooth.h:2582
const bt_addr_le_t * addr
Advertiser LE address and type.
Definition bluetooth.h:2576
uint8_t secondary_phy
Secondary advertising channel PHY.
Definition bluetooth.h:2618
uint8_t adv_type
Advertising packet type.
Definition bluetooth.h:2595
uint16_t adv_props
Advertising packet properties bitfield.
Definition bluetooth.h:2605
Simple network buffer representation.
Definition net_buf.h:89
uint8_t * data
Pointer to the start of data in the buffer.
Definition net_buf.h:91
Misc utilities.
Macros to abstract toolchain specific capabilities.
Macro utilities.