Zephyr Project API 4.5.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
bluetooth.h
Go to the documentation of this file.
1
5
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
29
30#include <stdbool.h>
31#include <stdint.h>
32#include <string.h>
33
40#include <zephyr/net_buf.h>
41#include <zephyr/sys/slist.h>
42#include <zephyr/sys/util.h>
44#include <zephyr/toolchain.h>
45
46#ifdef __cplusplus
47extern "C" {
48#endif
49
67
73#define BT_ID_DEFAULT 0
74
76#define BT_IRK_SIZE 16U
77
84 #if defined(CONFIG_BT_LE_EXTENDED_FEAT_SET)
85 #define BT_LE_LOCAL_SUPPORTED_FEATURES_SIZE \
86 (BT_HCI_LE_BYTES_PAGE_0_FEATURE_PAGE + \
87 (CONFIG_BT_LE_MAX_LOCAL_SUPPORTED_FEATURE_PAGE * BT_HCI_LE_BYTES_PER_FEATURE_PAGE))
88 #else
89 #define BT_LE_LOCAL_SUPPORTED_FEATURES_SIZE BT_HCI_LE_BYTES_PAGE_0_FEATURE_PAGE
90 #endif
95struct bt_le_ext_adv;
96
101struct bt_le_per_adv_sync;
102
103/* Don't require everyone to include conn.h */
104struct bt_conn;
105
106/* Don't require everyone to include iso.h */
107struct bt_iso_biginfo;
108
109/* Don't require everyone to include direction.h */
111
126
136
146
163
198
238 void (*sent)(struct bt_le_ext_adv *adv,
239 struct bt_le_ext_adv_sent_info *info);
240
250 void (*connected)(struct bt_le_ext_adv *adv,
251 struct bt_le_ext_adv_connected_info *info);
252
263 void (*scanned)(struct bt_le_ext_adv *adv,
264 struct bt_le_ext_adv_scanned_info *info);
265
266#if defined(CONFIG_BT_PRIVACY) || defined(__DOXYGEN__)
284#endif /* defined(CONFIG_BT_PRIVACY) */
285
286#if defined(CONFIG_BT_PER_ADV_RSP) || defined(__DOXYGEN__)
298 void (*pawr_data_request)(struct bt_le_ext_adv *adv,
299 const struct bt_le_per_adv_data_request *request);
318 void (*pawr_response)(struct bt_le_ext_adv *adv, struct bt_le_per_adv_response_info *info,
319 struct net_buf_simple *buf);
320
321#endif /* defined(CONFIG_BT_PER_ADV_RSP) */
322};
323
330typedef void (*bt_ready_cb_t)(int err);
331
360
393int bt_disable(void);
394
400bool bt_is_ready(void);
401
419int bt_set_name(const char *name);
420
428const char *bt_get_name(void);
429
441
455int bt_set_appearance(uint16_t new_appearance);
456
476void bt_id_get(bt_addr_le_t *addrs, size_t *count);
477
521
549
567
606
676
689
918
1011
1024static inline void bt_le_adv_param_set_tx_power(struct bt_le_adv_param *param, int8_t tx_power)
1025{
1027 param->tx_power = tx_power;
1028}
1029
1051
1073
1081
1084
1085#if defined(CONFIG_BT_PER_ADV_RSP) || defined(__DOXYGEN__)
1094
1103
1111
1120
1129#endif /* CONFIG_BT_PER_ADV_RSP */
1130};
1131
1141#define BT_LE_ADV_PARAM_INIT(_options, _int_min, _int_max, _peer) \
1142{ \
1143 .id = BT_ID_DEFAULT, \
1144 .sid = 0, \
1145 .secondary_max_skip = 0, \
1146 .options = (_options), \
1147 .interval_min = (_int_min), \
1148 .interval_max = (_int_max), \
1149 .peer = (_peer), \
1150}
1151
1161#define BT_LE_ADV_PARAM(_options, _int_min, _int_max, _peer) \
1162 ((const struct bt_le_adv_param[]) { \
1163 BT_LE_ADV_PARAM_INIT(_options, _int_min, _int_max, _peer) \
1164 })
1165
1166#define BT_LE_ADV_CONN_DIR(_peer) BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN, 0, 0, _peer)
1167
1195
1196#define BT_LE_ADV_CONN_FAST_1 \
1197 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN, BT_GAP_ADV_FAST_INT_MIN_1, BT_GAP_ADV_FAST_INT_MAX_1, \
1198 NULL)
1199
1216#define BT_LE_ADV_CONN_FAST_2 \
1217 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN, BT_GAP_ADV_FAST_INT_MIN_2, BT_GAP_ADV_FAST_INT_MAX_2, \
1218 NULL)
1219
1220#define BT_LE_ADV_CONN_DIR_LOW_DUTY(_peer) \
1221 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN | BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY, \
1222 BT_GAP_ADV_FAST_INT_MIN_2, BT_GAP_ADV_FAST_INT_MAX_2, _peer)
1223
1225#define BT_LE_ADV_NCONN BT_LE_ADV_PARAM(0, BT_GAP_ADV_FAST_INT_MIN_2, \
1226 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1227
1229#define BT_LE_ADV_NCONN_IDENTITY BT_LE_ADV_PARAM(BT_LE_ADV_OPT_USE_IDENTITY, \
1230 BT_GAP_ADV_FAST_INT_MIN_2, \
1231 BT_GAP_ADV_FAST_INT_MAX_2, \
1232 NULL)
1233
1235#define BT_LE_EXT_ADV_CONN \
1236 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | BT_LE_ADV_OPT_CONN, BT_GAP_ADV_FAST_INT_MIN_2, \
1237 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1238
1240#define BT_LE_EXT_ADV_SCAN BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1241 BT_LE_ADV_OPT_SCANNABLE, \
1242 BT_GAP_ADV_FAST_INT_MIN_2, \
1243 BT_GAP_ADV_FAST_INT_MAX_2, \
1244 NULL)
1245
1247#define BT_LE_EXT_ADV_NCONN BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV, \
1248 BT_GAP_ADV_FAST_INT_MIN_2, \
1249 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1250
1252#define BT_LE_EXT_ADV_NCONN_IDENTITY \
1253 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1254 BT_LE_ADV_OPT_USE_IDENTITY, \
1255 BT_GAP_ADV_FAST_INT_MIN_2, \
1256 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1257
1259#define BT_LE_EXT_ADV_CODED_NCONN BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1260 BT_LE_ADV_OPT_CODED, \
1261 BT_GAP_ADV_FAST_INT_MIN_2, \
1262 BT_GAP_ADV_FAST_INT_MAX_2, \
1263 NULL)
1264
1268#define BT_LE_EXT_ADV_CODED_NCONN_IDENTITY \
1269 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | BT_LE_ADV_OPT_CODED | \
1270 BT_LE_ADV_OPT_USE_IDENTITY, \
1271 BT_GAP_ADV_FAST_INT_MIN_2, \
1272 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1273
1280#define BT_LE_EXT_ADV_START_PARAM_INIT(_timeout, _n_evts) \
1281{ \
1282 .timeout = (_timeout), \
1283 .num_events = (_n_evts), \
1284}
1285
1292#define BT_LE_EXT_ADV_START_PARAM(_timeout, _n_evts) \
1293 ((const struct bt_le_ext_adv_start_param[]) { \
1294 BT_LE_EXT_ADV_START_PARAM_INIT((_timeout), (_n_evts)) \
1295 })
1296
1297#define BT_LE_EXT_ADV_START_DEFAULT BT_LE_EXT_ADV_START_PARAM(0, 0)
1298
1307#define BT_LE_PER_ADV_PARAM_INIT(_int_min, _int_max, _options) \
1308{ \
1309 .interval_min = (_int_min), \
1310 .interval_max = (_int_max), \
1311 .options = (_options), \
1312}
1313
1322#define BT_LE_PER_ADV_PARAM(_int_min, _int_max, _options) \
1323 ((struct bt_le_per_adv_param[]) { \
1324 BT_LE_PER_ADV_PARAM_INIT(_int_min, _int_max, _options) \
1325 })
1326
1327#define BT_LE_PER_ADV_DEFAULT BT_LE_PER_ADV_PARAM(BT_GAP_PER_ADV_SLOW_INT_MIN, \
1328 BT_GAP_PER_ADV_SLOW_INT_MAX, \
1329 BT_LE_PER_ADV_OPT_NONE)
1330
1362int bt_le_adv_start(const struct bt_le_adv_param *param,
1363 const struct bt_data *ad, size_t ad_len,
1364 const struct bt_data *sd, size_t sd_len);
1365
1378int bt_le_adv_update_data(const struct bt_data *ad, size_t ad_len,
1379 const struct bt_data *sd, size_t sd_len);
1380
1389
1410 const struct bt_le_ext_adv_cb *cb,
1411 struct bt_le_ext_adv **adv);
1412
1473
1490 const struct bt_le_ext_adv_start_param *param);
1491
1503
1540 const struct bt_data *ad, size_t ad_len,
1541 const struct bt_data *sd, size_t sd_len);
1542
1556 const struct bt_le_adv_param *param);
1557
1570
1583
1592
1604
1649
1660 struct bt_le_ext_adv_info *info);
1661
1677typedef void bt_le_scan_cb_t(const bt_addr_le_t *addr, int8_t rssi,
1678 uint8_t adv_type, struct net_buf_simple *buf);
1679
1694 const struct bt_le_per_adv_param *param);
1695
1711 const struct bt_data *ad, size_t ad_len);
1712
1733
1757
1773int bt_le_per_adv_set_subevent_data(const struct bt_le_ext_adv *adv, uint8_t num_subevents,
1774 const struct bt_le_per_adv_subevent_data_params *params);
1775
1794
1807
1823
1826
1829
1832
1835
1842
1849 struct bt_conn *conn;
1850#if defined(CONFIG_BT_PER_ADV_SYNC_RSP) || defined(__DOXYGEN__)
1853
1856
1859
1862
1863#endif /* CONFIG_BT_PER_ADV_SYNC_RSP */
1864};
1865
1886
1901
1904
1911
1918
1921#if defined(CONFIG_BT_PER_ADV_SYNC_RSP) || defined(__DOXYGEN__)
1924
1927#endif /* CONFIG_BT_PER_ADV_SYNC_RSP */
1928};
1929
1941
1960
1972 void (*synced)(struct bt_le_per_adv_sync *sync,
1973 struct bt_le_per_adv_sync_synced_info *info);
1974
1985 void (*term)(struct bt_le_per_adv_sync *sync,
1986 const struct bt_le_per_adv_sync_term_info *info);
1987
2001 void (*recv)(struct bt_le_per_adv_sync *sync,
2002 const struct bt_le_per_adv_sync_recv_info *info,
2003 struct net_buf_simple *buf);
2004
2015 void (*state_changed)(struct bt_le_per_adv_sync *sync,
2016 const struct bt_le_per_adv_sync_state_info *info);
2017
2028 void (*biginfo)(struct bt_le_per_adv_sync *sync, const struct bt_iso_biginfo *biginfo);
2029
2037 void (*cte_report_cb)(struct bt_le_per_adv_sync *sync,
2038 struct bt_df_per_adv_sync_iq_samples_report const *info);
2039
2041};
2042
2078
2128
2141
2155
2170
2180 struct bt_le_per_adv_sync_info *info);
2181
2191 uint8_t sid);
2192
2210 struct bt_le_per_adv_sync **out_sync);
2211
2229
2245
2257
2268
2279
2327
2358
2372 const struct bt_conn *conn,
2373 uint16_t service_data);
2374
2375
2389 const struct bt_conn *conn,
2390 uint16_t service_data);
2391
2406 const struct bt_conn *conn,
2407 const struct bt_le_per_adv_sync_transfer_param *param);
2408
2423
2438
2451
2460
2461
2497
2511
2562
2640
2652
2659 void (*recv)(const struct bt_le_scan_recv_info *info,
2660 struct net_buf_simple *buf);
2661
2663 void (*timeout)(void);
2664
2666};
2667
2676#define BT_LE_SCAN_PARAM_INIT(_type, _options, _interval, _window) \
2677{ \
2678 .type = (_type), \
2679 .options = (_options), \
2680 .interval = (_interval), \
2681 .window = (_window), \
2682 .timeout = 0, \
2683 .interval_coded = 0, \
2684 .window_coded = 0, \
2685}
2686
2695#define BT_LE_SCAN_PARAM(_type, _options, _interval, _window) \
2696 ((struct bt_le_scan_param[]) { \
2697 BT_LE_SCAN_PARAM_INIT(_type, _options, _interval, _window) \
2698 })
2699
2703#define BT_LE_SCAN_ACTIVE BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_ACTIVE, \
2704 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2705 BT_GAP_SCAN_FAST_INTERVAL, \
2706 BT_GAP_SCAN_FAST_WINDOW)
2707
2713#define BT_LE_SCAN_ACTIVE_CONTINUOUS BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_ACTIVE, \
2714 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2715 BT_GAP_SCAN_FAST_INTERVAL_MIN, \
2716 BT_GAP_SCAN_FAST_WINDOW)
2718 "Continuous scanning is requested by setting window and interval equal.");
2719
2726#define BT_LE_SCAN_PASSIVE BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_PASSIVE, \
2727 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2728 BT_GAP_SCAN_FAST_INTERVAL, \
2729 BT_GAP_SCAN_FAST_WINDOW)
2730
2737#define BT_LE_SCAN_PASSIVE_CONTINUOUS BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_PASSIVE, \
2738 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2739 BT_GAP_SCAN_FAST_INTERVAL_MIN, \
2740 BT_GAP_SCAN_FAST_WINDOW)
2742 "Continuous scanning is requested by setting window and interval equal.");
2743
2748#define BT_LE_SCAN_CODED_ACTIVE \
2749 BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_ACTIVE, \
2750 BT_LE_SCAN_OPT_CODED | \
2751 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2752 BT_GAP_SCAN_FAST_INTERVAL, \
2753 BT_GAP_SCAN_FAST_WINDOW)
2754
2762#define BT_LE_SCAN_CODED_PASSIVE \
2763 BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_PASSIVE, \
2764 BT_LE_SCAN_OPT_CODED | \
2765 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2766 BT_GAP_SCAN_FAST_INTERVAL, \
2767 BT_GAP_SCAN_FAST_WINDOW)
2768
2807
2818
2833
2842
2858
2874
2888
2905
2922int bt_le_set_rpa_timeout(uint16_t new_rpa_timeout);
2923
2944 bool (*func)(struct bt_data *data, void *user_data),
2945 void *user_data);
2946
2951
2954};
2955
2966
3001
3030 struct bt_le_oob *oob);
3031
3042int bt_unpair(uint8_t id, const bt_addr_le_t *addr);
3043
3049
3058void bt_foreach_bond(uint8_t id, void (*func)(const struct bt_bond_info *info,
3059 void *user_data),
3060 void *user_data);
3061
3076
3098
3115 const uint8_t *vs_config);
3116
3144
3156 struct bt_le_per_adv_sync_subevent_params *params);
3157
3192
3206 const struct bt_le_per_adv_response_params *params,
3207 const struct net_buf_simple *data);
3208
3222
3226
3227#ifdef __cplusplus
3228}
3229#endif
3233
3234#endif /* ZEPHYR_INCLUDE_BLUETOOTH_BLUETOOTH_H_ */
Bluetooth device address definitions and utilities.
Bluetooth subsystem crypto APIs.
Bluetooth subsystem classic core APIs.
Bluetooth data types and helpers.
Bluetooth Generic Access Profile defines and Assigned Numbers.
#define BT_GAP_SCAN_FAST_WINDOW
Recommended scan window for fast scanning.
Definition gap.h:48
#define BT_GAP_SCAN_FAST_INTERVAL_MIN
Recommended minimum scan interval for fast scanning.
Definition gap.h:44
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:1677
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.
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.
static void bt_le_adv_param_set_tx_power(struct bt_le_adv_param *param, int8_t tx_power)
Set the TX power in an advertising parameter struct.
Definition bluetooth.h:1024
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:330
bt_le_ext_adv_state
Advertising states.
Definition bluetooth.h:1585
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_per_adv_update_did(const struct bt_le_ext_adv *adv)
Update the Advertising Data Identifier (DID) for periodic advertising without changing the data.
enum bt_le_addr_res_support bt_le_bond_addr_res_support(uint8_t id, const bt_addr_le_t *peer)
Get a bonded peer's support for address resolution.
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.
bt_le_per_adv_state
Periodic Advertising states.
Definition bluetooth.h:1594
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_id_reset_irk(uint8_t id, uint8_t *irk)
Reset the local Identity Resolving Key (IRK) for an identity.
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:2281
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 features.
Definition bluetooth.h:89
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.
bt_le_addr_res_support
A bonded peer's support for address resolution.
Definition bluetooth.h:3063
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.
int bt_le_per_adv_sync_cb_unregister(struct bt_le_per_adv_sync_cb *cb)
Unregister periodic advertising sync callbacks.
bt_le_scan_opt
Definition bluetooth.h:2462
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:2044
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:1031
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.
uint8_t bt_le_ext_adv_get_index(const struct bt_le_ext_adv *adv)
Get array index of an advertising set.
bt_le_scan_type
Definition bluetooth.h:2498
bt_le_adv_opt
Advertising options.
Definition bluetooth.h:691
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_EXT_ADV_STATE_DISABLED
The advertising set has been created but not enabled.
Definition bluetooth.h:1587
@ BT_LE_EXT_ADV_STATE_ENABLED
The advertising set is enabled.
Definition bluetooth.h:1590
@ BT_LE_PER_ADV_STATE_ENABLED
Periodic advertising is enabled.
Definition bluetooth.h:1602
@ BT_LE_PER_ADV_STATE_DISABLED
The advertising set has been configured for periodic advertising, but is not enabled.
Definition bluetooth.h:1599
@ BT_LE_PER_ADV_STATE_NONE
Not configured for periodic advertising.
Definition bluetooth.h:1596
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_SYNC_NO_AOA
No Angle of Arrival (AoA).
Definition bluetooth.h:2290
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_REPORTING_INITIALLY_DISABLED
Sync to received PAST packets but don't generate sync reports.
Definition bluetooth.h:2317
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_SYNC_NO_AOD_2US
No Angle of Departure (AoD) 2.
Definition bluetooth.h:2306
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_SYNC_NO_AOD_1US
No Angle of Departure (AoD) 1 us.
Definition bluetooth.h:2298
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_FILTER_DUPLICATES
Sync to received PAST packets and generate sync reports with duplicate filtering.
Definition bluetooth.h:2325
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_SYNC_ONLY_CTE
Only sync to packets with constant tone extension.
Definition bluetooth.h:2309
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_NONE
Convenience value when no options are specified.
Definition bluetooth.h:2283
@ BT_LE_ADDR_RES_SUPPORT_YES
The peer supports address resolution.
Definition bluetooth.h:3074
@ BT_LE_ADDR_RES_SUPPORT_NO
The peer does not support address resolution.
Definition bluetooth.h:3067
@ BT_LE_ADDR_RES_SUPPORT_UNKNOWN
The peer has not been asked, or the answer could not be read.
Definition bluetooth.h:3065
@ BT_LE_SCAN_OPT_FILTER_DUPLICATE
Filter duplicates.
Definition bluetooth.h:2467
@ BT_LE_SCAN_OPT_CODED
Enable scan on coded PHY (Long Range).
Definition bluetooth.h:2473
@ BT_LE_SCAN_OPT_EXT_FILTER_POLICY
Use the extended scanner filter policy.
Definition bluetooth.h:2495
@ BT_LE_SCAN_OPT_NO_1M
Disable scan on 1M phy.
Definition bluetooth.h:2480
@ BT_LE_SCAN_OPT_NONE
Convenience value when no options are specified.
Definition bluetooth.h:2464
@ BT_LE_SCAN_OPT_FILTER_ACCEPT_LIST
Filter using filter accept list.
Definition bluetooth.h:2470
@ BT_LE_PER_ADV_SYNC_OPT_DONT_SYNC_AOD_2US
Sync with Angle of Departure (AoD) 2 us constant tone extension.
Definition bluetooth.h:2073
@ BT_LE_PER_ADV_SYNC_OPT_SYNC_ONLY_CONST_TONE_EXT
Do not sync to packets without a constant tone extension.
Definition bluetooth.h:2076
@ BT_LE_PER_ADV_SYNC_OPT_DONT_SYNC_AOD_1US
Sync with Angle of Departure (AoD) 1 us constant tone extension.
Definition bluetooth.h:2070
@ BT_LE_PER_ADV_SYNC_OPT_FILTER_DUPLICATE
Filter duplicate Periodic Advertising reports.
Definition bluetooth.h:2064
@ BT_LE_PER_ADV_SYNC_OPT_DONT_SYNC_AOA
Sync with Angle of Arrival (AoA) constant tone extension.
Definition bluetooth.h:2067
@ BT_LE_PER_ADV_SYNC_OPT_REPORTING_INITIALLY_DISABLED
Disables periodic advertising reports.
Definition bluetooth.h:2061
@ BT_LE_PER_ADV_SYNC_OPT_USE_PER_ADV_LIST
Use the periodic advertising list to sync with advertiser.
Definition bluetooth.h:2054
@ BT_LE_PER_ADV_SYNC_OPT_NONE
Convenience value when no options are specified.
Definition bluetooth.h:2046
@ BT_LE_PER_ADV_OPT_INCLUDE_ADI
Advertise with included AdvDataInfo (ADI).
Definition bluetooth.h:1049
@ BT_LE_PER_ADV_OPT_USE_TX_POWER
Advertise with transmit power.
Definition bluetooth.h:1041
@ BT_LE_PER_ADV_OPT_NONE
Convenience value when no options are specified.
Definition bluetooth.h:1033
@ BT_LE_SCAN_TYPE_PASSIVE
Scan without requesting additional information from advertisers.
Definition bluetooth.h:2500
@ BT_LE_SCAN_TYPE_ACTIVE
Scan and request additional information from advertisers.
Definition bluetooth.h:2509
@ 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:766
@ BT_LE_ADV_OPT_ANONYMOUS
Advertise without a device address (identity address or RPA).
Definition bluetooth.h:836
@ BT_LE_ADV_OPT_USE_NRPA
Advertise using a Non-Resolvable Private Address.
Definition bluetooth.h:869
@ BT_LE_ADV_OPT_USE_IDENTITY
Advertise using identity address.
Definition bluetooth.h:727
@ BT_LE_ADV_OPT_FILTER_SCAN_REQ
Use filter accept list to filter devices that can request scan response data.
Definition bluetooth.h:758
@ BT_LE_ADV_OPT_DISABLE_CHAN_39
Disable advertising on channel index 39.
Definition bluetooth.h:853
@ BT_LE_ADV_OPT_NONE
Convenience value when no options are specified.
Definition bluetooth.h:693
@ BT_LE_ADV_OPT_REQUIRE_S2_CODING
Configures the advertiser to use the S=2 coding scheme for LE Coded PHY.
Definition bluetooth.h:886
@ BT_LE_ADV_OPT_CONN
Connectable advertising.
Definition bluetooth.h:715
@ BT_LE_ADV_OPT_REQUIRE_S8_CODING
Configures the advertiser to use the S=8 coding scheme for LE Coded PHY.
Definition bluetooth.h:903
@ BT_LE_ADV_OPT_DISABLE_CHAN_37
Disable advertising on channel index 37.
Definition bluetooth.h:847
@ BT_LE_ADV_OPT_TX_POWER
Request a specific TX power level for the advertising set.
Definition bluetooth.h:916
@ BT_LE_ADV_OPT_DISABLE_CHAN_38
Disable advertising on channel index 38.
Definition bluetooth.h:850
@ BT_LE_ADV_OPT_DIR_ADDR_RPA
Directed advertising to privacy-enabled peer.
Definition bluetooth.h:753
@ BT_LE_ADV_OPT_CODED
Advertise on the LE Coded PHY (Long Range).
Definition bluetooth.h:828
@ BT_LE_ADV_OPT_FILTER_CONN
Use filter accept list to filter devices that can connect.
Definition bluetooth.h:761
@ BT_LE_ADV_OPT_EXT_ADV
Advertise with extended advertising.
Definition bluetooth.h:798
@ BT_LE_ADV_OPT_SCANNABLE
Support scan response data.
Definition bluetooth.h:776
@ BT_LE_ADV_OPT_NO_2M
Disable use of LE 2M PHY on the secondary advertising channel.
Definition bluetooth.h:815
@ BT_LE_ADV_OPT_USE_TX_POWER
Advertise with transmit power.
Definition bluetooth.h:844
@ BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY
Low duty cycle directed advertising.
Definition bluetooth.h:735
struct _snode sys_snode_t
Single-linked list node structure.
Definition slist.h:44
#define BIT(n)
Unsigned integer with bit position n set (signed in assembly language).
Definition util_macro.h:44
#define BUILD_ASSERT(EXPR, MSG...)
Definition llvm.h:51
Buffer management.
Header file for the single-linked list API.
#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:51
Information about a bond with a remote device.
Definition bluetooth.h:3045
bt_addr_le_t addr
Address of the remote device.
Definition bluetooth.h:3047
Opaque type representing a connection to a remote device.
Bluetooth data.
Definition data.h:40
Definition direction.h:118
Broadcast Isochronous Group (BIG) information.
Definition iso.h:648
LE Advertising Parameters.
Definition bluetooth.h:920
int8_t tx_power
Requested TX power in dBm.
Definition bluetooth.h:961
uint32_t options
Bit-field of advertising options, see the bt_le_adv_opt field.
Definition bluetooth.h:964
const bt_addr_le_t * peer
Directed advertising to peer.
Definition bluetooth.h:1009
uint8_t sid
Advertising Set Identifier, valid range is BT_GAP_SID_MIN to BT_GAP_SID_MAX.
Definition bluetooth.h:939
uint8_t secondary_max_skip
Secondary channel maximum skip count.
Definition bluetooth.h:950
uint32_t interval_min
Minimum Advertising Interval (N * 0.625 milliseconds).
Definition bluetooth.h:978
uint8_t id
Local identity handle.
Definition bluetooth.h:931
uint32_t interval_max
Maximum Advertising Interval (N * 0.625 milliseconds).
Definition bluetooth.h:992
Callback struct to notify about advertiser activity.
Definition bluetooth.h:227
bool(* rpa_expired)(struct bt_le_ext_adv *adv)
The RPA validity of the advertising set has expired.
Definition bluetooth.h:283
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:263
void(* pawr_response)(struct bt_le_ext_adv *adv, struct bt_le_per_adv_response_info *info, struct net_buf_simple *buf)
The Controller indicates that one or more synced devices have responded to a periodic advertising sub...
Definition bluetooth.h:318
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:250
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:238
void(* pawr_data_request)(struct bt_le_ext_adv *adv, const struct bt_le_per_adv_data_request *request)
The Controller indicates it is ready to transmit one or more PAwR subevents.
Definition bluetooth.h:298
Info of the advertising connected event.
Definition bluetooth.h:132
struct bt_conn * conn
Connection object of the new connection.
Definition bluetooth.h:134
Advertising set info structure.
Definition bluetooth.h:1606
uint8_t id
Local identity handle.
Definition bluetooth.h:1608
enum bt_le_ext_adv_state ext_adv_state
Extended advertising state.
Definition bluetooth.h:1644
const bt_addr_le_t * addr
Current local advertising address used.
Definition bluetooth.h:1641
uint8_t sid
Advertising Set ID.
Definition bluetooth.h:1619
int8_t tx_power
Currently selected Transmit Power in dBm.
Definition bluetooth.h:1611
enum bt_le_per_adv_state per_adv_state
Periodic advertising state.
Definition bluetooth.h:1647
Info of the advertising scanned event.
Definition bluetooth.h:142
bt_addr_le_t * addr
Active scanner LE address and type.
Definition bluetooth.h:144
Info of the advertising sent event.
Definition bluetooth.h:117
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:124
Parameters for starting an extended advertising session.
Definition bluetooth.h:1426
uint16_t timeout
Maximum advertising set duration (N * 10 ms).
Definition bluetooth.h:1451
uint8_t num_events
Maximum number of extended advertising events to be sent.
Definition bluetooth.h:1471
Opaque type representing an advertiser.
Local Bluetooth LE controller features and capabilities.
Definition bluetooth.h:618
uint8_t acl_pkts
Total number of ACL data packets.
Definition bluetooth.h:646
uint16_t acl_mtu
ACL data packet length.
Definition bluetooth.h:644
uint8_t features[BT_HCI_LE_BYTES_PAGE_0_FEATURE_PAGE]
Local LE controller supported features.
Definition bluetooth.h:626
uint8_t iso_pkts
Total number of ISO data packets.
Definition bluetooth.h:658
uint16_t max_adv_data_len
Maximum advertising data length.
Definition bluetooth.h:674
uint64_t states
Local LE controller supported states.
Definition bluetooth.h:634
uint8_t rl_size
Maximum size of the controller resolving list.
Definition bluetooth.h:665
uint16_t iso_mtu
ISO data packet length.
Definition bluetooth.h:656
LE Secure Connections pairing Out of Band data.
Definition bluetooth.h:2948
uint8_t c[16]
Confirm Value.
Definition bluetooth.h:2953
uint8_t r[16]
Random Number.
Definition bluetooth.h:2950
LE Out of Band information.
Definition bluetooth.h:2957
bt_addr_le_t addr
LE address.
Definition bluetooth.h:2961
struct bt_le_oob_sc_data le_sc_data
LE Secure Connections pairing Out of Band data.
Definition bluetooth.h:2964
Info of the PAwR subevents.
Definition bluetooth.h:156
uint8_t count
The number of subevents data can be set for.
Definition bluetooth.h:161
uint8_t start
The first subevent data can be set for.
Definition bluetooth.h:158
Parameters for configuring periodic advertising.
Definition bluetooth.h:1065
uint8_t response_slot_delay
Time between the advertising packet in a subevent and the first response slot (N * 1....
Definition bluetooth.h:1110
uint8_t num_response_slots
Number of subevent response slots.
Definition bluetooth.h:1128
uint8_t subevent_interval
Interval between subevents (N * 1.25 ms).
Definition bluetooth.h:1102
uint16_t interval_min
Minimum Periodic Advertising Interval (N * 1.25 ms).
Definition bluetooth.h:1072
uint16_t interval_max
Maximum Periodic Advertising Interval (N * 1.25 ms).
Definition bluetooth.h:1080
uint8_t response_slot_spacing
Time between response slots (N * 0.125 ms).
Definition bluetooth.h:1119
uint32_t options
Bit-field of periodic advertising options, see the bt_le_per_adv_opt field.
Definition bluetooth.h:1083
uint8_t num_subevents
Number of subevents.
Definition bluetooth.h:1093
Info about the PAwR responses received.
Definition bluetooth.h:174
uint8_t subevent
The subevent the response was received in.
Definition bluetooth.h:176
int8_t rssi
The RSSI of the response in dBm.
Definition bluetooth.h:190
uint8_t cte_type
The Constant Tone Extension (CTE) of the advertisement (bt_df_cte_type).
Definition bluetooth.h:193
int8_t tx_power
The TX power of the response in dBm.
Definition bluetooth.h:187
uint8_t response_slot
The slot the response was received in.
Definition bluetooth.h:196
uint8_t tx_status
Status of the subevent indication.
Definition bluetooth.h:184
Parameters for sending a periodic advertising response.
Definition bluetooth.h:3166
uint8_t response_subevent
The subevent the response shall be sent in.
Definition bluetooth.h:3187
uint16_t request_event
The periodic event counter of the request the response is sent to.
Definition bluetooth.h:3176
uint8_t request_subevent
The subevent counter of the request the response is sent to.
Definition bluetooth.h:3184
uint8_t response_slot
The response slot the response shall be sent in.
Definition bluetooth.h:3190
Parameters for setting data for a specific periodic advertising with response subevent.
Definition bluetooth.h:1744
uint8_t response_slot_start
The first response slot to listen to.
Definition bluetooth.h:1749
const struct net_buf_simple * data
The data to send.
Definition bluetooth.h:1755
uint8_t subevent
The subevent to set data for.
Definition bluetooth.h:1746
uint8_t response_slot_count
The number of response slots to listen to.
Definition bluetooth.h:1752
Callback struct for periodic advertising sync events.
Definition bluetooth.h:1961
sys_snode_t node
Definition bluetooth.h:2040
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:2001
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:2015
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:1972
void(* biginfo)(struct bt_le_per_adv_sync *sync, const struct bt_iso_biginfo *biginfo)
BIGInfo advertising report received.
Definition bluetooth.h:2028
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:1985
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:2037
Periodic advertising set info structure.
Definition bluetooth.h:2157
uint16_t interval
Periodic advertising interval (N * 1.25 ms).
Definition bluetooth.h:2165
uint8_t phy
Advertiser PHY (see bt_gap_le_phy).
Definition bluetooth.h:2168
bt_addr_le_t addr
Periodic Advertiser Address.
Definition bluetooth.h:2159
uint8_t sid
Advertising Set Identifier, valid range BT_GAP_SID_MIN to BT_GAP_SID_MAX.
Definition bluetooth.h:2162
Parameters for creating a periodic advertising sync object.
Definition bluetooth.h:2090
uint16_t timeout
Synchronization timeout (N * 10 ms).
Definition bluetooth.h:2126
uint32_t options
Bit-field of periodic advertising sync options, see the bt_le_adv_opt field.
Definition bluetooth.h:2109
uint8_t sid
Advertising Set Identifier.
Definition bluetooth.h:2106
bt_addr_le_t addr
Periodic Advertiser Address.
Definition bluetooth.h:2097
uint16_t skip
Maximum event skip.
Definition bluetooth.h:2118
Information about a received periodic advertising report.
Definition bluetooth.h:1898
uint8_t cte_type
The Constant Tone Extension (CTE) of the advertisement (bt_df_cte_type).
Definition bluetooth.h:1920
uint8_t subevent
The subevent where the subevent indication was received.
Definition bluetooth.h:1926
uint8_t sid
Advertising Set Identifier, valid range BT_GAP_SID_MIN to BT_GAP_SID_MAX.
Definition bluetooth.h:1903
const bt_addr_le_t * addr
Advertiser LE address and type.
Definition bluetooth.h:1900
int8_t tx_power
The TX power of the advertisement in dBm.
Definition bluetooth.h:1910
uint16_t periodic_event_counter
The value of the event counter where the subevent indication was received.
Definition bluetooth.h:1923
int8_t rssi
The RSSI of the advertisement (excluding any CTE), in dBm.
Definition bluetooth.h:1917
Information about the state of periodic advertising sync.
Definition bluetooth.h:1937
bool recv_enabled
True if receiving periodic advertisements, false otherwise.
Definition bluetooth.h:1939
Parameters for synchronizing with specific periodic advertising subevents.
Definition bluetooth.h:3126
uint8_t * subevents
The subevent(s) to synchronize with.
Definition bluetooth.h:3142
uint16_t properties
Periodic Advertising Properties.
Definition bluetooth.h:3132
uint8_t num_subevents
Number of subevents to sync to.
Definition bluetooth.h:3135
Information about the successful synchronization with periodic advertising.
Definition bluetooth.h:1820
bool recv_enabled
True if receiving periodic advertisements, false otherwise.
Definition bluetooth.h:1834
uint16_t interval
Periodic advertising interval (N * 1.25 ms).
Definition bluetooth.h:1828
uint8_t sid
Advertising Set Identifier, valid range BT_GAP_SID_MIN to BT_GAP_SID_MAX.
Definition bluetooth.h:1825
uint8_t response_slot_delay
Response slot delay (N * 1.25 ms).
Definition bluetooth.h:1858
const bt_addr_le_t * addr
Advertiser LE address and type.
Definition bluetooth.h:1822
uint8_t phy
Advertiser PHY (see bt_gap_le_phy).
Definition bluetooth.h:1831
uint8_t subevent_interval
Subevent interval (N * 1.25 ms).
Definition bluetooth.h:1855
uint8_t num_subevents
Number of subevents.
Definition bluetooth.h:1852
struct bt_conn * conn
Peer that transferred the periodic advertising sync.
Definition bluetooth.h:1849
uint16_t service_data
Service Data provided by the peer when sync is transferred.
Definition bluetooth.h:1841
uint8_t response_slot_spacing
Response slot spacing (N * 1.25 ms).
Definition bluetooth.h:1861
Information about the termination of a periodic advertising sync.
Definition bluetooth.h:1876
const bt_addr_le_t * addr
Advertiser LE address and type.
Definition bluetooth.h:1878
uint8_t reason
Cause of periodic advertising termination (see the BT_HCI_ERR_* values).
Definition bluetooth.h:1884
uint8_t sid
Advertising Set Identifier, valid range BT_GAP_SID_MIN to BT_GAP_SID_MAX.
Definition bluetooth.h:1881
Parameters for periodic advertising sync transfer.
Definition bluetooth.h:2338
uint32_t options
Periodic Advertising Sync Transfer options, see bt_le_per_adv_sync_transfer_opt.
Definition bluetooth.h:2356
uint16_t timeout
Synchronization timeout (N * 10 ms).
Definition bluetooth.h:2353
uint16_t skip
Maximum event skip.
Definition bluetooth.h:2345
Opaque type representing a periodic advertising sync.
Listener context for (LE) scanning.
Definition bluetooth.h:2651
void(* timeout)(void)
The scanner has stopped scanning after scan timeout.
Definition bluetooth.h:2663
sys_snode_t node
Definition bluetooth.h:2665
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:2659
LE scan parameters.
Definition bluetooth.h:2513
uint8_t type
Scan type.
Definition bluetooth.h:2515
uint16_t interval
Scan interval (N * 0.625 ms).
Definition bluetooth.h:2528
uint16_t window
Scan window (N * 0.625 ms).
Definition bluetooth.h:2538
uint16_t timeout
Scan timeout (N * 10 ms).
Definition bluetooth.h:2546
uint16_t interval_coded
Scan interval LE Coded PHY (N * 0.625 MS).
Definition bluetooth.h:2553
uint16_t window_coded
Scan window LE Coded PHY (N * 0.625 MS).
Definition bluetooth.h:2560
uint8_t options
Bit-field of scanning options.
Definition bluetooth.h:2518
LE advertisement and scan response packet information.
Definition bluetooth.h:2564
uint16_t interval
Periodic advertising interval (N * 1.25 ms).
Definition bluetooth.h:2615
int8_t tx_power
Transmit power of the advertiser in dBm.
Definition bluetooth.h:2588
uint8_t sid
Advertising Set Identifier, valid range BT_GAP_SID_MIN to BT_GAP_SID_MAX.
Definition bluetooth.h:2574
uint8_t primary_phy
Primary advertising channel PHY.
Definition bluetooth.h:2618
const bt_addr_le_t * direct_addr
Target address of a directed advertisement.
Definition bluetooth.h:2638
int8_t rssi
Strength of advertiser signal in dBm.
Definition bluetooth.h:2581
const bt_addr_le_t * addr
Advertiser LE address and type.
Definition bluetooth.h:2571
uint8_t secondary_phy
Secondary advertising channel PHY.
Definition bluetooth.h:2621
uint8_t adv_type
Advertising packet type.
Definition bluetooth.h:2598
uint16_t adv_props
Advertising packet properties bitfield.
Definition bluetooth.h:2608
Simple network buffer representation.
Definition net_buf.h:97
uint8_t * data
Pointer to the start of data in the buffer.
Definition net_buf.h:99
Misc utilities.
Macros to abstract toolchain specific capabilities.
Macro utilities.