11#ifndef ZEPHYR_INCLUDE_BLUETOOTH_GAP_H_
12#define ZEPHYR_INCLUDE_BLUETOOTH_GAP_H_
33#define BT_COMP_ID_LF 0x05f1
42#define BT_GAP_SCAN_FAST_INTERVAL_MIN 0x0030
43#define BT_GAP_SCAN_FAST_INTERVAL 0x0060
44#define BT_GAP_SCAN_FAST_WINDOW 0x0030
45#define BT_GAP_SCAN_SLOW_INTERVAL_1 0x0800
46#define BT_GAP_SCAN_SLOW_WINDOW_1 0x0012
47#define BT_GAP_SCAN_SLOW_INTERVAL_2 0x1000
48#define BT_GAP_SCAN_SLOW_WINDOW_2 0x0012
49#define BT_GAP_ADV_FAST_INT_MIN_1 0x0030
50#define BT_GAP_ADV_FAST_INT_MAX_1 0x0060
51#define BT_GAP_ADV_FAST_INT_MIN_2 0x00a0
52#define BT_GAP_ADV_FAST_INT_MAX_2 0x00f0
53#define BT_GAP_ADV_SLOW_INT_MIN 0x0640
54#define BT_GAP_ADV_SLOW_INT_MAX 0x0780
55#define BT_GAP_PER_ADV_FAST_INT_MIN_1 0x0018
56#define BT_GAP_PER_ADV_FAST_INT_MAX_1 0x0030
57#define BT_GAP_PER_ADV_FAST_INT_MIN_2 0x0050
58#define BT_GAP_PER_ADV_FAST_INT_MAX_2 0x0078
59#define BT_GAP_PER_ADV_SLOW_INT_MIN 0x0320
60#define BT_GAP_PER_ADV_SLOW_INT_MAX 0x03C0
61#define BT_GAP_INIT_CONN_INT_MIN 0x0018
62#define BT_GAP_INIT_CONN_INT_MAX 0x0028
118#define BT_GAP_ADV_MAX_ADV_DATA_LEN 31
124#define BT_GAP_ADV_MAX_EXT_ADV_DATA_LEN 1650
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
134#define BT_GAP_ADV_HIGH_DUTY_CYCLE_MAX_TIMEOUT 128
137#define BT_GAP_DATA_LEN_DEFAULT 0x001b
139#define BT_GAP_DATA_LEN_MAX 0x00fb
142#define BT_GAP_DATA_TIME_DEFAULT 0x0148
144#define BT_GAP_DATA_TIME_MAX 0x4290
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
157#define BT_GAP_PER_ADV_MAX_TIMEOUT 0x4000
159#define BT_GAP_PER_ADV_MIN_INTERVAL 0x0006
161#define BT_GAP_PER_ADV_MAX_INTERVAL 0xFFFF
168#define BT_GAP_ADV_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 625U))
178#define BT_GAP_ADV_INTERVAL_TO_MS(_interval) (BT_GAP_ADV_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
185#define BT_GAP_ISO_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 1250U))
195#define BT_GAP_ISO_INTERVAL_TO_MS(_interval) (BT_GAP_ISO_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
202#define BT_GAP_PER_ADV_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 1250U))
210#define BT_GAP_PER_ADV_INTERVAL_TO_MS(_interval) \
211 (BT_GAP_PER_ADV_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
221#define BT_GAP_US_TO_ADV_INTERVAL(_interval) ((uint16_t)((_interval) / 625U))
231#define BT_GAP_MS_TO_ADV_INTERVAL(_interval) \
232 (BT_GAP_US_TO_ADV_INTERVAL((_interval) * USEC_PER_MSEC))
242#define BT_GAP_US_TO_PER_ADV_INTERVAL(_interval) ((uint16_t)((_interval) / 1250U))
252#define BT_GAP_MS_TO_PER_ADV_INTERVAL(_interval) \
253 (BT_GAP_US_TO_PER_ADV_INTERVAL((_interval) * USEC_PER_MSEC))
263#define BT_GAP_MS_TO_PER_ADV_SYNC_TIMEOUT(_timeout) ((uint16_t)((_timeout) / 10U))
273#define BT_GAP_US_TO_PER_ADV_SYNC_TIMEOUT(_timeout) \
274 (BT_GAP_MS_TO_PER_ADV_SYNC_TIMEOUT((_timeout) / USEC_PER_MSEC))
285#define BT_GAP_US_TO_SCAN_INTERVAL(_interval) ((uint16_t)((_interval) / 625U))
296#define BT_GAP_MS_TO_SCAN_INTERVAL(_interval) \
297 (BT_GAP_US_TO_SCAN_INTERVAL((_interval) * USEC_PER_MSEC))
308#define BT_GAP_US_TO_SCAN_WINDOW(_window) ((uint16_t)((_window) / 625U))
319#define BT_GAP_MS_TO_SCAN_WINDOW(_window) (BT_GAP_US_TO_SCAN_WINDOW((_window) * USEC_PER_MSEC))
329#define BT_GAP_US_TO_CONN_INTERVAL(_interval) ((uint16_t)((_interval) / 1250U))
339#define BT_GAP_MS_TO_CONN_INTERVAL(_interval) \
340 (BT_GAP_US_TO_CONN_INTERVAL((_interval) * USEC_PER_MSEC))
350#define BT_GAP_MS_TO_CONN_TIMEOUT(_timeout) ((uint16_t)((_timeout) / 10U))
360#define BT_GAP_US_TO_CONN_TIMEOUT(_timeout) (BT_GAP_MS_TO_CONN_TIMEOUT((_timeout) / USEC_PER_MSEC))
370#define BT_GAP_US_TO_CONN_EVENT_LEN(_event_len) ((uint16_t)((_event_len) / 625U))
380#define BT_GAP_MS_TO_CONN_EVENT_LEN(_event_len) \
381 (BT_GAP_US_TO_CONN_EVENT_LEN((_event_len) * USEC_PER_MSEC))
427#define BT_LE_SUPP_FEAT_40_ENCODE(w64) BT_BYTES_LIST_LE40(w64)
447#define BT_LE_SUPP_FEAT_32_ENCODE(w64) BT_BYTES_LIST_LE32(w64)
468#define BT_LE_SUPP_FEAT_24_ENCODE(w64) BT_BYTES_LIST_LE24(w64)
489#define BT_LE_SUPP_FEAT_16_ENCODE(w64) BT_BYTES_LIST_LE16(w64)
510#define BT_LE_SUPP_FEAT_8_ENCODE(w64) \
511 (((w64) >> 0) & 0xFF)
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.")
Bluetooth Assigned Numbers, codes and identifiers.
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