11#ifndef ZEPHYR_INCLUDE_BLUETOOTH_GAP_H_
12#define ZEPHYR_INCLUDE_BLUETOOTH_GAP_H_
33#define BT_COMP_ID_LF 0x05f1
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
140#define BT_GAP_ADV_MAX_ADV_DATA_LEN 31
146#define BT_GAP_ADV_MAX_EXT_ADV_DATA_LEN 1650
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
156#define BT_GAP_ADV_HIGH_DUTY_CYCLE_MAX_TIMEOUT 128
159#define BT_GAP_DATA_LEN_DEFAULT 0x001b
161#define BT_GAP_DATA_LEN_MAX 0x00fb
164#define BT_GAP_DATA_TIME_DEFAULT 0x0148
166#define BT_GAP_DATA_TIME_MAX 0x4290
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
179#define BT_GAP_PER_ADV_MAX_TIMEOUT 0x4000
181#define BT_GAP_PER_ADV_MIN_INTERVAL 0x0006
183#define BT_GAP_PER_ADV_MAX_INTERVAL 0xFFFF
190#define BT_GAP_ADV_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 625U))
200#define BT_GAP_ADV_INTERVAL_TO_MS(_interval) (BT_GAP_ADV_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
207#define BT_GAP_ISO_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 1250U))
217#define BT_GAP_ISO_INTERVAL_TO_MS(_interval) (BT_GAP_ISO_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
224#define BT_GAP_PER_ADV_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 1250U))
232#define BT_GAP_PER_ADV_INTERVAL_TO_MS(_interval) \
233 (BT_GAP_PER_ADV_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
243#define BT_GAP_US_TO_ADV_INTERVAL(_interval) ((uint16_t)((_interval) / 625U))
253#define BT_GAP_MS_TO_ADV_INTERVAL(_interval) \
254 (BT_GAP_US_TO_ADV_INTERVAL((_interval) * USEC_PER_MSEC))
264#define BT_GAP_US_TO_PER_ADV_INTERVAL(_interval) ((uint16_t)((_interval) / 1250U))
274#define BT_GAP_MS_TO_PER_ADV_INTERVAL(_interval) \
275 (BT_GAP_US_TO_PER_ADV_INTERVAL((_interval) * USEC_PER_MSEC))
285#define BT_GAP_MS_TO_PER_ADV_SYNC_TIMEOUT(_timeout) ((uint16_t)((_timeout) / 10U))
295#define BT_GAP_US_TO_PER_ADV_SYNC_TIMEOUT(_timeout) \
296 (BT_GAP_MS_TO_PER_ADV_SYNC_TIMEOUT((_timeout) / USEC_PER_MSEC))
307#define BT_GAP_US_TO_SCAN_INTERVAL(_interval) ((uint16_t)((_interval) / 625U))
318#define BT_GAP_MS_TO_SCAN_INTERVAL(_interval) \
319 (BT_GAP_US_TO_SCAN_INTERVAL((_interval) * USEC_PER_MSEC))
330#define BT_GAP_US_TO_SCAN_WINDOW(_window) ((uint16_t)((_window) / 625U))
341#define BT_GAP_MS_TO_SCAN_WINDOW(_window) (BT_GAP_US_TO_SCAN_WINDOW((_window) * USEC_PER_MSEC))
351#define BT_GAP_US_TO_CONN_INTERVAL(_interval) ((uint16_t)((_interval) / 1250U))
361#define BT_GAP_MS_TO_CONN_INTERVAL(_interval) \
362 (BT_GAP_US_TO_CONN_INTERVAL((_interval) * USEC_PER_MSEC))
372#define BT_GAP_MS_TO_CONN_TIMEOUT(_timeout) ((uint16_t)((_timeout) / 10U))
382#define BT_GAP_US_TO_CONN_TIMEOUT(_timeout) (BT_GAP_MS_TO_CONN_TIMEOUT((_timeout) / USEC_PER_MSEC))
392#define BT_GAP_US_TO_CONN_EVENT_LEN(_event_len) ((uint16_t)((_event_len) / 625U))
402#define BT_GAP_MS_TO_CONN_EVENT_LEN(_event_len) \
403 (BT_GAP_US_TO_CONN_EVENT_LEN((_event_len) * USEC_PER_MSEC))
449#define BT_LE_SUPP_FEAT_40_ENCODE(w64) BT_BYTES_LIST_LE40(w64)
469#define BT_LE_SUPP_FEAT_32_ENCODE(w64) BT_BYTES_LIST_LE32(w64)
490#define BT_LE_SUPP_FEAT_24_ENCODE(w64) BT_BYTES_LIST_LE24(w64)
511#define BT_LE_SUPP_FEAT_16_ENCODE(w64) BT_BYTES_LIST_LE16(w64)
532#define BT_LE_SUPP_FEAT_8_ENCODE(w64) \
533 (((w64) >> 0) & 0xFF)
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.")
Bluetooth Assigned Numbers, codes and identifiers.
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