Zephyr API Documentation  3.6.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
bluetooth.h
Go to the documentation of this file.
1
5/*
6 * Copyright (c) 2017 Nordic Semiconductor ASA
7 * Copyright (c) 2015-2016 Intel Corporation
8 *
9 * SPDX-License-Identifier: Apache-2.0
10 */
11#ifndef ZEPHYR_INCLUDE_BLUETOOTH_BLUETOOTH_H_
12#define ZEPHYR_INCLUDE_BLUETOOTH_BLUETOOTH_H_
13
21#include <stdbool.h>
22#include <string.h>
23
24#include <zephyr/sys/util.h>
25#include <zephyr/net/buf.h>
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
48#define BT_ID_DEFAULT 0
49
51struct bt_le_ext_adv;
52
54struct bt_le_per_adv_sync;
55
56/* Don't require everyone to include conn.h */
57struct bt_conn;
58
59/* Don't require everyone to include iso.h */
60struct bt_iso_biginfo;
61
62/* Don't require everyone to include direction.h */
64
68};
69
72 struct bt_conn *conn;
73};
74
78};
79
83
86};
87
91
99
102
105
108
111};
112
125 void (*sent)(struct bt_le_ext_adv *adv,
126 struct bt_le_ext_adv_sent_info *info);
127
137 void (*connected)(struct bt_le_ext_adv *adv,
138 struct bt_le_ext_adv_connected_info *info);
139
150 void (*scanned)(struct bt_le_ext_adv *adv,
151 struct bt_le_ext_adv_scanned_info *info);
152
153#if defined(CONFIG_BT_PRIVACY)
170 bool (*rpa_expired)(struct bt_le_ext_adv *adv);
171#endif /* defined(CONFIG_BT_PRIVACY) */
172
173#if defined(CONFIG_BT_PER_ADV_RSP)
183 void (*pawr_data_request)(struct bt_le_ext_adv *adv,
184 const struct bt_le_per_adv_data_request *request);
194 void (*pawr_response)(struct bt_le_ext_adv *adv, struct bt_le_per_adv_response_info *info,
195 struct net_buf_simple *buf);
196
197#endif /* defined(CONFIG_BT_PER_ADV_RSP) */
198};
199
206typedef void (*bt_ready_cb_t)(int err);
207
228
247int bt_disable(void);
248
254bool bt_is_ready(void);
255
273int bt_set_name(const char *name);
274
282const char *bt_get_name(void);
283
295
310int bt_set_appearance(uint16_t new_appearance);
311
332void bt_id_get(bt_addr_le_t *addrs, size_t *count);
333
381
415
433
445#define BT_DATA_SERIALIZED_SIZE(data_len) ((data_len) + 2)
446
454struct bt_data {
457 const uint8_t *data;
458};
459
470#define BT_DATA(_type, _data, _data_len) \
471 { \
472 .type = (_type), \
473 .data_len = (_data_len), \
474 .data = (const uint8_t *)(_data), \
475 }
476
486#define BT_DATA_BYTES(_type, _bytes...) \
487 BT_DATA(_type, ((uint8_t []) { _bytes }), \
488 sizeof((uint8_t []) { _bytes }))
489
500size_t bt_data_get_len(const struct bt_data data[], size_t data_count);
501
516size_t bt_data_serialize(const struct bt_data *input, uint8_t *output);
517
519enum {
522
532
548
560
586
594
608
613
616
621
632
654
670
682
689
696
699
702
705
718
732};
733
745
752
762
765
774
783
800};
801
802
804enum {
807
814
821};
822
831
839
842
843#if defined(CONFIG_BT_PER_ADV_RSP)
849 uint8_t num_subevents;
850
856 uint8_t subevent_interval;
857
863 uint8_t response_slot_delay;
864
870 uint8_t response_slot_spacing;
871
877 uint8_t num_response_slots;
878#endif /* CONFIG_BT_PER_ADV_RSP */
879};
880
890#define BT_LE_ADV_PARAM_INIT(_options, _int_min, _int_max, _peer) \
891{ \
892 .id = BT_ID_DEFAULT, \
893 .sid = 0, \
894 .secondary_max_skip = 0, \
895 .options = (_options), \
896 .interval_min = (_int_min), \
897 .interval_max = (_int_max), \
898 .peer = (_peer), \
899}
900
910#define BT_LE_ADV_PARAM(_options, _int_min, _int_max, _peer) \
911 ((struct bt_le_adv_param[]) { \
912 BT_LE_ADV_PARAM_INIT(_options, _int_min, _int_max, _peer) \
913 })
914
915#define BT_LE_ADV_CONN_DIR(_peer) BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE | \
916 BT_LE_ADV_OPT_ONE_TIME, 0, 0,\
917 _peer)
918
919
920#define BT_LE_ADV_CONN BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE, \
921 BT_GAP_ADV_FAST_INT_MIN_2, \
922 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
923
926#define BT_LE_ADV_CONN_ONE_TIME \
927 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE | BT_LE_ADV_OPT_ONE_TIME, \
928 BT_GAP_ADV_FAST_INT_MIN_2, BT_GAP_ADV_FAST_INT_MAX_2, NULL)
929
934#define BT_LE_ADV_CONN_NAME BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE | \
935 BT_LE_ADV_OPT_USE_NAME, \
936 BT_GAP_ADV_FAST_INT_MIN_2, \
937 BT_GAP_ADV_FAST_INT_MAX_2, NULL) \
938 __DEPRECATED_MACRO
939
944#define BT_LE_ADV_CONN_NAME_AD BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE | \
945 BT_LE_ADV_OPT_USE_NAME | \
946 BT_LE_ADV_OPT_FORCE_NAME_IN_AD, \
947 BT_GAP_ADV_FAST_INT_MIN_2, \
948 BT_GAP_ADV_FAST_INT_MAX_2, NULL) \
949 __DEPRECATED_MACRO
950
951#define BT_LE_ADV_CONN_DIR_LOW_DUTY(_peer) \
952 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE | BT_LE_ADV_OPT_ONE_TIME | \
953 BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY, \
954 BT_GAP_ADV_FAST_INT_MIN_2, BT_GAP_ADV_FAST_INT_MAX_2, \
955 _peer)
956
958#define BT_LE_ADV_NCONN BT_LE_ADV_PARAM(0, BT_GAP_ADV_FAST_INT_MIN_2, \
959 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
960
967#define BT_LE_ADV_NCONN_NAME BT_LE_ADV_PARAM(BT_LE_ADV_OPT_USE_NAME, \
968 BT_GAP_ADV_FAST_INT_MIN_2, \
969 BT_GAP_ADV_FAST_INT_MAX_2, NULL) \
970 __DEPRECATED_MACRO
971
973#define BT_LE_ADV_NCONN_IDENTITY BT_LE_ADV_PARAM(BT_LE_ADV_OPT_USE_IDENTITY, \
974 BT_GAP_ADV_FAST_INT_MIN_2, \
975 BT_GAP_ADV_FAST_INT_MAX_2, \
976 NULL)
977
979#define BT_LE_EXT_ADV_CONN BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
980 BT_LE_ADV_OPT_CONNECTABLE, \
981 BT_GAP_ADV_FAST_INT_MIN_2, \
982 BT_GAP_ADV_FAST_INT_MAX_2, \
983 NULL)
984
991#define BT_LE_EXT_ADV_CONN_NAME BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
992 BT_LE_ADV_OPT_CONNECTABLE | \
993 BT_LE_ADV_OPT_USE_NAME, \
994 BT_GAP_ADV_FAST_INT_MIN_2, \
995 BT_GAP_ADV_FAST_INT_MAX_2, \
996 NULL) \
997 __DEPRECATED_MACRO
998
1000#define BT_LE_EXT_ADV_SCAN BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1001 BT_LE_ADV_OPT_SCANNABLE, \
1002 BT_GAP_ADV_FAST_INT_MIN_2, \
1003 BT_GAP_ADV_FAST_INT_MAX_2, \
1004 NULL)
1005
1012#define BT_LE_EXT_ADV_SCAN_NAME BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1013 BT_LE_ADV_OPT_SCANNABLE | \
1014 BT_LE_ADV_OPT_USE_NAME, \
1015 BT_GAP_ADV_FAST_INT_MIN_2, \
1016 BT_GAP_ADV_FAST_INT_MAX_2, \
1017 NULL) \
1018 __DEPRECATED_MACRO
1019
1021#define BT_LE_EXT_ADV_NCONN BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV, \
1022 BT_GAP_ADV_FAST_INT_MIN_2, \
1023 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1024
1031#define BT_LE_EXT_ADV_NCONN_NAME BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1032 BT_LE_ADV_OPT_USE_NAME, \
1033 BT_GAP_ADV_FAST_INT_MIN_2, \
1034 BT_GAP_ADV_FAST_INT_MAX_2, \
1035 NULL) \
1036 __DEPRECATED_MACRO
1037
1039#define BT_LE_EXT_ADV_NCONN_IDENTITY \
1040 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1041 BT_LE_ADV_OPT_USE_IDENTITY, \
1042 BT_GAP_ADV_FAST_INT_MIN_2, \
1043 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1044
1046#define BT_LE_EXT_ADV_CODED_NCONN BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
1047 BT_LE_ADV_OPT_CODED, \
1048 BT_GAP_ADV_FAST_INT_MIN_2, \
1049 BT_GAP_ADV_FAST_INT_MAX_2, \
1050 NULL)
1051
1059#define BT_LE_EXT_ADV_CODED_NCONN_NAME \
1060 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | BT_LE_ADV_OPT_CODED | \
1061 BT_LE_ADV_OPT_USE_NAME, \
1062 BT_GAP_ADV_FAST_INT_MIN_2, \
1063 BT_GAP_ADV_FAST_INT_MAX_2, NULL) \
1064 __DEPRECATED_MACRO
1065
1069#define BT_LE_EXT_ADV_CODED_NCONN_IDENTITY \
1070 BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | BT_LE_ADV_OPT_CODED | \
1071 BT_LE_ADV_OPT_USE_IDENTITY, \
1072 BT_GAP_ADV_FAST_INT_MIN_2, \
1073 BT_GAP_ADV_FAST_INT_MAX_2, NULL)
1074
1081#define BT_LE_EXT_ADV_START_PARAM_INIT(_timeout, _n_evts) \
1082{ \
1083 .timeout = (_timeout), \
1084 .num_events = (_n_evts), \
1085}
1086
1093#define BT_LE_EXT_ADV_START_PARAM(_timeout, _n_evts) \
1094 ((struct bt_le_ext_adv_start_param[]) { \
1095 BT_LE_EXT_ADV_START_PARAM_INIT((_timeout), (_n_evts)) \
1096 })
1097
1098#define BT_LE_EXT_ADV_START_DEFAULT BT_LE_EXT_ADV_START_PARAM(0, 0)
1099
1107#define BT_LE_PER_ADV_PARAM_INIT(_int_min, _int_max, _options) \
1108{ \
1109 .interval_min = (_int_min), \
1110 .interval_max = (_int_max), \
1111 .options = (_options), \
1112}
1113
1121#define BT_LE_PER_ADV_PARAM(_int_min, _int_max, _options) \
1122 ((struct bt_le_per_adv_param[]) { \
1123 BT_LE_PER_ADV_PARAM_INIT(_int_min, _int_max, _options) \
1124 })
1125
1126#define BT_LE_PER_ADV_DEFAULT BT_LE_PER_ADV_PARAM(BT_GAP_PER_ADV_SLOW_INT_MIN, \
1127 BT_GAP_PER_ADV_SLOW_INT_MAX, \
1128 BT_LE_PER_ADV_OPT_NONE)
1129
1160int bt_le_adv_start(const struct bt_le_adv_param *param,
1161 const struct bt_data *ad, size_t ad_len,
1162 const struct bt_data *sd, size_t sd_len);
1163
1176int bt_le_adv_update_data(const struct bt_data *ad, size_t ad_len,
1177 const struct bt_data *sd, size_t sd_len);
1178
1187
1203 const struct bt_le_ext_adv_cb *cb,
1204 struct bt_le_ext_adv **adv);
1205
1228};
1229
1243int bt_le_ext_adv_start(struct bt_le_ext_adv *adv,
1244 const struct bt_le_ext_adv_start_param *param);
1245
1256int bt_le_ext_adv_stop(struct bt_le_ext_adv *adv);
1257
1292int bt_le_ext_adv_set_data(struct bt_le_ext_adv *adv,
1293 const struct bt_data *ad, size_t ad_len,
1294 const struct bt_data *sd, size_t sd_len);
1295
1312int bt_le_ext_adv_update_param(struct bt_le_ext_adv *adv,
1313 const struct bt_le_adv_param *param);
1314
1323int bt_le_ext_adv_delete(struct bt_le_ext_adv *adv);
1324
1336uint8_t bt_le_ext_adv_get_index(struct bt_le_ext_adv *adv);
1337
1340 /* Local identity */
1342
1345
1348};
1349
1358int bt_le_ext_adv_get_info(const struct bt_le_ext_adv *adv,
1359 struct bt_le_ext_adv_info *info);
1360
1374typedef void bt_le_scan_cb_t(const bt_addr_le_t *addr, int8_t rssi,
1375 uint8_t adv_type, struct net_buf_simple *buf);
1376
1389int bt_le_per_adv_set_param(struct bt_le_ext_adv *adv,
1390 const struct bt_le_per_adv_param *param);
1391
1405int bt_le_per_adv_set_data(const struct bt_le_ext_adv *adv,
1406 const struct bt_data *ad, size_t ad_len);
1407
1411
1414
1417
1419 const struct net_buf_simple *data;
1420};
1421
1437int bt_le_per_adv_set_subevent_data(const struct bt_le_ext_adv *adv, uint8_t num_subevents,
1438 const struct bt_le_per_adv_subevent_data_params *params);
1439
1457int bt_le_per_adv_start(struct bt_le_ext_adv *adv);
1458
1470int bt_le_per_adv_stop(struct bt_le_ext_adv *adv);
1471
1475
1478
1481
1484
1487
1494
1501 struct bt_conn *conn;
1502#if defined(CONFIG_BT_PER_ADV_SYNC_RSP)
1504 uint8_t num_subevents;
1505
1507 uint8_t subevent_interval;
1508
1510 uint8_t response_slot_delay;
1511
1513 uint8_t response_slot_spacing;
1514
1515#endif /* CONFIG_BT_PER_ADV_SYNC_RSP */
1516};
1517
1521
1524
1527};
1528
1532
1535
1538
1541
1544#if defined(CONFIG_BT_PER_ADV_SYNC_RSP)
1546 uint16_t periodic_event_counter;
1547
1549 uint8_t subevent;
1550#endif /* CONFIG_BT_PER_ADV_SYNC_RSP */
1551};
1552
1553
1557};
1558
1570 void (*synced)(struct bt_le_per_adv_sync *sync,
1571 struct bt_le_per_adv_sync_synced_info *info);
1572
1582 void (*term)(struct bt_le_per_adv_sync *sync,
1583 const struct bt_le_per_adv_sync_term_info *info);
1584
1598 void (*recv)(struct bt_le_per_adv_sync *sync,
1599 const struct bt_le_per_adv_sync_recv_info *info,
1600 struct net_buf_simple *buf);
1601
1612 void (*state_changed)(struct bt_le_per_adv_sync *sync,
1613 const struct bt_le_per_adv_sync_state_info *info);
1614
1625 void (*biginfo)(struct bt_le_per_adv_sync *sync, const struct bt_iso_biginfo *biginfo);
1626
1634 void (*cte_report_cb)(struct bt_le_per_adv_sync *sync,
1635 struct bt_df_per_adv_sync_iq_samples_report const *info);
1636
1638};
1639
1641enum {
1644
1652
1659
1662
1665
1668
1671
1674};
1675
1684
1692
1695
1704
1712};
1713
1725uint8_t bt_le_per_adv_sync_get_index(struct bt_le_per_adv_sync *per_adv_sync);
1726
1739struct bt_le_per_adv_sync *bt_le_per_adv_sync_lookup_index(uint8_t index);
1740
1745
1748
1751
1754};
1755
1764int bt_le_per_adv_sync_get_info(struct bt_le_per_adv_sync *per_adv_sync,
1765 struct bt_le_per_adv_sync_info *info);
1766
1775struct bt_le_per_adv_sync *bt_le_per_adv_sync_lookup_addr(const bt_addr_le_t *adv_addr,
1776 uint8_t sid);
1777
1795 struct bt_le_per_adv_sync **out_sync);
1796
1813int bt_le_per_adv_sync_delete(struct bt_le_per_adv_sync *per_adv_sync);
1814
1830
1840int bt_le_per_adv_sync_recv_enable(struct bt_le_per_adv_sync *per_adv_sync);
1841
1851int bt_le_per_adv_sync_recv_disable(struct bt_le_per_adv_sync *per_adv_sync);
1852
1854enum {
1857
1864
1872
1880
1883
1891
1899};
1900
1909
1917
1920};
1921
1934int bt_le_per_adv_sync_transfer(const struct bt_le_per_adv_sync *per_adv_sync,
1935 const struct bt_conn *conn,
1936 uint16_t service_data);
1937
1938
1951int bt_le_per_adv_set_info_transfer(const struct bt_le_ext_adv *adv,
1952 const struct bt_conn *conn,
1953 uint16_t service_data);
1954
1969 const struct bt_conn *conn,
1970 const struct bt_le_per_adv_sync_transfer_param *param);
1971
1985int bt_le_per_adv_sync_transfer_unsubscribe(const struct bt_conn *conn);
1986
2001
2014
2023
2024
2025enum {
2028
2031
2034
2037
2044};
2045
2046#define BT_LE_SCAN_OPT_FILTER_WHITELIST __DEPRECATED_MACRO BT_LE_SCAN_OPT_FILTER_ACCEPT_LIST
2047
2048enum {
2051
2060};
2061
2066
2069
2072
2075
2083
2090
2097};
2098
2108
2111
2114
2117
2127
2137
2144
2147
2150};
2151
2154
2161 void (*recv)(const struct bt_le_scan_recv_info *info,
2162 struct net_buf_simple *buf);
2163
2165 void (*timeout)(void);
2166
2168};
2169
2179#define BT_LE_SCAN_PARAM_INIT(_type, _options, _interval, _window) \
2180{ \
2181 .type = (_type), \
2182 .options = (_options), \
2183 .interval = (_interval), \
2184 .window = (_window), \
2185 .timeout = 0, \
2186 .interval_coded = 0, \
2187 .window_coded = 0, \
2188}
2189
2199#define BT_LE_SCAN_PARAM(_type, _options, _interval, _window) \
2200 ((struct bt_le_scan_param[]) { \
2201 BT_LE_SCAN_PARAM_INIT(_type, _options, _interval, _window) \
2202 })
2203
2207#define BT_LE_SCAN_ACTIVE BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_ACTIVE, \
2208 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2209 BT_GAP_SCAN_FAST_INTERVAL, \
2210 BT_GAP_SCAN_FAST_WINDOW)
2211
2217#define BT_LE_SCAN_ACTIVE_CONTINUOUS BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_ACTIVE, \
2218 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2219 BT_GAP_SCAN_FAST_INTERVAL_MIN, \
2220 BT_GAP_SCAN_FAST_WINDOW)
2222 "Continuous scanning is requested by setting window and interval equal.");
2223
2230#define BT_LE_SCAN_PASSIVE BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_PASSIVE, \
2231 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2232 BT_GAP_SCAN_FAST_INTERVAL, \
2233 BT_GAP_SCAN_FAST_WINDOW)
2234
2241#define BT_LE_SCAN_PASSIVE_CONTINUOUS BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_PASSIVE, \
2242 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2243 BT_GAP_SCAN_FAST_INTERVAL_MIN, \
2244 BT_GAP_SCAN_FAST_WINDOW)
2246 "Continuous scanning is requested by setting window and interval equal.");
2247
2252#define BT_LE_SCAN_CODED_ACTIVE \
2253 BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_ACTIVE, \
2254 BT_LE_SCAN_OPT_CODED | \
2255 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2256 BT_GAP_SCAN_FAST_INTERVAL, \
2257 BT_GAP_SCAN_FAST_WINDOW)
2258
2266#define BT_LE_SCAN_CODED_PASSIVE \
2267 BT_LE_SCAN_PARAM(BT_LE_SCAN_TYPE_PASSIVE, \
2268 BT_LE_SCAN_OPT_CODED | \
2269 BT_LE_SCAN_OPT_FILTER_DUPLICATE, \
2270 BT_GAP_SCAN_FAST_INTERVAL, \
2271 BT_GAP_SCAN_FAST_WINDOW)
2272
2300
2310
2326
2335
2351__deprecated
2352static inline int bt_le_whitelist_add(const bt_addr_le_t *addr)
2353{
2354 return bt_le_filter_accept_list_add(addr);
2355}
2356
2372__deprecated
2373static inline int bt_le_whitelist_rem(const bt_addr_le_t *addr)
2374{
2376}
2377
2391__deprecated
2392static inline int bt_le_whitelist_clear(void)
2393{
2395}
2396
2406
2425int bt_le_set_rpa_timeout(uint16_t new_rpa_timeout);
2426
2445 bool (*func)(struct bt_data *data, void *user_data),
2446 void *user_data);
2447
2452
2455};
2456
2463
2466};
2467
2497
2522int bt_le_ext_adv_oob_get_local(struct bt_le_ext_adv *adv,
2523 struct bt_le_oob *oob);
2524
2528 uint8_t _priv[4];
2529
2532
2535
2538
2541};
2542
2556 size_t count);
2557
2564
2567};
2568
2587 struct bt_br_discovery_result *results, size_t count,
2589
2600
2604};
2605
2615
2616
2629int bt_br_set_discoverable(bool enable);
2630
2643int bt_br_set_connectable(bool enable);
2644
2654int bt_unpair(uint8_t id, const bt_addr_le_t *addr);
2655
2660};
2661
2669void bt_foreach_bond(uint8_t id, void (*func)(const struct bt_bond_info *info,
2670 void *user_data),
2671 void *user_data);
2672
2688 const uint8_t *vs_config);
2689
2697
2700
2707};
2708
2719int bt_le_per_adv_sync_subevent(struct bt_le_per_adv_sync *per_adv_sync,
2720 struct bt_le_per_adv_sync_subevent_params *params);
2721
2732
2739
2742
2745};
2746
2759int bt_le_per_adv_set_response_data(struct bt_le_per_adv_sync *per_adv_sync,
2760 const struct bt_le_per_adv_response_params *params,
2761 const struct net_buf_simple *data);
2762
2767#ifdef __cplusplus
2768}
2769#endif
2774#endif /* ZEPHYR_INCLUDE_BLUETOOTH_BLUETOOTH_H_ */
Bluetooth device address definitions and utilities.
Bluetooth subsystem crypto APIs.
Bluetooth Generic Access Profile defines and Assigned Numbers.
#define BT_GAP_SCAN_FAST_WINDOW
Definition: gap.h:713
#define BT_GAP_SCAN_FAST_INTERVAL_MIN
Definition: gap.h:711
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 identities.
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.
static int bt_le_whitelist_rem(const bt_addr_le_t *addr)
Definition: bluetooth.h:2373
int bt_le_per_adv_list_remove(const bt_addr_le_t *addr, uint8_t sid)
Remove a device from the periodic advertising list.
static int bt_le_whitelist_add(const bt_addr_le_t *addr)
Definition: bluetooth.h:2352
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.
int bt_le_ext_adv_stop(struct bt_le_ext_adv *adv)
Stop advertising with the given advertising set.
static int bt_le_whitelist_clear(void)
Definition: bluetooth.h:2392
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.
int bt_br_oob_get_local(struct bt_br_oob *oob)
Get BR/EDR local Out Of Band information.
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.
void bt_br_discovery_cb_t(struct bt_br_discovery_result *results, size_t count)
Callback type for reporting BR/EDR discovery (inquiry) results.
Definition: bluetooth.h:2555
int bt_le_per_adv_sync_cb_register(struct bt_le_per_adv_sync_cb *cb)
Register periodic advertising sync callbacks.
int bt_br_discovery_stop(void)
Stop BR/EDR discovery.
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.
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.
void(* bt_ready_cb_t)(int err)
Callback for notifying that Bluetooth has been enabled.
Definition: bluetooth.h:206
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_br_set_connectable(bool enable)
Enable/disable set controller in connectable state.
int bt_le_scan_cb_register(struct bt_le_scan_cb *cb)
Register scanner packet callbacks.
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.
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:1374
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.
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.
int bt_id_reset(uint8_t id, bt_addr_le_t *addr, uint8_t *irk)
Reset/reclaim an identity 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.
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_br_set_discoverable(bool enable)
Enable/disable set controller in discoverable state.
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.
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.
int bt_br_discovery_start(const struct bt_br_discovery_param *param, struct bt_br_discovery_result *results, size_t count, bt_br_discovery_cb_t cb)
Start BR/EDR discovery.
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.
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_ADV_OPT_FORCE_NAME_IN_AD
Put GAP device name into advert data.
Definition: bluetooth.h:717
@ 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:620
@ BT_LE_ADV_OPT_ANONYMOUS
Advertise without a device address (identity or RPA).
Definition: bluetooth.h:688
@ BT_LE_ADV_OPT_USE_NRPA
Advertise using a Non-Resolvable Private Address.
Definition: bluetooth.h:731
@ BT_LE_ADV_OPT_CONNECTABLE
Advertise as connectable.
Definition: bluetooth.h:531
@ BT_LE_ADV_OPT_USE_NAME
Advertise using GAP device name.
Definition: bluetooth.h:585
@ BT_LE_ADV_OPT_USE_IDENTITY
Advertise using identity address.
Definition: bluetooth.h:559
@ BT_LE_ADV_OPT_ONE_TIME
Advertise one time.
Definition: bluetooth.h:547
@ BT_LE_ADV_OPT_FILTER_SCAN_REQ
Use filter accept list to filter devices that can request scan response data.
Definition: bluetooth.h:612
@ BT_LE_ADV_OPT_DISABLE_CHAN_39
Disable advertising on channel index 39.
Definition: bluetooth.h:704
@ BT_LE_ADV_OPT_NONE
Convenience value when no options are specified.
Definition: bluetooth.h:521
@ BT_LE_ADV_OPT_DISABLE_CHAN_37
Disable advertising on channel index 37.
Definition: bluetooth.h:698
@ BT_LE_ADV_OPT_DISABLE_CHAN_38
Disable advertising on channel index 38.
Definition: bluetooth.h:701
@ BT_LE_ADV_OPT_DIR_ADDR_RPA
Directed advertising to privacy-enabled peer.
Definition: bluetooth.h:607
@ BT_LE_ADV_OPT_CODED
Advertise on the LE Coded PHY (Long Range).
Definition: bluetooth.h:681
@ BT_LE_ADV_OPT_FILTER_CONN
Use filter accept list to filter devices that can connect.
Definition: bluetooth.h:615
@ BT_LE_ADV_OPT_EXT_ADV
Advertise with extended advertising.
Definition: bluetooth.h:653
@ BT_LE_ADV_OPT_SCANNABLE
Support scan response data.
Definition: bluetooth.h:631
@ BT_LE_ADV_OPT_NO_2M
Disable use of LE 2M PHY on the secondary advertising channel.
Definition: bluetooth.h:669
@ BT_LE_ADV_OPT_USE_TX_POWER
Advertise with transmit power.
Definition: bluetooth.h:695
@ BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY
Low duty cycle directed advertising.
Definition: bluetooth.h:593
@ BT_LE_PER_ADV_OPT_INCLUDE_ADI
Advertise with included AdvDataInfo (ADI).
Definition: bluetooth.h:820
@ BT_LE_PER_ADV_OPT_USE_TX_POWER
Advertise with transmit power.
Definition: bluetooth.h:813
@ BT_LE_PER_ADV_OPT_NONE
Convenience value when no options are specified.
Definition: bluetooth.h:806
@ BT_LE_PER_ADV_SYNC_OPT_DONT_SYNC_AOD_2US
Sync with Angle of Departure (AoD) 2 us constant tone extension.
Definition: bluetooth.h:1670
@ BT_LE_PER_ADV_SYNC_OPT_SYNC_ONLY_CONST_TONE_EXT
Do not sync to packets without a constant tone extension.
Definition: bluetooth.h:1673
@ BT_LE_PER_ADV_SYNC_OPT_DONT_SYNC_AOD_1US
Sync with Angle of Departure (AoD) 1 us constant tone extension.
Definition: bluetooth.h:1667
@ BT_LE_PER_ADV_SYNC_OPT_FILTER_DUPLICATE
Filter duplicate Periodic Advertising reports.
Definition: bluetooth.h:1661
@ BT_LE_PER_ADV_SYNC_OPT_DONT_SYNC_AOA
Sync with Angle of Arrival (AoA) constant tone extension.
Definition: bluetooth.h:1664
@ BT_LE_PER_ADV_SYNC_OPT_REPORTING_INITIALLY_DISABLED
Disables periodic advertising reports.
Definition: bluetooth.h:1658
@ BT_LE_PER_ADV_SYNC_OPT_USE_PER_ADV_LIST
Use the periodic advertising list to sync with advertiser.
Definition: bluetooth.h:1651
@ BT_LE_PER_ADV_SYNC_OPT_NONE
Convenience value when no options are specified.
Definition: bluetooth.h:1643
@ BT_LE_SCAN_OPT_FILTER_DUPLICATE
Filter duplicates.
Definition: bluetooth.h:2030
@ BT_LE_SCAN_OPT_CODED
Enable scan on coded PHY (Long Range).
Definition: bluetooth.h:2036
@ BT_LE_SCAN_OPT_NO_1M
Disable scan on 1M phy.
Definition: bluetooth.h:2043
@ BT_LE_SCAN_OPT_NONE
Convenience value when no options are specified.
Definition: bluetooth.h:2027
@ BT_LE_SCAN_OPT_FILTER_ACCEPT_LIST
Filter using filter accept list.
Definition: bluetooth.h:2033
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_SYNC_NO_AOA
No Angle of Arrival (AoA)
Definition: bluetooth.h:1863
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_REPORTING_INITIALLY_DISABLED
Sync to received PAST packets but don't generate sync reports.
Definition: bluetooth.h:1890
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_SYNC_NO_AOD_2US
No Angle of Departure (AoD) 2.
Definition: bluetooth.h:1879
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_SYNC_NO_AOD_1US
No Angle of Departure (AoD) 1 us.
Definition: bluetooth.h:1871
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_FILTER_DUPLICATES
Sync to received PAST packets and generate sync reports with duplicate filtering.
Definition: bluetooth.h:1898
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_SYNC_ONLY_CTE
Only sync to packets with constant tone extension.
Definition: bluetooth.h:1882
@ BT_LE_PER_ADV_SYNC_TRANSFER_OPT_NONE
Convenience value when no options are specified.
Definition: bluetooth.h:1856
@ BT_LE_SCAN_TYPE_PASSIVE
Scan without requesting additional information from advertisers.
Definition: bluetooth.h:2050
@ BT_LE_SCAN_TYPE_ACTIVE
Scan and request additional information from advertisers.
Definition: bluetooth.h:2059
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
__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
Bluetooth Device Address.
Definition: addr.h:40
Information about a bond with a remote device.
Definition: bluetooth.h:2657
bt_addr_le_t addr
Address of the remote device.
Definition: bluetooth.h:2659
BR/EDR discovery parameters.
Definition: bluetooth.h:2559
uint8_t length
Maximum length of the discovery in units of 1.28 seconds.
Definition: bluetooth.h:2563
bool limited
True if limited discovery procedure is to be used.
Definition: bluetooth.h:2566
BR/EDR discovery result structure.
Definition: bluetooth.h:2526
uint8_t eir[240]
Extended Inquiry Response.
Definition: bluetooth.h:2540
bt_addr_t addr
Remote device address.
Definition: bluetooth.h:2531
int8_t rssi
RSSI from inquiry.
Definition: bluetooth.h:2534
uint8_t cod[3]
Class of Device.
Definition: bluetooth.h:2537
Definition: bluetooth.h:2601
bt_addr_t addr
BR/EDR address.
Definition: bluetooth.h:2603
Bluetooth data.
Definition: bluetooth.h:454
uint8_t type
Definition: bluetooth.h:455
uint8_t data_len
Definition: bluetooth.h:456
const uint8_t * data
Definition: bluetooth.h:457
Definition: direction.h:115
Broadcast Isochronous Group (BIG) information.
Definition: iso.h:567
LE Advertising Parameters.
Definition: bluetooth.h:735
uint32_t options
Bit-field of advertising options.
Definition: bluetooth.h:764
const bt_addr_le_t * peer
Directed advertising to peer.
Definition: bluetooth.h:799
uint8_t sid
Advertising Set Identifier, valid range 0x00 - 0x0f.
Definition: bluetooth.h:751
uint8_t secondary_max_skip
Secondary channel maximum skip count.
Definition: bluetooth.h:761
uint32_t interval_min
Minimum Advertising Interval (N * 0.625 milliseconds) Minimum Advertising Interval shall be less than...
Definition: bluetooth.h:773
uint8_t id
Local identity.
Definition: bluetooth.h:744
uint32_t interval_max
Maximum Advertising Interval (N * 0.625 milliseconds) Minimum Advertising Interval shall be less than...
Definition: bluetooth.h:782
Definition: bluetooth.h:113
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:150
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:137
void(* sent)(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_sent_info *info)
The advertising set has finished sending adv data.
Definition: bluetooth.h:125
Definition: bluetooth.h:70
struct bt_conn * conn
Connection object of the new connection.
Definition: bluetooth.h:72
Advertising set info structure.
Definition: bluetooth.h:1339
uint8_t id
Definition: bluetooth.h:1341
const bt_addr_le_t * addr
Current local advertising address used.
Definition: bluetooth.h:1347
int8_t tx_power
Currently selected Transmit Power (dBM).
Definition: bluetooth.h:1344
Definition: bluetooth.h:75
bt_addr_le_t * addr
Active scanner LE address and type.
Definition: bluetooth.h:77
Definition: bluetooth.h:65
uint8_t num_sent
The number of advertising events completed.
Definition: bluetooth.h:67
Definition: bluetooth.h:1206
uint16_t timeout
Advertiser timeout (N * 10 ms).
Definition: bluetooth.h:1220
uint8_t num_events
Number of advertising events.
Definition: bluetooth.h:1227
LE Secure Connections pairing Out of Band data.
Definition: bluetooth.h:2449
uint8_t c[16]
Confirm Value.
Definition: bluetooth.h:2454
uint8_t r[16]
Random Number.
Definition: bluetooth.h:2451
LE Out of Band information.
Definition: bluetooth.h:2458
bt_addr_le_t addr
LE address.
Definition: bluetooth.h:2462
struct bt_le_oob_sc_data le_sc_data
LE Secure Connections pairing Out of Band data.
Definition: bluetooth.h:2465
Definition: bluetooth.h:80
uint8_t count
The number of subevents data can be set for.
Definition: bluetooth.h:85
uint8_t start
The first subevent data can be set for.
Definition: bluetooth.h:82
Definition: bluetooth.h:823
uint16_t interval_min
Minimum Periodic Advertising Interval (N * 1.25 ms)
Definition: bluetooth.h:830
uint16_t interval_max
Maximum Periodic Advertising Interval (N * 1.25 ms)
Definition: bluetooth.h:838
uint32_t options
Bit-field of periodic advertising options.
Definition: bluetooth.h:841
Definition: bluetooth.h:88
uint8_t subevent
The subevent the response was received in.
Definition: bluetooth.h:90
int8_t rssi
The RSSI of the response in dBm.
Definition: bluetooth.h:104
uint8_t cte_type
The Constant Tone Extension (CTE) of the advertisement (bt_df_cte_type)
Definition: bluetooth.h:107
int8_t tx_power
The TX power of the response in dBm.
Definition: bluetooth.h:101
uint8_t response_slot
The slot the response was received in.
Definition: bluetooth.h:110
uint8_t tx_status
Status of the subevent indication.
Definition: bluetooth.h:98
Definition: bluetooth.h:2722
uint8_t response_subevent
The subevent the response shall be sent in.
Definition: bluetooth.h:2741
uint16_t request_event
The periodic event counter of the request the response is sent to.
Definition: bluetooth.h:2731
uint8_t request_subevent
The subevent counter of the request the response is sent to.
Definition: bluetooth.h:2738
uint8_t response_slot
The response slot the response shall be sent in.
Definition: bluetooth.h:2744
Definition: bluetooth.h:1408
uint8_t response_slot_start
The first response slot to listen to.
Definition: bluetooth.h:1413
const struct net_buf_simple * data
The data to send.
Definition: bluetooth.h:1419
uint8_t subevent
The subevent to set data for.
Definition: bluetooth.h:1410
uint8_t response_slot_count
The number of response slots to listen to.
Definition: bluetooth.h:1416
Definition: bluetooth.h:1559
sys_snode_t node
Definition: bluetooth.h:1637
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:1598
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:1612
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:1570
void(* biginfo)(struct bt_le_per_adv_sync *sync, const struct bt_iso_biginfo *biginfo)
BIGInfo advertising report received.
Definition: bluetooth.h:1625
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:1582
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:1634
Advertising set info structure.
Definition: bluetooth.h:1742
uint16_t interval
Periodic advertising interval (N * 1.25 ms)
Definition: bluetooth.h:1750
uint8_t phy
Advertiser PHY.
Definition: bluetooth.h:1753
bt_addr_le_t addr
Periodic Advertiser Address.
Definition: bluetooth.h:1744
uint8_t sid
Advertiser SID.
Definition: bluetooth.h:1747
Definition: bluetooth.h:1676
uint16_t timeout
Synchronization timeout (N * 10 ms)
Definition: bluetooth.h:1711
uint32_t options
Bit-field of periodic advertising sync options.
Definition: bluetooth.h:1694
uint8_t sid
Advertiser SID.
Definition: bluetooth.h:1691
bt_addr_le_t addr
Periodic Advertiser Address.
Definition: bluetooth.h:1683
uint16_t skip
Maximum event skip.
Definition: bluetooth.h:1703
Definition: bluetooth.h:1529
uint8_t cte_type
The Constant Tone Extension (CTE) of the advertisement (bt_df_cte_type)
Definition: bluetooth.h:1543
uint8_t sid
Advertiser SID.
Definition: bluetooth.h:1534
const bt_addr_le_t * addr
Advertiser LE address and type.
Definition: bluetooth.h:1531
int8_t tx_power
The TX power of the advertisement.
Definition: bluetooth.h:1537
int8_t rssi
The RSSI of the advertisement excluding any CTE.
Definition: bluetooth.h:1540
Definition: bluetooth.h:1554
bool recv_enabled
True if receiving periodic advertisements, false otherwise.
Definition: bluetooth.h:1556
Definition: bluetooth.h:2690
uint8_t * subevents
The subevent(s) to synchronize with.
Definition: bluetooth.h:2706
uint16_t properties
Periodic Advertising Properties.
Definition: bluetooth.h:2696
uint8_t num_subevents
Number of subevents to sync to.
Definition: bluetooth.h:2699
Definition: bluetooth.h:1472
bool recv_enabled
True if receiving periodic advertisements, false otherwise.
Definition: bluetooth.h:1486
uint16_t interval
Periodic advertising interval (N * 1.25 ms)
Definition: bluetooth.h:1480
uint8_t sid
Advertiser SID.
Definition: bluetooth.h:1477
const bt_addr_le_t * addr
Advertiser LE address and type.
Definition: bluetooth.h:1474
uint8_t phy
Advertiser PHY.
Definition: bluetooth.h:1483
struct bt_conn * conn
Peer that transferred the periodic advertising sync.
Definition: bluetooth.h:1501
uint16_t service_data
Service Data provided by the peer when sync is transferred.
Definition: bluetooth.h:1493
Definition: bluetooth.h:1518
const bt_addr_le_t * addr
Advertiser LE address and type.
Definition: bluetooth.h:1520
uint8_t reason
Cause of periodic advertising termination.
Definition: bluetooth.h:1526
uint8_t sid
Advertiser SID.
Definition: bluetooth.h:1523
Definition: bluetooth.h:1901
uint32_t options
Periodic Advertising Sync Transfer options.
Definition: bluetooth.h:1919
uint16_t timeout
Synchronization timeout (N * 10 ms)
Definition: bluetooth.h:1916
uint16_t skip
Maximum event skip.
Definition: bluetooth.h:1908
Listener context for (LE) scanning.
Definition: bluetooth.h:2153
void(* timeout)(void)
The scanner has stopped scanning after scan timeout.
Definition: bluetooth.h:2165
sys_snode_t node
Definition: bluetooth.h:2167
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:2161
LE scan parameters.
Definition: bluetooth.h:2063
uint8_t type
Scan type (BT_LE_SCAN_TYPE_ACTIVE or BT_LE_SCAN_TYPE_PASSIVE)
Definition: bluetooth.h:2065
uint16_t interval
Scan interval (N * 0.625 ms)
Definition: bluetooth.h:2071
uint16_t window
Scan window (N * 0.625 ms)
Definition: bluetooth.h:2074
uint16_t timeout
Scan timeout (N * 10 ms)
Definition: bluetooth.h:2082
uint16_t interval_coded
Scan interval LE Coded PHY (N * 0.625 MS)
Definition: bluetooth.h:2089
uint16_t window_coded
Scan window LE Coded PHY (N * 0.625 MS)
Definition: bluetooth.h:2096
uint32_t options
Bit-field of scanning options.
Definition: bluetooth.h:2068
LE advertisement and scan response packet information.
Definition: bluetooth.h:2100
uint16_t interval
Periodic advertising interval (N * 1.25 ms).
Definition: bluetooth.h:2143
int8_t tx_power
Transmit power of the advertiser.
Definition: bluetooth.h:2116
uint8_t sid
Advertising Set Identifier.
Definition: bluetooth.h:2110
uint8_t primary_phy
Primary advertising channel PHY.
Definition: bluetooth.h:2146
int8_t rssi
Strength of advertiser signal.
Definition: bluetooth.h:2113
const bt_addr_le_t * addr
Advertiser LE address and type.
Definition: bluetooth.h:2107
uint8_t secondary_phy
Secondary advertising channel PHY.
Definition: bluetooth.h:2149
uint8_t adv_type
Advertising packet type.
Definition: bluetooth.h:2126
uint16_t adv_props
Advertising packet properties bitfield.
Definition: bluetooth.h:2136
Simple network buffer representation.
Definition: buf.h:87
uint8_t * data
Pointer to the start of data in the buffer.
Definition: buf.h:89
Misc utilities.