Zephyr API Documentation 4.2.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
gap.h
Go to the documentation of this file.
1
4
5/*
6 * Copyright (c) 2019 Nordic Semiconductor ASA
7 *
8 * SPDX-License-Identifier: Apache-2.0
9 */
10
11#ifndef ZEPHYR_INCLUDE_BLUETOOTH_GAP_H_
12#define ZEPHYR_INCLUDE_BLUETOOTH_GAP_H_
13
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
28
33#define BT_COMP_ID_LF 0x05f1
37
42#define BT_GAP_SCAN_FAST_INTERVAL_MIN 0x0030 /* 30 ms */
43#define BT_GAP_SCAN_FAST_INTERVAL 0x0060 /* 60 ms */
44#define BT_GAP_SCAN_FAST_WINDOW 0x0030 /* 30 ms */
45#define BT_GAP_SCAN_SLOW_INTERVAL_1 0x0800 /* 1.28 s */
46#define BT_GAP_SCAN_SLOW_WINDOW_1 0x0012 /* 11.25 ms */
47#define BT_GAP_SCAN_SLOW_INTERVAL_2 0x1000 /* 2.56 s */
48#define BT_GAP_SCAN_SLOW_WINDOW_2 0x0012 /* 11.25 ms */
49#define BT_GAP_ADV_FAST_INT_MIN_1 0x0030 /* 30 ms */
50#define BT_GAP_ADV_FAST_INT_MAX_1 0x0060 /* 60 ms */
51#define BT_GAP_ADV_FAST_INT_MIN_2 0x00a0 /* 100 ms */
52#define BT_GAP_ADV_FAST_INT_MAX_2 0x00f0 /* 150 ms */
53#define BT_GAP_ADV_SLOW_INT_MIN 0x0640 /* 1 s */
54#define BT_GAP_ADV_SLOW_INT_MAX 0x0780 /* 1.2 s */
55#define BT_GAP_PER_ADV_FAST_INT_MIN_1 0x0018 /* 30 ms */
56#define BT_GAP_PER_ADV_FAST_INT_MAX_1 0x0030 /* 60 ms */
57#define BT_GAP_PER_ADV_FAST_INT_MIN_2 0x0050 /* 100 ms */
58#define BT_GAP_PER_ADV_FAST_INT_MAX_2 0x0078 /* 150 ms */
59#define BT_GAP_PER_ADV_SLOW_INT_MIN 0x0320 /* 1 s */
60#define BT_GAP_PER_ADV_SLOW_INT_MAX 0x03C0 /* 1.2 s */
61#define BT_GAP_INIT_CONN_INT_MIN 0x0018 /* 30 ms */
62#define BT_GAP_INIT_CONN_INT_MAX 0x0028 /* 50 ms */
66
86
102
116
118#define BT_GAP_ADV_MAX_ADV_DATA_LEN 31
124#define BT_GAP_ADV_MAX_EXT_ADV_DATA_LEN 1650
125
126#define BT_GAP_TX_POWER_INVALID 0x7f
127#define BT_GAP_RSSI_INVALID 0x7f
128#define BT_GAP_SID_INVALID 0xff
129#define BT_GAP_NO_TIMEOUT 0x0000
130
131/* The maximum allowed high duty cycle directed advertising timeout, 1.28
132 * seconds in 10 ms unit.
133 */
134#define BT_GAP_ADV_HIGH_DUTY_CYCLE_MAX_TIMEOUT 128
135
137#define BT_GAP_DATA_LEN_DEFAULT 0x001b /* 27 bytes */
139#define BT_GAP_DATA_LEN_MAX 0x00fb /* 251 bytes */
140
142#define BT_GAP_DATA_TIME_DEFAULT 0x0148 /* 328 us */
144#define BT_GAP_DATA_TIME_MAX 0x4290 /* 17040 us */
145
147#define BT_GAP_SID_MIN 0x00
149#define BT_GAP_SID_MAX 0x0F
153#define BT_GAP_PER_ADV_MAX_SKIP 0x01F3
155#define BT_GAP_PER_ADV_MIN_TIMEOUT 0x000A /* 100 ms */
157#define BT_GAP_PER_ADV_MAX_TIMEOUT 0x4000 /* 163.84 s */
159#define BT_GAP_PER_ADV_MIN_INTERVAL 0x0006 /* 7.5 ms */
161#define BT_GAP_PER_ADV_MAX_INTERVAL 0xFFFF /* 81.91875 s */
162
168#define BT_GAP_ADV_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 625U))
169
178#define BT_GAP_ADV_INTERVAL_TO_MS(_interval) (BT_GAP_ADV_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
179
185#define BT_GAP_ISO_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 1250U))
186
195#define BT_GAP_ISO_INTERVAL_TO_MS(_interval) (BT_GAP_ISO_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
196
202#define BT_GAP_PER_ADV_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 1250U))
203
210#define BT_GAP_PER_ADV_INTERVAL_TO_MS(_interval) \
211 (BT_GAP_PER_ADV_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
212
221#define BT_GAP_US_TO_ADV_INTERVAL(_interval) ((uint16_t)((_interval) / 625U))
222
231#define BT_GAP_MS_TO_ADV_INTERVAL(_interval) \
232 (BT_GAP_US_TO_ADV_INTERVAL((_interval) * USEC_PER_MSEC))
233
242#define BT_GAP_US_TO_PER_ADV_INTERVAL(_interval) ((uint16_t)((_interval) / 1250U))
243
252#define BT_GAP_MS_TO_PER_ADV_INTERVAL(_interval) \
253 (BT_GAP_US_TO_PER_ADV_INTERVAL((_interval) * USEC_PER_MSEC))
254
263#define BT_GAP_MS_TO_PER_ADV_SYNC_TIMEOUT(_timeout) ((uint16_t)((_timeout) / 10U))
264
273#define BT_GAP_US_TO_PER_ADV_SYNC_TIMEOUT(_timeout) \
274 (BT_GAP_MS_TO_PER_ADV_SYNC_TIMEOUT((_timeout) / USEC_PER_MSEC))
275
285#define BT_GAP_US_TO_SCAN_INTERVAL(_interval) ((uint16_t)((_interval) / 625U))
286
296#define BT_GAP_MS_TO_SCAN_INTERVAL(_interval) \
297 (BT_GAP_US_TO_SCAN_INTERVAL((_interval) * USEC_PER_MSEC))
298
308#define BT_GAP_US_TO_SCAN_WINDOW(_window) ((uint16_t)((_window) / 625U))
309
319#define BT_GAP_MS_TO_SCAN_WINDOW(_window) (BT_GAP_US_TO_SCAN_WINDOW((_window) * USEC_PER_MSEC))
320
329#define BT_GAP_US_TO_CONN_INTERVAL(_interval) ((uint16_t)((_interval) / 1250U))
330
339#define BT_GAP_MS_TO_CONN_INTERVAL(_interval) \
340 (BT_GAP_US_TO_CONN_INTERVAL((_interval) * USEC_PER_MSEC))
341
350#define BT_GAP_MS_TO_CONN_TIMEOUT(_timeout) ((uint16_t)((_timeout) / 10U))
351
360#define BT_GAP_US_TO_CONN_TIMEOUT(_timeout) (BT_GAP_MS_TO_CONN_TIMEOUT((_timeout) / USEC_PER_MSEC))
361
370#define BT_GAP_US_TO_CONN_EVENT_LEN(_event_len) ((uint16_t)((_event_len) / 625U))
371
380#define BT_GAP_MS_TO_CONN_EVENT_LEN(_event_len) \
381 (BT_GAP_US_TO_CONN_EVENT_LEN((_event_len) * USEC_PER_MSEC))
382
394
407
427#define BT_LE_SUPP_FEAT_40_ENCODE(w64) BT_BYTES_LIST_LE40(w64)
428
447#define BT_LE_SUPP_FEAT_32_ENCODE(w64) BT_BYTES_LIST_LE32(w64)
448
468#define BT_LE_SUPP_FEAT_24_ENCODE(w64) BT_BYTES_LIST_LE24(w64)
469
489#define BT_LE_SUPP_FEAT_16_ENCODE(w64) BT_BYTES_LIST_LE16(w64)
490
510#define BT_LE_SUPP_FEAT_8_ENCODE(w64) \
511 (((w64) >> 0) & 0xFF)
512
521#define BT_LE_SUPP_FEAT_VALIDATE(w64) \
522 BUILD_ASSERT(!((w64) & (~BIT64_MASK(40))), \
523 "RFU bit in LE Supported Features are not zeros.")
524
528
529#ifdef __cplusplus
530}
531#endif
532
533#endif /* ZEPHYR_INCLUDE_BLUETOOTH_GAP_H_ */
Bluetooth Assigned Numbers, codes and identifiers.
Bluetooth byteorder API.
bt_gap_adv_type
Advertising PDU types.
Definition gap.h:88
bt_gap_sca
Peripheral sleep clock accuracy (SCA) in ppm (parts per million)
Definition gap.h:396
bt_gap_le_phy
LE PHY types.
Definition gap.h:68
bt_gap_adv_prop
Advertising PDU properties.
Definition gap.h:104
bt_gap_cte
Constant Tone Extension (CTE) types.
Definition gap.h:384
@ BT_GAP_ADV_TYPE_ADV_DIRECT_IND
Directed connectable advertising.
Definition gap.h:92
@ BT_GAP_ADV_TYPE_EXT_ADV
Extended advertising, see advertising properties.
Definition gap.h:100
@ BT_GAP_ADV_TYPE_SCAN_RSP
Additional advertising data requested by an active scanner.
Definition gap.h:98
@ BT_GAP_ADV_TYPE_ADV_NONCONN_IND
Non-connectable and non-scannable advertising.
Definition gap.h:96
@ BT_GAP_ADV_TYPE_ADV_SCAN_IND
Non-connectable and scannable advertising.
Definition gap.h:94
@ BT_GAP_ADV_TYPE_ADV_IND
Scannable and connectable advertising.
Definition gap.h:90
@ BT_GAP_SCA_21_30
21 ppm to 30 ppm
Definition gap.h:404
@ BT_GAP_SCA_31_50
31 ppm to 50 ppm
Definition gap.h:403
@ BT_GAP_SCA_101_150
101 ppm to 150 ppm
Definition gap.h:400
@ BT_GAP_SCA_251_500
251 ppm to 500 ppm
Definition gap.h:398
@ BT_GAP_SCA_51_75
51 ppm to 75 ppm
Definition gap.h:402
@ BT_GAP_SCA_76_100
76 ppm to 100 ppm
Definition gap.h:401
@ BT_GAP_SCA_151_250
151 ppm to 250 ppm
Definition gap.h:399
@ BT_GAP_SCA_0_20
0 ppm to 20 ppm
Definition gap.h:405
@ BT_GAP_SCA_UNKNOWN
Unknown.
Definition gap.h:397
@ BT_GAP_LE_PHY_CODED_S2
LE Coded S=2 PHY.
Definition gap.h:84
@ BT_GAP_LE_PHY_CODED_S8
LE Coded S=8 PHY.
Definition gap.h:80
@ BT_GAP_LE_PHY_1M
LE 1M PHY.
Definition gap.h:72
@ BT_GAP_LE_PHY_2M
LE 2M PHY.
Definition gap.h:74
@ BT_GAP_LE_PHY_CODED
LE Coded PHY, coding scheme not specified.
Definition gap.h:76
@ BT_GAP_LE_PHY_NONE
Convenience macro for when no PHY is set.
Definition gap.h:70
@ BT_GAP_ADV_PROP_DIRECTED
Directed advertising.
Definition gap.h:110
@ BT_GAP_ADV_PROP_SCAN_RESPONSE
Additional advertising data requested by an active scanner.
Definition gap.h:112
@ BT_GAP_ADV_PROP_SCANNABLE
Scannable advertising.
Definition gap.h:108
@ BT_GAP_ADV_PROP_EXT_ADV
Extended advertising.
Definition gap.h:114
@ BT_GAP_ADV_PROP_CONNECTABLE
Connectable advertising.
Definition gap.h:106
@ BT_GAP_CTE_AOD_2US
Angle of Departure with 2 us slots.
Definition gap.h:390
@ BT_GAP_CTE_AOA
Angle of Arrival.
Definition gap.h:386
@ BT_GAP_CTE_AOD_1US
Angle of Departure with 1 us slots.
Definition gap.h:388
@ BT_GAP_CTE_NONE
No extensions.
Definition gap.h:392
#define BIT(n)
Unsigned integer with bit position n set (signed in assembly language).
Definition util_macro.h:44
Macro utilities.