Zephyr API Documentation 4.3.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
44#define BT_GAP_SCAN_FAST_INTERVAL_MIN 0x0030
46#define BT_GAP_SCAN_FAST_INTERVAL 0x0060
48#define BT_GAP_SCAN_FAST_WINDOW 0x0030
50#define BT_GAP_SCAN_SLOW_INTERVAL_1 0x0800
52#define BT_GAP_SCAN_SLOW_WINDOW_1 0x0012
54#define BT_GAP_SCAN_SLOW_INTERVAL_2 0x1000
56#define BT_GAP_SCAN_SLOW_WINDOW_2 0x0012
58#define BT_GAP_ADV_FAST_INT_MIN_1 0x0030
60#define BT_GAP_ADV_FAST_INT_MAX_1 0x0060
62#define BT_GAP_ADV_FAST_INT_MIN_2 0x00a0
64#define BT_GAP_ADV_FAST_INT_MAX_2 0x00f0
66#define BT_GAP_ADV_SLOW_INT_MIN 0x0640
68#define BT_GAP_ADV_SLOW_INT_MAX 0x0780
70#define BT_GAP_PER_ADV_FAST_INT_MIN_1 0x0018
72#define BT_GAP_PER_ADV_FAST_INT_MAX_1 0x0030
74#define BT_GAP_PER_ADV_FAST_INT_MIN_2 0x0050
76#define BT_GAP_PER_ADV_FAST_INT_MAX_2 0x0078
78#define BT_GAP_PER_ADV_SLOW_INT_MIN 0x0320
80#define BT_GAP_PER_ADV_SLOW_INT_MAX 0x03C0
82#define BT_GAP_INIT_CONN_INT_MIN 0x0018
84#define BT_GAP_INIT_CONN_INT_MAX 0x0028
88
108
124
138
140#define BT_GAP_ADV_MAX_ADV_DATA_LEN 31
146#define BT_GAP_ADV_MAX_EXT_ADV_DATA_LEN 1650
147
148#define BT_GAP_TX_POWER_INVALID 0x7f
149#define BT_GAP_RSSI_INVALID 0x7f
150#define BT_GAP_SID_INVALID 0xff
151#define BT_GAP_NO_TIMEOUT 0x0000
152
153/* The maximum allowed high duty cycle directed advertising timeout, 1.28
154 * seconds in 10 ms unit.
155 */
156#define BT_GAP_ADV_HIGH_DUTY_CYCLE_MAX_TIMEOUT 128
157
159#define BT_GAP_DATA_LEN_DEFAULT 0x001b /* 27 bytes */
161#define BT_GAP_DATA_LEN_MAX 0x00fb /* 251 bytes */
162
164#define BT_GAP_DATA_TIME_DEFAULT 0x0148 /* 328 us */
166#define BT_GAP_DATA_TIME_MAX 0x4290 /* 17040 us */
167
169#define BT_GAP_SID_MIN 0x00
171#define BT_GAP_SID_MAX 0x0F
175#define BT_GAP_PER_ADV_MAX_SKIP 0x01F3
177#define BT_GAP_PER_ADV_MIN_TIMEOUT 0x000A /* 100 ms */
179#define BT_GAP_PER_ADV_MAX_TIMEOUT 0x4000 /* 163.84 s */
181#define BT_GAP_PER_ADV_MIN_INTERVAL 0x0006 /* 7.5 ms */
183#define BT_GAP_PER_ADV_MAX_INTERVAL 0xFFFF /* 81.91875 s */
184
190#define BT_GAP_ADV_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 625U))
191
200#define BT_GAP_ADV_INTERVAL_TO_MS(_interval) (BT_GAP_ADV_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
201
207#define BT_GAP_ISO_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 1250U))
208
217#define BT_GAP_ISO_INTERVAL_TO_MS(_interval) (BT_GAP_ISO_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
218
224#define BT_GAP_PER_ADV_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 1250U))
225
232#define BT_GAP_PER_ADV_INTERVAL_TO_MS(_interval) \
233 (BT_GAP_PER_ADV_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
234
243#define BT_GAP_US_TO_ADV_INTERVAL(_interval) ((uint16_t)((_interval) / 625U))
244
253#define BT_GAP_MS_TO_ADV_INTERVAL(_interval) \
254 (BT_GAP_US_TO_ADV_INTERVAL((_interval) * USEC_PER_MSEC))
255
264#define BT_GAP_US_TO_PER_ADV_INTERVAL(_interval) ((uint16_t)((_interval) / 1250U))
265
274#define BT_GAP_MS_TO_PER_ADV_INTERVAL(_interval) \
275 (BT_GAP_US_TO_PER_ADV_INTERVAL((_interval) * USEC_PER_MSEC))
276
285#define BT_GAP_MS_TO_PER_ADV_SYNC_TIMEOUT(_timeout) ((uint16_t)((_timeout) / 10U))
286
295#define BT_GAP_US_TO_PER_ADV_SYNC_TIMEOUT(_timeout) \
296 (BT_GAP_MS_TO_PER_ADV_SYNC_TIMEOUT((_timeout) / USEC_PER_MSEC))
297
307#define BT_GAP_US_TO_SCAN_INTERVAL(_interval) ((uint16_t)((_interval) / 625U))
308
318#define BT_GAP_MS_TO_SCAN_INTERVAL(_interval) \
319 (BT_GAP_US_TO_SCAN_INTERVAL((_interval) * USEC_PER_MSEC))
320
330#define BT_GAP_US_TO_SCAN_WINDOW(_window) ((uint16_t)((_window) / 625U))
331
341#define BT_GAP_MS_TO_SCAN_WINDOW(_window) (BT_GAP_US_TO_SCAN_WINDOW((_window) * USEC_PER_MSEC))
342
351#define BT_GAP_US_TO_CONN_INTERVAL(_interval) ((uint16_t)((_interval) / 1250U))
352
361#define BT_GAP_MS_TO_CONN_INTERVAL(_interval) \
362 (BT_GAP_US_TO_CONN_INTERVAL((_interval) * USEC_PER_MSEC))
363
372#define BT_GAP_MS_TO_CONN_TIMEOUT(_timeout) ((uint16_t)((_timeout) / 10U))
373
382#define BT_GAP_US_TO_CONN_TIMEOUT(_timeout) (BT_GAP_MS_TO_CONN_TIMEOUT((_timeout) / USEC_PER_MSEC))
383
392#define BT_GAP_US_TO_CONN_EVENT_LEN(_event_len) ((uint16_t)((_event_len) / 625U))
393
402#define BT_GAP_MS_TO_CONN_EVENT_LEN(_event_len) \
403 (BT_GAP_US_TO_CONN_EVENT_LEN((_event_len) * USEC_PER_MSEC))
404
416
429
449#define BT_LE_SUPP_FEAT_40_ENCODE(w64) BT_BYTES_LIST_LE40(w64)
450
469#define BT_LE_SUPP_FEAT_32_ENCODE(w64) BT_BYTES_LIST_LE32(w64)
470
490#define BT_LE_SUPP_FEAT_24_ENCODE(w64) BT_BYTES_LIST_LE24(w64)
491
511#define BT_LE_SUPP_FEAT_16_ENCODE(w64) BT_BYTES_LIST_LE16(w64)
512
532#define BT_LE_SUPP_FEAT_8_ENCODE(w64) \
533 (((w64) >> 0) & 0xFF)
534
543#define BT_LE_SUPP_FEAT_VALIDATE(w64) \
544 BUILD_ASSERT(!((w64) & (~BIT64_MASK(40))), \
545 "RFU bit in LE Supported Features are not zeros.")
546
550
551#ifdef __cplusplus
552}
553#endif
554
555#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:110
bt_gap_sca
Peripheral sleep clock accuracy (SCA) in ppm (parts per million).
Definition gap.h:418
bt_gap_le_phy
LE PHY types.
Definition gap.h:90
bt_gap_adv_prop
Advertising PDU properties.
Definition gap.h:126
bt_gap_cte
Constant Tone Extension (CTE) types.
Definition gap.h:406
@ BT_GAP_ADV_TYPE_ADV_DIRECT_IND
Directed connectable advertising.
Definition gap.h:114
@ BT_GAP_ADV_TYPE_EXT_ADV
Extended advertising, see advertising properties.
Definition gap.h:122
@ BT_GAP_ADV_TYPE_SCAN_RSP
Additional advertising data requested by an active scanner.
Definition gap.h:120
@ BT_GAP_ADV_TYPE_ADV_NONCONN_IND
Non-connectable and non-scannable advertising.
Definition gap.h:118
@ BT_GAP_ADV_TYPE_ADV_SCAN_IND
Non-connectable and scannable advertising.
Definition gap.h:116
@ BT_GAP_ADV_TYPE_ADV_IND
Scannable and connectable advertising.
Definition gap.h:112
@ BT_GAP_SCA_21_30
21 ppm to 30 ppm
Definition gap.h:426
@ BT_GAP_SCA_31_50
31 ppm to 50 ppm
Definition gap.h:425
@ BT_GAP_SCA_101_150
101 ppm to 150 ppm
Definition gap.h:422
@ BT_GAP_SCA_251_500
251 ppm to 500 ppm
Definition gap.h:420
@ BT_GAP_SCA_51_75
51 ppm to 75 ppm
Definition gap.h:424
@ BT_GAP_SCA_76_100
76 ppm to 100 ppm
Definition gap.h:423
@ BT_GAP_SCA_151_250
151 ppm to 250 ppm
Definition gap.h:421
@ BT_GAP_SCA_0_20
0 ppm to 20 ppm
Definition gap.h:427
@ BT_GAP_SCA_UNKNOWN
Unknown.
Definition gap.h:419
@ BT_GAP_LE_PHY_CODED_S2
LE Coded S=2 PHY.
Definition gap.h:106
@ BT_GAP_LE_PHY_CODED_S8
LE Coded S=8 PHY.
Definition gap.h:102
@ BT_GAP_LE_PHY_1M
LE 1M PHY.
Definition gap.h:94
@ BT_GAP_LE_PHY_2M
LE 2M PHY.
Definition gap.h:96
@ BT_GAP_LE_PHY_CODED
LE Coded PHY, coding scheme not specified.
Definition gap.h:98
@ BT_GAP_LE_PHY_NONE
Convenience macro for when no PHY is set.
Definition gap.h:92
@ BT_GAP_ADV_PROP_DIRECTED
Directed advertising.
Definition gap.h:132
@ BT_GAP_ADV_PROP_SCAN_RESPONSE
Additional advertising data requested by an active scanner.
Definition gap.h:134
@ BT_GAP_ADV_PROP_SCANNABLE
Scannable advertising.
Definition gap.h:130
@ BT_GAP_ADV_PROP_EXT_ADV
Extended advertising.
Definition gap.h:136
@ BT_GAP_ADV_PROP_CONNECTABLE
Connectable advertising.
Definition gap.h:128
@ BT_GAP_CTE_AOD_2US
Angle of Departure with 2 us slots.
Definition gap.h:412
@ BT_GAP_CTE_AOA
Angle of Arrival.
Definition gap.h:408
@ BT_GAP_CTE_AOD_1US
Angle of Departure with 1 us slots.
Definition gap.h:410
@ BT_GAP_CTE_NONE
No extensions.
Definition gap.h:414
#define BIT(n)
Unsigned integer with bit position n set (signed in assembly language).
Definition util_macro.h:44
Macro utilities.