ble_gapm.h
Go to the documentation of this file.
1 /**
2 ****************************************************************************************
3 *
4 * @file ble_gapm.h
5 *
6 * @brief BLE GAPM API
7 *
8 ****************************************************************************************
9 * @attention
10 #####Copyright (c) 2019 GOODIX
11 All rights reserved.
12
13 Redistribution and use in source and binary forms, with or without
14 modification, are permitted provided that the following conditions are met:
15 * Redistributions of source code must retain the above copyright
16 notice, this list of conditions and the following disclaimer.
17 * Redistributions in binary form must reproduce the above copyright
18 notice, this list of conditions and the following disclaimer in the
19 documentation and/or other materials provided with the distribution.
20 * Neither the name of GOODIX nor the names of its contributors may be used
21 to endorse or promote products derived from this software without
22 specific prior written permission.
23
24 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
28 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 POSSIBILITY OF SUCH DAMAGE.
35 *****************************************************************************************
36 */
37
38 /**
39 * @addtogroup BLE
40 * @{
41 * @brief Definitions and prototypes for the BLE SDK interface.
42 */
43
44 /**
45 * @addtogroup BLE_GAP Generic Access Profile (GAP)
46 * @{
47 * @brief Definitions and prototypes for the GAP interface.
48 */
49
50 #ifndef __BLE_GAPM_H__
51 #define __BLE_GAPM_H__
52
53 /*
54 * INCLUDE FILES
55 ****************************************************************************************
56 */
57 #include "ble_error.h"
58 #include "ble_gapc.h"
59 #include <stdint.h> // standard definitions
60 #include <stddef.h> // standard definitions
61
62
63 /**
64 @addtogroup BLE_GAPM Generic Access Profile (GAP) Management
65 @{
66 @brief Definitions and prototypes for the GAP Management interface.
67 */
68
69 /** @addtogroup BLE_GAPM_DEFINES Defines
70 * @{ */
71
72 #define CO_BIT(pos)(1UL<<(pos)) /**< Bit operation helper. */
73 #define BLE_GAP_MAX_ADV_NUM 5 /**< Maximal advertising instance number. */
74 #define BLE_GAP_MAX_PER_SYNC_NUM 5 /**< Maximal periodic syncronization instance number. */
75 #define BLE_GAP_MAX_WL_NUM 10 /**< Maximal white list number. */
76 #define BLE_GAP_MAX_PRD_ADV_NUM 4 /**< Maximal periodic advertising list number. */
77 #define BLE_GAP_MAX_KEY_LEN 16 /**< The key length. */
78 #define BLE_GAP_INVALID_ADV_IDX 0xFF /**< Invalid adv index. */
79 #define BLE_GAP_DEVNAME_DEFAULT "GOODIX_BLE" /**< Default device name value. */
80 #define BLE_GAP_DEVNAME_MAX_LEN 248 /**< Maximal length of device name. */
81
82 #define BLE_GAP_MAX_ANTENNA_ID_NUM 0x4B /**< Maximal number of Antenna IDs. */
83
84 #define BLE_APPEARANCE_UNKNOWN 0 /**< Unknown. */
85 #define BLE_APPEARANCE_GENERIC_PHONE 64 /**< Generic Phone. */
86 #define BLE_APPEARANCE_GENERIC_COMPUTER 128 /**< Generic Computer. */
87 #define BLE_APPEARANCE_GENERIC_WATCH 192 /**< Generic Watch. */
88 #define BLE_APPEARANCE_WATCH_SPORTS_WATCH 193 /**< Watch: Sports Watch. */
89 #define BLE_APPEARANCE_GENERIC_CLOCK 256 /**< Generic Clock. */
90 #define BLE_APPEARANCE_GENERIC_DISPLAY 320 /**< Generic Display. */
91 #define BLE_APPEARANCE_GENERIC_REMOTE_CONTROL 384 /**< Generic Remote Control. */
92 #define BLE_APPEARANCE_GENERIC_EYE_GLASSES 448 /**< Generic Eye-glasses. */
93 #define BLE_APPEARANCE_GENERIC_TAG 512 /**< Generic Tag. */
94 #define BLE_APPEARANCE_GENERIC_KEYRING 576 /**< Generic Keyring. */
95 #define BLE_APPEARANCE_GENERIC_MEDIA_PLAYER 640 /**< Generic Media Player. */
96 #define BLE_APPEARANCE_GENERIC_BARCODE_SCANNER 704 /**< Generic Barcode Scanner. */
97 #define BLE_APPEARANCE_GENERIC_THERMOMETER 768 /**< Generic Thermometer. */
98 #define BLE_APPEARANCE_THERMOMETER_EAR 769 /**< Thermometer: Ear. */
99 #define BLE_APPEARANCE_GENERIC_HEART_RATE_SENSOR 832 /**< Generic Heart Rate Sensor. */
100 #define BLE_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT 833 /**< Heart Rate Sensor: Heart Rate Belt. */
101 #define BLE_APPEARANCE_GENERIC_BLOOD_PRESSURE 896 /**< Generic Blood Pressure. */
102 #define BLE_APPEARANCE_BLOOD_PRESSURE_ARM 897 /**< Blood Pressure: Arm. */
103 #define BLE_APPEARANCE_BLOOD_PRESSURE_WRIST 898 /**< Blood Pressure: Wrist. */
104 #define BLE_APPEARANCE_GENERIC_HID 960 /**< Human Interface Device (HID). */
105 #define BLE_APPEARANCE_HID_KEYBOARD 961 /**< Keyboard (HID Subtype). */
106 #define BLE_APPEARANCE_HID_MOUSE 962 /**< Mouse (HID Subtype). */
107 #define BLE_APPEARANCE_HID_JOYSTICK 963 /**< Joystick (HID Subtype). */
108 #define BLE_APPEARANCE_HID_GAMEPAD 964 /**< Gamepad (HID Subtype). */
109 #define BLE_APPEARANCE_HID_DIGITIZERSUBTYPE 965 /**< Digitizer Tablet (HID Subtype). */
110 #define BLE_APPEARANCE_HID_CARD_READER 966 /**< Card Reader (HID Subtype). */
111 #define BLE_APPEARANCE_HID_DIGITAL_PEN 967 /**< Digital Pen (HID Subtype). */
112 #define BLE_APPEARANCE_HID_BARCODE 968 /**< Barcode Scanner (HID Subtype). */
113 #define BLE_APPEARANCE_GENERIC_GLUCOSE_METER 1024 /**< Generic Glucose Meter. */
114 #define BLE_APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR 1088 /**< Generic Running Walking Sensor. */
115 #define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_IN_SHOE 1089 /**< Running Walking Sensor: In-Shoe. */
116 #define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_SHOE 1090 /**< Running Walking Sensor: On-Shoe. */
117 #define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_HIP 1091 /**< Running Walking Sensor: On-Hip. */
118 #define BLE_APPEARANCE_GENERIC_CYCLING 1152 /**< Generic Cycling. */
119 #define BLE_APPEARANCE_CYCLING_CYCLING_COMPUTER 1153 /**< Cycling: Cycling Computer. */
120 #define BLE_APPEARANCE_CYCLING_SPEED_SENSOR 1154 /**< Cycling: Speed Sensor. */
121 #define BLE_APPEARANCE_CYCLING_CADENCE_SENSOR 1155 /**< Cycling: Cadence Sensor. */
122 #define BLE_APPEARANCE_CYCLING_POWER_SENSOR 1156 /**< Cycling: Power Sensor. */
123 #define BLE_APPEARANCE_CYCLING_SPEED_CADENCE_SENSOR 1157 /**< Cycling: Speed and Cadence Sensor. */
124 #define BLE_APPEARANCE_GENERIC_PULSE_OXIMETER 3136 /**< Generic Pulse Oximeter. */
125 #define BLE_APPEARANCE_PULSE_OXIMETER_FINGERTIP 3137 /**< Fingertip (Pulse Oximeter subtype). */
126 #define BLE_APPEARANCE_PULSE_OXIMETER_WRIST_WORN 3138 /**< Wrist Worn(Pulse Oximeter subtype). */
127 #define BLE_APPEARANCE_GENERIC_WEIGHT_SCALE 3200 /**< Generic Weight Scale. */
128 #define BLE_APPEARANCE_GENERIC_OUTDOOR_SPORTS_ACT 5184 /**< Generic Outdoor Sports Activity. */
129 #define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_DISP 5185 /**< Location Display Device (Outdoor Sports Activity subtype). */
130 #define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_DISP 5186 /**< Location and Navigation Display Device (Outdoor Sports Activity subtype). */
131 #define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_POD 5187 /**< Location Pod (Outdoor Sports Activity subtype). */
132 #define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_POD 5188 /**< Location and Navigation Pod (Outdoor Sports Activity subtype). */
133
134 /**@defgroup BLE_GAP_ADV_CHANNEL GAP ADV CHANNEL (bitmask)
135 * @{ */
136 #define BLE_GAP_ADV_CHANNEL_37 0x01 /**< Advertising Channel 37 (2402MHz). */
137 #define BLE_GAP_ADV_CHANNEL_38 0x02 /**< Advertising Channel 38 (2426MHz). */
138 #define BLE_GAP_ADV_CHANNEL_39 0x04 /**< Advertising Channel 39 (2480MHz). */
139 #define BLE_GAP_ADV_CHANNEL_37_38_39 0x07 /**< Advertising Channel 37, 38, 39. */
140 /**@} */
141 /**@} */
142
143 /** @addtogroup BLE_GAPM_ENUMERATIONS Enumerations
144 * @{ */
145 /**
146 * @brief GAP role options
147 */
148 typedef enum
149 {
150 BLE_GAP_ROLE_NONE = 0x00, /**< No role set yet. */
151 BLE_GAP_ROLE_OBSERVER = 0x01, /**< Observer role. */
152 BLE_GAP_ROLE_BROADCASTER = 0x02, /**< Broadcaster role. */
153 BLE_GAP_ROLE_CENTRAL = (0x04 | BLE_GAP_ROLE_OBSERVER), /**< Master/Central role. */
154 BLE_GAP_ROLE_PERIPHERAL = (0x08 | BLE_GAP_ROLE_BROADCASTER), /**< Peripheral/Slave role. */
155 BLE_GAP_ROLE_ALL = (BLE_GAP_ROLE_CENTRAL | BLE_GAP_ROLE_PERIPHERAL), /**< Device has all roles, both peripheral and central. */
156 } ble_gap_role_t;
157
158 /**
159 * @brief Own BD address source of the device
160 */
161 typedef enum
162 {
163 BLE_GAP_OWN_ADDR_STATIC = 0, /**< Public or Private Static Address according to device address configuration. */
164 BLE_GAP_OWN_ADDR_GEN_RSLV, /**< Generated resolvable private random address. */
165 BLE_GAP_OWN_ADDR_GEN_NON_RSLV, /**< Generated non-resolvable private random address. */
166 } ble_gap_own_addr_t;
167
168 /**
169 * @brief Write permissions of the device name characteristic
170 */
171 typedef enum
172 {
173 BLE_GAP_WRITE_PERM_DISABLE = 0, /**< Disable write access. */
174 BLE_GAP_WRITE_PERM_NOAUTH, /**< LE Security Mode 1, Level 1. Link does not need to be encrypted or authenticated. */
175 BLE_GAP_WRITE_PERM_UNAUTH, /**< LE Security Mode 1, Level 2. Link needs to be encrypted, but not to be authenticated. */
176 BLE_GAP_WRITE_PERM_AUTH, /**< LE Security Mode 1, Level 3. Link needs to be encrypted and authenticated (MITM). */
177 BLE_GAP_WRITE_PERM_SEC_CON, /**< LE Security Mode 1, Level 4. Link needs to be encrypted and authenticated (secure connections). */
178 } ble_gap_dev_name_write_perm_t;
179
180 /**
181 * @brief Advertising data type
182 */
183 typedef enum
184 {
185 BLE_GAP_ADV_DATA_TYPE_DATA = 0, /**< Advertising data. */
186 BLE_GAP_ADV_DATA_TYPE_SCAN_RSP, /**< Scan response data. */
187 BLE_GAP_ADV_DATA_TYPE_PER_DATA, /**< Periodic advertising data. */
188 } ble_gap_adv_data_type_t;
189
190
191 /**@brief Get device parameters operation code. */
192 typedef enum
193 {
194 BLE_GAP_GET_DEV_VERSION = 0, /**< Get version information for the local Controller. */
195 BLE_GAP_GET_DEV_BDADDR, /**< Get local device BD Address. */
196 //BLE_GAP_GET_DEV_ADV_TX_POWER, /**< Get the transmit power level used for LE advertising channel packets. */
197 BLE_GAP_GET_SUGGESTED_DFLT_LE_DATA_LEN, /**< Get suggested values (SuggestedMaxTxOctets and SuggestedMaxTxTime)
198 for the Controller's maximum transmitted number of payload octets
199 and maximum packet transmission time to be used for new connections. */
200 BLE_GAP_GET_MAX_LE_DATA_LEN, /**< Get the Controller' maximum supported payload octets and packet duration
201 times for transmission and reception (supportedMaxTxOctets and supportedMaxTxTime,
202 supportedMaxRxOctets, and supportedMaxRxTime). */
203 BLE_GAP_GET_NB_ADV_SETS, /**< Read the maximum number of advertising sets currently supported by the controller. */
204 BLE_GAP_GET_MAX_LE_ADV_DATA_LEN, /**< Get maximum data length for advertising data. */
205 BLE_GAP_GET_DEV_TX_POWER, /**< Read the minimum and maximum transmit powers supported by the Controller. */
206 BLE_GAP_GET_DEV_RF_RF_PATH_COMP, /**< Get RF path compensation values. */
207 BLE_GAP_GET_ANTENNA_INFO, /**< Get antenna information. */
208 } ble_gap_dev_info_get_type_t;
209
210 /**@brief GAP advertising modes. */
211 typedef enum
212 {
213 BLE_GAP_ADV_TYPE_ADV_IND = 0, /**< Undirected connectable and scannable mode. */
214 BLE_GAP_ADV_TYPE_ADV_NONCONN_IND, /**< Non-connectable and non-scanable mode. */
215 BLE_GAP_ADV_TYPE_ADV_SCAN_IND, /**< Undirected scannable mode. */
216 BLE_GAP_ADV_TYPE_ADV_HIGH_DIRECT_IND, /**< Directed high duty cycle mode. */
217 BLE_GAP_ADV_TYPE_ADV_LOW_DIRECT_IND, /**< Directed low duty cycle mode. */
218 } ble_gap_adv_mode_t;
219
220 /**@brief GAP discoverability modes. */
221 typedef enum
222 {
223 BLE_GAP_DISC_MODE_NON_DISCOVERABLE = 0, /**< Non-discoverable mode. */
224 BLE_GAP_DISC_MODE_GEN_DISCOVERABLE, /**< General-discoverable mode. */
225 BLE_GAP_DISC_MODE_LIM_DISCOVERABLE, /**< Limited-discoverable mode. */
226 BLE_GAP_DISC_MODE_BROADCASTER, /**< Broadcaster mode. */
227 } ble_gap_disc_mode_t;
228
229 /**
230 * @brief Advertising filter policy
231 */
232 typedef enum
233 {
234 BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_ANY = 0, /**< Allow both scan and connection requests from anyone. */
235 BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_ANY, /**< Allow scan req from white-list devices only and connection req from anyone. */
236 BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_WLST, /**< Allow scan req from anyone and connection req from white-list devices only. */
237 BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_WLST, /**< Allow scan and connection requests from white-list devices only. */
238 } ble_gap_adv_filter_policy_t;
239
240 /**
241 * @brief Specify what PHY the Controller has changed for TX/RX. HCI:7.7.65.12
242 */
243 typedef enum
244 {
245 BLE_GAP_PHY_UNDEF_VALUE = 0, /**< Undefined LE PHY. */
246 BLE_GAP_PHY_1MBPS_VALUE = 1, /**< LE 1M PHY. */
247 BLE_GAP_PHY_2MBPS_VALUE = 2, /**< LE 2M PHY. */
248 BLE_GAP_PHY_CODED_VALUE = 3, /**< LE Coded PHY. */
249 } ble_gap_le_phy_value_t;
250
251 /**
252 * @brief Advertising type
253 */
254 typedef enum
255 {
256 BLE_GAP_ADV_TYPE_LEGACY = 0, /**< Legacy advertising. */
257 BLE_GAP_ADV_TYPE_EXTENDED, /**< Extended advertising. */
258 BLE_GAP_ADV_TYPE_PERIODIC, /**< Periodic advertising. */
259 } ble_gap_adv_type_t;
260
261 /**
262 * @brief Advertising properties bit field and bit positions
263 */
264 typedef enum
265 {
266 BLE_GAP_ADV_PROP_CONNECTABLE_POS = 0, /**< Indicate that advertising is connectable, reception of CONNECT_REQ or
267 UX_CONNECT_REQ PDUs is accepted. Not applicable for periodic advertising. */
268 BLE_GAP_ADV_PROP_SCANNABLE_POS, /**< Indicate that advertising is scannable, reception of SCAN_REQ or AUX_SCAN_REQ PDUs is accepted. */
269 BLE_GAP_ADV_PROP_DIRECTED_POS, /**< Indicate that advertising targets at a specific device. Only applicable in following cases:
270 - Legacy advertising: if connectable
271 - Extended advertising: connectable or (non-connectable and non-discoverable). */
272 BLE_GAP_ADV_PROP_HDC_POS, /**< Indicate that High Duty Cycle has to be used for advertising on primary channel,
273 applicable only if created advertising is not an extended advertising. */
274 BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_POS, /**< Use legacy advertising PDUs. */
275 BLE_GAP_ADV_PROP_ANONYMOUS_POS, /**< Enable anonymous mode. Device address will not appear in sending PDUs.
276 Valid only if the created advertising is an extended advertising. */
277 BLE_GAP_ADV_PROP_TX_PWR_POS, /**< Include TX power in the extended header of the advertising PDU.
278 Valid only if the created advertising is not a legacy advertising. */
279 BLE_GAP_ADV_PROP_PER_TX_PWR_POS, /**< Include TX power in the periodic advertising PDU.
280 Valid only if the created advertising is a periodic advertising. */
281 BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_POS, /**< Indicate if application must be informed about receiving scan request PDUs. */
282 } ble_gap_adv_prop_pos_t;
283
284 /**
285 * @brief Advertising properties bit field bit value
286 */
287 typedef enum
288 {
289 BLE_GAP_ADV_PROP_CONNECTABLE_BIT = CO_BIT(BLE_GAP_ADV_PROP_CONNECTABLE_POS),
290 BLE_GAP_ADV_PROP_SCANNABLE_BIT = CO_BIT(BLE_GAP_ADV_PROP_SCANNABLE_POS),
291 BLE_GAP_ADV_PROP_DIRECTED_BIT = CO_BIT(BLE_GAP_ADV_PROP_DIRECTED_POS),
292 BLE_GAP_ADV_PROP_HDC_BIT = CO_BIT(BLE_GAP_ADV_PROP_HDC_POS),
293 BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_BIT = CO_BIT(BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_POS),
294 BLE_GAP_ADV_PROP_ANONYMOUS_BIT = CO_BIT(BLE_GAP_ADV_PROP_ANONYMOUS_POS),
295 BLE_GAP_ADV_PROP_TX_PWR_BIT = CO_BIT(BLE_GAP_ADV_PROP_TX_PWR_POS),
296 BLE_GAP_ADV_PROP_PER_TX_PWR_BIT = CO_BIT(BLE_GAP_ADV_PROP_PER_TX_PWR_POS),
297 BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_BIT = CO_BIT(BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_POS),
298 } ble_gap_adv_prop_t;
299
300 /**
301 * @brief Scanning types
302 */
303 typedef enum
304 {
305 BLE_GAP_SCAN_ACTIVE = 0, /**< Active scan type. */
306 BLE_GAP_SCAN_PASSIVE, /**< Passive scan type. */
307 } ble_gap_scan_type_t;
308
309 /**
310 * @brief Scanning modes
311 */
312 typedef enum
313 {
314 BLE_GAP_SCAN_GEN_DISC_MODE = 0, /**< General discoverable mode. */
315 BLE_GAP_SCAN_LIM_DISC_MODE, /**< Limited discoverable mode. */
316 BLE_GAP_SCAN_OBSERVER_MODE, /**< Observer mode. */
317 } ble_gap_scan_mode_t;
318
319 /**
320 * @brief Duplicate filter policy
321 */
322 typedef enum
323 {
324 BLE_GAP_SCAN_FILT_DUPLIC_DIS = 0, /**< Disable filtering of duplicate packets. */
325 BLE_GAP_SCAN_FILT_DUPLIC_EN, /**< Enable filtering of duplicate packets. */
326 } ble_gap_scan_dup_filt_policy_t;
327
328 /**
329 * @brief Extended scanning types
330 */
331 typedef enum
332 {
333 BLE_GAP_EXT_SCAN_TYPE_GEN_DISC = 0, /**< General discovery. */
334 BLE_GAP_EXT_SCAN_TYPE_LIM_DISC, /**< Limited discovery. */
335 BLE_GAP_EXT_SCAN_TYPE_OBSERVER, /**< Observer. */
336 BLE_GAP_EXT_SCAN_TYPE_SEL_OBSERVER, /**< Selective observer. */
337 BLE_GAP_EXT_SCAN_TYPE_CONN_DISC, /**< Connectable discovery. */
338 BLE_GAP_EXT_SCAN_TYPE_SEL_CONN_DISC, /**< Selective connectable discovery. */
339 } ble_gap_ext_scan_type_t;
340
341 /**
342 * @brief Scanning properties bit field bit value
343 */
344 typedef enum
345 {
346 BLE_GAP_EXT_SCAN_PROP_PHY_1M_BIT = (1 << 0), /**< Scan advertisement on the LE 1M PHY. */
347 BLE_GAP_EXT_SCAN_PROP_PHY_CODED_BIT = (1 << 1), /**< Scan advertisement on the LE Coded PHY. */
348 BLE_GAP_EXT_SCAN_PROP_ACTIVE_1M_BIT = (1 << 2), /**< Active scan on LE 1M PHY (scan request PDUs may be sent). */
349 BLE_GAP_EXT_SCAN_PROP_ACTIVE_CODED_BIT = (1 << 3), /**< Active scan on LE Coded PHY (scan request PDUs may be sent). */
350 BLE_GAP_EXT_SCAN_PROP_ACCEPT_RPA_BIT = (1 << 4), /**< Accept directed advertising packets if the uesd RPA and target address cannot be solved by the controller. */
351 BLE_GAP_EXT_SCAN_PROP_FILT_TRUNC_BIT = (1 << 5), /**< Filter truncated advertising or scan response reports. */
352 } ble_gap_scan_prop_t;
353
354 /**
355 * @brief Filtering policy for duplicated packets
356 */
357 typedef enum
358 {
359 BLE_GAP_EXT_DUP_FILT_DIS = 0, /**< Disable filtering of duplicated packets. */
360 BLE_GAP_EXT_DUP_FILT_EN, /**< Enable filtering of duplicated packets. */
361 BLE_GAP_EXT_DUP_FILT_EN_PERIOD, /**< Enable filtering of duplicated packets, reset for each scan period. */
362 } ble_gap_ext_scan_dup_filt_policy_t;
363
364 /**
365 * @brief Initiating types
366 */
367 typedef enum
368 {
369 BLE_GAP_INIT_TYPE_DIRECT_CONN_EST = 0, /**< Direct connection establishment: establish a connection with an indicated device. */
370 BLE_GAP_INIT_TYPE_AUTO_CONN_EST, /**< Automatic connection establishment: establish a connection with all devices whose address is present in the white list. */
371 BLE_GAP_INIT_TYPE_NAME_DISC, /**< Name discovery: establish a connection with an indicated device in order to read content of its device name characteristic. Connection is closed once this operation is stopped. */
372 } ble_gap_init_type_t;
373
374 /**
375 * @brief Initiating properties
376 */
377 typedef enum
378 {
379 BLE_GAP_INIT_PROP_1M_BIT = (1 << 0), /**< Scan connectable advertisements on the LE 1M PHY. Connection parameters for the LE 1M PHY are provided. */
380 BLE_GAP_INIT_PROP_2M_BIT = (1 << 1), /**< Connection parameters for the LE 2M PHY are provided. */
381 BLE_GAP_INIT_PROP_CODED_BIT = (1 << 2), /**< Scan connectable advertisements on the LE Coded PHY. Connection parameters for the LE Coded PHY are provided. */
382 } ble_gap_init_prop_t;
383
384 /**
385 * @brief Scanning properties bit field bit value
386 */
387 enum gap_scan_prop
388 {
389 BLE_GAP_SCAN_PROP_PHY_1M_BIT = (1 << 0), /**< Scan advertisement on the LE 1M PHY. */
390 BLE_GAP_SCAN_PROP_PHY_CODED_BIT = (1 << 1), /**< Scan advertisement on the LE Coded PHY. */
391 BLE_GAP_SCAN_PROP_ACTIVE_1M_BIT = (1 << 2), /**< Active scan on LE 1M PHY (scan request PDUs may be sent). */
392 BLE_GAP_SCAN_PROP_ACTIVE_CODED_BIT = (1 << 3), /**< Active scan on LE Coded PHY (scan request PDUs may be sent). */
393 BLE_GAP_SCAN_PROP_ACCEPT_RPA_BIT = (1 << 4), /**< Accept directed advertising packets if the used RPA and target address cannot be solved by the controller. */
394 BLE_GAP_SCAN_PROP_FILT_TRUNC_BIT = (1 << 5), /**< Filter truncated advertising or scan response reports. */
395 };
396
397 /**
398 * @brief Periodic synchronization types
399 */
400 typedef enum
401 {
402 BLE_GAP_PER_SYNC_TYPE_GENERAL = 0, /**< Do not use periodic advertiser list for synchronization. */
403 BLE_GAP_PER_SYNC_TYPE_SELECTIVE, /**< Use periodic advertiser list for synchronization. */
404 BLE_GAP_PER_SYNC_TYPE_PAST, /**< Use Periodic advertising sync transfer information send through connection for synchronization. */
405 } ble_gap_per_sync_type_t;
406
407 /**
408 * @brief Constant Tone Extension sync filtering type
409 */
410 enum gap_sync_cte_type
411 {
412 BLE_GAP_NO_SYNC_IGNORE = 0, /**< The presence or absence of a Constant Tone Extension is irrelevant. */
413 BLE_GAP_NO_SYNC_WITH_AOA = (1 << 0), /**< Do not sync to packets with an AoA Constant Tone Extension. */
414 BLE_GAP_NO_SYNC_WITH_AOD_1US_SLOT = (1 << 1), /**< Do not sync to packets with an AoD Constant Tone Extension with 1us slots. */
415 BLE_GAP_NO_SYNC_WITH_AOD_2US_SLOT = (1 << 2), /**< Do not sync to packets with an AoD Constant Tone Extension with 2us slots. */
416 BLE_GAP_NO_SYNC_WITHOUT_CTE = (1 << 4), /**< Do not sync to packets without a Constant Tone Extension. */
417 };
418
419 /**
420 * @brief Periodic advertising sync information reception mode
421 */
422 enum gap_per_adv_sync_info_rec_mode
423 {
424 BLE_GAP_SYNC_REP_DIS = 0x01, /**< synchronize to the periodic advertising, per adv report events will be disabled. */
425 BLE_GAP_SYNC_REP_EN = 0x02, /**< synchronize to the periodic advertising, per adv report events will be enabled, duplicate filtering disabled. */
426 BLE_GAP_SYNC_REP_EN_DUP = 0x03, /**< synchronize to the periodic advertising, per adv report events will be enabled, duplicate filtering enabled. */
427 };
428
429 /**
430 * @brief Supported AoA AoD switching sampling rate
431 */
432 enum gap_switch_sampling_rate
433 {
434 BLE_GAP_AOD_TX_1_US = (1 << 0), /**< 1 us switching supported for AoD transmission. */
435 BLE_GAP_AOD_RX_1_US = (1 << 1), /**< 1 us switching supported for AoD reception. */
436 BLE_GAP_AOA_RX_1_US = (1 << 2), /**< 1 us switching and sampling supported for AoA reception. */
437 };
438
439 /**
440 * @brief Slot duration type for IQ sampling
441 */
442 enum gap_slot_dur_type
443 {
444 BLE_GAP_SLOT_DURA_1US = 0x01, /**< Switching and sampling slots are 1 us each. */
445 BLE_GAP_SLOT_DURA_2US = 0x02, /**< Switching and sampling slots are 2 us each. */
446 };
447
448 /**
449 * @brief Security level types
450 */
451 enum gap_sec_lvl_type
452 {
453 BLE_GAP_SEC_LVL_NO_SECURITY = 0, /**< No encryption or auth. */
454 BLE_GAP_SEC_LVL_ENC_NO_AUTH, /**< Encryption with no auth. */
455 BLE_GAP_SEC_LVL_LE_ENC_AUTH, /**< Legacy encryption with auth. */
456 BLE_GAP_SEC_LVL_SC_ENC_AUTH, /**< Security connection encryption with auth. */
457 };
458
459 /**
460 * @brief GAP advertising types
461 */
462 typedef enum
463 {
464 BLE_GAP_AD_TYPE_FLAGS = 0x01, /**< Flag. */
465 BLE_GAP_AD_TYPE_MORE_16_BIT_UUID = 0x02, /**< Use of more than 16-bit UUID. */
466 BLE_GAP_AD_TYPE_COMPLETE_LIST_16_BIT_UUID = 0x03, /**< Complete List of 16-bit UUID. */
467 BLE_GAP_AD_TYPE_MORE_32_BIT_UUID = 0x04, /**< Use of more than 32-bit UUD. */
468 BLE_GAP_AD_TYPE_COMPLETE_LIST_32_BIT_UUID = 0x05, /**< Complete List of 32-bit UUID. */
469 BLE_GAP_AD_TYPE_MORE_128_BIT_UUID = 0x06, /**< Use of more than 128-bit UUID. */
470 BLE_GAP_AD_TYPE_COMPLETE_LIST_128_BIT_UUID = 0x07, /**< Complete List of 128-bit UUID. */
471 BLE_GAP_AD_TYPE_SHORTENED_NAME = 0x08, /**< Shortened Device name. */
472 BLE_GAP_AD_TYPE_COMPLETE_NAME = 0x09, /**< Complete Device name. */
473 BLE_GAP_AD_TYPE_TRANSMIT_POWER = 0x0A, /**< Transmit power. */
474 BLE_GAP_AD_TYPE_CLASS_OF_DEVICE = 0x0D, /**< Class of device. */
475 BLE_GAP_AD_TYPE_SP_HASH_C = 0x0E, /**< Simple Pairing Hash C. */
476 BLE_GAP_AD_TYPE_SP_RANDOMIZER_R = 0x0F, /**< Simple Pairing Randomizer. */
477 BLE_GAP_AD_TYPE_TK_VALUE = 0x10, /**< Temporary key value. */
478 BLE_GAP_AD_TYPE_OOB_FLAGS = 0x11, /**< Out of Band Flag. */
479 BLE_GAP_AD_TYPE_SLAVE_CONN_INT_RANGE = 0x12, /**< Slave connection interval range. */
480 BLE_GAP_AD_TYPE_RQRD_16_BIT_SVC_UUID = 0x14, /**< Require 16-bit service UUID. */
481 BLE_GAP_AD_TYPE_RQRD_32_BIT_SVC_UUID = 0x1F, /**< Require 32-bit service UUID. */
482 BLE_GAP_AD_TYPE_RQRD_128_BIT_SVC_UUID = 0x15, /**< Require 128-bit service UUID. */
483 BLE_GAP_AD_TYPE_SERVICE_16_BIT_DATA = 0x16, /**< Service data 16-bit UUID. */
484 BLE_GAP_AD_TYPE_SERVICE_32_BIT_DATA = 0x20, /**< Service data 32-bit UUID. */
485 BLE_GAP_AD_TYPE_SERVICE_128_BIT_DATA = 0x21, /**< Service data 128-bit UUID. */
486 BLE_GAP_AD_TYPE_PUB_TGT_ADDR = 0x17, /**< Public Target Address. */
487 BLE_GAP_AD_TYPE_RAND_TGT_ADDR = 0x18, /**< Random Target Address. */
488 BLE_GAP_AD_TYPE_APPEARANCE = 0x19, /**< Appearance. */
489 BLE_GAP_AD_TYPE_ADV_INTV = 0x1A, /**< Advertising Interval. */
490 BLE_GAP_AD_TYPE_LE_BT_ADDR = 0x1B, /**< LE Bluetooth Device Address. */
491 BLE_GAP_AD_TYPE_LE_ROLE = 0x1C, /**< LE Role. */
492 BLE_GAP_AD_TYPE_SPAIR_HASH = 0x1D, /**< Simple Pairing Hash C-256. */
493 BLE_GAP_AD_TYPE_SPAIR_RAND = 0x1E, /**< Simple Pairing Randomizer R-256. */
494 BLE_GAP_AD_TYPE_3D_INFO = 0x3D, /**< 3D Information Data. */
495
496 BLE_GAP_AD_TYPE_MANU_SPECIFIC_DATA = 0xFF, /**< Manufacturer specific data. */
497 } ble_gap_ad_type_t;
498
499 /**
500 * @brief AD Type Flag - Bit mask.
501 */
502 typedef enum
503 {
504 BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE = 0x01, /**< Limited discovery flag: AD Flag. */
505 BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE = 0x02, /**< General discovery flag: AD Flag. */
506 BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED = 0x04, /**< Legacy BT not supported: AD Flag. */
507 BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_CONTROLLER = 0x08, /**< Dual mode for controller supported (BR/EDR/LE): AD Flag. */
508 BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_HOST = 0x10, /**< Dual mode for host supported (BR/EDR/LE): AD Flag. */
509 } ble_gap_adv_flags_t;
510
511 /**
512 * @brief Privacy mode.
513 */
514
515 typedef enum
516 {
517 BLE_GAP_PRIVACY_MODE_NETWORK= 0x00, /**< Set to the network privacy mode for the peer device. */
518 BLE_GAP_PRIVACY_MODE_DEVICE = 0x01, /**< Set to the device privacy mode for the peer device. */
519 } ble_gap_privacy_mode_t;
520
521 /**
522 * @brief Possible roles of the activity.
523 */
524 typedef enum
525 {
526 BLE_GAP_ACTIVITY_ROLE_ADV = 0, /**< Adertise role. */
527 BLE_GAP_ACTIVITY_ROLE_CON = 1, /**< Connect role. */
528 BLE_GAP_ACTIVITY_ROLE_SCAN_INIT = 2, /**< Scann role. */
529 BLE_GAP_ACTIVITY_ROLE_UNKNOWN = 0xf, /**< Unknown role. */
530 } ble_gap_actv_role_t;
531
532 /**
533 * @brief Activity type.
534 */
535 typedef enum
536 {
537 BLE_GAP_ACTV_TYPE_ADV = 0,
538 BLE_GAP_ACTV_TYPE_SCAN,
539 BLE_GAP_ACTV_TYPE_INIT,
540 BLE_GAP_ACTV_TYPE_PER_SYNC,
541 } ble_gap_actv_type_t;
542 /** @} */
543
544 /**@addtogroup BLE_GAPM_STRUCTURES Structures
545 * @{ */
546
547 /**
548 * @brief Advertising parameters for legacy advertising
549 */
550 typedef struct
551 {
552 uint8_t adv_mode; /**< Advertising mode (see enum @ref ble_gap_adv_mode_t). */
553 uint8_t disc_mode; /**< Discovery mode (see enum @ref ble_gap_disc_mode_t). */
554 uint8_t filter_pol; /**< Advertising filtering policy (see enum @ref ble_gap_adv_filter_policy_t). */
555 ble_gap_bdaddr_t peer_addr; /**< Peer address configuration (only used in case of directed advertising, or used to locate the IRK list). */
556 uint16_t adv_intv_min; /**< Minimum advertising interval (in unit of 625 μs). Must be greater than 20 ms. */
557 uint16_t adv_intv_max; /**< Maximum advertising interval (in unit of 625 μs). Must be greater than 20 ms. */
558 uint8_t chnl_map; /**< Advertising channel map. See @ref BLE_GAP_ADV_CHANNEL. */
559 bool scan_req_ind_en; /**< Indicate if the application should be informed when receiving a scan request from the scanner. */
560 int8_t max_tx_pwr; /**< Maximum power level at which the advertising packets have to be transmitted (between -127 dBm and 127 dBm).
561 For the real value, please refer to GR551x Datasheet. */
562 } ble_gap_adv_param_t;
563
564 /**
565 * @brief Configuration for advertising on primary channel
566 */
567 typedef struct
568 {
569 uint32_t adv_intv_min; /**< Minimum advertising interval (in unit of 625 μs). Must be greater than 20 ms. */
570 uint32_t adv_intv_max; /**< Maximum advertising interval (in unit of 625 μs). Must be greater than 20 ms. */
571 uint8_t chnl_map; /**< Bit field indicating the channel map. See @ref BLE_GAP_ADV_CHANNEL. */
572 ble_gap_le_phy_value_t phy; /**< Indicate on which PHY primary advertising has to be performed. See enum @ref ble_gap_le_phy_value_t.
573 Note that LE 2M PHY is not allowed and that legacy advertising only supports LE 1M PHY. */
574 } ble_gap_adv_prim_cfg_t;
575
576 /**
577 * @brief Configuration for advertising on secondary channel
578 */
579 typedef struct
580 {
581 uint8_t max_skip; /**< Maximum number of advertising events the controller can skip before sending the AUX_ADV_IND packets.
582 The range is 0x00 to 0xFF. 0x00 means that AUX_ADV_IND PDUs shall be sent prior to each advertising events. */
583 ble_gap_le_phy_value_t phy; /**< Indicate on which PHY secondary advertising has to be performed. See enum @ref ble_gap_le_phy_value_t. */
584 uint8_t adv_sid; /**< Advertising SID. Allowed range is 0x00 to 0x0F. */
585 } ble_gap_adv_second_cfg_t;
586
587 /**
588 * @brief Configuration for periodic advertising
589 */
590 typedef struct
591 {
592 uint16_t adv_intv_min; /**< Minimum advertising interval (in unit of 1.25 ms). Must be greater than 20 ms. */
593 uint16_t adv_intv_max; /**< Maximum advertising interval (in unit of 1.25 ms). Must be greater than 20 ms. */
594 bool inc_adi_flag; /**< Flag for include the ADI field in AUX_SYNC_IND PDUs. */
595 } ble_gap_adv_period_cfg_t;
596
597 /**
598 * @brief Advertising parameters for extended advertising and periodic advertising
599 */
600 typedef struct
601 {
602 uint8_t type; /**< Advertising type (see enum @ref ble_gap_adv_type_t). */
603 uint8_t disc_mode; /**< Discovery mode (see enum @ref ble_gap_disc_mode_t). */
604 uint16_t prop; /**< Bit field value provided by advertising properties. See enum @ref ble_gap_adv_prop_t for bit signification. */
605 int8_t max_tx_pwr; /**< Maximum power level at which the advertising packets have to be transmitted (support value:[-21, -14, -8, -2, 0, 1, 2, 3, 4, 5, 6, 7]). */
606 uint8_t filter_pol; /**< Advertising filtering policy (see enum @ref ble_gap_adv_filter_policy_t). */
607 ble_gap_bdaddr_t peer_addr; /**< Peer address configuration (only used in case of directed advertising or used to locate the IRK list). */
608 ble_gap_adv_prim_cfg_t prim_cfg; /**< Configuration for primary advertising. */
609 ble_gap_adv_second_cfg_t second_cfg; /**< Configuration for secondary advertising (valid only if advertising type is GAP_ADV_TYPE_EXTENDED or GAP_ADV_TYPE_PERIODIC). */
610 ble_gap_adv_period_cfg_t period_cfg; /**< Configuration for periodic advertising (valid only if advertising type is GAP_ADV_TYPE_PERIODIC). */
611 } ble_gap_ext_adv_param_t;
612
613 /**
614 * @brief Advertising timing parameter
615 */
616 typedef struct
617 {
618 uint16_t duration; /**< Advertising duration (in unit of 10ms). 0 means that advertising continues until the host disables it.
619 If Advertising discovery mode is GAP_DISC_MODE_LIM_DISCOVERABLE (see enum @ref ble_gap_disc_mode_t),
620 the setting duration range is [1, 18000].
621 If adv mode is high duty, duration time range is [1, 128]. */
622 uint8_t max_adv_evt; /**< Maximum number of extended advertising events. The controller shall attempt to send prior to terminating the extending advertising.
623 The range is [0, 255]. 0 means no maximum number of advertising events. Valid only if the created advertising is an extended advertising. */
624 } ble_gap_adv_time_param_t;
625
626 /**
627 * @brief Security key
628 */
629 typedef struct
630 {
631 uint8_t key[BLE_GAP_MAX_KEY_LEN]; /**< Key value MSB -> LSB (MSB followed by LSB). */
632 } ble_gap_sec_key_t;
633
634 /**
635 * @brief Parameters for legacy scanning
636 */
637 typedef struct
638 {
639 ble_gap_scan_type_t scan_type; /**< Active scanning or passive scanning. */
640 ble_gap_scan_mode_t scan_mode; /**< Scan mode. */
641 ble_gap_scan_dup_filt_policy_t scan_dup_filt; /**< Duplicate filter policy. */
642 bool use_whitelist; /**< Filter policy. */
643 uint16_t interval; /**< Scan interval between 0x0004 and 0x4000 in 0.625 ms (range: 2.5 ms to 10.24s). */
644 uint16_t window; /**< Scan window between 0x0004 and 0x4000 in 0.625 ms (range: 2.5 ms to 10.24s). */
645 uint16_t timeout; /**< Scan timeout should be a value between 0x0001 and 0xFFFF(unit: 10 ms). 0x0000 indicates that the timeout has no effect. */
646 } ble_gap_scan_param_t;
647
648 /**
649 * @brief Scan Window operation parameters
650 */
651 typedef struct
652 {
653 uint16_t scan_intv; /**< Scan interval between 0x0004 and 0xFFFF in 0.625 ms (range: 2.5 ms to 40.959375s). */
654 uint16_t scan_wd; /**< Scan window between 0x0004 and 0xFFFF in 0.625 ms (range: 2.5 ms to 40.959375s). */
655 } ble_gap_scan_wd_op_param_t;
656
657 /**
658 * @brief Parameters for extended scanning
659 */
660 typedef struct
661 {
662 uint8_t type; /**< Type of scanning to be started (see enum @ref ble_gap_ext_scan_type_t). */
663 uint8_t prop; /**< Properties for the scan procedure (see enum @ref ble_gap_scan_prop_t for bit signification). */
664 uint8_t dup_filt_pol; /**< Duplicate packet filtering policy (see enum @ref ble_gap_ext_scan_dup_filt_policy_t). */
665 uint8_t rsvd; /**< Reserved for future use. */
666 ble_gap_scan_wd_op_param_t scan_param_1m; /**< Scan window opening parameters for LE 1M PHY. */
667 ble_gap_scan_wd_op_param_t scan_param_coded; /**< Scan window opening parameters for LE Coded PHY. */
668 uint16_t duration; /**< Scan duration (in unit of 10ms). 0 means that the controller will scan continuously
669 until receiving a stop command from the application (10 ms to 655.35s). */
670 uint16_t period; /**< Scan period, which is the time interval between two consequent starts of a scan duration by the controller.
671 0 means that the scan procedure is not periodic, in unit of 1.28s (1.28s to 83,884.8s). */
672 } ble_gap_ext_scan_param_t;
673
674 /**
675 * @brief Periodic advertising information
676 */
677 typedef struct
678 {
679 ble_gap_bdaddr_t bd_addr; /**< Advertiser address information. */
680 uint8_t adv_sid; /**< Advertising SID. */
681 } ble_gap_period_adv_addr_cfg_t;
682
683 /**
684 * @brief Periodic advertising synchronization parameters
685 */
686 typedef struct
687 {
688 uint16_t skip; /**< Number of periodic advertising that can be skipped after a successful reception.
689 Maximum authorized value is 499. */
690 uint16_t sync_to; /**< Synchronization timeout for the periodic advertising (in unit of 10ms between 100ms and 163.84s). */
691 uint8_t type; /**< Periodic synchronization type (see enum @ref ble_gap_per_sync_type_t). */
692 uint8_t rsvd; /**< Reserved for future use.*/
693 ble_gap_period_adv_addr_cfg_t adv_addr; /**< Address of advertiser with which synchronization has to be established(used only if use_pal is false). */
694 bool report_disable; /**< true to disable periodic advertising report, false to enable them by default.*/
695 uint8_t cte_type; /**< Type of Constant Tone Extension device should sync on (@see enum gap_sync_cte_type). */
696 } ble_gap_per_sync_param_t;
697
698 /**
699 * @brief Set connectionless CTE transmit parameters
700 */
701 typedef struct
702 {
703 uint8_t cte_len; /**< CTE length (8us unit, range 0x02 to 0x14). */
704 uint8_t cte_type; /**< CTE type (0: AOA | 1: AOD-1us | 2: AOD-2us) (@see enum gap_cte_type_t). */
705 uint8_t cte_count; /**< CTE count (number of CTEs to transmit in each periodic advertising interval, range 0x01 to 0x10). */
706 uint8_t num_antenna; /**< The number of Antenna IDs in the pattern (range 0x02 to 0x4B). */
707 uint8_t *antenna_id; /**< List of Antenna IDs in the pattern. */
708 } gap_connless_cte_trans_param_t;
709
710 /**
711 * @brief Set connectionless IQ sampling enable parameter
712 */
713 typedef struct
714 {
715 uint8_t slot_dur; /**< The slot duration for IQ sampling, see enum @ref gap_slot_dur_type. */
716 uint8_t max_smaple_cte; /**< The maximum number of CTE to sample and report in each periodic advertising interval (range 0x00 to 0x10).
717 0x00: Sample and report all available CTE. */
718 uint8_t antenna_num; /**< The number of antenna IDs in the pattern (range 0x02 to 0x4B). */
719 uint8_t *antenna_id; /**< List of Antenna IDs in the pattern. */
720 } ble_gap_connless_iq_sample_param_t;
721
722 /**
723 * @brief Legacy initiating parameters
724 */
725 typedef struct
726 {
727 uint8_t type; /**< Initiating type (see enum @ref ble_gap_init_type_t). */
728 ble_gap_bdaddr_t peer_addr; /**< Peer device address. */
729 uint16_t interval_min; /**< Minimum value for the connection interval (in unit of 1.25ms). Shall be less than or equal to interval_max value.
730 Allowed range is 7.5 ms to 4s. */
731 uint16_t interval_max; /**< Maximum value for the connection interval (in unit of 1.25ms). Shall be greater than or equal to interval_min value.
732 Allowed range is 7.5 ms to 4s. */
733 uint16_t slave_latency; /**< Slave latency. Number of events that can be missed by a connected slave device. */
734 uint16_t sup_timeout; /**< Link supervision timeout (in unit of 10ms). Allowed range is 100 ms to 32s. */
735 uint16_t conn_timeout; /**< Timeout for connection establishment (in unit of 10ms).
736 Cancel the procedure if connection has not been connected when the timeout occurs.
737 0 means there is no timeout. */
738 } ble_gap_init_param_t;
739
740
741 /**
742 * @brief Connection parameters
743 */
744 typedef struct
745 {
746 uint16_t conn_intv_min; /**< Minimum value for the connection interval (in unit of 1.25ms). Shall be less than or equal to conn_intv_max value.
747 Allowed range is 7.5 ms to 4s. */
748 uint16_t conn_intv_max; /**< Maximum value for the connection interval (in unit of 1.25ms). Shall be greater than or equal to conn_intv_min value.
749 Allowed range is 7.5 ms to 4s. */
750 uint16_t conn_latency; /**< Slave latency. Number of events that can be missed by a connected slave device. */
751 uint16_t supervision_to; /**< Link supervision timeout (in unit of 10ms). Allowed range is 100 ms to 32s. */
752 uint16_t ce_len; /**< The length of connection event needed for this LE connection. Range: 0x0002 to 0xFFFF, Unit:0.625 ms, Time Range: 1.25 ms to 40.9s. */
753 } ble_gap_ext_conn_param_t;
754
755 /**
756 * @brief Extended initiating parameters
757 */
758 typedef struct
759 {
760 uint8_t type; /**< Initiating type (see enum @ref ble_gap_init_type_t). */
761 uint8_t prop; /**< Properties for the initiating procedure (see enum @ref ble_gap_init_prop_t for bit signification). */
762 uint16_t conn_to; /**< Timeout for automatic connection establishment (in unit of 10ms).
763 Cancel the procedure if connection has not been connected when the timeout occurs.
764 0 means there is no timeout. */
765 ble_gap_scan_wd_op_param_t scan_param_1m; /**< Scan window opening parameters for LE 1M PHY. */
766 ble_gap_scan_wd_op_param_t scan_param_coded; /**< Scan window opening parameters for LE Coded PHY. */
767 ble_gap_ext_conn_param_t conn_param_1m; /**< Connection parameters for LE 1M PHY. */
768 ble_gap_ext_conn_param_t conn_param_2m; /**< Connection parameters for LE 2M PHY. */
769 ble_gap_ext_conn_param_t conn_param_coded; /**< Connection parameters for LE Coded PHY. */
770 ble_gap_bdaddr_t peer_addr; /**< Address of peer device in case white list is not used for connection. */
771 } ble_gap_ext_init_param_t;
772
773 /**
774 * @brief LE Protocol/Service Multiplexer information
775 */
776 typedef struct
777 {
778 uint16_t le_psm; /**< LE Protocol/Service Multiplexer (range: 1 to 255), PSMs should be odd. */
779 uint8_t sec_lvl; /**< Security level requirement, see @ref gap_sec_lvl_type. */
780 bool mks_flag; /**< Whether to use maximum-size key (16 bytes) or not. */
781 } ble_gap_lepsm_register_t;
782
783 /**
784 * @brief Bonded device list
785 */
786 typedef struct
787 {
788 uint8_t num; /**< Number of bonded device. */
789 ble_gap_bdaddr_t *items; /**< Bonded device addr info. */
790 } ble_gap_bond_dev_list_t;
791
792 /**
793 * @brief White list
794 */
795 typedef struct
796 {
797 uint8_t num; /**< Number of available items. */
798 ble_gap_bdaddr_t items[BLE_GAP_MAX_WL_NUM]; /**< Content of each item. */
799 } ble_gap_white_list_t;
800
801 /**
802 * @brief Periodic advertising list
803 */
804 typedef struct
805 {
806 uint8_t num; /**< Number of available items. */
807 ble_gap_period_adv_addr_cfg_t items[BLE_GAP_MAX_PRD_ADV_NUM]; /**< Content of each item. */
808 } ble_gap_period_adv_list_t;
809
810 /**
811 * @brief RPA list item info
812 */
813 typedef struct
814 {
815 ble_gap_bdaddr_t bd_addr; /**< Peer device identity. */
816 uint8_t priv_mode; /**< Privacy mode, see enum @ref ble_gap_privacy_mode_t. */
817 uint8_t peer_irk[BLE_GAP_MAX_KEY_LEN]; /**< Peer IRK. */
818 uint8_t local_irk[BLE_GAP_MAX_KEY_LEN]; /**< Local IRK. */
819 } ble_gap_ral_dev_info_t;
820
821 /**
822 * @brief RPA list info
823 */
824 typedef struct
825 {
826 uint8_t offset; /**< offset of RPA list. */
827 uint8_t num; /**< Number of RPA list. */
828 ble_gap_ral_dev_info_t *items; /**< RPA list item info. */
829 } ble_gap_ral_dev_list_t;
830
831
832 /** @brief Get device info event for @ref BLE_GAPM_EVT_DEV_INFO_GOT. */
833 typedef struct
834 {
835 uint8_t operation; /**< Operation code. @ref ble_gap_dev_info_get_type_t. */
836 ble_gap_dev_info_t dev_info; /**< Device info. */
837 } ble_gap_evt_dev_info_get_t;
838
839 /** @brief Advertising Stop info. */
840 typedef struct
841 {
842 ble_gap_stopped_reason_t reason; /**< The reason for the advertising stop. */
843 } ble_gap_evt_adv_stop_t;
844
845 /** @brief Scan request info. */
846 typedef struct
847 {
848 ble_gap_bdaddr_t peer_addr; /**< Peer address. */
849 } ble_gap_evt_scan_req_t;
850
851 /** @brief Scan Stop info struct. */
852 typedef struct
853 {
854 ble_gap_stopped_reason_t reason; /**< The reason why the scan stopped. */
855 } ble_gap_evt_scan_stop_t;
856
857 /** @brief Advertising report event for @ref BLE_GAPM_EVT_ADV_REPORT. */
858 typedef struct
859 {
860 ble_gap_adv_report_type_t adv_type; /**< Advertising type. @ref ble_gap_adv_report_type_t. */
861 ble_gap_adv_report_info_t adv_info; /**< Bit field providing information about the received report. @ref ble_gap_adv_report_info_t. */
862 ble_gap_bdaddr_t broadcaster_addr; /**< Broadcaster device address. */
863 ble_gap_bdaddr_t direct_addr; /**< Target address (in case of a directed advertising report). */
864 int8_t tx_pwr; /**< TX power (in dBm). */
865 int8_t rssi; /**< RSSI (between -127 and +20 dBm). */
866 uint8_t phy_prim; /**< Primary PHY on which advertising report has been received. */
867 uint8_t phy_second; /**< Secondary PHY on which advertising report has been received. */
868 uint8_t adv_sid; /**< Advertising SID , valid only for periodic advertising report. */
869 uint16_t period_adv_intv; /**< Periodic advertising interval (in unit of 1.25ms, min is 7.5ms), valid only for periodic advertising report. */
870 uint8_t per_sync_idx; /**< Periodic syncronization index, valid only for periodic advertising report. */
871 uint16_t length; /**< Report length. */
872 uint8_t *data; /**< Report data. */
873 } ble_gap_evt_adv_report_t;
874
875 /** @brief Sync established event for @ref BLE_GAPM_EVT_SYNC_ESTABLISH. */
876 typedef struct
877 {
878 uint8_t phy; /**< PHY on which synchronization has been established. */
879 uint16_t intv; /**< Periodic advertising interval (in unit of 1.25ms, min is 7.5ms). */
880 uint8_t adv_sid; /**< Advertising SID. */
881 uint8_t clk_acc; /**< Advertiser clock accuracy. */
882 ble_gap_bdaddr_t bd_addr; /**< Advertiser address. */
883 uint16_t sync_hdl; /**< Sync handle. */
884 } ble_gap_evt_sync_established_t;
885
886 /** @brief Read resolvable address event for @ref BLE_GAPM_EVT_READ_RSLV_ADDR. */
887 typedef struct
888 {
889 uint8_t op_code; /**< Operation code. @ref ble_gap_rslv_addr_read_op_id_t. */
890 ble_gap_addr_t gap_addr; /**< Resolvable address info. */
891 } ble_gap_evt_rslv_addr_read_t;
892
893 /** @brief Resolvable address report event for @ref BLE_GAPM_EVT_RSLV_ADDR_REPORT. */
894 typedef struct
895 {
896 ble_gap_actv_type_t type; /**< Activity type. @ref ble_gap_actv_type_t. */
897 ble_gap_addr_t rpa_addr; /**< rpa address info. */
898 } ble_gap_evt_rslv_addr_report_t;
899
900 /**@brief BLE GAPM event structure. */
901 typedef struct
902 {
903 uint8_t index; /**< Index of connection or advertising. */
904 union
905 {
906 ble_gap_evt_dev_info_get_t dev_info; /**< Device info parameters. */
907 ble_gap_evt_adv_stop_t adv_stop; /**< Advertising stop parameter. */
908 ble_gap_evt_scan_req_t scan_req; /**< Scan Request parameter. */
909 ble_gap_evt_scan_stop_t scan_stop; /**< Scan Stop parameter. */
910 ble_gap_evt_adv_report_t adv_report; /**< Advertising Report parameter. */
911 ble_gap_evt_sync_established_t sync_established; /**< Periodic Advertising Synchronization Established parameter. */
912 ble_gap_evt_rslv_addr_read_t rslv_addr; /**< Read Resolvable Address parameter, generated by controller. */
913 ble_gap_evt_rslv_addr_report_t rslv_addr_report; /**< Resolvable Address report parameter, generated by host. */
914 } params; /**< Event Parameters. */
915 } ble_gapm_evt_t;
916 /** @} */
917
918
919
920 /** @addtogroup BLE_GAPM_FUNCTION Functions
921 * @{ */
922
923 /**
924 ****************************************************************************************
925 * @brief Decide whether to support the pair feature.
926 *
927 * @param[in] enable: Support flag.
928 ****************************************************************************************
929 */
930 void ble_gap_pair_enable(bool enable);
931
932 /**
933 ****************************************************************************************
934 * @brief Set the device identity address (public or random static).
935 *
936 * @param[in] p_addr: Provided public or static random address. If addr_type = 0, it means public address,
937 * If addr_type = 1, it means static random address.
938 *
939 * @retval SDK_SUCCESS: Operation is successful.
940 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
941 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
942 ****************************************************************************************
943 */
944 uint16_t ble_gap_addr_set(ble_gap_bdaddr_t const *p_addr);
945
946 /**
947 ****************************************************************************************
948 * @brief Get the device identity address (public or random static).
949 *
950 * @param[in] p_addr: The pointer for the returned identity address.
951 *
952 * @retval SDK_SUCCESS: Operation is successful.
953 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
954 ****************************************************************************************
955 */
956 uint16_t ble_gap_addr_get(ble_gap_bdaddr_t *p_addr);
957
958 /**
959 ****************************************************************************************
960 * @brief send signal carrier wave
961 *
962 * @param[in] tx_freq_mhz: RF Channel (Center Frequency), 2402~2480
963 * @param[in] txpwr_dbm: Tx power, unit(dBm).
964 * support value:[-21, -14, -8, -2, 0, 1, 2, 3, 4, 5, 6, 7]
965 *
966 * @retval SDK_SUCCESS: Operation is Success.
967 * @retval others: Fail.
968 * @note: This function should be called in active mode to ensure the baseband had been powered on
969 ****************************************************************************************
970 */
971 uint16_t ble_gap_signal_carrier_wave_send(uint16_t tx_freq_mhz, int8_t txpwr_dbm);
972
973 /**
974 ****************************************************************************************
975 * @brief stop signal carrier wave
976 *
977 * @note: This function should be called in active mode to ensure the baseband had been powered on
978 ****************************************************************************************
979 */
980 void ble_gap_signal_carrier_wave_stop(void);
981
982 /**
983 ****************************************************************************************
984 * @brief Set the tx power
985 *
986 * @param[in] role: Select the role to set tx power. @ref ble_gap_actv_role_t for possible roles.
987 * @param[in] index: The idx parameter is interpreted on role.
988 * -If role is @ref BLE_GAP_ACTIVITY_ROLE_ADV, it's the index of Advertising.
989 * -If role is @ref BLE_GAP_ACTIVITY_ROLE_CON, it's the index of connection.
990 * -For all other roles, it should be ignored.
991 * @param[in] txpwr_dbm: Tx power, unit(dBm).
992 * support value:[-21, -14, -8, -2, 0, 1, 2, 3, 4, 5, 6, 7]
993 *
994 * @retval SDK_SUCCESS: Operation is Success.
995 * @retval SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
996 * @retval SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
997 * @retval SDK_ERR_INVALID_HANDLE: Invalid handle supplied.
998 ****************************************************************************************
999 */
1000 uint16_t ble_gap_tx_power_set(ble_gap_actv_role_t role, uint8_t index, int8_t txpwr_dbm);
1001
1002 /**
1003 ****************************************************************************************
1004 * @brief Get the tx power
1005 *
1006 * @param[in] role: Select the role to Get tx power. @ref ble_gap_actv_role_t for possible roles.
1007 * @param[in] index: The idx parameter is interpreted on role.
1008 * If role is @ref BLE_GAP_ACTIVITY_ROLE_ADV, it's the index of Advertising.
1009 * If role is @ref BLE_GAP_ACTIVITY_ROLE_CON, it's the index of connection.
1010 * For all other roles, it should be ignored.
1011 * @param[out] txpwr_dbm: Tx power, unit(dBm).
1012 * support value:[-21, -14, -8, -2, 0, 1, 2, 3, 4, 5, 6, 7]
1013 *
1014 * @retval SDK_SUCCESS: Operation is Success.
1015 * @retval SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
1016 * @retval SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1017 * @retval SDK_ERR_INVALID_HANDLE: Invalid handle supplied.
1018 ****************************************************************************************
1019 */
1020 uint16_t ble_gap_tx_power_get(ble_gap_actv_role_t role, uint8_t index, int8_t *txpwr_dbm);
1021
1022 /**
1023 ****************************************************************************************
1024 * @brief Set IRK used for resolvable random BD address generation (LSB first).
1025 *
1026 * @param[in] p_irk: Device IRK (Identity Resolving Key).
1027 *
1028 * @retval SDK_SUCCESS: Operation is successful.
1029 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1030 ****************************************************************************************
1031 */
1032 uint16_t ble_gap_irk_set(ble_gap_sec_key_t* p_irk);
1033
1034 /**
1035 ****************************************************************************************
1036 * @brief Set privacy related parameters.
1037 * @param[in] renew_dur: Duration before regenerating a device address when privacy is enabled in seconds. Range: 0x0096 (150s) ~ 0xA1B8 (11.5 hr).
1038 * The suggested time is 900s(15 minutes).
1039 * @param[in] enable_flag: Indicate the controller privacy is enabled or disabled.
1040 *
1041 * @retval SDK_SUCCESS: Operation is successful.
1042 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1043 ****************************************************************************************
1044 */
1045 uint16_t ble_gap_privacy_params_set(uint16_t renew_dur, bool enable_flag);
1046
1047 /**
1048 ****************************************************************************************
1049 * @brief Set suggested default LE data length.
1050 *
1051 * @param[in] sugg_max_tx_octet: Suggested value for the Controller's maximum transmitted number of payload octets to be used, the range is 27~251.
1052 * @param[in] sugg_max_tx_time: Suggested value for the Controller's maximum packet transmission time to be used, the range is 328~2120.
1053 *
1054 * @retval SDK_SUCCESS: Operation is successful.
1055 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1056 ****************************************************************************************
1057 */
1058 uint16_t ble_gap_data_length_set(uint16_t sugg_max_tx_octet,uint16_t sugg_max_tx_time);
1059
1060 /**
1061 ****************************************************************************************
1062 * @brief Set L2CAP related parameters.
1063 *
1064 * @param[in] max_mtu: Maximal MTU acceptable for device, the range is 65~512.
1065 * @param[in] max_mps: Maximal MPS Packet size acceptable for device (for COC SDU), the range is 65~max_mtu.
1066 * @param[in] max_nb_lecb: Maximum number of LE Credit based connection that can be established, this range is 0x00~0x20.
1067 * The actual number is decided by resource available.
1068 *
1069 * @retval SDK_SUCCESS: Operation is successful.
1070 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1071 *
1072 * @note If these parameters are not set, the stack will config the default value as (max_mtu = 512, max_mps = 512 and max_nb_lecb = 10).
1073 ****************************************************************************************
1074 */
1075 uint16_t ble_gap_l2cap_params_set(uint16_t max_mtu,uint16_t max_mps,uint8_t max_nb_lecb);
1076
1077 /**
1078 ****************************************************************************************
1079 * @brief Set the preferred values for the transmitter PHY and receiver PHY.
1080 *
1081 * @param[in] tx_pref_phy: A bit field that indicates the transmitter PHYs that the Host prefers the Controller to use(see @ref ble_gap_phy_bit_t).
1082 * @param[in] rx_pref_phy: A bit field that indicates the receiver PHYs that the Host prefers the Controller to use(see @ref ble_gap_phy_bit_t).
1083 ****************************************************************************************
1084 */
1085 void ble_gap_pref_phy_set(uint8_t tx_pref_phy, uint8_t rx_pref_phy);
1086
1087 /**
1088 ****************************************************************************************
1089 * @brief Set the RF path gain or loss between the RF transceiver and the antenna contributed by intermediate components.
1090 *
1091 * @param[in] tx_path_comp: RF TX Path Compensation value (from -128dB to 128dB, unit is 0.1dB).
1092 * @param[in] rx_path_comp: RF RX Path Compensation value (from -128dB to 128dB, unit is 0.1dB).
1093 *
1094 * @retval SDK_SUCCESS: Operation is successful.
1095 * @retval SDK_ERR_INVALID_PARAM: The parameter is invalid.
1096 ****************************************************************************************
1097 */
1098 uint16_t ble_gap_path_compensation_set(int16_t tx_path_comp, int16_t rx_path_comp);
1099
1100 /**
1101 ****************************************************************************************
1102 * @brief Set GAP Peripheral Preferred Connection Parameters present flag.
1103 *
1104 * @param[in] present_flag: Present or not.
1105 ****************************************************************************************
1106 */
1107 void ble_gap_ppcp_present_set(bool present_flag);
1108
1109 /**
1110 ****************************************************************************************
1111 * @brief Set advertising channel map before advertising starting.
1112 * @note This API is asynchronous.
1113 * @note Once the operation has completed, the event @ref BLE_GAP_OPCODE_CHNL_MAP_SET will be called.
1114 *
1115 * @param[in] p_chnl_map: Bitmask of LE channel map. See enum @ref ble_gap_chnl_map_t for BT Core Spec version <= 4.2.
1116 *
1117 * @retval SDK_SUCCESS: Operation is successful.
1118 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1119 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1120 *
1121 ****************************************************************************************
1122 */
1123 uint16_t ble_gap_chnl_map_set(ble_gap_chnl_map_t* p_chnl_map);
1124
1125 /**
1126 ****************************************************************************************
1127 * @brief Get all bonded devices.
1128 *
1129 * @param[in] p_bond_list: Pointer to the bond list.
1130 * @param[in] max_num: max number of bond devices can be gotten.
1131 *
1132 * @retval SDK_SUCCESS: Operation is successful.
1133 * @retval SDK_ERR_SDK_INTERNAL: SDK internal error.
1134 * @retval SDK_ERR_NVDS_NOT_INIT: NVDS is not initiated.
1135 * @retval SDK_ERR_LIST_ITEM_NOT_FOUND: Item not found in list.
1136 * @retval SDK_ERR_LIST_FULL: List is full.
1137 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1138 ****************************************************************************************
1139 */
1140 uint16_t ble_gap_bond_devs_get(ble_gap_bond_dev_list_t *p_bond_list, uint8_t max_num);
1141
1142 /**
1143 ****************************************************************************************
1144 * @brief Clear all bonded devices.
1145 *
1146 * @retval SDK_SUCCESS: Operation is successful.
1147 * @retval SDK_ERR_SDK_INTERNAL: SDK internal error.
1148 * @retval SDK_ERR_NVDS_NOT_INIT: NVDS is not initiated.
1149 * @retval SDK_ERR_LIST_ITEM_NOT_FOUND: Item not found in list.
1150 * @retval SDK_ERR_LIST_FULL: List is full.
1151 ****************************************************************************************
1152 */
1153 uint16_t ble_gap_bond_devs_clear(void);
1154
1155 /**
1156 ****************************************************************************************
1157 * @brief Delete a bond device with the specified BD address.
1158 *
1159 * @param[in] p_peer_addr: Pointer to the BD addrss.
1160 *
1161 * @retval SDK_SUCCESS: Operation is successful.
1162 * @retval SDK_ERR_SDK_INTERNAL: SDK internal error.
1163 * @retval SDK_ERR_NVDS_NOT_INIT: NVDS is not initiated.
1164 * @retval SDK_ERR_LIST_ITEM_NOT_FOUND: Item not found in list.
1165 * @retval SDK_ERR_LIST_FULL: List is full.
1166 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1167 ****************************************************************************************
1168 */
1169 uint16_t ble_gap_bond_dev_del(const ble_gap_bdaddr_t *p_peer_addr);
1170
1171 /**
1172 ****************************************************************************************
1173 * @brief Get the content of the whole white list.
1174 *
1175 * @param[in] p_whitelist: Pointer to the output white list.
1176 *
1177 * @retval SDK_SUCCESS: Operation is successful.
1178 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1179 ****************************************************************************************
1180 */
1181 uint16_t ble_gap_whitelist_get(ble_gap_white_list_t *p_whitelist);
1182
1183 /**
1184 ****************************************************************************************
1185 * @brief Add the devices into current white list. If white list is full or there are duplicated entries, it will return error.
1186 * @note This API is asynchronous.
1187 * @note Once the operation has completed, the event @ref BLE_GAP_OPCODE_WHITELIST_SET will be called.
1188 *
1189 * @param[in] p_whitelist: Pointer to input white list.
1190 *
1191 * @retval SDK_SUCCESS: Operation is successful.
1192 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1193 * @retval SDK_ERR_LIST_ITEM_ALREADY_EXISTED: Item already existed in list.
1194 * @retval SDK_ERR_LIST_FULL: List is full.
1195 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1196 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1197 *
1198 ****************************************************************************************
1199 */
1200 uint16_t ble_gap_whitelist_add(const ble_gap_white_list_t *p_whitelist);
1201
1202 /**
1203 ****************************************************************************************
1204 * @brief Delete the devices out of current white list. If the entries do not exist in the current white list, it will return error.
1205 * @note This API is asynchronous.
1206 * @note Once the operation has completed, the event @ref BLE_GAP_OPCODE_WHITELIST_SET will be called.
1207 *
1208 * @param[in] p_whitelist: Pointer to input white list.
1209 *
1210 * @retval SDK_SUCCESS: Operation is successful.
1211 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1212 * @retval SDK_ERR_LIST_ITEM_NOT_FOUND: Item not found in list.
1213 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1214 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1215 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1216 *
1217 ****************************************************************************************
1218 */
1219 uint16_t ble_gap_whitelist_del(const ble_gap_white_list_t *p_whitelist);
1220
1221 /**
1222 ****************************************************************************************
1223 * @brief Clear all the entries in the current white list.
1224 * @note This API is asynchronous.
1225 * @note once the operation has completed, the event @ref BLE_GAP_OPCODE_WHITELIST_SET will be called.
1226 *
1227 * @retval SDK_SUCCESS: Operation is successful.
1228 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1229 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1230 *
1231 ****************************************************************************************
1232 */
1233 uint16_t ble_gap_whitelist_clear(void);
1234
1235 /**
1236 ****************************************************************************************
1237 * @brief Get the content of the whole periodic advertising list.
1238 *
1239 * @param[in] p_pal_list: Pointer to the output periodic advertising list.
1240 *
1241 * @retval SDK_SUCCESS: Operation is successful.
1242 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1243 ****************************************************************************************
1244 */
1245 uint16_t ble_gap_per_adv_list_get(ble_gap_period_adv_list_t *p_pal_list);
1246
1247 /**
1248 ****************************************************************************************
1249 * @brief Add the devices into current periodic advertising list. If periodic advertising list is full or there are
1250 * duplicated entries, it will return error.
1251 * @note This API is asynchronous.
1252 * @note Once the operation has completed, the event @ref BLE_GAP_OPCODE_PER_ADV_LIST_SET will be called.
1253 *
1254 * @param[in] p_pal_list: Pointer to input periodic advertising list.
1255 *
1256
1257 *
1258 * @retval SDK_SUCCESS: Operation is successful.
1259 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1260 * @retval SDK_ERR_LIST_ITEM_ALREADY_EXISTED: Item already existed in list.
1261 * @retval SDK_ERR_LIST_FULL: List is full.
1262 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1263 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1264 *
1265 ****************************************************************************************
1266 */
1267 uint16_t ble_gap_per_adv_list_add(const ble_gap_period_adv_list_t *p_pal_list);
1268
1269 /**
1270 ****************************************************************************************
1271 * @brief Delete the devices out of periodic advertising list. If the entries do not exist in the current list, an error will be returned.
1272 * @note This API is asynchronous.
1273 * @note Once the operation has completed, the event @ref BLE_GAP_OPCODE_PER_ADV_LIST_SET will be called.
1274 *
1275 * @param[in] p_pal_list: Pointer to input periodic advertising list.
1276 *
1277 * @retval SDK_SUCCESS: Operation is successful.
1278 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1279 * @retval SDK_ERR_LIST_ITEM_NOT_FOUND: Item not found in list.
1280 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1281 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1282 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1283 *
1284 ****************************************************************************************
1285 */
1286 uint16_t ble_gap_per_adv_list_del(const ble_gap_period_adv_list_t *p_pal_list);
1287
1288 /**
1289 ****************************************************************************************
1290 * @brief Clear all the entries in the current periodic advertising list.
1291 * @note This API is asynchronous.
1292 * @note Once the operation has completed, the event @ref BLE_GAP_OPCODE_PER_ADV_LIST_SET will be called.
1293 *
1294 * @retval SDK_SUCCESS: Operation is successful.
1295 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1296 ****************************************************************************************
1297 */
1298 uint16_t ble_gap_per_adv_list_clear(void);
1299
1300 /**
1301 ****************************************************************************************
1302 * @brief Get the RPA list info.
1303 * @param[in] p_rpa_list: Pointer to the output RPA list.
1304 * @param[in] max_num: Max number of rpa list can be gotten.
1305 *
1306 * @retval SDK_SUCCESS: Operation is successful.
1307 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1308 ****************************************************************************************
1309 */
1310 uint16_t ble_gap_rpa_list_get(ble_gap_ral_dev_list_t *p_rpa_list, uint8_t max_num);
1311
1312 /**
1313 ****************************************************************************************
1314 * @brief Get the device information according to param type.
1315 * @note This API is asynchronous.
1316 * @note Once the requested parameters has been got, the event @ref BLE_GAPM_EVT_DEV_INFO_GOT will be called.
1317 *
1318 * @param[in] type: Param type.
1319 *
1320 * @retval SDK_SUCCESS: Operation is successful.
1321 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1322 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1323 *
1324 ****************************************************************************************
1325 */
1326 uint16_t ble_gap_dev_info_get(ble_gap_dev_info_get_type_t type);
1327
1328 /**
1329 ****************************************************************************************
1330 * @brief Set parameters for advertising. Note that this function must be called prior to advertising started.
1331 * @param[in] adv_idx: Advertising index, range is 0 to 4.
1332 * @param[in] own_addr_type: Own BD address source of the local device.
1333 * @param[in] p_adv_param: The advertising parameters.
1334 *
1335 * @retval SDK_SUCCESS: Operation is successful.
1336 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1337 * @retval SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1338 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1339 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1340 *
1341
1342 * @note Discovery mode param contains Flags AD type, setting adv data should not set the Flags AD type.
1343 * @note This API is for legacy advertsing (BT Core Spec version <= 4.2).
1344 ****************************************************************************************
1345 */
1346 uint16_t ble_gap_adv_param_set(uint8_t adv_idx, ble_gap_own_addr_t own_addr_type, ble_gap_adv_param_t* p_adv_param);
1347
1348 /**
1349 ****************************************************************************************
1350 * @brief Set extended parameters for advertising. Note that this function must be called prior to advertising.
1351 * @param[in] adv_idx: Advertising index, range is 0 to 4.
1352 * @param[in] own_addr_type: Own BD address source of the local device.
1353 * @param[in] p_adv_param: The advertising parameters.
1354 *
1355 * @retval SDK_SUCCESS: Operation is successful.
1356 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1357 * @retval SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1358 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1359 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1360 *
1361 * @note This API is for extended and periodic advertising (BT Core Spec version >= 5.0).
1362 ****************************************************************************************
1363 */
1364 uint16_t ble_gap_ext_adv_param_set(uint8_t adv_idx, ble_gap_own_addr_t own_addr_type, ble_gap_ext_adv_param_t* p_adv_param);
1365
1366 /**
1367 ****************************************************************************************
1368 * @brief Set Advertising Data, Scan Response Data and Periodic Advertising Data. See ENUM @ref ble_gap_ad_type_t
1369 for ADV Type definitions. See ENUM @ref ble_gap_adv_flags_t for ADV flag definitions.
1370 *
1371 * @param[in] adv_idx: Advertising index, range is 0 to 4.
1372 * @param[in] type: Data type.
1373 * @param[in] p_data: The data pointer.
1374 * @param[in] length: Data length.
1375 *
1376 * @retval SDK_SUCCESS: Operation is successful.
1377 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1378 * @retval SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1379 * @retval SDK_ERR_INVALID_ADV_DATA_TYPE: Invalid advertising data type supplied.
1380 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1381 *
1382 * @note User should not add extra Flags AD type as the BLE Stack has added the Flags AD type already.
1383 ****************************************************************************************
1384 */
1385 uint16_t ble_gap_adv_data_set(uint8_t adv_idx, ble_gap_adv_data_type_t type, const uint8_t* p_data, uint16_t length);
1386
1387 /**
1388 ****************************************************************************************
1389 * @brief Update Advertising Data, Scan Response Data and Periodic Advertising Data. See ENUM @ref ble_gap_ad_type_t
1390 * for ADV Type definitions. See ENUM @ref ble_gap_adv_flags_t for ADV flag definitions.
1391 *
1392 * @param[in] adv_idx: Advertising index, range is 0 to 4.
1393 * @param[in] type: Data type.
1394 * @param[in] p_data: The data pointer.
1395 * @param[in] length: Data length.
1396 *
1397 * @retval SDK_SUCCESS: Operation is successful.
1398 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1399 * @retval SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1400 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1401 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1402 *
1403 * @note User should not add extra Flags AD type as the BLE Stack has added the Flags AD type already.
1404 ****************************************************************************************
1405 */
1406 uint16_t ble_gap_update_adv_data(uint8_t adv_idx, ble_gap_adv_data_type_t type, const uint8_t* p_data, uint16_t length);
1407
1408 /**
1409 ****************************************************************************************
1410 * @brief Start advertising.
1411 * @param[in] adv_idx: Advertising index, range is 0 to 4.
1412 * @param[in] p_timeout: Advertising timing parameter.
1413 *
1414 * @retval SDK_SUCCESS: Operation is successful.
1415 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1416 * @retval SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1417 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1418 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1419 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1420 *
1421 * @note If advertising mode is directed high duty cycle mode, duration should be set nonzero and not be greater than 1.28s.
1422 * @note This API is asynchronous.
1423 * @note If the field scan_req_ind_en in @ref ble_gap_adv_param_t is TRUE passed in @ref ble_gap_adv_param_set function, or if the
1424 GAP_ADV_PROP_SCAN_REQ_NTF_EN_BIT is set in @ref ble_gap_adv_prop_t and passed in @ref ble_gap_ext_adv_param_set function,
1425 @ref BLE_GAPM_EVT_SCAN_REQUEST event will be triggered once a scan request has been received.
1426 * @note @ref BLE_GAPM_EVT_ADV_START event will be triggered once the operation has completed.
1427 ****************************************************************************************
1428 */
1429 uint16_t ble_gap_adv_start(uint8_t adv_idx, ble_gap_adv_time_param_t* p_timeout);
1430
1431 /**
1432 ****************************************************************************************
1433 * @brief Stop advertising.
1434 * @param[in] adv_idx: Advertising index, range is 0 to 4.
1435 *
1436 * @retval SDK_SUCCESS: Operation is successful.
1437 * @retval SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1438 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1439 *
1440 * @note This API is asynchronous.
1441 * @note event @ref BLE_GAPM_EVT_ADV_STOP will be triggered once the operation has completed or advertising has been stopped.
1442 ****************************************************************************************
1443 */
1444 uint16_t ble_gap_adv_stop(uint8_t adv_idx);
1445
1446 /**
1447 ****************************************************************************************
1448 * @brief Set parameters for scanning. Note that this function must be called prior to scanning started.
1449 * @param[in] own_addr_type: Own BD address source of the local device.
1450 * @param[in] p_scan_param: The scanning parameters.
1451 *
1452 * @retval SDK_SUCCESS: Operation is successful.
1453 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1454 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1455 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1456 *
1457 * @note This API is for legacy scanning (BT Core Spec version <= 4.2).
1458 ****************************************************************************************
1459 */
1460 uint16_t ble_gap_scan_param_set(ble_gap_own_addr_t own_addr_type, ble_gap_scan_param_t* p_scan_param);
1461
1462 /**
1463 ****************************************************************************************
1464 * @brief Set extended parameters for scanning. Note that this function must be called prior to scanning started.
1465 * @param[in] own_addr_type: Own BD address source of the local device.
1466 * @param[in] p_scan_param: The scanning parameters.
1467 *
1468 * @retval SDK_SUCCESS: Operation is successful.
1469 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1470 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1471 *
1472 * @note This API is for extended scanning (BT Core Spec version >= 5.0).
1473 * The Scan window in p_scan_param should be enough to recieve one packet. For example.
1474 * If you want to recieve packects with 1270 bytes on coded phy(S8), the scan_wd should be greater than 82ms.
1475 * If you want to recieve packects with 1270 bytes on coded phy(S2), the scan_wd should be greater than 21ms.
1476 ****************************************************************************************
1477 */
1478 uint16_t ble_gap_ext_scan_param_set(ble_gap_own_addr_t own_addr_type, ble_gap_ext_scan_param_t* p_scan_param);
1479
1480 /**
1481 ****************************************************************************************
1482 * @brief Start scanning
1483 * @note This API is asynchronous.
1484 * @note Once the advertising report has been received, the event @ref BLE_GAPM_EVT_ADV_REPORT will be called.
1485 * @note Once the scanning has been stopped, the event @ref BLE_GAPM_EVT_SCAN_STOP will be called.
1486 * @note Once the operation has completed, the event @ref BLE_GAPM_EVT_SCAN_START will be called.
1487 *
1488 * @retval SDK_SUCCESS: Operation is successful.
1489 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1490 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1491 *
1492 ****************************************************************************************
1493 */
1494 uint16_t ble_gap_scan_start(void);
1495
1496 /**
1497 ****************************************************************************************
1498 * @brief Stop scanning
1499 *
1500 * @retval SDK_SUCCESS: Operation is successful.
1501 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1502 *
1503 * @note This API is asynchronous.
1504 * @note event @ref BLE_GAPM_EVT_SCAN_STOP will be triggered once the operation has completed or the scanning has been stopped.
1505 ****************************************************************************************
1506 */
1507 uint16_t ble_gap_scan_stop(void);
1508
1509 /**
1510 ****************************************************************************************
1511 * @brief Set the parameters used for periodic sync.
1512 * @param[in] per_sync_idx: Periodic synchronization index (range is 0 to 4).
1513 * @param[in] p_per_sync_param: Periodic synchronization parameters.
1514 *
1515 * @retval SDK_SUCCESS: Operation is successful.
1516 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1517 * @retval SDK_ERR_INVALID_PER_SYNC_IDX: Invalid periodic syncronization index supplied.
1518 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1519 ****************************************************************************************
1520 */
1521 uint16_t ble_gap_per_sync_param_set(uint8_t per_sync_idx, ble_gap_per_sync_param_t* p_per_sync_param);
1522
1523 /**
1524 ****************************************************************************************
1525 * @brief Start to synchronize with periodic advertising from an advertiser and begin receiving periodic advertising packets.
1526 * @param[in] per_sync_idx: Periodic synchronization index (range is 0 to 4).
1527 *
1528 * @retval SDK_SUCCESS: Operation is successful.
1529 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1530 * @retval SDK_ERR_INVALID_PER_SYNC_IDX: Invalid periodic syncronization index supplied.
1531 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1532 *
1533 * @note This API is asynchronous.
1534 * @note event @ref BLE_GAPM_EVT_SYNC_ESTABLISH will be triggered once the periodic advertising synchronization has been established.
1535 ****************************************************************************************
1536 */
1537 uint16_t ble_gap_per_sync_start(uint8_t per_sync_idx);
1538
1539 /**
1540 ****************************************************************************************
1541 * @brief Stop periodic synchronization.
1542 * @param[in] per_sync_idx: Periodic synchronization index (range is 0 to 4).
1543 *
1544 * @retval SDK_SUCCESS: Operation is successful.
1545 * @retval SDK_ERR_INVALID_PER_SYNC_IDX: Invalid periodic syncronization index supplied.
1546 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1547 *
1548 * @note This API is asynchronous.
1549 * @note event @ref BLE_GAPM_EVT_SYNC_STOP will be triggered once the operation has completed.
1550 ****************************************************************************************
1551 */
1552 uint16_t ble_gap_per_sync_stop(uint8_t per_sync_idx);
1553
1554 /**
1555 ****************************************************************************************
1556 * @brief Start a legacy connection to a device.
1557 * @param[in] own_addr_type: Own BD address source of the local device.
1558 * @param[in] p_init_param: Initiate parameters.
1559 *
1560 * @retval SDK_SUCCESS: Operation is successful.
1561 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1562 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1563 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1564 *
1565 * @note This API is for legacy connection (BT Core Spec version <= 4.2).
1566 *
1567 * @note This API is asynchronous.
1568 * @note event @ref BLE_GAPC_EVT_CONNECTED will be triggered once the operation has completed or the connection has been completed.
1569 * @note event @ref BLE_GAPC_EVT_PEER_NAME_GOT will be triggered once the peer name has been got for the
1570 Name Discovery Procedure. See enum @ref BLE_GAP_INIT_TYPE_NAME_DISC of type @ref ble_gap_init_type_t.
1571 ****************************************************************************************
1572 */
1573 uint16_t ble_gap_connect(ble_gap_own_addr_t own_addr_type, ble_gap_init_param_t* p_init_param);
1574
1575 /**
1576 ****************************************************************************************
1577 * @brief Start an extended connection to a device.
1578 * @param[in] own_addr_type: Own BD address source of the local device.
1579 * @param[in] p_init_param: Initiate parameters.
1580 *
1581 * @retval SDK_SUCCESS: Operation is successful.
1582 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1583 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1584 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1585 *
1586 * @note This API is for extended connection (BT Core Spec version >= 5.0).
1587 *
1588 * @note This API is asynchronous.
1589 * @note event @ref BLE_GAPC_EVT_CONNECTED will be triggered once the operation has completed or the connection has been completed.
1590 ****************************************************************************************
1591 */
1592 uint16_t ble_gap_ext_connect(ble_gap_own_addr_t own_addr_type, ble_gap_ext_init_param_t* p_init_param);
1593
1594 /**
1595 ****************************************************************************************
1596 * @brief Cancel an initiated connection.
1597 *
1598 * @retval SDK_SUCCESS: Operation is successful.
1599 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1600 *
1601 * @note This API is asynchronous.
1602 * @note event @ref BLE_GAPC_EVT_CONNECT_CANCLE will be triggered once the operation has completed.
1603 ****************************************************************************************
1604 */
1605 uint16_t ble_gap_connect_cancel(void);
1606
1607 /**
1608 ****************************************************************************************
1609 * @brief Set GAP appearance value.
1610 * @param[in] appearance: Appearance value.
1611 ****************************************************************************************
1612 */
1613 void ble_gap_appearance_set(uint16_t appearance);
1614
1615 /**
1616 ****************************************************************************************
1617 * @brief Get GAP appearance value.
1618 * @param[out] p_appearance: The pointer to appearance value.
1619 *
1620 * @retval SDK_SUCCESS: Operation is successful.
1621 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1622 ****************************************************************************************
1623 */
1624 uint16_t ble_gap_appearance_get(uint16_t *p_appearance);
1625
1626 /**
1627 ****************************************************************************************
1628 * @brief Set GAP Peripheral Preferred Connection Parameters.
1629 * @param[in] p_conn_params: The pointer to PPCP values.
1630 *
1631 * @retval SDK_SUCCESS: Operation is successful.
1632 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1633 ****************************************************************************************
1634 */
1635 uint16_t ble_gap_ppcp_set(ble_gap_conn_param_t const *p_conn_params);
1636
1637 /**
1638 ****************************************************************************************
1639 * @brief Get GAP Peripheral Preferred Connection Parameters.
1640 * @param[out] p_conn_params: The pointer to PPCP values.
1641 *
1642 * @retval SDK_SUCCESS: Operation is successful.
1643 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1644 ****************************************************************************************
1645 */
1646 uint16_t ble_gap_ppcp_get(ble_gap_conn_param_t *p_conn_params);
1647
1648 /**
1649 ****************************************************************************************
1650 * @brief Set GAP device name.
1651 * @param[in] write_perm: Write permissions of the device name characteristic.
1652 * @param[in] p_dev_name: The pointer to device name value. If p_dev_name is NULL, this function will only set write permissions of the device name.
1653 * @param[in] length: Device name length.
1654 *
1655 * @retval SDK_SUCCESS: Operation is successful.
1656 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1657 ****************************************************************************************
1658 */
1659 uint16_t ble_gap_device_name_set(ble_gap_dev_name_write_perm_t write_perm, uint8_t const *p_dev_name, uint16_t length);
1660
1661 /**
1662 ****************************************************************************************
1663 * @brief Get GAP device name.
1664 * @param[out] p_dev_name: The pointer to device name value, set to NULL to obtain the complete device name length.
1665 * @param[in, out] p_length: Length of the buffer pointed by p_dev_name, complete device name length on output.
1666 *
1667 * @retval SDK_SUCCESS: Operation is successful.
1668 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1669 * @retval SDK_ERR_INVALID_DATA_LENGTH: Invalid data size(s) supplied.
1670 *
1671 * @note If device name was not set, the default device name "GOODIX_BLE" will be available.
1672 * @note If the device name is longer than the size of the supplied buffer,p_len will return the complete device name length,
1673 * and not the number of bytes actually returned in p_dev_name.
1674 * The application may use this information to allocate a suitable buffer size.
1675 ****************************************************************************************
1676 */
1677 uint16_t ble_gap_device_name_get(uint8_t *p_dev_name, uint16_t *p_length);
1678
1679 /**
1680 ****************************************************************************************
1681 * @brief Register a LE Protocol/Service Multiplexer.
1682 * @param[in] p_lepsm: The lepsm information to be registerred.
1683 *
1684 * @retval SDK_SUCCESS: Operation is successful.
1685 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1686 * @retval SDK_ERR_INVALID_PSM_NUM: Invalid psm number.
1687 * @retval SDK_ERR_INVALID_PSM_EXCEEDED_MAX_PSM_NUM: The maximum psm number limit is exceeded.
1688 * @retval SDK_ERR_INVALID_PSM_ALREADY_REGISTERED: The psm number has been registered.
1689 *
1690 * @note This API is asynchronous.
1691 * @ref BLE_GAPM_EVT_LEPSM_REGISTER event with op_id: @ref BLE_GAP_OPCODE_LEPSM_REGISTER will be triggered.
1692 ****************************************************************************************
1693 */
1694 uint16_t ble_gap_lepsm_register(ble_gap_lepsm_register_t* p_lepsm);
1695
1696 /**
1697 ****************************************************************************************
1698 * @brief Unregister a LE Protocol/Service Multiplexer.
1699 * @param[in] le_psm: LE Protocol/Service Multiplexer (1 to 255).
1700 *
1701 * @retval SDK_SUCCESS: Operation is successful.
1702 * @retval SDK_ERR_INVALID_PSM_NUM: Invalid psm number.
1703 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1704 *
1705 * @note This API is asynchronous.
1706 * @ref BLE_GAPM_EVT_LEPSM_UNREGISTER event with op_id: @ref BLE_GAP_OPCODE_LEPSM_UNREGISTER will be triggered.
1707 ****************************************************************************************
1708 */
1709 uint16_t ble_gap_lepsm_unregister(uint16_t le_psm);
1710
1711 /**
1712 ****************************************************************************************
1713 * @brief Set privacy mode for peer device.
1714 * @param[in] peer_addr: The peer address.
1715 * @param[in] mode: Privacy mode (see @ref ble_gap_privacy_mode_t).
1716 *
1717 * @retval SDK_SUCCESS: Operation is successful.
1718 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1719 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
1720 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1721 *
1722 ****************************************************************************************
1723 */
1724 uint16_t ble_gap_privacy_mode_set(ble_gap_bdaddr_t peer_addr, ble_gap_privacy_mode_t mode);
1725
1726 /**
1727 ****************************************************************************************
1728 * @brief Read peer or local resolvable address, this address generated by controller.
1729 * @param[in] op_code: The operation code (see @ref ble_gap_rslv_addr_read_op_id_t).
1730 * @param[in] peer_iden_addr: The peer identity address.
1731 *
1732 * @retval SDK_SUCCESS: Operation is successful.
1733 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1734 *
1735 ****************************************************************************************
1736 */
1737 uint16_t ble_gap_rslv_addr_read(ble_gap_rslv_addr_read_op_id_t op_code, ble_gap_bdaddr_t peer_iden_addr);
1738
1739 /**
1740 ****************************************************************************************
1741 * @brief Control periodic advertising report.
1742 * @param[in] per_sync_index: The index of the periodic syncronization instance.
1743 * @param[in] enable_flag: Per adv report flag.
1744 * bit0: Reporting enabled(true report or false not report).
1745 * bit1: Duplicate filtering enabled.
1746 *
1747 * @retval SDK_SUCCESS: Operation is successful.
1748 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1749 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1750 ****************************************************************************************
1751 */
1752 uint16_t ble_gap_per_adv_report_ctrl(uint8_t per_sync_index, bool enable_flag);
1753
1754 /**
1755 ****************************************************************************************
1756 * @brief Set connectionless CTE transmit parameters.
1757 * @param[in] per_adv_index: The index of the periodic advertising.
1758 * @param[in] param: Connectionless CTE transmit arameters.
1759 *
1760 * @retval SDK_SUCCESS: Operation is successful.
1761 * @retval SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1762 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1763 ****************************************************************************************
1764 */
1765 uint16_t ble_gap_connless_cte_trans_param_set(uint8_t per_adv_index, gap_connless_cte_trans_param_t *param);
1766
1767 /**
1768 ****************************************************************************************
1769 * @brief Set connectionless CTE transmit enable.
1770 * @param[in] per_adv_index: The index of the periodic advertising.
1771 * @param[in] enable_flag: Whether enable to transmit connectionless cte.
1772 *
1773 * @retval SDK_SUCCESS: Operation is successful.
1774 * @retval SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1775 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1776 ****************************************************************************************
1777 */
1778 uint16_t ble_gap_connless_cte_trans_enable_set(uint8_t per_adv_index, bool enable_flag);
1779
1780 /**
1781 ****************************************************************************************
1782 * @brief Set connectionless IQ sampling enable.
1783 * @param[in] per_sync_index: The index of the periodic syncronization instance.
1784 * @param[in] enable_flag: Whether enable connectionless iq sampling. if enable_flag is false, the param shall be NULL.
1785 * @param[in] param: Enable connectionless iq sampling parameters (see @ref ble_gap_connless_iq_sample_param_t).
1786 *
1787 * @retval SDK_SUCCESS: Operation is successful.
1788 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1789 * @retval SDK_ERR_INVALID_PER_SYNC_IDX: Invalid periodic synchronization index supplied.
1790 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
1791 ****************************************************************************************
1792 */
1793 uint16_t ble_gap_connless_iq_sample_enable_set(uint8_t per_sync_index, bool enable_flag, ble_gap_connless_iq_sample_param_t *param);
1794
1795 /**
1796 ****************************************************************************************
1797 * @brief Set ranging parameter.
1798 *
1799 * @param[in] base_addr: The base address.
1800 * @param[in] cte_len: The length for cte.
1801 *
1802 * @retval SDK_SUCCESS: Operation is successful.
1803 * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1804 ****************************************************************************************
1805 */
1806 uint16_t ble_gap_set_gdx_ranging_param(uint32_t base_addr, uint8_t cte_len);
1807
1808 /** @} */
1809
1810 #endif
1811 /** @} */
1812
1813 /** @} */
1814 /** @} */
ble_gap_evt_sync_established_t::phy
uint8_t phy
Definition: ble_gapm.h:878
ble_gap_per_sync_type_t
ble_gap_per_sync_type_t
Periodic synchronization types.
Definition: ble_gapm.h:401
ble_gap_rslv_addr_read
uint16_t ble_gap_rslv_addr_read(ble_gap_rslv_addr_read_op_id_t op_code, ble_gap_bdaddr_t peer_iden_addr)
Read peer or local resolvable address, this address generated by controller.
BLE_GAP_NO_SYNC_IGNORE
@ BLE_GAP_NO_SYNC_IGNORE
Definition: ble_gapm.h:412
BLE_GAP_AD_TYPE_RQRD_32_BIT_SVC_UUID
@ BLE_GAP_AD_TYPE_RQRD_32_BIT_SVC_UUID
Definition: ble_gapm.h:481
BLE_GAP_ROLE_PERIPHERAL
@ BLE_GAP_ROLE_PERIPHERAL
Definition: ble_gapm.h:154
BLE_GAP_ADV_PROP_SCANNABLE_POS
@ BLE_GAP_ADV_PROP_SCANNABLE_POS
Definition: ble_gapm.h:268
BLE_GAP_PRIVACY_MODE_NETWORK
@ BLE_GAP_PRIVACY_MODE_NETWORK
Definition: ble_gapm.h:517
ble_gap_adv_second_cfg_t::max_skip
uint8_t max_skip
Definition: ble_gapm.h:581
ble_gap_ext_init_param_t::conn_to
uint16_t conn_to
Definition: ble_gapm.h:762
ble_gap_ext_init_param_t::scan_param_1m
ble_gap_scan_wd_op_param_t scan_param_1m
Definition: ble_gapm.h:765
ble_gap_pref_phy_set
void ble_gap_pref_phy_set(uint8_t tx_pref_phy, uint8_t rx_pref_phy)
Set the preferred values for the transmitter PHY and receiver PHY.
ble_gap_bond_dev_list_t::items
ble_gap_bdaddr_t * items
Definition: ble_gapm.h:789
ble_gap_per_adv_list_del
uint16_t ble_gap_per_adv_list_del(const ble_gap_period_adv_list_t *p_pal_list)
Delete the devices out of periodic advertising list. If the entries do not exist in the current list,...
BLE_GAP_PHY_CODED_VALUE
@ BLE_GAP_PHY_CODED_VALUE
Definition: ble_gapm.h:248
ble_gap_ext_scan_param_t::dup_filt_pol
uint8_t dup_filt_pol
Definition: ble_gapm.h:664
BLE_GAP_EXT_SCAN_PROP_FILT_TRUNC_BIT
@ BLE_GAP_EXT_SCAN_PROP_FILT_TRUNC_BIT
Definition: ble_gapm.h:351
gap_sync_cte_type
gap_sync_cte_type
Constant Tone Extension sync filtering type.
Definition: ble_gapm.h:411
ble_gap_init_param_t::sup_timeout
uint16_t sup_timeout
Definition: ble_gapm.h:734
BLE_GAP_AD_TYPE_TRANSMIT_POWER
@ BLE_GAP_AD_TYPE_TRANSMIT_POWER
Definition: ble_gapm.h:473
BLE_GAP_NO_SYNC_WITH_AOD_2US_SLOT
@ BLE_GAP_NO_SYNC_WITH_AOD_2US_SLOT
Definition: ble_gapm.h:415
BLE_GAP_ACTV_TYPE_INIT
@ BLE_GAP_ACTV_TYPE_INIT
Definition: ble_gapm.h:539
BLE_GAP_EXT_SCAN_PROP_PHY_CODED_BIT
@ BLE_GAP_EXT_SCAN_PROP_PHY_CODED_BIT
Definition: ble_gapm.h:347
BLE_GAP_SCAN_GEN_DISC_MODE
@ BLE_GAP_SCAN_GEN_DISC_MODE
Definition: ble_gapm.h:314
ble_gap_whitelist_add
uint16_t ble_gap_whitelist_add(const ble_gap_white_list_t *p_whitelist)
Add the devices into current white list. If white list is full or there are duplicated entries,...
ble_gap_adv_prim_cfg_t
Configuration for advertising on primary channel.
Definition: ble_gapm.h:568
ble_gap_irk_set
uint16_t ble_gap_irk_set(ble_gap_sec_key_t *p_irk)
Set IRK used for resolvable random BD address generation (LSB first).
ble_gap_ral_dev_list_t::offset
uint8_t offset
Definition: ble_gapm.h:826
ble_gap_ppcp_get
uint16_t ble_gap_ppcp_get(ble_gap_conn_param_t *p_conn_params)
Get GAP Peripheral Preferred Connection Parameters.
ble_gap_scan_wd_op_param_t
Scan Window operation parameters.
Definition: ble_gapm.h:652
ble_gap_adv_param_t::peer_addr
ble_gap_bdaddr_t peer_addr
Definition: ble_gapm.h:555
ble_gap_evt_scan_req_t::peer_addr
ble_gap_bdaddr_t peer_addr
Definition: ble_gapm.h:848
BLE_GAP_ACTIVITY_ROLE_ADV
@ BLE_GAP_ACTIVITY_ROLE_ADV
Definition: ble_gapm.h:526
BLE_GAP_SEC_LVL_LE_ENC_AUTH
@ BLE_GAP_SEC_LVL_LE_ENC_AUTH
Definition: ble_gapm.h:455
ble_gap_ext_adv_param_t::max_tx_pwr
int8_t max_tx_pwr
Definition: ble_gapm.h:605
BLE_GAP_GET_MAX_LE_ADV_DATA_LEN
@ BLE_GAP_GET_MAX_LE_ADV_DATA_LEN
Definition: ble_gapm.h:204
BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_ANY
@ BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_ANY
Definition: ble_gapm.h:235
ble_gap_ext_adv_param_t::prim_cfg
ble_gap_adv_prim_cfg_t prim_cfg
Definition: ble_gapm.h:608
BLE_GAP_SEC_LVL_NO_SECURITY
@ BLE_GAP_SEC_LVL_NO_SECURITY
Definition: ble_gapm.h:453
BLE_GAP_ROLE_BROADCASTER
@ BLE_GAP_ROLE_BROADCASTER
Definition: ble_gapm.h:152
ble_gap_scan_start
uint16_t ble_gap_scan_start(void)
Start scanning.
ble_gap_scan_param_t
Parameters for legacy scanning.
Definition: ble_gapm.h:638
BLE_GAP_ADV_PROP_PER_TX_PWR_POS
@ BLE_GAP_ADV_PROP_PER_TX_PWR_POS
Definition: ble_gapm.h:279
BLE_GAP_SYNC_REP_EN_DUP
@ BLE_GAP_SYNC_REP_EN_DUP
Definition: ble_gapm.h:426
ble_gap_white_list_t
White list.
Definition: ble_gapm.h:796
ble_gap_stopped_reason_t
ble_gap_stopped_reason_t
Stop reason code.
Definition: ble_gapc.h:161
BLE_GAP_AD_TYPE_MORE_32_BIT_UUID
@ BLE_GAP_AD_TYPE_MORE_32_BIT_UUID
Definition: ble_gapm.h:467
ble_gap_privacy_mode_t
ble_gap_privacy_mode_t
Privacy mode.
Definition: ble_gapm.h:516
ble_gapm_evt_t::rslv_addr_report
ble_gap_evt_rslv_addr_report_t rslv_addr_report
Definition: ble_gapm.h:913
BLE_GAP_EXT_SCAN_TYPE_LIM_DISC
@ BLE_GAP_EXT_SCAN_TYPE_LIM_DISC
Definition: ble_gapm.h:334
ble_gap_ext_scan_param_t::rsvd
uint8_t rsvd
Definition: ble_gapm.h:665
BLE_GAP_ADV_PROP_HDC_BIT
@ BLE_GAP_ADV_PROP_HDC_BIT
Definition: ble_gapm.h:292
BLE_GAP_WRITE_PERM_UNAUTH
@ BLE_GAP_WRITE_PERM_UNAUTH
Definition: ble_gapm.h:175
BLE_GAP_ROLE_CENTRAL
@ BLE_GAP_ROLE_CENTRAL
Definition: ble_gapm.h:153
BLE_GAP_ADV_PROP_TX_PWR_BIT
@ BLE_GAP_ADV_PROP_TX_PWR_BIT
Definition: ble_gapm.h:295
BLE_GAP_ADV_TYPE_LEGACY
@ BLE_GAP_ADV_TYPE_LEGACY
Definition: ble_gapm.h:256
BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_POS
@ BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_POS
Definition: ble_gapm.h:281
ble_gap_scan_dup_filt_policy_t
ble_gap_scan_dup_filt_policy_t
Duplicate filter policy.
Definition: ble_gapm.h:323
BLE_GAP_ROLE_ALL
@ BLE_GAP_ROLE_ALL
Definition: ble_gapm.h:155
ble_gap_addr_t
The struct of address.
Definition: ble_gapc.h:314
BLE_GAP_ACTV_TYPE_SCAN
@ BLE_GAP_ACTV_TYPE_SCAN
Definition: ble_gapm.h:538
gap_connless_cte_trans_param_t::num_antenna
uint8_t num_antenna
Definition: ble_gapm.h:706
BLE_GAP_GET_DEV_BDADDR
@ BLE_GAP_GET_DEV_BDADDR
Definition: ble_gapm.h:195
ble_gap_adv_data_type_t
ble_gap_adv_data_type_t
Advertising data type.
Definition: ble_gapm.h:184
ble_gap_dev_info_get
uint16_t ble_gap_dev_info_get(ble_gap_dev_info_get_type_t type)
Get the device information according to param type.
ble_gap_ext_conn_param_t::conn_latency
uint16_t conn_latency
Definition: ble_gapm.h:750
BLE_GAP_GET_DEV_VERSION
@ BLE_GAP_GET_DEV_VERSION
Definition: ble_gapm.h:194
ble_gap_ext_adv_param_t::peer_addr
ble_gap_bdaddr_t peer_addr
Definition: ble_gapm.h:607
BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED
@ BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED
Definition: ble_gapm.h:506
ble_gap_connect_cancel
uint16_t ble_gap_connect_cancel(void)
Cancel an initiated connection.
BLE_GAP_AD_TYPE_COMPLETE_NAME
@ BLE_GAP_AD_TYPE_COMPLETE_NAME
Definition: ble_gapm.h:472
BLE_GAP_GET_ANTENNA_INFO
@ BLE_GAP_GET_ANTENNA_INFO
Definition: ble_gapm.h:207
BLE_GAP_ACTV_TYPE_ADV
@ BLE_GAP_ACTV_TYPE_ADV
Definition: ble_gapm.h:537
ble_gap_pair_enable
void ble_gap_pair_enable(bool enable)
Decide whether to support the pair feature.
ble_gap_bdaddr_t
The struct of broadcast address with broadcast type.
Definition: ble_gapc.h:320
ble_gap_evt_adv_report_t::length
uint16_t length
Definition: ble_gapm.h:871
gap_connless_cte_trans_param_t
Set connectionless CTE transmit parameters.
Definition: ble_gapm.h:702
BLE_GAP_OWN_ADDR_STATIC
@ BLE_GAP_OWN_ADDR_STATIC
Definition: ble_gapm.h:163
BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE
@ BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE
Definition: ble_gapm.h:505
BLE_GAP_EXT_SCAN_PROP_ACCEPT_RPA_BIT
@ BLE_GAP_EXT_SCAN_PROP_ACCEPT_RPA_BIT
Definition: ble_gapm.h:350
ble_gap_lepsm_register_t::mks_flag
bool mks_flag
Definition: ble_gapm.h:780
ble_gap_dev_info_t
Device info.
Definition: ble_gapc.h:397
ble_gap_ext_adv_param_t::disc_mode
uint8_t disc_mode
Definition: ble_gapm.h:603
BLE_GAP_SCAN_ACTIVE
@ BLE_GAP_SCAN_ACTIVE
Definition: ble_gapm.h:305
BLE_GAP_ACTIVITY_ROLE_CON
@ BLE_GAP_ACTIVITY_ROLE_CON
Definition: ble_gapm.h:527
BLE_GAP_AD_TYPE_MORE_16_BIT_UUID
@ BLE_GAP_AD_TYPE_MORE_16_BIT_UUID
Definition: ble_gapm.h:465
BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_WLST
@ BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_WLST
Definition: ble_gapm.h:237
ble_gap_per_adv_report_ctrl
uint16_t ble_gap_per_adv_report_ctrl(uint8_t per_sync_index, bool enable_flag)
Control periodic advertising report.
ble_gap_ral_dev_list_t
RPA list info.
Definition: ble_gapm.h:825
BLE_GAP_SLOT_DURA_2US
@ BLE_GAP_SLOT_DURA_2US
Definition: ble_gapm.h:445
BLE_GAP_OWN_ADDR_GEN_RSLV
@ BLE_GAP_OWN_ADDR_GEN_RSLV
Definition: ble_gapm.h:164
ble_gap_evt_adv_report_t
Advertising report event for BLE_GAPM_EVT_ADV_REPORT.
Definition: ble_gapm.h:859
ble_gap_per_sync_param_t::sync_to
uint16_t sync_to
Definition: ble_gapm.h:690
BLE_GAP_SCAN_LIM_DISC_MODE
@ BLE_GAP_SCAN_LIM_DISC_MODE
Definition: ble_gapm.h:315
ble_gap_bond_devs_clear
uint16_t ble_gap_bond_devs_clear(void)
Clear all bonded devices.
BLE_GAP_ADV_PROP_TX_PWR_POS
@ BLE_GAP_ADV_PROP_TX_PWR_POS
Definition: ble_gapm.h:277
ble_gap_adv_prim_cfg_t::chnl_map
uint8_t chnl_map
Definition: ble_gapm.h:571
ble_gap_adv_param_t::max_tx_pwr
int8_t max_tx_pwr
Definition: ble_gapm.h:560
gap_switch_sampling_rate
gap_switch_sampling_rate
Supported AoA AoD switching sampling rate.
Definition: ble_gapm.h:433
ble_gap_adv_time_param_t
Advertising timing parameter.
Definition: ble_gapm.h:617
BLE_GAP_AD_TYPE_SERVICE_16_BIT_DATA
@ BLE_GAP_AD_TYPE_SERVICE_16_BIT_DATA
Definition: ble_gapm.h:483
BLE_GAP_AD_TYPE_LE_BT_ADDR
@ BLE_GAP_AD_TYPE_LE_BT_ADDR
Definition: ble_gapm.h:490
ble_gap_tx_power_get
uint16_t ble_gap_tx_power_get(ble_gap_actv_role_t role, uint8_t index, int8_t *txpwr_dbm)
Get the tx power.
ble_gap_addr_set
uint16_t ble_gap_addr_set(ble_gap_bdaddr_t const *p_addr)
Set the device identity address (public or random static).
ble_gap_adv_prop_pos_t
ble_gap_adv_prop_pos_t
Advertising properties bit field and bit positions.
Definition: ble_gapm.h:265
ble_gap_per_sync_param_t::adv_addr
ble_gap_period_adv_addr_cfg_t adv_addr
Definition: ble_gapm.h:693
ble_gap_period_adv_addr_cfg_t::bd_addr
ble_gap_bdaddr_t bd_addr
Definition: ble_gapm.h:679
ble_gap_data_length_set
uint16_t ble_gap_data_length_set(uint16_t sugg_max_tx_octet, uint16_t sugg_max_tx_time)
Set suggested default LE data length.
ble_gap_role_t
ble_gap_role_t
GAP role options.
Definition: ble_gapm.h:149
ble_gap_period_adv_addr_cfg_t
Periodic advertising information.
Definition: ble_gapm.h:678
ble_gap_device_name_set
uint16_t ble_gap_device_name_set(ble_gap_dev_name_write_perm_t write_perm, uint8_t const *p_dev_name, uint16_t length)
Set GAP device name.
ble_gap_ext_scan_type_t
ble_gap_ext_scan_type_t
Extended scanning types.
Definition: ble_gapm.h:332
ble_gap_ext_scan_param_t::scan_param_coded
ble_gap_scan_wd_op_param_t scan_param_coded
Definition: ble_gapm.h:667
gap_per_adv_sync_info_rec_mode
gap_per_adv_sync_info_rec_mode
Periodic advertising sync information reception mode.
Definition: ble_gapm.h:423
ble_gap_ext_scan_param_t::type
uint8_t type
Definition: ble_gapm.h:662
ble_gap_adv_mode_t
ble_gap_adv_mode_t
GAP advertising modes.
Definition: ble_gapm.h:212
BLE_GAP_NO_SYNC_WITH_AOD_1US_SLOT
@ BLE_GAP_NO_SYNC_WITH_AOD_1US_SLOT
Definition: ble_gapm.h:414
ble_gap_evt_adv_report_t::adv_info
ble_gap_adv_report_info_t adv_info
Definition: ble_gapm.h:861
BLE_GAP_ADV_PROP_ANONYMOUS_BIT
@ BLE_GAP_ADV_PROP_ANONYMOUS_BIT
Definition: ble_gapm.h:294
BLE_GAP_SCAN_PROP_ACTIVE_1M_BIT
@ BLE_GAP_SCAN_PROP_ACTIVE_1M_BIT
Definition: ble_gapm.h:391
BLE_GAP_PHY_1MBPS_VALUE
@ BLE_GAP_PHY_1MBPS_VALUE
Definition: ble_gapm.h:246
ble_gap_actv_role_t
ble_gap_actv_role_t
Possible roles of the activity.
Definition: ble_gapm.h:525
ble_gap_ext_init_param_t
Extended initiating parameters.
Definition: ble_gapm.h:759
BLE_GAP_ADV_TYPE_ADV_LOW_DIRECT_IND
@ BLE_GAP_ADV_TYPE_ADV_LOW_DIRECT_IND
Definition: ble_gapm.h:217
ble_gap_connless_cte_trans_param_set
uint16_t ble_gap_connless_cte_trans_param_set(uint8_t per_adv_index, gap_connless_cte_trans_param_t *param)
Set connectionless CTE transmit parameters.
ble_gap_le_phy_value_t
ble_gap_le_phy_value_t
Specify what PHY the Controller has changed for TX/RX. HCI:7.7.65.12.
Definition: ble_gapm.h:244
BLE_GAP_ADV_PROP_DIRECTED_BIT
@ BLE_GAP_ADV_PROP_DIRECTED_BIT
Definition: ble_gapm.h:291
ble_gap_evt_sync_established_t::clk_acc
uint8_t clk_acc
Definition: ble_gapm.h:881
ble_gap_lepsm_register_t::sec_lvl
uint8_t sec_lvl
Definition: ble_gapm.h:779
BLE_GAP_AD_TYPE_COMPLETE_LIST_128_BIT_UUID
@ BLE_GAP_AD_TYPE_COMPLETE_LIST_128_BIT_UUID
Definition: ble_gapm.h:470
ble_gap_adv_prim_cfg_t::adv_intv_max
uint32_t adv_intv_max
Definition: ble_gapm.h:570
BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_BIT
@ BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_BIT
Definition: ble_gapm.h:297
ble_gap_adv_report_info_t
ble_gap_adv_report_info_t
Advertising report information.
Definition: ble_gapc.h:152
BLE_GAP_WRITE_PERM_DISABLE
@ BLE_GAP_WRITE_PERM_DISABLE
Definition: ble_gapm.h:173
ble_gap_bond_dev_del
uint16_t ble_gap_bond_dev_del(const ble_gap_bdaddr_t *p_peer_addr)
Delete a bond device with the specified BD address.
ble_gap_whitelist_get
uint16_t ble_gap_whitelist_get(ble_gap_white_list_t *p_whitelist)
Get the content of the whole white list.
ble_gap_ext_conn_param_t::conn_intv_max
uint16_t conn_intv_max
Definition: ble_gapm.h:748
BLE_GAP_EXT_SCAN_TYPE_CONN_DISC
@ BLE_GAP_EXT_SCAN_TYPE_CONN_DISC
Definition: ble_gapm.h:337
BLE_GAP_AOA_RX_1_US
@ BLE_GAP_AOA_RX_1_US
Definition: ble_gapm.h:436
ble_gap_per_sync_param_t
Periodic advertising synchronization parameters.
Definition: ble_gapm.h:687
ble_gap_evt_rslv_addr_read_t
Read resolvable address event for BLE_GAPM_EVT_READ_RSLV_ADDR.
Definition: ble_gapm.h:888
ble_gap_evt_dev_info_get_t::operation
uint8_t operation
Definition: ble_gapm.h:835
BLE_GAP_AD_TYPE_PUB_TGT_ADDR
@ BLE_GAP_AD_TYPE_PUB_TGT_ADDR
Definition: ble_gapm.h:486
BLE_GAP_GET_DEV_TX_POWER
@ BLE_GAP_GET_DEV_TX_POWER
Definition: ble_gapm.h:205
BLE_GAP_SCAN_PROP_ACTIVE_CODED_BIT
@ BLE_GAP_SCAN_PROP_ACTIVE_CODED_BIT
Definition: ble_gapm.h:392
ble_gap_lepsm_register_t
LE Protocol/Service Multiplexer information.
Definition: ble_gapm.h:777
BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_ANY
@ BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_ANY
Definition: ble_gapm.h:234
gap_sec_lvl_type
gap_sec_lvl_type
Security level types.
Definition: ble_gapm.h:452
ble_gap_scan_param_t::scan_type
ble_gap_scan_type_t scan_type
Definition: ble_gapm.h:639
BLE_GAP_ADV_PROP_PER_TX_PWR_BIT
@ BLE_GAP_ADV_PROP_PER_TX_PWR_BIT
Definition: ble_gapm.h:296
ble_gap_signal_carrier_wave_send
uint16_t ble_gap_signal_carrier_wave_send(uint16_t tx_freq_mhz, int8_t txpwr_dbm)
send signal carrier wave
ble_gap_ext_conn_param_t::conn_intv_min
uint16_t conn_intv_min
Definition: ble_gapm.h:746
BLE_GAP_ADV_DATA_TYPE_DATA
@ BLE_GAP_ADV_DATA_TYPE_DATA
Definition: ble_gapm.h:185
ble_gap_per_sync_param_set
uint16_t ble_gap_per_sync_param_set(uint8_t per_sync_idx, ble_gap_per_sync_param_t *p_per_sync_param)
Set the parameters used for periodic sync.
ble_gap_per_sync_start
uint16_t ble_gap_per_sync_start(uint8_t per_sync_idx)
Start to synchronize with periodic advertising from an advertiser and begin receiving periodic advert...
ble_gap_evt_scan_req_t
Scan request info.
Definition: ble_gapm.h:847
ble_gap_adv_param_t::disc_mode
uint8_t disc_mode
Definition: ble_gapm.h:553
gap_connless_cte_trans_param_t::cte_type
uint8_t cte_type
Definition: ble_gapm.h:704
ble_gap_evt_adv_report_t::adv_sid
uint8_t adv_sid
Definition: ble_gapm.h:868
BLE_GAP_NO_SYNC_WITH_AOA
@ BLE_GAP_NO_SYNC_WITH_AOA
Definition: ble_gapm.h:413
BLE_GAP_SLOT_DURA_1US
@ BLE_GAP_SLOT_DURA_1US
Definition: ble_gapm.h:444
ble_gap_init_param_t
Legacy initiating parameters.
Definition: ble_gapm.h:726
gap_scan_prop
gap_scan_prop
Scanning properties bit field bit value.
Definition: ble_gapm.h:388
BLE_GAP_ADV_PROP_SCANNABLE_BIT
@ BLE_GAP_ADV_PROP_SCANNABLE_BIT
Definition: ble_gapm.h:290
BLE_GAP_AD_TYPE_RQRD_128_BIT_SVC_UUID
@ BLE_GAP_AD_TYPE_RQRD_128_BIT_SVC_UUID
Definition: ble_gapm.h:482
BLE_GAP_SCAN_FILT_DUPLIC_EN
@ BLE_GAP_SCAN_FILT_DUPLIC_EN
Definition: ble_gapm.h:325
BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_BIT
@ BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_BIT
Definition: ble_gapm.h:293
ble_gap_connless_iq_sample_param_t
Set connectionless IQ sampling enable parameter.
Definition: ble_gapm.h:714
ble_gap_per_sync_param_t::type
uint8_t type
Definition: ble_gapm.h:691
BLE_GAP_SCAN_FILT_DUPLIC_DIS
@ BLE_GAP_SCAN_FILT_DUPLIC_DIS
Definition: ble_gapm.h:324
BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_POS
@ BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_POS
Definition: ble_gapm.h:274
ble_gap_update_adv_data
uint16_t ble_gap_update_adv_data(uint8_t adv_idx, ble_gap_adv_data_type_t type, const uint8_t *p_data, uint16_t length)
Update Advertising Data, Scan Response Data and Periodic Advertising Data. See ENUM ble_gap_ad_type_t...
ble_gap_ext_scan_dup_filt_policy_t
ble_gap_ext_scan_dup_filt_policy_t
Filtering policy for duplicated packets.
Definition: ble_gapm.h:358
ble_gap_evt_adv_report_t::per_sync_idx
uint8_t per_sync_idx
Definition: ble_gapm.h:870
BLE_GAP_ADV_TYPE_ADV_IND
@ BLE_GAP_ADV_TYPE_ADV_IND
Definition: ble_gapm.h:213
ble_gap_evt_scan_stop_t
Scan Stop info struct.
Definition: ble_gapm.h:853
ble_gap_evt_scan_stop_t::reason
ble_gap_stopped_reason_t reason
Definition: ble_gapm.h:854
BLE_GAP_PHY_UNDEF_VALUE
@ BLE_GAP_PHY_UNDEF_VALUE
Definition: ble_gapm.h:245
BLE_GAP_AD_TYPE_COMPLETE_LIST_16_BIT_UUID
@ BLE_GAP_AD_TYPE_COMPLETE_LIST_16_BIT_UUID
Definition: ble_gapm.h:466
ble_gapm_evt_t::dev_info
ble_gap_evt_dev_info_get_t dev_info
Definition: ble_gapm.h:906
ble_gap_ext_adv_param_t::period_cfg
ble_gap_adv_period_cfg_t period_cfg
Definition: ble_gapm.h:610
ble_gap_evt_rslv_addr_report_t::rpa_addr
ble_gap_addr_t rpa_addr
Definition: ble_gapm.h:897
BLE_GAP_PRIVACY_MODE_DEVICE
@ BLE_GAP_PRIVACY_MODE_DEVICE
Definition: ble_gapm.h:518
CO_BIT
#define CO_BIT(pos)
Definition: ble_gapm.h:72
ble_gapm_evt_t
BLE GAPM event structure.
Definition: ble_gapm.h:902
ble_gap_per_sync_param_t::cte_type
uint8_t cte_type
Definition: ble_gapm.h:695
ble_gap_ext_scan_param_t::prop
uint8_t prop
Definition: ble_gapm.h:663
ble_gap_adv_period_cfg_t::adv_intv_max
uint16_t adv_intv_max
Definition: ble_gapm.h:593
BLE_GAP_SCAN_PROP_FILT_TRUNC_BIT
@ BLE_GAP_SCAN_PROP_FILT_TRUNC_BIT
Definition: ble_gapm.h:394
BLE_GAP_ACTIVITY_ROLE_SCAN_INIT
@ BLE_GAP_ACTIVITY_ROLE_SCAN_INIT
Definition: ble_gapm.h:528
BLE_GAP_DISC_MODE_BROADCASTER
@ BLE_GAP_DISC_MODE_BROADCASTER
Definition: ble_gapm.h:226
ble_gap_actv_type_t
ble_gap_actv_type_t
Activity type.
Definition: ble_gapm.h:536
BLE_GAP_ADV_PROP_ANONYMOUS_POS
@ BLE_GAP_ADV_PROP_ANONYMOUS_POS
Definition: ble_gapm.h:275
BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE
@ BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE
Definition: ble_gapm.h:504
ble_gap_adv_param_t::adv_mode
uint8_t adv_mode
Definition: ble_gapm.h:552
ble_gapm_evt_t::scan_req
ble_gap_evt_scan_req_t scan_req
Definition: ble_gapm.h:908
ble_gap_period_adv_addr_cfg_t::adv_sid
uint8_t adv_sid
Definition: ble_gapm.h:680
ble_gap_ext_adv_param_t::prop
uint16_t prop
Definition: ble_gapm.h:604
BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_WLST
@ BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_WLST
Definition: ble_gapm.h:236
BLE_GAP_AD_TYPE_SPAIR_RAND
@ BLE_GAP_AD_TYPE_SPAIR_RAND
Definition: ble_gapm.h:493
BLE_GAP_GET_DEV_RF_RF_PATH_COMP
@ BLE_GAP_GET_DEV_RF_RF_PATH_COMP
Definition: ble_gapm.h:206
ble_gap_period_adv_list_t::num
uint8_t num
Definition: ble_gapm.h:806
BLE_GAP_GET_MAX_LE_DATA_LEN
@ BLE_GAP_GET_MAX_LE_DATA_LEN
Definition: ble_gapm.h:200
ble_gap_ext_init_param_t::conn_param_2m
ble_gap_ext_conn_param_t conn_param_2m
Definition: ble_gapm.h:768
ble_gap_connless_iq_sample_param_t::slot_dur
uint8_t slot_dur
Definition: ble_gapm.h:715
ble_gap_per_sync_stop
uint16_t ble_gap_per_sync_stop(uint8_t per_sync_idx)
Stop periodic synchronization.
ble_gap_evt_rslv_addr_read_t::op_code
uint8_t op_code
Definition: ble_gapm.h:889
ble_gap_evt_dev_info_get_t::dev_info
ble_gap_dev_info_t dev_info
Definition: ble_gapm.h:836
ble_gap_path_compensation_set
uint16_t ble_gap_path_compensation_set(int16_t tx_path_comp, int16_t rx_path_comp)
Set the RF path gain or loss between the RF transceiver and the antenna contributed by intermediate c...
ble_gap_evt_adv_report_t::tx_pwr
int8_t tx_pwr
Definition: ble_gapm.h:864
BLE_GAP_AD_TYPE_LE_ROLE
@ BLE_GAP_AD_TYPE_LE_ROLE
Definition: ble_gapm.h:491
BLE_GAP_ADV_TYPE_ADV_NONCONN_IND
@ BLE_GAP_ADV_TYPE_ADV_NONCONN_IND
Definition: ble_gapm.h:214
ble_gap_conn_param_t
The parameter of connection.
Definition: ble_gapc.h:475
BLE_GAP_AD_TYPE_SLAVE_CONN_INT_RANGE
@ BLE_GAP_AD_TYPE_SLAVE_CONN_INT_RANGE
Definition: ble_gapm.h:479
BLE_GAP_ROLE_NONE
@ BLE_GAP_ROLE_NONE
Definition: ble_gapm.h:150
ble_gap_evt_adv_stop_t::reason
ble_gap_stopped_reason_t reason
Definition: ble_gapm.h:842
BLE_GAP_SEC_LVL_SC_ENC_AUTH
@ BLE_GAP_SEC_LVL_SC_ENC_AUTH
Definition: ble_gapm.h:456
ble_error.h
File that contains error codes.
BLE_GAP_ADV_PROP_HDC_POS
@ BLE_GAP_ADV_PROP_HDC_POS
Definition: ble_gapm.h:272
ble_gapc.h
BLE GAPC API.
ble_gap_ral_dev_info_t
RPA list item info.
Definition: ble_gapm.h:814
ble_gap_connect
uint16_t ble_gap_connect(ble_gap_own_addr_t own_addr_type, ble_gap_init_param_t *p_init_param)
Start a legacy connection to a device.
ble_gap_ext_init_param_t::conn_param_coded
ble_gap_ext_conn_param_t conn_param_coded
Definition: ble_gapm.h:769
ble_gap_init_type_t
ble_gap_init_type_t
Initiating types.
Definition: ble_gapm.h:368
BLE_GAP_ADV_PROP_CONNECTABLE_POS
@ BLE_GAP_ADV_PROP_CONNECTABLE_POS
Definition: ble_gapm.h:266
BLE_GAP_EXT_DUP_FILT_DIS
@ BLE_GAP_EXT_DUP_FILT_DIS
Definition: ble_gapm.h:359
ble_gapm_evt_t::adv_report
ble_gap_evt_adv_report_t adv_report
Definition: ble_gapm.h:910
BLE_GAP_EXT_SCAN_PROP_ACTIVE_CODED_BIT
@ BLE_GAP_EXT_SCAN_PROP_ACTIVE_CODED_BIT
Definition: ble_gapm.h:349
BLE_GAP_INIT_TYPE_AUTO_CONN_EST
@ BLE_GAP_INIT_TYPE_AUTO_CONN_EST
Definition: ble_gapm.h:370
ble_gap_scan_param_t::use_whitelist
bool use_whitelist
Definition: ble_gapm.h:642
ble_gap_connless_iq_sample_param_t::max_smaple_cte
uint8_t max_smaple_cte
Definition: ble_gapm.h:716
ble_gap_adv_type_t
ble_gap_adv_type_t
Advertising type.
Definition: ble_gapm.h:255
ble_gap_white_list_t::num
uint8_t num
Definition: ble_gapm.h:797
ble_gap_adv_second_cfg_t::adv_sid
uint8_t adv_sid
Definition: ble_gapm.h:584
ble_gap_scan_prop_t
ble_gap_scan_prop_t
Scanning properties bit field bit value.
Definition: ble_gapm.h:345
BLE_GAP_ADV_TYPE_ADV_SCAN_IND
@ BLE_GAP_ADV_TYPE_ADV_SCAN_IND
Definition: ble_gapm.h:215
ble_gap_evt_sync_established_t
Sync established event for BLE_GAPM_EVT_SYNC_ESTABLISH.
Definition: ble_gapm.h:877
ble_gap_sec_key_t
Security key.
Definition: ble_gapm.h:630
ble_gap_scan_type_t
ble_gap_scan_type_t
Scanning types.
Definition: ble_gapm.h:304
BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_HOST
@ BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_HOST
Definition: ble_gapm.h:508
ble_gap_evt_adv_report_t::data
uint8_t * data
Definition: ble_gapm.h:872
ble_gap_evt_adv_report_t::phy_second
uint8_t phy_second
Definition: ble_gapm.h:867
ble_gap_adv_start
uint16_t ble_gap_adv_start(uint8_t adv_idx, ble_gap_adv_time_param_t *p_timeout)
Start advertising.
BLE_GAP_EXT_DUP_FILT_EN_PERIOD
@ BLE_GAP_EXT_DUP_FILT_EN_PERIOD
Definition: ble_gapm.h:361
ble_gap_adv_time_param_t::duration
uint16_t duration
Definition: ble_gapm.h:618
ble_gap_bond_dev_list_t
Bonded device list.
Definition: ble_gapm.h:787
BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_CONTROLLER
@ BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_CONTROLLER
Definition: ble_gapm.h:507
BLE_GAP_INIT_TYPE_NAME_DISC
@ BLE_GAP_INIT_TYPE_NAME_DISC
Definition: ble_gapm.h:371
BLE_GAP_ADV_DATA_TYPE_PER_DATA
@ BLE_GAP_ADV_DATA_TYPE_PER_DATA
Definition: ble_gapm.h:187
ble_gap_disc_mode_t
ble_gap_disc_mode_t
GAP discoverability modes.
Definition: ble_gapm.h:222
ble_gap_dev_name_write_perm_t
ble_gap_dev_name_write_perm_t
Write permissions of the device name characteristic.
Definition: ble_gapm.h:172
ble_gap_scan_wd_op_param_t::scan_wd
uint16_t scan_wd
Definition: ble_gapm.h:654
BLE_GAP_ADV_TYPE_PERIODIC
@ BLE_GAP_ADV_TYPE_PERIODIC
Definition: ble_gapm.h:258
ble_gap_scan_stop
uint16_t ble_gap_scan_stop(void)
Stop scanning.
ble_gap_adv_prim_cfg_t::adv_intv_min
uint32_t adv_intv_min
Definition: ble_gapm.h:569
ble_gap_per_adv_list_get
uint16_t ble_gap_per_adv_list_get(ble_gap_period_adv_list_t *p_pal_list)
Get the content of the whole periodic advertising list.
ble_gap_adv_param_t::scan_req_ind_en
bool scan_req_ind_en
Definition: ble_gapm.h:559
BLE_GAP_AOD_TX_1_US
@ BLE_GAP_AOD_TX_1_US
Definition: ble_gapm.h:434
BLE_GAP_AD_TYPE_APPEARANCE
@ BLE_GAP_AD_TYPE_APPEARANCE
Definition: ble_gapm.h:488
ble_gap_per_sync_param_t::rsvd
uint8_t rsvd
Definition: ble_gapm.h:692
BLE_GAP_EXT_SCAN_PROP_PHY_1M_BIT
@ BLE_GAP_EXT_SCAN_PROP_PHY_1M_BIT
Definition: ble_gapm.h:346
BLE_GAP_EXT_SCAN_TYPE_SEL_OBSERVER
@ BLE_GAP_EXT_SCAN_TYPE_SEL_OBSERVER
Definition: ble_gapm.h:336
ble_gap_ppcp_present_set
void ble_gap_ppcp_present_set(bool present_flag)
Set GAP Peripheral Preferred Connection Parameters present flag.
ble_gap_init_param_t::interval_min
uint16_t interval_min
Definition: ble_gapm.h:729
BLE_GAP_DISC_MODE_LIM_DISCOVERABLE
@ BLE_GAP_DISC_MODE_LIM_DISCOVERABLE
Definition: ble_gapm.h:225
ble_gap_ext_connect
uint16_t ble_gap_ext_connect(ble_gap_own_addr_t own_addr_type, ble_gap_ext_init_param_t *p_init_param)
Start an extended connection to a device.
ble_gap_init_param_t::interval_max
uint16_t interval_max
Definition: ble_gapm.h:731
BLE_GAP_SYNC_REP_DIS
@ BLE_GAP_SYNC_REP_DIS
Definition: ble_gapm.h:424
ble_gap_whitelist_del
uint16_t ble_gap_whitelist_del(const ble_gap_white_list_t *p_whitelist)
Delete the devices out of current white list. If the entries do not exist in the current white list,...
BLE_GAP_MAX_KEY_LEN
#define BLE_GAP_MAX_KEY_LEN
Definition: ble_gapm.h:77
ble_gap_chnl_map_set
uint16_t ble_gap_chnl_map_set(ble_gap_chnl_map_t *p_chnl_map)
Set advertising channel map before advertising starting.
BLE_GAP_AD_TYPE_SERVICE_128_BIT_DATA
@ BLE_GAP_AD_TYPE_SERVICE_128_BIT_DATA
Definition: ble_gapm.h:485
ble_gap_adv_period_cfg_t::inc_adi_flag
bool inc_adi_flag
Definition: ble_gapm.h:594
ble_gap_adv_flags_t
ble_gap_adv_flags_t
AD Type Flag - Bit mask.
Definition: ble_gapm.h:503
BLE_GAP_AD_TYPE_3D_INFO
@ BLE_GAP_AD_TYPE_3D_INFO
Definition: ble_gapm.h:494
gap_slot_dur_type
gap_slot_dur_type
Slot duration type for IQ sampling.
Definition: ble_gapm.h:443
BLE_GAP_AD_TYPE_SHORTENED_NAME
@ BLE_GAP_AD_TYPE_SHORTENED_NAME
Definition: ble_gapm.h:471
BLE_GAP_PER_SYNC_TYPE_GENERAL
@ BLE_GAP_PER_SYNC_TYPE_GENERAL
Definition: ble_gapm.h:402
BLE_GAP_AD_TYPE_SERVICE_32_BIT_DATA
@ BLE_GAP_AD_TYPE_SERVICE_32_BIT_DATA
Definition: ble_gapm.h:484
BLE_GAP_INIT_PROP_CODED_BIT
@ BLE_GAP_INIT_PROP_CODED_BIT
Definition: ble_gapm.h:381
ble_gap_adv_report_type_t
ble_gap_adv_report_type_t
Advertising report type.
Definition: ble_gapc.h:142
ble_gap_l2cap_params_set
uint16_t ble_gap_l2cap_params_set(uint16_t max_mtu, uint16_t max_mps, uint8_t max_nb_lecb)
Set L2CAP related parameters.
BLE_GAP_AD_TYPE_SP_HASH_C
@ BLE_GAP_AD_TYPE_SP_HASH_C
Definition: ble_gapm.h:475
BLE_GAP_EXT_SCAN_TYPE_SEL_CONN_DISC
@ BLE_GAP_EXT_SCAN_TYPE_SEL_CONN_DISC
Definition: ble_gapm.h:338
BLE_GAP_EXT_SCAN_PROP_ACTIVE_1M_BIT
@ BLE_GAP_EXT_SCAN_PROP_ACTIVE_1M_BIT
Definition: ble_gapm.h:348
ble_gap_adv_param_t
Advertising parameters for legacy advertising.
Definition: ble_gapm.h:551
BLE_GAP_EXT_SCAN_TYPE_OBSERVER
@ BLE_GAP_EXT_SCAN_TYPE_OBSERVER
Definition: ble_gapm.h:335
ble_gap_bond_devs_get
uint16_t ble_gap_bond_devs_get(ble_gap_bond_dev_list_t *p_bond_list, uint8_t max_num)
Get all bonded devices.
ble_gap_privacy_mode_set
uint16_t ble_gap_privacy_mode_set(ble_gap_bdaddr_t peer_addr, ble_gap_privacy_mode_t mode)
Set privacy mode for peer device.
BLE_GAP_SCAN_PROP_ACCEPT_RPA_BIT
@ BLE_GAP_SCAN_PROP_ACCEPT_RPA_BIT
Definition: ble_gapm.h:393
ble_gapm_evt_t::index
uint8_t index
Definition: ble_gapm.h:903
ble_gapm_evt_t::rslv_addr
ble_gap_evt_rslv_addr_read_t rslv_addr
Definition: ble_gapm.h:912
ble_gap_ral_dev_info_t::bd_addr
ble_gap_bdaddr_t bd_addr
Definition: ble_gapm.h:815
ble_gap_scan_param_t::scan_mode
ble_gap_scan_mode_t scan_mode
Definition: ble_gapm.h:640
BLE_GAP_NO_SYNC_WITHOUT_CTE
@ BLE_GAP_NO_SYNC_WITHOUT_CTE
Definition: ble_gapm.h:416
ble_gap_evt_adv_report_t::rssi
int8_t rssi
Definition: ble_gapm.h:865
ble_gap_ral_dev_list_t::num
uint8_t num
Definition: ble_gapm.h:827
ble_gap_ppcp_set
uint16_t ble_gap_ppcp_set(ble_gap_conn_param_t const *p_conn_params)
Set GAP Peripheral Preferred Connection Parameters.
ble_gap_ext_adv_param_t::type
uint8_t type
Definition: ble_gapm.h:602
ble_gap_adv_second_cfg_t::phy
ble_gap_le_phy_value_t phy
Definition: ble_gapm.h:583
ble_gap_per_adv_list_clear
uint16_t ble_gap_per_adv_list_clear(void)
Clear all the entries in the current periodic advertising list.
ble_gap_ext_scan_param_t::period
uint16_t period
Definition: ble_gapm.h:670
ble_gap_evt_adv_report_t::phy_prim
uint8_t phy_prim
Definition: ble_gapm.h:866
ble_gap_lepsm_register
uint16_t ble_gap_lepsm_register(ble_gap_lepsm_register_t *p_lepsm)
Register a LE Protocol/Service Multiplexer.
ble_gap_evt_adv_report_t::broadcaster_addr
ble_gap_bdaddr_t broadcaster_addr
Definition: ble_gapm.h:862
ble_gap_connless_iq_sample_enable_set
uint16_t ble_gap_connless_iq_sample_enable_set(uint8_t per_sync_index, bool enable_flag, ble_gap_connless_iq_sample_param_t *param)
Set connectionless IQ sampling enable.
ble_gap_ext_adv_param_t::second_cfg
ble_gap_adv_second_cfg_t second_cfg
Definition: ble_gapm.h:609
ble_gapm_evt_t::sync_established
ble_gap_evt_sync_established_t sync_established
Definition: ble_gapm.h:911
ble_gapm_evt_t::scan_stop
ble_gap_evt_scan_stop_t scan_stop
Definition: ble_gapm.h:909
ble_gapm_evt_t::adv_stop
ble_gap_evt_adv_stop_t adv_stop
Definition: ble_gapm.h:907
ble_gap_ext_scan_param_t
Parameters for extended scanning.
Definition: ble_gapm.h:661
ble_gap_adv_stop
uint16_t ble_gap_adv_stop(uint8_t adv_idx)
Stop advertising.
ble_gap_ext_conn_param_t
Connection parameters.
Definition: ble_gapm.h:745
BLE_GAP_GET_NB_ADV_SETS
@ BLE_GAP_GET_NB_ADV_SETS
Definition: ble_gapm.h:203
ble_gap_lepsm_unregister
uint16_t ble_gap_lepsm_unregister(uint16_t le_psm)
Unregister a LE Protocol/Service Multiplexer.
BLE_GAP_ADV_TYPE_ADV_HIGH_DIRECT_IND
@ BLE_GAP_ADV_TYPE_ADV_HIGH_DIRECT_IND
Definition: ble_gapm.h:216
ble_gap_appearance_set
void ble_gap_appearance_set(uint16_t appearance)
Set GAP appearance value.
BLE_GAP_DISC_MODE_NON_DISCOVERABLE
@ BLE_GAP_DISC_MODE_NON_DISCOVERABLE
Definition: ble_gapm.h:223
BLE_GAP_AOD_RX_1_US
@ BLE_GAP_AOD_RX_1_US
Definition: ble_gapm.h:435
BLE_GAP_WRITE_PERM_NOAUTH
@ BLE_GAP_WRITE_PERM_NOAUTH
Definition: ble_gapm.h:174
BLE_GAP_DISC_MODE_GEN_DISCOVERABLE
@ BLE_GAP_DISC_MODE_GEN_DISCOVERABLE
Definition: ble_gapm.h:224
ble_gap_adv_period_cfg_t
Configuration for periodic advertising.
Definition: ble_gapm.h:591
BLE_GAP_MAX_WL_NUM
#define BLE_GAP_MAX_WL_NUM
Definition: ble_gapm.h:75
ble_gap_evt_adv_stop_t
Advertising Stop info.
Definition: ble_gapm.h:841
ble_gap_dev_info_get_type_t
ble_gap_dev_info_get_type_t
Get device parameters operation code.
Definition: ble_gapm.h:193
ble_gap_addr_get
uint16_t ble_gap_addr_get(ble_gap_bdaddr_t *p_addr)
Get the device identity address (public or random static).
ble_gap_evt_adv_report_t::period_adv_intv
uint16_t period_adv_intv
Definition: ble_gapm.h:869
ble_gap_ext_init_param_t::scan_param_coded
ble_gap_scan_wd_op_param_t scan_param_coded
Definition: ble_gapm.h:766
BLE_GAP_GET_SUGGESTED_DFLT_LE_DATA_LEN
@ BLE_GAP_GET_SUGGESTED_DFLT_LE_DATA_LEN
Definition: ble_gapm.h:197
ble_gap_scan_param_t::window
uint16_t window
Definition: ble_gapm.h:644
BLE_GAP_PER_SYNC_TYPE_SELECTIVE
@ BLE_GAP_PER_SYNC_TYPE_SELECTIVE
Definition: ble_gapm.h:403
BLE_GAP_AD_TYPE_FLAGS
@ BLE_GAP_AD_TYPE_FLAGS
Definition: ble_gapm.h:464
BLE_GAP_PER_SYNC_TYPE_PAST
@ BLE_GAP_PER_SYNC_TYPE_PAST
Definition: ble_gapm.h:404
BLE_GAP_INIT_PROP_1M_BIT
@ BLE_GAP_INIT_PROP_1M_BIT
Definition: ble_gapm.h:379
ble_gap_period_adv_list_t
Periodic advertising list.
Definition: ble_gapm.h:805
BLE_GAP_MAX_PRD_ADV_NUM
#define BLE_GAP_MAX_PRD_ADV_NUM
Definition: ble_gapm.h:76
ble_gap_ext_init_param_t::type
uint8_t type
Definition: ble_gapm.h:760
ble_gap_adv_param_t::chnl_map
uint8_t chnl_map
Definition: ble_gapm.h:558
BLE_GAP_ACTIVITY_ROLE_UNKNOWN
@ BLE_GAP_ACTIVITY_ROLE_UNKNOWN
Definition: ble_gapm.h:529
BLE_GAP_SCAN_PASSIVE
@ BLE_GAP_SCAN_PASSIVE
Definition: ble_gapm.h:306
ble_gap_evt_adv_report_t::adv_type
ble_gap_adv_report_type_t adv_type
Definition: ble_gapm.h:860
ble_gap_ext_scan_param_t::scan_param_1m
ble_gap_scan_wd_op_param_t scan_param_1m
Definition: ble_gapm.h:666
BLE_GAP_AD_TYPE_CLASS_OF_DEVICE
@ BLE_GAP_AD_TYPE_CLASS_OF_DEVICE
Definition: ble_gapm.h:474
ble_gap_adv_prim_cfg_t::phy
ble_gap_le_phy_value_t phy
Definition: ble_gapm.h:572
ble_gap_appearance_get
uint16_t ble_gap_appearance_get(uint16_t *p_appearance)
Get GAP appearance value.
BLE_GAP_AD_TYPE_OOB_FLAGS
@ BLE_GAP_AD_TYPE_OOB_FLAGS
Definition: ble_gapm.h:478
BLE_GAP_AD_TYPE_RAND_TGT_ADDR
@ BLE_GAP_AD_TYPE_RAND_TGT_ADDR
Definition: ble_gapm.h:487
ble_gap_ext_scan_param_t::duration
uint16_t duration
Definition: ble_gapm.h:668
ble_gap_ext_init_param_t::prop
uint8_t prop
Definition: ble_gapm.h:761
ble_gap_adv_data_set
uint16_t ble_gap_adv_data_set(uint8_t adv_idx, ble_gap_adv_data_type_t type, const uint8_t *p_data, uint16_t length)
Set Advertising Data, Scan Response Data and Periodic Advertising Data. See ENUM ble_gap_ad_type_t fo...
ble_gap_init_param_t::slave_latency
uint16_t slave_latency
Definition: ble_gapm.h:733
ble_gap_adv_param_set
uint16_t ble_gap_adv_param_set(uint8_t adv_idx, ble_gap_own_addr_t own_addr_type, ble_gap_adv_param_t *p_adv_param)
Set parameters for advertising. Note that this function must be called prior to advertising started.
gap_connless_cte_trans_param_t::cte_count
uint8_t cte_count
Definition: ble_gapm.h:705
BLE_GAP_AD_TYPE_COMPLETE_LIST_32_BIT_UUID
@ BLE_GAP_AD_TYPE_COMPLETE_LIST_32_BIT_UUID
Definition: ble_gapm.h:468
ble_gap_scan_mode_t
ble_gap_scan_mode_t
Scanning modes.
Definition: ble_gapm.h:313
ble_gap_bond_dev_list_t::num
uint8_t num
Definition: ble_gapm.h:788
BLE_GAP_ROLE_OBSERVER
@ BLE_GAP_ROLE_OBSERVER
Definition: ble_gapm.h:151
ble_gap_scan_wd_op_param_t::scan_intv
uint16_t scan_intv
Definition: ble_gapm.h:653
ble_gap_ext_init_param_t::peer_addr
ble_gap_bdaddr_t peer_addr
Definition: ble_gapm.h:770
gap_connless_cte_trans_param_t::cte_len
uint8_t cte_len
Definition: ble_gapm.h:703
BLE_GAP_SEC_LVL_ENC_NO_AUTH
@ BLE_GAP_SEC_LVL_ENC_NO_AUTH
Definition: ble_gapm.h:454
BLE_GAP_AD_TYPE_MANU_SPECIFIC_DATA
@ BLE_GAP_AD_TYPE_MANU_SPECIFIC_DATA
Definition: ble_gapm.h:496
ble_gap_ext_adv_param_t::filter_pol
uint8_t filter_pol
Definition: ble_gapm.h:606
ble_gap_connless_iq_sample_param_t::antenna_id
uint8_t * antenna_id
Definition: ble_gapm.h:719
ble_gap_device_name_get
uint16_t ble_gap_device_name_get(uint8_t *p_dev_name, uint16_t *p_length)
Get GAP device name.
BLE_GAP_OWN_ADDR_GEN_NON_RSLV
@ BLE_GAP_OWN_ADDR_GEN_NON_RSLV
Definition: ble_gapm.h:165
BLE_GAP_SCAN_PROP_PHY_CODED_BIT
@ BLE_GAP_SCAN_PROP_PHY_CODED_BIT
Definition: ble_gapm.h:390
ble_gap_set_gdx_ranging_param
uint16_t ble_gap_set_gdx_ranging_param(uint32_t base_addr, uint8_t cte_len)
Set ranging parameter.
ble_gap_connless_cte_trans_enable_set
uint16_t ble_gap_connless_cte_trans_enable_set(uint8_t per_adv_index, bool enable_flag)
Set connectionless CTE transmit enable.
BLE_GAP_AD_TYPE_MORE_128_BIT_UUID
@ BLE_GAP_AD_TYPE_MORE_128_BIT_UUID
Definition: ble_gapm.h:469
ble_gap_per_adv_list_add
uint16_t ble_gap_per_adv_list_add(const ble_gap_period_adv_list_t *p_pal_list)
Add the devices into current periodic advertising list. If periodic advertising list is full or there...
ble_gap_own_addr_t
ble_gap_own_addr_t
Own BD address source of the device.
Definition: ble_gapm.h:162
BLE_GAP_AD_TYPE_RQRD_16_BIT_SVC_UUID
@ BLE_GAP_AD_TYPE_RQRD_16_BIT_SVC_UUID
Definition: ble_gapm.h:480
ble_gap_evt_rslv_addr_report_t::type
ble_gap_actv_type_t type
Definition: ble_gapm.h:896
ble_gap_adv_period_cfg_t::adv_intv_min
uint16_t adv_intv_min
Definition: ble_gapm.h:592
ble_gap_connless_iq_sample_param_t::antenna_num
uint8_t antenna_num
Definition: ble_gapm.h:718
BLE_GAP_INIT_PROP_2M_BIT
@ BLE_GAP_INIT_PROP_2M_BIT
Definition: ble_gapm.h:380
ble_gap_evt_rslv_addr_read_t::gap_addr
ble_gap_addr_t gap_addr
Definition: ble_gapm.h:890
BLE_GAP_AD_TYPE_SP_RANDOMIZER_R
@ BLE_GAP_AD_TYPE_SP_RANDOMIZER_R
Definition: ble_gapm.h:476
ble_gap_per_sync_param_t::report_disable
bool report_disable
Definition: ble_gapm.h:694
ble_gap_scan_param_t::interval
uint16_t interval
Definition: ble_gapm.h:643
ble_gap_per_sync_param_t::skip
uint16_t skip
Definition: ble_gapm.h:688
ble_gap_rslv_addr_read_op_id_t
ble_gap_rslv_addr_read_op_id_t
Operation code used to read resolvable address.
Definition: ble_gapc.h:203
ble_gap_ext_init_param_t::conn_param_1m
ble_gap_ext_conn_param_t conn_param_1m
Definition: ble_gapm.h:767
BLE_GAP_AD_TYPE_ADV_INTV
@ BLE_GAP_AD_TYPE_ADV_INTV
Definition: ble_gapm.h:489
ble_gap_evt_adv_report_t::direct_addr
ble_gap_bdaddr_t direct_addr
Definition: ble_gapm.h:863
ble_gap_chnl_map_t
Channel map structure.
Definition: ble_gapc.h:514
ble_gap_evt_dev_info_get_t
Get device info event for BLE_GAPM_EVT_DEV_INFO_GOT.
Definition: ble_gapm.h:834
BLE_GAP_ACTV_TYPE_PER_SYNC
@ BLE_GAP_ACTV_TYPE_PER_SYNC
Definition: ble_gapm.h:540
ble_gap_adv_time_param_t::max_adv_evt
uint8_t max_adv_evt
Definition: ble_gapm.h:622
ble_gap_adv_second_cfg_t
Configuration for advertising on secondary channel.
Definition: ble_gapm.h:580
ble_gap_privacy_params_set
uint16_t ble_gap_privacy_params_set(uint16_t renew_dur, bool enable_flag)
Set privacy related parameters.
ble_gap_rpa_list_get
uint16_t ble_gap_rpa_list_get(ble_gap_ral_dev_list_t *p_rpa_list, uint8_t max_num)
Get the RPA list info.
ble_gap_evt_rslv_addr_report_t
Resolvable address report event for BLE_GAPM_EVT_RSLV_ADDR_REPORT.
Definition: ble_gapm.h:895
ble_gap_scan_param_t::timeout
uint16_t timeout
Definition: ble_gapm.h:645
BLE_GAP_EXT_DUP_FILT_EN
@ BLE_GAP_EXT_DUP_FILT_EN
Definition: ble_gapm.h:360
ble_gap_ral_dev_list_t::items
ble_gap_ral_dev_info_t * items
Definition: ble_gapm.h:828
ble_gap_signal_carrier_wave_stop
void ble_gap_signal_carrier_wave_stop(void)
stop signal carrier wave
BLE_GAP_ADV_TYPE_EXTENDED
@ BLE_GAP_ADV_TYPE_EXTENDED
Definition: ble_gapm.h:257
ble_gap_scan_param_t::scan_dup_filt
ble_gap_scan_dup_filt_policy_t scan_dup_filt
Definition: ble_gapm.h:641
ble_gap_init_param_t::conn_timeout
uint16_t conn_timeout
Definition: ble_gapm.h:735
BLE_GAP_WRITE_PERM_AUTH
@ BLE_GAP_WRITE_PERM_AUTH
Definition: ble_gapm.h:176
ble_gap_adv_param_t::adv_intv_max
uint16_t adv_intv_max
Definition: ble_gapm.h:557
ble_gap_ext_adv_param_t
Advertising parameters for extended advertising and periodic advertising.
Definition: ble_gapm.h:601
gap_connless_cte_trans_param_t::antenna_id
uint8_t * antenna_id
Definition: ble_gapm.h:707
ble_gap_evt_sync_established_t::bd_addr
ble_gap_bdaddr_t bd_addr
Definition: ble_gapm.h:882
ble_gap_adv_param_t::adv_intv_min
uint16_t adv_intv_min
Definition: ble_gapm.h:556
BLE_GAP_ADV_PROP_DIRECTED_POS
@ BLE_GAP_ADV_PROP_DIRECTED_POS
Definition: ble_gapm.h:269
ble_gap_ral_dev_info_t::priv_mode
uint8_t priv_mode
Definition: ble_gapm.h:816
ble_gap_whitelist_clear
uint16_t ble_gap_whitelist_clear(void)
Clear all the entries in the current white list.
BLE_GAP_EXT_SCAN_TYPE_GEN_DISC
@ BLE_GAP_EXT_SCAN_TYPE_GEN_DISC
Definition: ble_gapm.h:333
ble_gap_adv_filter_policy_t
ble_gap_adv_filter_policy_t
Advertising filter policy.
Definition: ble_gapm.h:233
ble_gap_scan_param_set
uint16_t ble_gap_scan_param_set(ble_gap_own_addr_t own_addr_type, ble_gap_scan_param_t *p_scan_param)
Set parameters for scanning. Note that this function must be called prior to scanning started.
ble_gap_evt_sync_established_t::adv_sid
uint8_t adv_sid
Definition: ble_gapm.h:880
ble_gap_ad_type_t
ble_gap_ad_type_t
GAP advertising types.
Definition: ble_gapm.h:463
ble_gap_ext_adv_param_set
uint16_t ble_gap_ext_adv_param_set(uint8_t adv_idx, ble_gap_own_addr_t own_addr_type, ble_gap_ext_adv_param_t *p_adv_param)
Set extended parameters for advertising. Note that this function must be called prior to advertising.
ble_gap_adv_prop_t
ble_gap_adv_prop_t
Advertising properties bit field bit value.
Definition: ble_gapm.h:288
BLE_GAP_AD_TYPE_SPAIR_HASH
@ BLE_GAP_AD_TYPE_SPAIR_HASH
Definition: ble_gapm.h:492
ble_gap_init_param_t::peer_addr
ble_gap_bdaddr_t peer_addr
Definition: ble_gapm.h:728
BLE_GAP_ADV_PROP_CONNECTABLE_BIT
@ BLE_GAP_ADV_PROP_CONNECTABLE_BIT
Definition: ble_gapm.h:289
BLE_GAP_PHY_2MBPS_VALUE
@ BLE_GAP_PHY_2MBPS_VALUE
Definition: ble_gapm.h:247
ble_gap_adv_param_t::filter_pol
uint8_t filter_pol
Definition: ble_gapm.h:554
ble_gap_evt_sync_established_t::intv
uint16_t intv
Definition: ble_gapm.h:879
ble_gap_evt_sync_established_t::sync_hdl
uint16_t sync_hdl
Definition: ble_gapm.h:883
ble_gap_ext_conn_param_t::supervision_to
uint16_t supervision_to
Definition: ble_gapm.h:751
BLE_GAP_ADV_DATA_TYPE_SCAN_RSP
@ BLE_GAP_ADV_DATA_TYPE_SCAN_RSP
Definition: ble_gapm.h:186
ble_gap_lepsm_register_t::le_psm
uint16_t le_psm
Definition: ble_gapm.h:778
ble_gap_ext_scan_param_set
uint16_t ble_gap_ext_scan_param_set(ble_gap_own_addr_t own_addr_type, ble_gap_ext_scan_param_t *p_scan_param)
Set extended parameters for scanning. Note that this function must be called prior to scanning starte...
ble_gap_init_prop_t
ble_gap_init_prop_t
Initiating properties.
Definition: ble_gapm.h:378
ble_gap_init_param_t::type
uint8_t type
Definition: ble_gapm.h:727
BLE_GAP_SYNC_REP_EN
@ BLE_GAP_SYNC_REP_EN
Definition: ble_gapm.h:425
BLE_GAP_SCAN_OBSERVER_MODE
@ BLE_GAP_SCAN_OBSERVER_MODE
Definition: ble_gapm.h:316
BLE_GAP_AD_TYPE_TK_VALUE
@ BLE_GAP_AD_TYPE_TK_VALUE
Definition: ble_gapm.h:477
ble_gap_tx_power_set
uint16_t ble_gap_tx_power_set(ble_gap_actv_role_t role, uint8_t index, int8_t txpwr_dbm)
Set the tx power.
ble_gap_ext_conn_param_t::ce_len
uint16_t ce_len
Definition: ble_gapm.h:752
BLE_GAP_INIT_TYPE_DIRECT_CONN_EST
@ BLE_GAP_INIT_TYPE_DIRECT_CONN_EST
Definition: ble_gapm.h:369
BLE_GAP_WRITE_PERM_SEC_CON
@ BLE_GAP_WRITE_PERM_SEC_CON
Definition: ble_gapm.h:177
BLE_GAP_SCAN_PROP_PHY_1M_BIT
@ BLE_GAP_SCAN_PROP_PHY_1M_BIT
Definition: ble_gapm.h:389