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>
60 #include <stddef.h>
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_BOND_NUM 10 /**< Maximal bonding number. */
76 #define BLE_GAP_MAX_WL_NUM 10 /**< Maximal white list number. */
77 
78 #define BLE_GAP_MAX_PRD_ADV_NUM 4 /**< Maximal periodic advertising list number. */
79 #define BLE_GAP_MAX_KEY_LEN 16 /**< The key length. */
80 #define BLE_GAP_NVALID_ADV_IDX 0xFF /**< Invalid adv index. */
81 #define BLE_GAP_DEVNAME_DEFAULT "GOODIX_BLE" /**< Default device name value. */
82 #define BLE_GAP_DEVNAME_MAX_LEN 248 /**< Maximal length of device name. */
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. */
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. */
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). */
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. */
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. */
208 
209 /**@brief GAP advertising modes. */
210 typedef enum
211 {
212  BLE_GAP_ADV_TYPE_ADV_IND = 0, /**< Undirected connectable and scannable mode. */
213  BLE_GAP_ADV_TYPE_ADV_NONCONN_IND, /**< Non-connectable and non-scanable mode. */
214  BLE_GAP_ADV_TYPE_ADV_SCAN_IND, /**< Undirected scannable mode. */
215  BLE_GAP_ADV_TYPE_ADV_HIGH_DIRECT_IND, /**< Directed high duty cycle mode. */
216  BLE_GAP_ADV_TYPE_ADV_LOW_DIRECT_IND, /**< Directed low duty cycle mode. */
218 
219 /**@brief GAP discoverability modes. */
220 typedef enum
221 {
222  BLE_GAP_DISC_MODE_NON_DISCOVERABLE = 0, /**< Non-discoverable mode. */
223  BLE_GAP_DISC_MODE_GEN_DISCOVERABLE, /**< General-discoverable mode. */
224  BLE_GAP_DISC_MODE_LIM_DISCOVERABLE, /**< Limited-discoverable mode. */
225  BLE_GAP_DISC_MODE_BROADCASTER, /**< Broadcaster mode. */
227 
228 /**
229  * @brief Advertising filter policy
230  */
231 typedef enum
232 {
233  BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_ANY = 0, /**< Allow both scan and connection requests from anyone. */
234  BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_ANY, /**< Allow scan req from white-list devices only and connection req from anyone. */
235  BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_WLST, /**< Allow scan req from anyone and connection req from white-list devices only. */
236  BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_WLST, /**< Allow scan and connection requests from white-list devices only. */
238 
239 /**
240  * @brief Specify what PHY the Controller has changed for TX/RX. HCI:7.7.65.12
241  */
242 typedef enum
243 {
244  BLE_GAP_PHY_UNDEF_VALUE = 0, /**< Undefined LE PHY. */
245  BLE_GAP_PHY_1MBPS_VALUE = 1, /**< LE 1M PHY. */
246  BLE_GAP_PHY_2MBPS_VALUE = 2, /**< LE 2M PHY. */
247  BLE_GAP_PHY_CODED_VALUE = 3, /**< LE Coded PHY. */
249 
250 /**
251  * @brief Advertising type
252  */
253 typedef enum
254 {
255  BLE_GAP_ADV_TYPE_LEGACY = 0, /**< Legacy advertising. */
256  BLE_GAP_ADV_TYPE_EXTENDED, /**< Extended advertising. */
257  BLE_GAP_ADV_TYPE_PERIODIC, /**< Periodic advertising. */
259 
260 /**
261  * @brief Advertising properties bit field and bit positions
262  */
263 typedef enum
264 {
265  BLE_GAP_ADV_PROP_CONNECTABLE_POS = 0, /**< Indicate that advertising is connectable, reception of CONNECT_REQ or
266  UX_CONNECT_REQ PDUs is accepted. Not applicable for periodic advertising. */
267  BLE_GAP_ADV_PROP_SCANNABLE_POS, /**< Indicate that advertising is scannable, reception of SCAN_REQ or AUX_SCAN_REQ PDUs is accepted. */
268  BLE_GAP_ADV_PROP_DIRECTED_POS, /**< Indicate that advertising targets at a specific device. Only applicable in following cases:
269  - Legacy advertising: if connectable
270  - Extended advertising: connectable or (non-connectable and non-discoverable). */
271  BLE_GAP_ADV_PROP_HDC_POS, /**< Indicate that High Duty Cycle has to be used for advertising on primary channel,
272  applicable only if created advertising is not an extended advertising. */
273  BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_POS, /**< Use legacy advertising PDUs. */
274  BLE_GAP_ADV_PROP_ANONYMOUS_POS, /**< Enable anonymous mode. Device address will not appear in sending PDUs.
275  Valid only if the created advertising is an extended advertising. */
276  BLE_GAP_ADV_PROP_TX_PWR_POS, /**< Include TX power in the extended header of the advertising PDU.
277  Valid only if the created advertising is not a legacy advertising. */
278  BLE_GAP_ADV_PROP_PER_TX_PWR_POS, /**< Include TX power in the periodic advertising PDU.
279  Valid only if the created advertising is a periodic advertising. */
280  BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_POS, /**< Indicate if application must be informed about receiving scan request PDUs. */
282 
283 /**
284  * @brief Advertising properties bit field bit value
285  */
286 typedef enum
287 {
298 
299 /**
300  * @brief Scanning types
301  */
302 typedef enum
303 {
304  BLE_GAP_SCAN_ACTIVE = 0, /**< Active scan type. */
305  BLE_GAP_SCAN_PASSIVE, /**< Passive scan type. */
307 
308 /**
309  * @brief Scanning modes
310  */
311 typedef enum
312 {
313  BLE_GAP_SCAN_GEN_DISC_MODE = 0, /**< General discoverable mode. */
314  BLE_GAP_SCAN_LIM_DISC_MODE, /**< Limited discoverable mode. */
315  BLE_GAP_SCAN_OBSERVER_MODE, /**< Observer mode. */
317 
318 /**
319  * @brief Duplicate filter policy
320  */
321 typedef enum
322 {
323  BLE_GAP_SCAN_FILT_DUPLIC_DIS = 0, /**< Disable filtering of duplicate packets. */
324  BLE_GAP_SCAN_FILT_DUPLIC_EN, /**< Enable filtering of duplicate packets. */
326 
327 /**
328  * @brief Extended scanning types
329  */
330 typedef enum
331 {
332  BLE_GAP_EXT_SCAN_TYPE_GEN_DISC = 0, /**< General discovery. */
333  BLE_GAP_EXT_SCAN_TYPE_LIM_DISC, /**< Limited discovery. */
335  BLE_GAP_EXT_SCAN_TYPE_SEL_OBSERVER, /**< Selective observer. */
336  BLE_GAP_EXT_SCAN_TYPE_CONN_DISC, /**< Connectable discovery. */
337  BLE_GAP_EXT_SCAN_TYPE_SEL_CONN_DISC, /**< Selective connectable discovery. */
339 
340 /**
341  * @brief Filtering policy for duplicated packets
342  */
343 typedef enum
344 {
345  BLE_GAP_EXT_DUP_FILT_DIS = 0, /**< Disable filtering of duplicated packets. */
346  BLE_GAP_EXT_DUP_FILT_EN, /**< Enable filtering of duplicated packets. */
347  BLE_GAP_EXT_DUP_FILT_EN_PERIOD, /**< Enable filtering of duplicated packets, reset for each scan period. */
349 
350 /**
351  * @brief Initiating types
352  */
353 typedef enum
354 {
355  BLE_GAP_INIT_TYPE_DIRECT_CONN_EST = 0, /**< Direct connection establishment: establish a connection with an indicated device. */
356  BLE_GAP_INIT_TYPE_AUTO_CONN_EST, /**< Automatic connection establishment: establish a connection with all devices whose address is present in the white list. */
357  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. */
359 
360 /**
361  * @brief Initiating properties
362  */
363 typedef enum
364 {
365  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. */
366  BLE_GAP_INIT_PROP_2M_BIT = (1 << 1), /**< Connection parameters for the LE 2M PHY are provided. */
367  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. */
369 
370 /**
371  * @brief Scanning properties bit field bit value
372  */
373 typedef enum
374 {
375  BLE_GAP_SCAN_PROP_PHY_1M_BIT = (1 << 0), /**< Scan advertisement on the LE 1M PHY. */
376  BLE_GAP_SCAN_PROP_PHY_CODED_BIT = (1 << 1), /**< Scan advertisement on the LE Coded PHY. */
377  BLE_GAP_SCAN_PROP_ACTIVE_1M_BIT = (1 << 2), /**< Active scan on LE 1M PHY (scan request PDUs may be sent). */
378  BLE_GAP_SCAN_PROP_ACTIVE_CODED_BIT = (1 << 3), /**< Active scan on LE Coded PHY (scan request PDUs may be sent). */
379  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. */
380  BLE_GAP_SCAN_PROP_FILT_TRUNC_BIT = (1 << 5), /**< Filter truncated advertising or scan response reports. */
382 
383 /**
384  * @brief Periodic synchronization types
385  */
386 typedef enum
387 {
388  BLE_GAP_PER_SYNC_TYPE_GENERAL = 0, /**< Do not use periodic advertiser list for synchronization. */
389  BLE_GAP_PER_SYNC_TYPE_SELECTIVE, /**< Use periodic advertiser list for synchronization. */
391 
392 /**
393  * @brief Security level types
394  */
395 typedef enum
396 {
397  BLE_GAP_SEC_LVL_NO_SECURITY = 0, /**< No encryption or auth. */
398  BLE_GAP_SEC_LVL_ENC_NO_AUTH, /**< Encryption with no auth. */
399  BLE_GAP_SEC_LVL_LE_ENC_AUTH, /**< Legacy encryption with auth. */
400  BLE_GAP_SEC_LVL_SC_ENC_AUTH, /**< Security connection encryption with auth. */
402 
403 /**
404  * @brief GAP advertising types
405  */
406 typedef enum
407 {
408  BLE_GAP_AD_TYPE_FLAGS = 0x01, /**< Flag. */
409  BLE_GAP_AD_TYPE_MORE_16_BIT_UUID = 0x02, /**< Use of more than 16-bit UUID. */
410  BLE_GAP_AD_TYPE_COMPLETE_LIST_16_BIT_UUID = 0x03, /**< Complete List of 16-bit UUID. */
411  BLE_GAP_AD_TYPE_MORE_32_BIT_UUID = 0x04, /**< Use of more than 32-bit UUD. */
412  BLE_GAP_AD_TYPE_COMPLETE_LIST_32_BIT_UUID = 0x05, /**< Complete List of 32-bit UUID. */
413  BLE_GAP_AD_TYPE_MORE_128_BIT_UUID = 0x06, /**< Use of more than 128-bit UUID. */
414  BLE_GAP_AD_TYPE_COMPLETE_LIST_128_BIT_UUID = 0x07, /**< Complete List of 128-bit UUID. */
415  BLE_GAP_AD_TYPE_SHORTENED_NAME = 0x08, /**< Shortened Device name. */
416  BLE_GAP_AD_TYPE_COMPLETE_NAME = 0x09, /**< Complete Device name. */
417  BLE_GAP_AD_TYPE_TRANSMIT_POWER = 0x0A, /**< Transmit power. */
418  BLE_GAP_AD_TYPE_CLASS_OF_DEVICE = 0x0D, /**< Class of device. */
419  BLE_GAP_AD_TYPE_SP_HASH_C = 0x0E, /**< Simple Pairing Hash C. */
420  BLE_GAP_AD_TYPE_SP_RANDOMIZER_R = 0x0F, /**< Simple Pairing Randomizer. */
421  BLE_GAP_AD_TYPE_TK_VALUE = 0x10, /**< Temporary key value. */
422  BLE_GAP_AD_TYPE_OOB_FLAGS = 0x11, /**< Out of Band Flag. */
423  BLE_GAP_AD_TYPE_SLAVE_CONN_INT_RANGE = 0x12, /**< Slave connection interval range. */
424  BLE_GAP_AD_TYPE_RQRD_16_BIT_SVC_UUID = 0x14, /**< Require 16-bit service UUID. */
425  BLE_GAP_AD_TYPE_RQRD_32_BIT_SVC_UUID = 0x1F, /**< Require 32-bit service UUID. */
426  BLE_GAP_AD_TYPE_RQRD_128_BIT_SVC_UUID = 0x15, /**< Require 128-bit service UUID. */
427  BLE_GAP_AD_TYPE_SERVICE_16_BIT_DATA = 0x16, /**< Service data 16-bit UUID. */
428  BLE_GAP_AD_TYPE_SERVICE_32_BIT_DATA = 0x20, /**< Service data 32-bit UUID. */
429  BLE_GAP_AD_TYPE_SERVICE_128_BIT_DATA = 0x21, /**< Service data 128-bit UUID. */
430  BLE_GAP_AD_TYPE_PUB_TGT_ADDR = 0x17, /**< Public Target Address. */
431  BLE_GAP_AD_TYPE_RAND_TGT_ADDR = 0x18, /**< Random Target Address. */
432  BLE_GAP_AD_TYPE_APPEARANCE = 0x19, /**< Appearance. */
433  BLE_GAP_AD_TYPE_ADV_INTV = 0x1A, /**< Advertising Interval. */
434  BLE_GAP_AD_TYPE_LE_BT_ADDR = 0x1B, /**< LE Bluetooth Device Address. */
435  BLE_GAP_AD_TYPE_LE_ROLE = 0x1C, /**< LE Role. */
436  BLE_GAP_AD_TYPE_SPAIR_HASH = 0x1D, /**< Simple Pairing Hash C-256. */
437  BLE_GAP_AD_TYPE_SPAIR_RAND = 0x1E, /**< Simple Pairing Randomizer R-256. */
438  BLE_GAP_AD_TYPE_3D_INFO = 0x3D, /**< 3D Information Data. */
439 
440  BLE_GAP_AD_TYPE_MANU_SPECIFIC_DATA = 0xFF, /**< Manufacturer specific data. */
442 
443 /**
444  * @brief AD Type Flag - Bit mask.
445  */
446 typedef enum
447 {
448  BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE = 0x01, /**< Limited discovery flag: AD Flag. */
449  BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE = 0x02, /**< General discovery flag: AD Flag. */
450  BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED = 0x04, /**< Legacy BT not supported: AD Flag. */
451  BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_CONTROLLER = 0x08, /**< Dual mode for controller supported (BR/EDR/LE): AD Flag. */
452  BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_HOST = 0x10, /**< Dual mode for host supported (BR/EDR/LE): AD Flag. */
454 
455 /** @brief Advertising report type. */
456 typedef enum
457 {
458  BLE_GAP_REPORT_TYPE_ADV_EXT = 0, /**< Extended advertising report. */
459  BLE_GAP_REPORT_TYPE_ADV_LEG, /**< Legacy advertising report. */
460  BLE_GAP_REPORT_TYPE_SCAN_RSP_EXT, /**< Extended scan response report. */
461  BLE_GAP_REPORT_TYPE_SCAN_RSP_LEG, /**< Legacy scan response report. */
462  BLE_GAP_REPORT_TYPE_PER_ADV, /**< Periodic advertising report. */
464 
465 /** @brief Advertising report information. */
466 typedef enum
467 {
468  BLE_GAP_REPORT_INFO_COMPLETE_BIT = (1 << 0), /**< Report is complete. */
469  BLE_GAP_REPORT_INFO_CONN_ADV_BIT = (1 << 1), /**< Connectable advertising. */
470  BLE_GAP_REPORT_INFO_SCAN_ADV_BIT = (1 << 2), /**< Scannable advertising. */
471  BLE_GAP_REPORT_INFO_DIR_ADV_BIT = (1 << 3), /**< Directed advertising. */
473 
474 /** @brief Stop reason code. */
475 typedef enum
476 {
477  BLE_GAP_STOPPED_REASON_TIMEOUT = 0, /**< Stop with timeout. */
478  BLE_GAP_STOPPED_REASON_ON_USER, /**< Stop with user stopping it actively. */
479  BLE_GAP_STOPPED_REASON_CONN_EST /**< Stop with connection established. */
481 
482 /**
483  * @brief Privacy mode.
484  */
485 
486 typedef enum
487 {
488  BLE_GAP_PRIVACY_MODE_NETWORK= 0x00, /**< Set to the network privacy mode for the peer device. */
489  BLE_GAP_PRIVACY_MODE_DEVICE = 0x01, /**< Set to the device privacy mode for the peer device. */
491 
492 /**
493  * @brief Possible roles of the activity.
494  */
495 typedef enum
496 {
497  BLE_GAP_ACTIVITY_ROLE_ADV = 0, /**< Adertise role. */
498  BLE_GAP_ACTIVITY_ROLE_CON = 1, /**< Connect role. */
499  BLE_GAP_ACTIVITY_ROLE_SCAN_INIT = 2, /**< Scann role. */
500  BLE_GAP_ACTIVITY_ROLE_UNKNOWN = 0xf, /**< Unknown role. */
502 
503 /**
504  * @brief Clock ACC error.
505  */
506 typedef enum
507 {
508  BLE_GAP_CLK_ACC_500 = 0, /**< 500 ppm. */
509  BLE_GAP_CLK_ACC_250, /**< 250 ppm. */
510  BLE_GAP_CLK_ACC_150, /**< 150 ppm. */
511  BLE_GAP_CLK_ACC_100, /**< 10 ppm. */
512  BLE_GAP_CLK_ACC_75, /**< 70 ppm. */
513  BLE_GAP_CLK_ACC_50, /**< 50 ppm. */
514  BLE_GAP_CLK_ACC_30, /**< 30 ppm. */
515  BLE_GAP_CLK_ACC_20, /**< 20 ppm. */
517 
518 /**
519  * @brief Activity type.
520  */
521 typedef enum
522 {
528 
529 /** @} */
530 
531 /**@addtogroup BLE_GAPM_STRUCTURES Structures
532  * @{ */
533 
534 /**
535  * @brief Advertising parameters for legacy advertising
536  */
537 typedef struct
538 {
539  ble_gap_adv_mode_t adv_mode; /**< Advertising mode (see enum @ref ble_gap_adv_mode_t). */
540  ble_gap_disc_mode_t disc_mode; /**< Discovery mode (see enum @ref ble_gap_disc_mode_t). */
541  ble_gap_adv_filter_policy_t filter_pol; /**< Advertising filtering policy (see enum @ref ble_gap_adv_filter_policy_t). */
542  ble_gap_bdaddr_t peer_addr; /**< Peer address configuration (only used in case of directed advertising, or used to locate the IRK list). */
543  uint16_t adv_intv_min; /**< Minimum advertising interval (in unit of 625 us). Must be greater than 20 ms. */
544  uint16_t adv_intv_max; /**< Maximum advertising interval (in unit of 625 us). Must be greater than 20 ms. */
545  uint8_t chnl_map; /**< Advertising channel map. See @ref BLE_GAP_ADV_CHANNEL. */
546  bool scan_req_ind_en; /**< Indicate if the application should be informed when receiving a scan request from the scanner. */
547  int8_t max_tx_pwr; /**< Maximum power level at which the advertising packets have to be transmitted (between -20dbm and 7dbm).For the real value, please refer to Datasheet. */
549 
550 /**
551  * @brief Configuration for advertising on primary channel
552  */
553 typedef struct
554 {
555  uint32_t adv_intv_min; /**< Minimum advertising interval (in unit of 625 us). Must be greater than 20 ms. */
556  uint32_t adv_intv_max; /**< Maximum advertising interval (in unit of 625 us). Must be greater than 20 ms. */
557  uint8_t chnl_map; /**< Bit field indicating the channel map. See @ref BLE_GAP_ADV_CHANNEL. */
558  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. Note that LE 2M PHY is not allowed and that legacy advertising only supports LE 1M PHY. */
560 
561 /**
562  * @brief Configuration for advertising on secondary channel
563  */
564 typedef struct
565 {
566  uint8_t max_skip; /**< Maximum number of advertising events the controller can skip before sending the AUX_ADV_IND packets. The range is 0x00 to 0xFF. 0x00 means that AUX_ADV_IND PDUs shall be sent prior to each advertising events. */
567  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. */
568  uint8_t adv_sid; /**< Advertising SID. Allowed range is 0x00 to 0x0F. */
570 
571 /**
572  * @brief Configuration for periodic advertising
573  */
574 typedef struct
575 {
576  uint16_t adv_intv_min; /**< Minimum advertising interval (in unit of 1.25 ms). Must be greater than 20 ms. */
577  uint16_t adv_intv_max; /**< Maximum advertising interval (in unit of 1.25 ms). Must be greater than 20 ms. */
579 
580 /**
581  * @brief Advertising parameters for extended advertising and periodic advertising
582  */
583 typedef struct
584 {
585  ble_gap_adv_type_t type; /**< Advertising type (see enum @ref ble_gap_adv_type_t). */
586  ble_gap_disc_mode_t disc_mode; /**< Discovery mode (see enum @ref ble_gap_disc_mode_t). */
587  uint16_t prop; /**< Bit field value provided by advertising properties. See enum @ref ble_gap_adv_prop_t for bit signification. */
588  int8_t max_tx_pwr; /**< Maximum power level at which the advertising packets have to be transmitted (between -20 and 7 dBm). */
589  ble_gap_adv_filter_policy_t filter_pol; /**< Advertising filtering policy (see enum @ref ble_gap_adv_filter_policy_t). */
590  ble_gap_bdaddr_t peer_addr; /**< Peer address configuration (only used in case of directed advertising or used to locate the IRK list). */
591  ble_gap_adv_prim_cfg_t prim_cfg; /**< Configuration for primary advertising. */
592  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). */
593  ble_gap_adv_period_cfg_t period_cfg; /**< Configuration for periodic advertising (valid only if advertising type is GAP_ADV_TYPE_PERIODIC). */
595 
596 /**
597  * @brief Advertising timing parameter
598  */
599 typedef struct
600 {
601  uint16_t duration; /**< Advertising duration (in unit of 10ms). 0 means that advertising continues until the host disables it. If Advertising discovery mode is GAP_DISC_MODE_LIM_DISCOVERABLE (see enum @ref ble_gap_disc_mode_t), the setting duration range is [1, 18000]. If adv mode is high duty, duration time range is [1, 128]. */
602  uint8_t max_adv_evt; /**< Maximum number of extended advertising events. The controller shall attempt to send prior to terminating the extending advertising. The range is [0, 255]. 0 means no maximum number of advertising events. Valid only if the created advertising is an extended advertising. */
604 
605 /**
606  * @brief Security key
607  */
608 typedef struct
609 {
610  uint8_t key[BLE_GAP_MAX_KEY_LEN]; /**< Key value MSB -> LSB (MSB followed by LSB). */
612 
613 /**
614  * @brief Parameters for legacy scanning
615  */
616 typedef struct
617 {
618  ble_gap_scan_type_t scan_type; /**< Active scanning or passive scanning. */
619  ble_gap_scan_mode_t scan_mode; /**< Scan mode. */
620  ble_gap_scan_dup_filt_policy_t scan_dup_filt; /**< Duplicate filter policy. */
621  bool use_whitelist; /**< Filter policy. */
622  uint16_t interval; /**< Scan interval between 0x0004 and 0x4000 in 0.625 ms (range: 2.5 ms to 10.24s). */
623  uint16_t window; /**< Scan window between 0x0004 and 0x4000 in 0.625 ms (range: 2.5 ms to 10.24s). */
624  uint16_t timeout; /**< Scan timeout should be a value between 0x0001 and 0xFFFF(unit: 10 ms). 0x0000 indicates that the timeout has no effect. */
626 
627 /**
628  * @brief Scan Window operation parameters
629  */
630 typedef struct
631 {
632  uint16_t scan_intv; /**< Scan interval between 0x0004 and 0xFFFF in 0.625 ms (range: 2.5 ms to 40.959375s). */
633  uint16_t scan_wd; /**< Scan window between 0x0004 and 0xFFFF in 0.625 ms (range: 2.5 ms to 40.959375s). */
635 
636 /**
637  * @brief Parameters for extended scanning
638  */
639 typedef struct
640 {
641  ble_gap_ext_scan_type_t type; /**< Type of scanning to be started (see enum ble_gap_ext_scan_type_t). */
642  uint8_t prop; /**< Properties for the scan procedure (see enum ble_gap_scan_prop for bit signification). */
643  ble_gap_ext_scan_dup_filt_policy_t dup_filt_pol; /**< Duplicate packet filtering policy (see enum ble_gap_ext_scan_dup_filt_policy_t). */
644  uint8_t rsvd; /**< Reserved for future use. */
645  ble_gap_scan_wd_op_param_t scan_param_1m; /**< Scan window opening parameters for LE 1M PHY. */
646  ble_gap_scan_wd_op_param_t scan_param_coded; /**< Scan window opening parameters for LE Coded PHY. */
647  uint16_t duration; /**< Scan duration (in unit of 10ms). 0 means that the controller will scan continuously until receiving a stop command from the application (10 ms to 655.35s). */
648  uint16_t period; /**< Scan period, which is the time interval between two consequent starts of a scan duration by the controller. 0 means that the scan procedure is not periodic, in unit of 1.28s (1.28s to 83,884.8s). */
650 
651 /**
652  * @brief Periodic advertising information
653  */
654 typedef struct
655 {
656  ble_gap_bdaddr_t bd_addr; /**< Advertiser address information. */
657  uint8_t adv_sid; /**< Advertising SID. */
659 
660 /**
661  * @brief Periodic advertising synchronization parameters
662  */
663 typedef struct
664 {
665  uint16_t skip; /**< Number of periodic advertising that can be skipped after a successful reception. Maximum authorized value is 499. */
666  uint16_t sync_to; /**< Synchronization timeout for the periodic advertising (in unit of 10ms between 100ms and 163.84s). */
667  ble_gap_per_sync_type_t type; /**< Periodic synchronization type (see enum @ref ble_gap_per_sync_type_t). */
668  uint8_t rsvd; /**< Reserved for future use.*/
669  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). */
671 
672 /**
673  * @brief Legacy initiating parameters
674  */
675 typedef struct
676 {
677  ble_gap_init_type_t type; /**< Initiating type (see enum @ref ble_gap_init_type_t). */
678  ble_gap_bdaddr_t peer_addr; /**< Peer device address. */
679  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. Allowed range is 7.5 ms to 4s. */
680  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. Allowed range is 7.5 ms to 4s. */
681  uint16_t slave_latency; /**< Slave latency. Number of events that can be missed by a connected slave device. */
682  uint16_t sup_timeout; /**< Link supervision timeout (in unit of 10ms). Allowed range is 100 ms to 32s. */
683  uint16_t conn_timeout; /**< Timeout for connection establishment (in unit of 10ms). Cancel the procedure if connection has not been connected when the timeout occurs. 0 means there is no timeout. */
685 
686 
687 /**
688  * @brief Connection parameters
689  */
690 typedef struct
691 {
692  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. Allowed range is 7.5 ms to 4s. */
693  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. Allowed range is 7.5 ms to 4s. */
694  uint16_t conn_latency; /**< Slave latency. Number of events that can be missed by a connected slave device. */
695  uint16_t supervision_to; /**< Link supervision timeout (in unit of 10ms). Allowed range is 100 ms to 32s. */
696  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. */
698 
699 /**
700  * @brief Extended initiating parameters
701  */
702 typedef struct
703 {
704  ble_gap_init_type_t type; /**< Initiating type (see enum @ref ble_gap_init_type_t). */
705  uint8_t prop; /**< Properties for the initiating procedure (see enum @ref ble_gap_init_prop_t for bit signification). */
706  uint16_t conn_to; /**< Timeout for automatic connection establishment (in unit of 10ms). Cancel the procedure if connection has not been connected when the timeout occurs.0 means there is no timeout. */
707  ble_gap_scan_wd_op_param_t scan_param_1m; /**< Scan window opening parameters for LE 1M PHY. */
708  ble_gap_scan_wd_op_param_t scan_param_coded; /**< Scan window opening parameters for LE Coded PHY. */
709  ble_gap_ext_conn_param_t conn_param_1m; /**< Connection parameters for LE 1M PHY. */
710  ble_gap_ext_conn_param_t conn_param_2m; /**< Connection parameters for LE 2M PHY. */
711  ble_gap_ext_conn_param_t conn_param_coded; /**< Connection parameters for LE Coded PHY. */
712  ble_gap_bdaddr_t peer_addr; /**< Address of peer device in case white list is not used for connection. */
714 
715 /**
716  * @brief LE Protocol/Service Multiplexer information
717  */
718 typedef struct
719 {
720  uint16_t le_psm; /**< LE Protocol/Service Multiplexer (range: 1 to 255), PSMs should be odd. */
721  ble_gap_sec_lvl_type_t sec_lvl; /**< Security level requirement, see @ref ble_gap_sec_lvl_type_t. */
722  bool mks_flag; /**< Whether to use maximum-size key (16 bytes) or not. */
724 
725 /**
726  * @brief Bonded device list
727  */
728 typedef struct
729 {
730  uint8_t num; /**< Number of bonded device. */
731  ble_gap_bdaddr_t items[BLE_GAP_MAX_BOND_NUM]; /**< Bonded device addr info. */
733 
734 /**
735  * @brief Bonded device list with local address
736  */
737 typedef struct
738 {
739  uint8_t num; /**< Number of bonded device. */
740  ble_gap_bdaddr_t peer_items[BLE_GAP_MAX_BOND_NUM]; /**< Bonded device addr info for peer. */
741  ble_gap_bdaddr_t local_items[BLE_GAP_MAX_BOND_NUM]; /**< Bonded device addr info for local. */
743 
744 /**
745  * @brief White list
746  */
747 typedef struct
748 {
749  uint8_t num; /**< Number of available items. */
750  ble_gap_bdaddr_t items[BLE_GAP_MAX_WL_NUM]; /**< Content of each item. */
752 
753 /**
754  * @brief Periodic advertising list
755  */
756 typedef struct
757 {
758  uint8_t num; /**< Number of available items. */
759  ble_gap_period_adv_addr_cfg_t items[BLE_GAP_MAX_PRD_ADV_NUM]; /**< Content of each item. */
761 
762 /**
763  * @brief RPA list item info
764  */
765 typedef struct
766 {
767  ble_gap_bdaddr_t bd_addr; /**< Peer device identity. */
768  ble_gap_privacy_mode_t priv_mode; /**< Privacy mode, see enum @ref ble_gap_privacy_mode_t. */
769  uint8_t peer_irk[BLE_GAP_MAX_KEY_LEN]; /**< Peer IRK. */
770  uint8_t local_irk[BLE_GAP_MAX_KEY_LEN]; /**< Local IRK. */
772 
773 /**
774  * @brief RPA list info
775  */
776 typedef struct
777 {
778  uint8_t num; /**< Number of RPA list. */
779  ble_gap_ral_dev_info_t items[BLE_GAP_MAX_BOND_NUM]; /**< RPA list item info. */
781 
782 /**
783  * @brief Operation code used to read resolvable address.
784  */
785 typedef enum
786 {
787  BLE_GAP_OPCODE_LOCAL_RSLV_ADDR_READ, /**< Local resolvable address operation. */
788  BLE_GAP_OPCODE_PEER_RSLV_ADDR_READ, /**< Peer resolvable address operation. */
790 
791 /** @brief Advertising Stop info. */
792 typedef struct
793 {
794  ble_gap_stopped_reason_t reason; /**< Advertising Stop info. */
796 
797 /** @brief Scan request info. */
798 typedef struct
799 {
800  ble_gap_bdaddr_t peer_addr; /**< Scan request info. */
802 
803 /** @brief Scan Stop info struct. */
804 typedef struct
805 {
806  ble_gap_stopped_reason_t reason; /**< Scan Stop info. */
808 
809 /** @brief Advertising report event for @ref BLE_GAPM_EVT_ADV_REPORT. */
810 typedef struct
811 {
812  ble_gap_adv_report_type_t adv_type; /**< Advertising type. @ref ble_gap_adv_report_type_t. */
813  ble_gap_adv_report_info_t adv_info; /**< Bit field providing information about the received report. @ref ble_gap_adv_report_info_t. */
814  ble_gap_bdaddr_t broadcaster_addr; /**< Broadcaster device address. */
815  ble_gap_bdaddr_t direct_addr; /**< Target address (in case of a directed advertising report). */
816  int8_t tx_pwr; /**< TX power (in dBm). */
817  int8_t rssi; /**< RSSI (between -127 and +20 dBm). */
818  uint8_t phy_prim; /**< Primary PHY on which advertising report has been received. */
819  uint8_t phy_second; /**< Secondary PHY on which advertising report has been received. */
820  uint8_t adv_sid; /**< Advertising SID , valid only for periodic advertising report. */
821  uint16_t period_adv_intv; /**< Periodic advertising interval (in unit of 1.25ms, min is 7.5ms), valid only for periodic advertising report. */
822  uint8_t per_sync_idx; /**< Periodic syncronization index, valid only for periodic advertising report. */
823  uint16_t length; /**< Report length. */
824  uint8_t *data; /**< Report. */
826 
827 /** @brief Sync established event for @ref BLE_GAPM_EVT_SYNC_ESTABLISH. */
828 typedef struct
829 {
830  uint8_t phy; /**< PHY on which synchronization has been established. */
831  uint16_t intv; /**< Periodic advertising interval (in unit of 1.25ms, min is 7.5ms). */
832  uint8_t adv_sid; /**< Advertising SID. */
833  uint8_t clk_acc; /**< Advertiser clock accuracy. @ref ble_gap_clk_acc_t. */
834  ble_gap_bdaddr_t bd_addr; /**< Advertiser address. */
835  uint16_t sync_hdl; /**< Sync handle. */
837 
838 /** @brief Read resolvable address event for @ref BLE_GAPM_EVT_READ_RSLV_ADDR. */
839 typedef struct
840 {
841  uint8_t op_code; /**< Operation code. @ref ble_gap_rslv_addr_read_op_id_t. */
842  ble_gap_addr_t gap_addr; /**< Resolvable address info. */
844 
845 /** @brief Resolvable address report event for @ref BLE_GAPM_EVT_RSLV_ADDR_REPORT. */
846 typedef struct
847 {
848  ble_gap_actv_type_t type; /**< Activity type. @ref ble_gap_actv_type_t. */
849  ble_gap_addr_t rpa_addr; /**< rpa address info. */
851 
852 /**@brief BLE GAPM event structure. */
853 typedef struct
854 {
855  uint8_t index; /**< Index of connection or advertising. */
856  union
857  {
858  ble_gap_evt_dev_info_get_t dev_info; /**< Device info parameters. */
859  ble_gap_evt_adv_stop_t adv_stop; /**< Advertising stop parameter. */
860  ble_gap_evt_scan_req_t scan_req; /**< Scan Request parameter. */
861  ble_gap_evt_scan_stop_t scan_stop; /**< Scan Stop parameter. */
862  ble_gap_evt_adv_report_t adv_report; /**< Advertising Report parameter. */
863  ble_gap_evt_sync_established_t sync_established; /**< Periodic Advertising Synchronization Established parameter. */
864  ble_gap_evt_rslv_addr_read_t rslv_addr; /**< Read Resolvable Address parameter, generated by controller. */
865  ble_gap_evt_rslv_addr_report_t rslv_addr_report; /**< Resolvable Address report parameter, generated by host. */
866  } params; /**< Event Parameters. */
868 /** @} */
869 
870 /** @addtogroup BLE_GAPM_TYPEDEF Typedefs
871  * @{
872  */
873 /** @brief The BLE reslove rpa address callback. */
874 typedef void (*ble_gap_reslv_rpa_addr_callback_t) (uint8_t status, ble_gap_bdaddr_t *iden_addr, uint8_t src_info);
875 /** @} */
876 
877 /** @addtogroup BLE_GAPM_FUNCTION Functions
878  * @{ */
879 
880 /**
881  ****************************************************************************************
882  * @brief Decide whether to support the pair feature.
883  *
884  * @param[in] enable: Support flag.
885  ****************************************************************************************
886  */
887 void ble_gap_pair_enable(bool enable);
888 
889 /**
890  ****************************************************************************************
891  * @brief Set the device identity address (public or random static).
892  *
893  * @param[in] p_addr: Provided public or static random address. If addr_type = 0, it means public address,
894  * If addr_type = 1, it means static random address.
895  *
896  * @retval ::SDK_SUCCESS: Operation is successful.
897  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
898  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
899  ****************************************************************************************
900  */
901 uint16_t ble_gap_addr_set(ble_gap_bdaddr_t const *p_addr);
902 
903 /**
904  ****************************************************************************************
905  * @brief Get the device identity address (public or random static).
906  *
907  * @param[in] p_addr: The pointer for the returned identity address.
908  *
909  * @retval ::SDK_SUCCESS: Operation is successful.
910  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
911  ****************************************************************************************
912  */
914 
915 /**
916  ****************************************************************************************
917  * @brief Set the tx power
918  *
919  * @param[in] role: Select the role to set tx power. @ref ble_gap_actv_role_t for possible roles.
920  * @param[in] index: The idx parameter is interpreted on role.
921  * -If role is @ref BLE_GAP_ACTIVITY_ROLE_ADV, it's the index of Advertising.
922  * -If role is @ref BLE_GAP_ACTIVITY_ROLE_CON, it's the index of connection.
923  * -For all other roles, it should be ignored.
924  * @param[in] txpwr_dbm: The value of the tx power, Range: -20dbm to 7dbm.
925  *
926  * @retval ::SDK_SUCCESS: Operation is Success.
927  * @retval ::SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
928  * @retval ::SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
929  * @retval ::SDK_ERR_INVALID_HANDLE: Invalid handle supplied.
930  ****************************************************************************************
931  */
932 uint16_t ble_gap_tx_power_set(ble_gap_actv_role_t role, uint8_t index, int8_t txpwr_dbm);
933 
934 /**
935  ****************************************************************************************
936  * @brief Get the tx power
937  *
938  * @param[in] role: Select the role to Get tx power. @ref ble_gap_actv_role_t for possible roles.
939  * @param[in] index: The idx parameter is interpreted on role.
940  * -If role is @ref BLE_GAP_ACTIVITY_ROLE_ADV, it's the index of Advertising.
941  * -If role is @ref BLE_GAP_ACTIVITY_ROLE_CON, it's the index of connection.
942  * -For all other roles, it should be ignored.
943  * @param[in] txpwr_dbm: The value of the tx power, Range: -20dbm to 7dbm.
944  *
945  * @retval ::SDK_SUCCESS: Operation is Success.
946  * @retval ::SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
947  * @retval ::SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
948  * @retval ::SDK_ERR_INVALID_HANDLE: Invalid handle supplied.
949  ****************************************************************************************
950  */
951 uint16_t ble_gap_tx_power_get(ble_gap_actv_role_t role, uint8_t index, int8_t *txpwr_dbm);
952 
953 /**
954  ****************************************************************************************
955  * @brief Set IRK used for resolvable random BD address generation (LSB first).
956  *
957  * @param[in] p_irk: Device IRK (Identity Resolving Key).
958  *
959  * @retval ::SDK_SUCCESS: Operation is successful.
960  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
961  ****************************************************************************************
962  */
964 
965 /**
966  ****************************************************************************************
967  * @brief Set privacy related parameters.
968  * @param[in] renew_dur: Duration before regenerating a device address when privacy is enabled in seconds. Range: 0x0001 (1s) ~ 0xA1B8 (11.5 hr).
969  * The suggested time is 900s(15 minutes).
970  * @param[in] enable_flag: Indicate the controller privacy is enabled or disabled.
971  *
972  * @retval ::SDK_SUCCESS: Operation is successful.
973  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
974  ****************************************************************************************
975  */
976 uint16_t ble_gap_privacy_params_set(uint16_t renew_dur, bool enable_flag);
977 
978 /**
979  ****************************************************************************************
980  * @brief Set privacy auto renew device address enable or disable, if needed.
981  *
982  * @param[in] enable: If true, stack would auto renew device address when renew duration tiemout.
983  * If false, stack would not auto renew device address.
984  ****************************************************************************************
985  */
987 
988 /**
989  ****************************************************************************************
990  * @brief Set advertising rpa, can be called before advertising start.
991  *
992  * @param[in] adv_idx: Advertising index, range is 0 to 4.
993  * @param[in] rpa: Pointer to rpa set.
994  *
995  * @retval SDK_SUCCESS: Operation is successful.
996  * @retval SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
997  ****************************************************************************************
998  */
999 uint16_t ble_gap_adv_rpa_rotate(uint8_t adv_idx, uint8_t rpa[BLE_GAP_ADDR_LEN]);
1000 
1001 /**
1002  ****************************************************************************************
1003  * @brief Set suggested default LE data length.
1004  *
1005  * @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.
1006  * @param[in] sugg_max_tx_time: Suggested value for the Controller's maximum packet transmission time to be used, the range is 328~2120.
1007  *
1008  * @retval ::SDK_SUCCESS: Operation is successful.
1009  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1010  ****************************************************************************************
1011  */
1012 uint16_t ble_gap_data_length_set(uint16_t sugg_max_tx_octet,uint16_t sugg_max_tx_time);
1013 
1014 /**
1015  ****************************************************************************************
1016  * @brief Set L2CAP related parameters.
1017  *
1018  * @param[in] max_mtu: Maximal MTU acceptable for device, the range is 65~512.
1019  * @param[in] max_mps: Maximal MPS Packet size acceptable for device (for COC SDU), the range is 65~max_mtu.
1020  * @param[in] max_nb_lecb: Maximum number of LE Credit based connection that can be established, this range is 0x00~0x20.
1021  * The actual number is decided by resource available.
1022  *
1023  * @retval ::SDK_SUCCESS: Operation is successful.
1024  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1025  *
1026  * @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).
1027  ****************************************************************************************
1028  */
1029 uint16_t ble_gap_l2cap_params_set(uint16_t max_mtu,uint16_t max_mps,uint8_t max_nb_lecb);
1030 
1031 /**
1032  ****************************************************************************************
1033  * @brief Set the preferred values for the transmitter PHY and receiver PHY.
1034  *
1035  * @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).
1036  * @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).
1037  ****************************************************************************************
1038  */
1039 void ble_gap_pref_phy_set(uint8_t tx_pref_phy, uint8_t rx_pref_phy);
1040 
1041 /**
1042  ****************************************************************************************
1043  * @brief Set the RF path gain or loss between the RF transceiver and the antenna contributed by intermediate components.
1044  *
1045  * @param[in] tx_path_comp: RF TX Path Compensation value (from -128dB to 128dB, unit is 0.1dB).
1046  * @param[in] rx_path_comp: RF RX Path Compensation value (from -128dB to 128dB, unit is 0.1dB).
1047  *
1048  * @retval ::SDK_SUCCESS: Operation is successful.
1049  * @retval ::SDK_ERR_INVALID_PARAM: The parameter is invalid.
1050  ****************************************************************************************
1051  */
1052 uint16_t ble_gap_path_compensation_set(int16_t tx_path_comp, int16_t rx_path_comp);
1053 
1054 /**
1055  ****************************************************************************************
1056  * @brief Set advertising channel map before advertising starts.
1057  *
1058  * @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.
1059  *
1060  * @retval ::SDK_SUCCESS: Operation is successful.
1061  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1062  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1063  ****************************************************************************************
1064  */
1066 
1067 /**
1068  ****************************************************************************************
1069  * @brief Set ble channel map update timer enable or disable.
1070  *
1071  * @param[in] enable_flag: timer enable flag . true is enable,false is disable.
1072  *
1073  * @retval ::SDK_SUCCESS: Operation is successful.
1074  ****************************************************************************************
1075  */
1076 uint16_t ble_gap_chnl_map_timer_set(bool enable_flag);
1077 
1078 /**
1079  ****************************************************************************************
1080  * @brief Get all bonded devices.
1081  *
1082  * @param[in] p_bond_list: Pointer to the bond list info.
1083  *
1084  * @retval ::SDK_SUCCESS: Operation is successful.
1085  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1086  ****************************************************************************************
1087  */
1089 
1090 /**
1091  ****************************************************************************************
1092  * @brief Get all bonded devices with local address.
1093  *
1094  * @param[in] p_bond_list: Pointer to the bond list info.
1095  *
1096  * @retval ::SDK_SUCCESS: Operation is successful.
1097  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1098  ****************************************************************************************
1099  */
1101 
1102 /**
1103  ****************************************************************************************
1104  * @brief Get BD address of the bonded device by connection index.
1105  *
1106  * @param[in] conn_idx: The index of connection.
1107  * @param[in] p_peer_addr: Pointer to the peer BD addrss
1108  *
1109  * @retval ::SDK_SUCCESS: Operation is successful.
1110  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1111  * @retval ::SDK_ERR_INVALID_PARAM: The parameter is invalid.
1112  ****************************************************************************************
1113  */
1114 uint16_t ble_gap_bond_dev_addr_get_by_conn_idx(uint8_t conn_idx, ble_gap_bdaddr_t *p_peer_addr);
1115 
1116 /**
1117  ****************************************************************************************
1118  * @brief Clear all bonded devices.
1119  *
1120  * @retval ::SDK_SUCCESS: Operation is successful.
1121  * @retval ::SDK_ERR_SDK_INTERNAL: SDK internal error.
1122  * @retval ::SDK_ERR_NVDS_NOT_INIT: NVDS is not initiated.
1123  * @retval ::SDK_ERR_LIST_ITEM_NOT_FOUND: Item not found in list.
1124  * @retval ::SDK_ERR_LIST_FULL: List is full.
1125  ****************************************************************************************
1126  */
1128 
1129 /**
1130  ****************************************************************************************
1131  * @brief Delete a bond device with the specified BD address.
1132  *
1133  * @param[in] p_peer_addr: Pointer to the BD addrss.
1134  *
1135  * @retval ::SDK_SUCCESS: Operation is successful.
1136  * @retval ::SDK_ERR_SDK_INTERNAL: SDK internal error.
1137  * @retval ::SDK_ERR_NVDS_NOT_INIT: NVDS is not initiated.
1138  * @retval ::SDK_ERR_LIST_ITEM_NOT_FOUND: Item not found in list.
1139  * @retval ::SDK_ERR_LIST_FULL: List is full.
1140  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1141  ****************************************************************************************
1142  */
1143 uint16_t ble_gap_bond_dev_del(const ble_gap_bdaddr_t *p_peer_addr);
1144 
1145 /**
1146  ****************************************************************************************
1147  * @brief Delete a bond device with the specified BD address.
1148  *
1149  * @param[in] p_peer_addr: Pointer to the peer addrss.
1150  * @param[in] p_local_addr: Pointer to the local addrss.
1151  *
1152  * @retval ::SDK_SUCCESS: Operation is successful.
1153  * @retval ::SDK_ERR_SDK_INTERNAL: SDK internal error.
1154  * @retval ::SDK_ERR_NVDS_NOT_INIT: NVDS is not initiated.
1155  * @retval ::SDK_ERR_LIST_ITEM_NOT_FOUND: Item not found in list.
1156  * @retval ::SDK_ERR_LIST_FULL: List is full.
1157  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1158  ****************************************************************************************
1159  */
1160 uint16_t ble_gap_bond_dev_del_with_local_addr(const ble_gap_bdaddr_t *p_peer_addr, const ble_gap_bdaddr_t *p_local_addr);
1161 
1162 /**
1163  ****************************************************************************************
1164  * @brief Get the content of the whole white list.
1165  *
1166  * @param[in] p_whitelist: Pointer to the output white list.
1167  *
1168  * @retval ::SDK_SUCCESS: Operation is successful.
1169  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1170  ****************************************************************************************
1171  */
1173 
1174 /**
1175  ****************************************************************************************
1176  * @brief Add the devices into current white list. If white list is full or there are duplicated entries, it will return error.
1177  *
1178  * @param[in] p_whitelist: Pointer to input white list.
1179  *
1180  * @retval ::SDK_SUCCESS: Operation is successful.
1181  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1182  * @retval ::SDK_ERR_LIST_ITEM_ALREADY_EXISTED: Item already existed in list.
1183  * @retval ::SDK_ERR_LIST_FULL: List is full.
1184  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1185  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1186  ****************************************************************************************
1187  */
1188 uint16_t ble_gap_whitelist_add(const ble_gap_white_list_t *p_whitelist);
1189 
1190 /**
1191  ****************************************************************************************
1192  * @brief Delete the devices out of current white list. If the entries do not exist in the current white list, it will return error.
1193  *
1194  * @param[in] p_whitelist: Pointer to input white list.
1195  *
1196  * @retval ::SDK_SUCCESS: Operation is successful.
1197  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1198  * @retval ::SDK_ERR_LIST_ITEM_NOT_FOUND: Item not found in list.
1199  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1200  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1201  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1202  ****************************************************************************************
1203  */
1204 uint16_t ble_gap_whitelist_del(const ble_gap_white_list_t *p_whitelist);
1205 
1206 /**
1207  ****************************************************************************************
1208  * @brief Clear all the entries in the current white list.
1209  *
1210  * @retval ::SDK_SUCCESS: Operation is successful.
1211  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1212  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1213  ****************************************************************************************
1214  */
1216 
1217 /**
1218  ****************************************************************************************
1219  * @brief Get the content of the whole periodic advertising list.
1220  *
1221  * @param[in] p_pal_list: Pointer to the output periodic advertising list.
1222  *
1223  * @retval ::SDK_SUCCESS: Operation is successful.
1224  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1225  ****************************************************************************************
1226  */
1228 
1229 /**
1230  ****************************************************************************************
1231  * @brief Add the devices into current periodic advertising list. If periodic advertising list is full or there are
1232  * duplicated entries, it will return error.
1233  *
1234  * @param[in] p_pal_list: Pointer to input periodic advertising list.
1235  *
1236  * @retval ::SDK_SUCCESS: Operation is successful.
1237  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1238  * @retval ::SDK_ERR_LIST_ITEM_ALREADY_EXISTED: Item already existed in list.
1239  * @retval ::SDK_ERR_LIST_FULL: List is full.
1240  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1241  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1242  ****************************************************************************************
1243  */
1245 
1246 /**
1247  ****************************************************************************************
1248  * @brief Delete the devices out of periodic advertising list. If the entries do not exist in the current list, an error will be returned.
1249  *
1250  * @param[in] p_pal_list: Pointer to input periodic advertising list.
1251  *
1252  * @retval ::SDK_SUCCESS: Operation is successful.
1253  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1254  * @retval ::SDK_ERR_LIST_ITEM_NOT_FOUND: Item not found in list.
1255  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1256  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1257  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1258  ****************************************************************************************
1259  */
1261 
1262 /**
1263  ****************************************************************************************
1264  * @brief Clear all the entries in the current periodic advertising list.
1265  *
1266  * @retval ::SDK_SUCCESS: Operation is successful.
1267  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1268  ****************************************************************************************
1269  */
1271 
1272 /**
1273  ****************************************************************************************
1274  * @brief Get the RPA list info.
1275  * @param[in] p_rpa_list: Pointer to the output RPA list.
1276  *
1277  * @retval ::SDK_SUCCESS: Operation is successful.
1278  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1279  ****************************************************************************************
1280  */
1282 
1283 /**
1284  ****************************************************************************************
1285  * @brief Get the device information according to param type.
1286  *
1287  * @param[in] type: Param type.
1288  *
1289  * @retval ::SDK_SUCCESS: Operation is successful.
1290  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1291  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1292  ****************************************************************************************
1293  */
1295 
1296 /**
1297  ****************************************************************************************
1298  * @brief Set parameters for advertising. Note that this function must be called prior to advertising started.
1299  * @param[in] adv_idx: Advertising index, range is 0 to 4.
1300  * @param[in] own_addr_type: Own BD address source of the local device.
1301  * @param[in] p_adv_param: The advertising parameters.
1302  *
1303  * @retval ::SDK_SUCCESS: Operation is successful.
1304  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1305  * @retval ::SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1306  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1307  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1308  *
1309 
1310  * @note Discovery mode param contains Flags AD type, setting adv data should not set the Flags AD type.
1311  * @note This API is for legacy advertsing (BT Core Spec version <= 4.2).
1312  ****************************************************************************************
1313  */
1314 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);
1315 
1316 /**
1317  ****************************************************************************************
1318  * @brief Set extended parameters for advertising. Note that this function must be called prior to advertising.
1319  * @param[in] adv_idx: Advertising index, range is 0 to 4.
1320  * @param[in] own_addr_type: Own BD address source of the local device.
1321  * @param[in] p_adv_param: The advertising parameters.
1322  *
1323  * @retval ::SDK_SUCCESS: Operation is successful.
1324  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1325  * @retval ::SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1326  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1327  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1328  *
1329  * @note This API is for extended and periodic advertising (BT Core Spec version >= 5.0).
1330  ****************************************************************************************
1331  */
1332 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);
1333 
1334 /**
1335  ****************************************************************************************
1336  * @brief Set Advertising Data, Scan Response Data and Periodic Advertising Data.
1337  *
1338  * @param[in] adv_idx: Advertising index, range is 0 to 4.
1339  * @param[in] type: Data type.
1340  * @param[in] p_data: The data pointer.
1341  * @param[in] length: Data length.
1342  *
1343  * @retval ::SDK_SUCCESS: Operation is successful.
1344  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1345  * @retval ::SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1346  * @retval ::SDK_ERR_INVALID_ADV_DATA_TYPE: Invalid advertising data type supplied.
1347  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1348  *
1349  * @note User should not add extra Flags AD type as the BLE Stack has added the Flags AD type already.
1350  ****************************************************************************************
1351  */
1352 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);
1353 
1354 /**
1355  ****************************************************************************************
1356  * @brief Update Advertising Data, Scan Response Data and Periodic Advertising Data.
1357  *
1358  * @param[in] adv_idx: Advertising index, range is 0 to 4.
1359  * @param[in] type: Data type.
1360  * @param[in] p_data: The data pointer.
1361  * @param[in] length: Data length.
1362  *
1363  * @retval ::SDK_SUCCESS: Operation is successful.
1364  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1365  * @retval ::SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1366  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1367  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1368  *
1369  * @note User should not add extra Flags AD type as the BLE Stack has added the Flags AD type already.
1370  ****************************************************************************************
1371  */
1372 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);
1373 
1374 /**
1375  ****************************************************************************************
1376  * @brief Start advertising.
1377  * @param[in] adv_idx: Advertising index, range is 0 to 4.
1378  * @param[in] p_timeout: Advertising timing parameter.
1379  *
1380  * @retval ::SDK_SUCCESS: Operation is successful.
1381  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1382  * @retval ::SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1383  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1384  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1385  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1386  *
1387  * @note If advertising mode is directed high duty cycle mode, duration should be set nonzero and not be greater than 1.28s.
1388  ****************************************************************************************
1389  */
1390 uint16_t ble_gap_adv_start(uint8_t adv_idx, ble_gap_adv_time_param_t* p_timeout);
1391 
1392 /**
1393  ****************************************************************************************
1394  * @brief Stop advertising.
1395  * @param[in] adv_idx: Advertising index, range is 0 to 4.
1396  *
1397  * @retval ::SDK_SUCCESS: Operation is successful.
1398  * @retval ::SDK_ERR_INVALID_ADV_IDX: Invalid advertising index supplied.
1399  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1400  ****************************************************************************************
1401  */
1402 uint16_t ble_gap_adv_stop(uint8_t adv_idx);
1403 
1404 /**
1405  ****************************************************************************************
1406  * @brief Set parameters for scanning. Note that this function must be called prior to scanning started.
1407  * @param[in] own_addr_type: Own BD address source of the local device.
1408  * @param[in] p_scan_param: The scanning parameters.
1409  *
1410  * @retval ::SDK_SUCCESS: Operation is successful.
1411  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1412  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1413  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1414  ****************************************************************************************
1415  */
1416 uint16_t ble_gap_scan_param_set(ble_gap_own_addr_t own_addr_type, ble_gap_scan_param_t* p_scan_param);
1417 
1418 /**
1419  ****************************************************************************************
1420  * @brief Set extended parameters for scanning. Note that this function must be called prior to scanning started.
1421  * @param[in] own_addr_type: Own BD address source of the local device.
1422  * @param[in] p_scan_param: The scanning parameters.
1423  *
1424  * @retval ::SDK_SUCCESS: Operation is successful.
1425  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1426  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1427  *
1428  * @note This API is for extended scanning (BT Core Spec version >= 5.0).
1429  * The Scan window in p_scan_param should be enough to recieve one packet. For example.
1430  * If you want to recieve packects with 1270 bytes on coded phy(S8), the scan_wd should be greater than 82ms.
1431  * If you want to recieve packects with 1270 bytes on coded phy(S2), the scan_wd should be greater than 21ms.
1432  ****************************************************************************************
1433  */
1435 
1436 /**
1437  ****************************************************************************************
1438  * @brief Start scanning
1439  *
1440  * @retval ::SDK_SUCCESS: Operation is successful.
1441  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1442  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1443  ****************************************************************************************
1444  */
1445 uint16_t ble_gap_scan_start(void);
1446 
1447 /**
1448  ****************************************************************************************
1449  * @brief Stop scanning
1450  *
1451  * @retval ::SDK_SUCCESS: Operation is successful.
1452  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1453  ****************************************************************************************
1454  */
1455 uint16_t ble_gap_scan_stop(void);
1456 
1457 /**
1458  ****************************************************************************************
1459  * @brief Set the parameters used for periodic sync.
1460  * @param[in] per_sync_idx: Periodic synchronization index (range is 0 to 4).
1461  * @param[in] p_per_sync_param: Periodic synchronization parameters.
1462  *
1463  * @retval ::SDK_SUCCESS: Operation is successful.
1464  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1465  * @retval ::SDK_ERR_INVALID_PER_SYNC_IDX: Invalid periodic syncronization index supplied.
1466  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1467  ****************************************************************************************
1468  */
1469 uint16_t ble_gap_per_sync_param_set(uint8_t per_sync_idx, ble_gap_per_sync_param_t* p_per_sync_param);
1470 
1471 /**
1472  ****************************************************************************************
1473  * @brief Start to synchronize with periodic advertising from an advertiser and begin receiving periodic advertising packets.
1474  * @param[in] per_sync_idx: Periodic synchronization index (range is 0 to 4).
1475  *
1476  * @retval ::SDK_SUCCESS: Operation is successful.
1477  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1478  * @retval ::SDK_ERR_INVALID_PER_SYNC_IDX: Invalid periodic syncronization index supplied.
1479  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1480  ****************************************************************************************
1481  */
1482 uint16_t ble_gap_per_sync_start(uint8_t per_sync_idx);
1483 
1484 /**
1485  ****************************************************************************************
1486  * @brief Stop periodic synchronization.
1487  * @param[in] per_sync_idx: Periodic synchronization index (range is 0 to 4).
1488  *
1489  * @retval ::SDK_SUCCESS: Operation is successful.
1490  * @retval ::SDK_ERR_INVALID_PER_SYNC_IDX: Invalid periodic syncronization index supplied.
1491  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1492  ****************************************************************************************
1493  */
1494 uint16_t ble_gap_per_sync_stop(uint8_t per_sync_idx);
1495 
1496 /**
1497  ****************************************************************************************
1498  * @brief Start a legacy connection to a device.
1499  * @param[in] own_addr_type: Own BD address source of the local device.
1500  * @param[in] p_init_param: Initiate parameters.
1501  *
1502  * @retval ::SDK_SUCCESS: Operation is successful.
1503  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1504  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1505  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1506  *
1507  * @note This API is for legacy connection (BT Core Spec version <= 4.2).
1508  ****************************************************************************************
1509  */
1510 uint16_t ble_gap_connect(ble_gap_own_addr_t own_addr_type, ble_gap_init_param_t* p_init_param);
1511 
1512 /**
1513  ****************************************************************************************
1514  * @brief Start an extended connection to a device.
1515  * @param[in] own_addr_type: Own BD address source of the local device.
1516  * @param[in] p_init_param: Initiate parameters.
1517  *
1518  * @retval ::SDK_SUCCESS: Operation is successful.
1519  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1520  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1521  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1522  *
1523  * @note This API is for extended connection (BT Core Spec version >= 5.0).
1524  ****************************************************************************************
1525  */
1526 uint16_t ble_gap_ext_connect(ble_gap_own_addr_t own_addr_type, ble_gap_ext_init_param_t* p_init_param);
1527 
1528 /**
1529  ****************************************************************************************
1530  * @brief Cancel an initiated connection.
1531  *
1532  * @retval ::SDK_SUCCESS: Operation is successful.
1533  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1534  ****************************************************************************************
1535  */
1536 uint16_t ble_gap_connect_cancel(void);
1537 
1538 /**
1539  ****************************************************************************************
1540  * @brief Set GAP appearance value.
1541  * @param[in] appearance: Appearance value.
1542  ****************************************************************************************
1543  */
1544 void ble_gap_appearance_set(uint16_t appearance);
1545 
1546 /**
1547  ****************************************************************************************
1548  * @brief Get GAP appearance value.
1549  * @param[out] p_appearance: The pointer to appearance value.
1550  *
1551  * @retval ::SDK_SUCCESS: Operation is successful.
1552  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1553  ****************************************************************************************
1554  */
1555 uint16_t ble_gap_appearance_get(uint16_t *p_appearance);
1556 
1557 /**
1558  ****************************************************************************************
1559  * @brief Set GAP Peripheral Preferred Connection Parameters present flag.
1560  *
1561  * @param[in] present_flag: Present or not.
1562  ****************************************************************************************
1563  */
1564 void ble_gap_ppcp_present_set(bool present_flag);
1565 
1566 /**
1567  ****************************************************************************************
1568  * @brief Set GAP Peripheral Preferred Connection Parameters.
1569  * @param[in] p_conn_params: The pointer to PPCP values.
1570  *
1571  * @retval ::SDK_SUCCESS: Operation is successful.
1572  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1573  ****************************************************************************************
1574  */
1575 uint16_t ble_gap_ppcp_set(ble_gap_conn_param_t const *p_conn_params);
1576 
1577 /**
1578  ****************************************************************************************
1579  * @brief Get GAP Peripheral Preferred Connection Parameters.
1580  * @param[out] p_conn_params: The pointer to PPCP values.
1581  *
1582  * @retval ::SDK_SUCCESS: Operation is successful.
1583  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1584  ****************************************************************************************
1585  */
1586 uint16_t ble_gap_ppcp_get(ble_gap_conn_param_t *p_conn_params);
1587 
1588 /**
1589  ****************************************************************************************
1590  * @brief Set GAP device name.
1591  * @param[in] write_perm: Write permissions of the device name characteristic.
1592  * @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.
1593  * @param[in] length: Device name length.
1594  *
1595  * @retval ::SDK_SUCCESS: Operation is successful.
1596  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1597  ****************************************************************************************
1598  */
1599 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);
1600 
1601 /**
1602  ****************************************************************************************
1603  * @brief Get GAP device name.
1604  * @param[out] p_dev_name: The pointer to device name value, set to NULL to obtain the complete device name length.
1605  * @param[in, out] p_length: Length of the buffer pointed by p_dev_name, complete device name length on output.
1606  *
1607  * @retval ::SDK_SUCCESS: Operation is successful.
1608  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1609  * @retval ::SDK_ERR_INVALID_DATA_LENGTH: Invalid data size(s) supplied.
1610  *
1611  * @note If device name was not set, the default device name "GOODIX_BLE" will be available.
1612  * @note If the device name is longer than the size of the supplied buffer,p_len will return the complete device name length,
1613  * and not the number of bytes actually returned in p_dev_name.
1614  * The application may use this information to allocate a suitable buffer size.
1615  ****************************************************************************************
1616  */
1617 uint16_t ble_gap_device_name_get(uint8_t *p_dev_name, uint16_t *p_length);
1618 
1619 /**
1620  ****************************************************************************************
1621  * @brief Register a LE Protocol/Service Multiplexer.
1622  * @param[in] p_lepsm: The lepsm information to be registerred.
1623  *
1624  * @retval ::SDK_SUCCESS: Operation is successful.
1625  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1626  * @retval ::SDK_ERR_INVALID_PSM_NUM: Invalid psm number.
1627  * @retval ::SDK_ERR_INVALID_PSM_EXCEEDED_MAX_PSM_NUM: The maximum psm number limit is exceeded.
1628  * @retval ::SDK_ERR_INVALID_PSM_ALREADY_REGISTERED: The psm number has been registered.
1629  ****************************************************************************************
1630  */
1632 
1633 /**
1634  ****************************************************************************************
1635  * @brief Unregister a LE Protocol/Service Multiplexer.
1636  * @param[in] le_psm: LE Protocol/Service Multiplexer (1 to 255).
1637  *
1638  * @retval ::SDK_SUCCESS: Operation is successful.
1639  * @retval ::SDK_ERR_INVALID_PSM_NUM: Invalid psm number.
1640  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1641  ****************************************************************************************
1642  */
1643 uint16_t ble_gap_lepsm_unregister(uint16_t le_psm);
1644 
1645 /**
1646  ****************************************************************************************
1647  * @brief Set privacy mode for peer device.
1648  * @param[in] peer_addr: The peer address.
1649  * @param[in] mode: Privacy mode.
1650  *
1651  * @retval ::SDK_SUCCESS: Operation is successful.
1652  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1653  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1654  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
1655  ****************************************************************************************
1656  */
1658 
1659 /**
1660  *****************************************************************************************
1661  * @brief Add rpa list.
1662  *
1663  * @param[in] p_peer_iden_addr: Pointer to the peer identity address.
1664  * @param[in] p_peer_irk: Pointer to the peer irk.
1665  *
1666  * @retval ::SDK_SUCCESS: Operation is Success.
1667  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
1668  * @retval ::SDK_ERR_LIST_FULL: Rpa list is full.
1669  * @retval ::SDK_ERR_LIST_ITEM_ALREADY_EXISTED: Item already exists in list.
1670  * @retval ::SDK_ERR_DISALLOWED: Operation is disallowed.
1671  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources for operation.
1672  *****************************************************************************************
1673  */
1674 uint16_t ble_gap_rpa_list_add(ble_gap_bdaddr_t *p_peer_iden_addr, uint8_t *p_peer_irk);
1675 
1676 /**
1677  ****************************************************************************************
1678  * @brief Read peer or local resolvable address, this address generated by controller.
1679  * @param[in] op_code: The operation code (see @ref ble_gap_rslv_addr_read_op_id_t).
1680  * @param[in] peer_iden_addr: The peer identity address.
1681  *
1682  * @retval ::SDK_SUCCESS: Operation is successful.
1683  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1684  *
1685  ****************************************************************************************
1686  */
1688 
1689 /**
1690  *****************************************************************************************
1691  * @brief Resolve the rpa address.
1692  *
1693  * @param[in] reslv_addr: rpa address.
1694  * @param[in] src_info: Information used retrieve requester (src_info >= 10).
1695  * @param[in] cb: Function that will handle the resolved result.
1696  *
1697  * @retval ::SDK_SUCCESS: Operation is Success.
1698  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
1699  *****************************************************************************************
1700  */
1701 uint16_t ble_gap_reslv_rpa_addr(uint8_t *reslv_addr, uint8_t src_info, ble_gap_reslv_rpa_addr_callback_t cb);
1702 
1703 /**
1704  *****************************************************************************************
1705  * @brief Set the method for updating connection parameter.
1706  *
1707  * @param[in] conn_idx: Connection index.
1708  * @param[in] use_l2cap_flag: Preferred to use l2cap to update connection parameter.
1709  *
1710  * @retval ::SDK_SUCCESS: Operation is Success.
1711  * @retval ::SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
1712  *****************************************************************************************
1713  */
1714 uint16_t ble_gap_update_conn_param_method_set(uint8_t conn_idx, bool use_l2cap_flag);
1715 
1716 /** @} */
1717 
1718 #endif
1719 /** @} */
1720 
1721 /** @} */
1722 /** @} */
ble_gap_evt_sync_established_t::phy
uint8_t phy
PHY on which synchronization has been established.
Definition: ble_gapm.h:830
ble_gap_per_sync_type_t
ble_gap_per_sync_type_t
Periodic synchronization types.
Definition: ble_gapm.h:387
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_AD_TYPE_RQRD_32_BIT_SVC_UUID
@ BLE_GAP_AD_TYPE_RQRD_32_BIT_SVC_UUID
Require 32-bit service UUID.
Definition: ble_gapm.h:425
BLE_GAP_ROLE_PERIPHERAL
@ BLE_GAP_ROLE_PERIPHERAL
Peripheral/Slave role.
Definition: ble_gapm.h:154
BLE_GAP_ADV_PROP_SCANNABLE_POS
@ BLE_GAP_ADV_PROP_SCANNABLE_POS
Indicate that advertising is scannable, reception of SCAN_REQ or AUX_SCAN_REQ PDUs is accepted.
Definition: ble_gapm.h:267
BLE_GAP_PRIVACY_MODE_NETWORK
@ BLE_GAP_PRIVACY_MODE_NETWORK
Set to the network privacy mode for the peer device.
Definition: ble_gapm.h:488
ble_gap_adv_second_cfg_t::max_skip
uint8_t max_skip
Maximum number of advertising events the controller can skip before sending the AUX_ADV_IND packets.
Definition: ble_gapm.h:566
ble_gap_ext_init_param_t::conn_to
uint16_t conn_to
Timeout for automatic connection establishment (in unit of 10ms).
Definition: ble_gapm.h:706
BLE_GAP_SEC_LVL_LE_ENC_AUTH
@ BLE_GAP_SEC_LVL_LE_ENC_AUTH
Legacy encryption with auth.
Definition: ble_gapm.h:399
ble_gap_ext_init_param_t::scan_param_1m
ble_gap_scan_wd_op_param_t scan_param_1m
Scan window opening parameters for LE 1M PHY.
Definition: ble_gapm.h:707
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_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.
BLE_GAP_PHY_CODED_VALUE
@ BLE_GAP_PHY_CODED_VALUE
LE Coded PHY.
Definition: ble_gapm.h:247
ble_gap_init_param_t::sup_timeout
uint16_t sup_timeout
Link supervision timeout (in unit of 10ms).
Definition: ble_gapm.h:682
BLE_GAP_AD_TYPE_TRANSMIT_POWER
@ BLE_GAP_AD_TYPE_TRANSMIT_POWER
Transmit power.
Definition: ble_gapm.h:417
BLE_GAP_CLK_ACC_250
@ BLE_GAP_CLK_ACC_250
250 ppm.
Definition: ble_gapm.h:509
BLE_GAP_ACTV_TYPE_INIT
@ BLE_GAP_ACTV_TYPE_INIT
Definition: ble_gapm.h:525
BLE_GAP_SCAN_GEN_DISC_MODE
@ BLE_GAP_SCAN_GEN_DISC_MODE
General discoverable mode.
Definition: ble_gapm.h:313
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.
ble_gap_adv_prim_cfg_t
Configuration for advertising on primary channel.
Definition: ble_gapm.h:554
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_CLK_ACC_75
@ BLE_GAP_CLK_ACC_75
70 ppm.
Definition: ble_gapm.h:512
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_ral_dev_info_t::priv_mode
ble_gap_privacy_mode_t priv_mode
Privacy mode, see enum ble_gap_privacy_mode_t.
Definition: ble_gapm.h:768
ble_gap_scan_wd_op_param_t
Scan Window operation parameters.
Definition: ble_gapm.h:631
ble_gap_adv_param_t::peer_addr
ble_gap_bdaddr_t peer_addr
Peer address configuration (only used in case of directed advertising, or used to locate the IRK list...
Definition: ble_gapm.h:542
ble_gap_evt_scan_req_t::peer_addr
ble_gap_bdaddr_t peer_addr
Scan request info.
Definition: ble_gapm.h:800
BLE_GAP_ACTIVITY_ROLE_ADV
@ BLE_GAP_ACTIVITY_ROLE_ADV
Adertise role.
Definition: ble_gapm.h:497
BLE_GAP_REPORT_TYPE_PER_ADV
@ BLE_GAP_REPORT_TYPE_PER_ADV
Periodic advertising report.
Definition: ble_gapm.h:462
ble_gap_ext_adv_param_t::max_tx_pwr
int8_t max_tx_pwr
Maximum power level at which the advertising packets have to be transmitted (between -20 and 7 dBm).
Definition: ble_gapm.h:588
BLE_GAP_GET_MAX_LE_ADV_DATA_LEN
@ BLE_GAP_GET_MAX_LE_ADV_DATA_LEN
Get maximum data length for advertising data.
Definition: ble_gapm.h:204
BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_ANY
@ BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_ANY
Allow scan req from white-list devices only and connection req from anyone.
Definition: ble_gapm.h:234
ble_gap_ext_adv_param_t::prim_cfg
ble_gap_adv_prim_cfg_t prim_cfg
Configuration for primary advertising.
Definition: ble_gapm.h:591
BLE_GAP_ROLE_BROADCASTER
@ BLE_GAP_ROLE_BROADCASTER
Broadcaster role.
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:617
BLE_GAP_ADV_PROP_PER_TX_PWR_POS
@ BLE_GAP_ADV_PROP_PER_TX_PWR_POS
Include TX power in the periodic advertising PDU.
Definition: ble_gapm.h:278
ble_gap_white_list_t
White list.
Definition: ble_gapm.h:748
BLE_GAP_AD_TYPE_MORE_32_BIT_UUID
@ BLE_GAP_AD_TYPE_MORE_32_BIT_UUID
Use of more than 32-bit UUD.
Definition: ble_gapm.h:411
BLE_GAP_REPORT_INFO_CONN_ADV_BIT
@ BLE_GAP_REPORT_INFO_CONN_ADV_BIT
Connectable advertising.
Definition: ble_gapm.h:469
ble_gap_privacy_mode_t
ble_gap_privacy_mode_t
Privacy mode.
Definition: ble_gapm.h:487
ble_gapm_evt_t::rslv_addr_report
ble_gap_evt_rslv_addr_report_t rslv_addr_report
Resolvable Address report parameter, generated by host.
Definition: ble_gapm.h:865
BLE_GAP_EXT_SCAN_TYPE_LIM_DISC
@ BLE_GAP_EXT_SCAN_TYPE_LIM_DISC
Limited discovery.
Definition: ble_gapm.h:333
ble_gap_ext_scan_param_t::rsvd
uint8_t rsvd
Reserved for future use.
Definition: ble_gapm.h:644
BLE_GAP_ADV_PROP_HDC_BIT
@ BLE_GAP_ADV_PROP_HDC_BIT
Definition: ble_gapm.h:291
BLE_GAP_WRITE_PERM_UNAUTH
@ BLE_GAP_WRITE_PERM_UNAUTH
LE Security Mode 1, Level 2.
Definition: ble_gapm.h:175
BLE_GAP_ROLE_CENTRAL
@ BLE_GAP_ROLE_CENTRAL
Master/Central role.
Definition: ble_gapm.h:153
BLE_GAP_ADV_PROP_TX_PWR_BIT
@ BLE_GAP_ADV_PROP_TX_PWR_BIT
Definition: ble_gapm.h:294
BLE_GAP_ADV_TYPE_LEGACY
@ BLE_GAP_ADV_TYPE_LEGACY
Legacy advertising.
Definition: ble_gapm.h:255
BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_POS
@ BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_POS
Indicate if application must be informed about receiving scan request PDUs.
Definition: ble_gapm.h:280
ble_gap_scan_dup_filt_policy_t
ble_gap_scan_dup_filt_policy_t
Duplicate filter policy.
Definition: ble_gapm.h:322
BLE_GAP_ROLE_ALL
@ BLE_GAP_ROLE_ALL
Device has all roles, both peripheral and central.
Definition: ble_gapm.h:155
ble_gap_addr_t
The struct of address.
Definition: ble_gapc.h:179
BLE_GAP_ACTV_TYPE_SCAN
@ BLE_GAP_ACTV_TYPE_SCAN
Definition: ble_gapm.h:524
BLE_GAP_GET_DEV_BDADDR
@ BLE_GAP_GET_DEV_BDADDR
Get local device BD Address.
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_reslv_rpa_addr
uint16_t ble_gap_reslv_rpa_addr(uint8_t *reslv_addr, uint8_t src_info, ble_gap_reslv_rpa_addr_callback_t cb)
Resolve the rpa address.
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
Slave latency.
Definition: ble_gapm.h:694
BLE_GAP_GET_DEV_VERSION
@ BLE_GAP_GET_DEV_VERSION
Get version information for the local Controller.
Definition: ble_gapm.h:194
ble_gap_bond_devs_get_with_local_addr
uint16_t ble_gap_bond_devs_get_with_local_addr(ble_gap_bond_dev_list_with_local_addr_t *p_bond_list)
Get all bonded devices with local address.
ble_gap_ext_adv_param_t::peer_addr
ble_gap_bdaddr_t peer_addr
Peer address configuration (only used in case of directed advertising or used to locate the IRK list)...
Definition: ble_gapm.h:590
BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED
@ BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED
Legacy BT not supported: AD Flag.
Definition: ble_gapm.h:450
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
Complete Device name.
Definition: ble_gapm.h:416
BLE_GAP_CLK_ACC_50
@ BLE_GAP_CLK_ACC_50
50 ppm.
Definition: ble_gapm.h:513
BLE_GAP_ACTV_TYPE_ADV
@ BLE_GAP_ACTV_TYPE_ADV
Definition: ble_gapm.h:523
ble_gap_rpa_list_get
uint16_t ble_gap_rpa_list_get(ble_gap_ral_dev_list_t *p_rpa_list)
Get the RPA list info.
ble_gap_ext_adv_param_t::disc_mode
ble_gap_disc_mode_t disc_mode
Discovery mode (see enum ble_gap_disc_mode_t).
Definition: ble_gapm.h:586
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:185
ble_gap_evt_adv_report_t::length
uint16_t length
Report length.
Definition: ble_gapm.h:823
BLE_GAP_OWN_ADDR_STATIC
@ BLE_GAP_OWN_ADDR_STATIC
Public or Private Static Address according to device address configuration.
Definition: ble_gapm.h:163
BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE
@ BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE
General discovery flag: AD Flag.
Definition: ble_gapm.h:449
ble_gap_lepsm_register_t::mks_flag
bool mks_flag
Whether to use maximum-size key (16 bytes) or not.
Definition: ble_gapm.h:722
BLE_GAP_SCAN_ACTIVE
@ BLE_GAP_SCAN_ACTIVE
Active scan type.
Definition: ble_gapm.h:304
BLE_GAP_REPORT_INFO_DIR_ADV_BIT
@ BLE_GAP_REPORT_INFO_DIR_ADV_BIT
Directed advertising.
Definition: ble_gapm.h:471
BLE_GAP_ACTIVITY_ROLE_CON
@ BLE_GAP_ACTIVITY_ROLE_CON
Connect role.
Definition: ble_gapm.h:498
BLE_GAP_AD_TYPE_MORE_16_BIT_UUID
@ BLE_GAP_AD_TYPE_MORE_16_BIT_UUID
Use of more than 16-bit UUID.
Definition: ble_gapm.h:409
BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_WLST
@ BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_WLST
Allow scan and connection requests from white-list devices only.
Definition: ble_gapm.h:236
ble_gap_ral_dev_list_t
RPA list info.
Definition: ble_gapm.h:777
BLE_GAP_OWN_ADDR_GEN_RSLV
@ BLE_GAP_OWN_ADDR_GEN_RSLV
Generated resolvable private random address.
Definition: ble_gapm.h:164
BLE_GAP_CLK_ACC_20
@ BLE_GAP_CLK_ACC_20
20 ppm.
Definition: ble_gapm.h:515
ble_gap_evt_adv_report_t
Advertising report event for BLE_GAPM_EVT_ADV_REPORT.
Definition: ble_gapm.h:811
ble_gap_per_sync_param_t::sync_to
uint16_t sync_to
Synchronization timeout for the periodic advertising (in unit of 10ms between 100ms and 163....
Definition: ble_gapm.h:666
BLE_GAP_SCAN_LIM_DISC_MODE
@ BLE_GAP_SCAN_LIM_DISC_MODE
Limited discoverable mode.
Definition: ble_gapm.h:314
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
Include TX power in the extended header of the advertising PDU.
Definition: ble_gapm.h:276
ble_gap_adv_prim_cfg_t::chnl_map
uint8_t chnl_map
Bit field indicating the channel map.
Definition: ble_gapm.h:557
ble_gap_adv_param_t::max_tx_pwr
int8_t max_tx_pwr
Maximum power level at which the advertising packets have to be transmitted (between -20dbm and 7dbm)...
Definition: ble_gapm.h:547
ble_gap_adv_time_param_t
Advertising timing parameter.
Definition: ble_gapm.h:600
BLE_GAP_AD_TYPE_SERVICE_16_BIT_DATA
@ BLE_GAP_AD_TYPE_SERVICE_16_BIT_DATA
Service data 16-bit UUID.
Definition: ble_gapm.h:427
BLE_GAP_AD_TYPE_LE_BT_ADDR
@ BLE_GAP_AD_TYPE_LE_BT_ADDR
LE Bluetooth Device Address.
Definition: ble_gapm.h:434
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:264
BLE_GAP_STOPPED_REASON_CONN_EST
@ BLE_GAP_STOPPED_REASON_CONN_EST
Stop with connection established.
Definition: ble_gapm.h:479
ble_gap_per_sync_param_t::adv_addr
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)...
Definition: ble_gapm.h:669
ble_gap_period_adv_addr_cfg_t::bd_addr
ble_gap_bdaddr_t bd_addr
Advertiser address information.
Definition: ble_gapm.h:656
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_STOPPED_REASON_TIMEOUT
@ BLE_GAP_STOPPED_REASON_TIMEOUT
Stop with timeout.
Definition: ble_gapm.h:477
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:655
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:331
ble_gap_ext_scan_param_t::scan_param_coded
ble_gap_scan_wd_op_param_t scan_param_coded
Scan window opening parameters for LE Coded PHY.
Definition: ble_gapm.h:646
ble_gap_adv_mode_t
ble_gap_adv_mode_t
GAP advertising modes.
Definition: ble_gapm.h:211
ble_gap_evt_adv_report_t::adv_info
ble_gap_adv_report_info_t adv_info
Bit field providing information about the received report.
Definition: ble_gapm.h:813
BLE_GAP_ADV_PROP_ANONYMOUS_BIT
@ BLE_GAP_ADV_PROP_ANONYMOUS_BIT
Definition: ble_gapm.h:293
BLE_GAP_PHY_1MBPS_VALUE
@ BLE_GAP_PHY_1MBPS_VALUE
LE 1M PHY.
Definition: ble_gapm.h:245
ble_gap_actv_role_t
ble_gap_actv_role_t
Possible roles of the activity.
Definition: ble_gapm.h:496
ble_gap_ext_init_param_t
Extended initiating parameters.
Definition: ble_gapm.h:703
BLE_GAP_ADV_TYPE_ADV_LOW_DIRECT_IND
@ BLE_GAP_ADV_TYPE_ADV_LOW_DIRECT_IND
Directed low duty cycle mode.
Definition: ble_gapm.h:216
ble_gap_le_phy_value_t
ble_gap_le_phy_value_t
Specify what PHY the Controller has changed for TX/RX.
Definition: ble_gapm.h:243
BLE_GAP_ADV_PROP_DIRECTED_BIT
@ BLE_GAP_ADV_PROP_DIRECTED_BIT
Definition: ble_gapm.h:290
ble_gap_evt_sync_established_t::clk_acc
uint8_t clk_acc
Advertiser clock accuracy.
Definition: ble_gapm.h:833
ble_gap_bond_dev_list_with_local_addr_t
Bonded device list with local address.
Definition: ble_gapm.h:738
BLE_GAP_AD_TYPE_COMPLETE_LIST_128_BIT_UUID
@ BLE_GAP_AD_TYPE_COMPLETE_LIST_128_BIT_UUID
Complete List of 128-bit UUID.
Definition: ble_gapm.h:414
ble_gap_adv_prim_cfg_t::adv_intv_max
uint32_t adv_intv_max
Maximum advertising interval (in unit of 625 us).
Definition: ble_gapm.h:556
BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_BIT
@ BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_BIT
Definition: ble_gapm.h:296
BLE_GAP_WRITE_PERM_DISABLE
@ BLE_GAP_WRITE_PERM_DISABLE
Disable write access.
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
Maximum value for the connection interval (in unit of 1.25ms).
Definition: ble_gapm.h:693
BLE_GAP_CLK_ACC_100
@ BLE_GAP_CLK_ACC_100
10 ppm.
Definition: ble_gapm.h:511
BLE_GAP_EXT_SCAN_TYPE_CONN_DISC
@ BLE_GAP_EXT_SCAN_TYPE_CONN_DISC
Connectable discovery.
Definition: ble_gapm.h:336
ble_gap_per_sync_param_t
Periodic advertising synchronization parameters.
Definition: ble_gapm.h:664
ble_gap_evt_rslv_addr_read_t
Read resolvable address event for BLE_GAPM_EVT_READ_RSLV_ADDR.
Definition: ble_gapm.h:840
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_gapm.h:786
BLE_GAP_AD_TYPE_PUB_TGT_ADDR
@ BLE_GAP_AD_TYPE_PUB_TGT_ADDR
Public Target Address.
Definition: ble_gapm.h:430
BLE_GAP_GET_DEV_TX_POWER
@ BLE_GAP_GET_DEV_TX_POWER
Read the minimum and maximum transmit powers supported by the Controller.
Definition: ble_gapm.h:205
ble_gap_chnl_map_timer_set
uint16_t ble_gap_chnl_map_timer_set(bool enable_flag)
Set ble channel map update timer enable or disable.
ble_gap_lepsm_register_t
LE Protocol/Service Multiplexer information.
Definition: ble_gapm.h:719
BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_ANY
@ BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_ANY
Allow both scan and connection requests from anyone.
Definition: ble_gapm.h:233
ble_gap_scan_param_t::scan_type
ble_gap_scan_type_t scan_type
Active scanning or passive scanning.
Definition: ble_gapm.h:618
BLE_GAP_ADV_PROP_PER_TX_PWR_BIT
@ BLE_GAP_ADV_PROP_PER_TX_PWR_BIT
Definition: ble_gapm.h:295
ble_gap_ext_conn_param_t::conn_intv_min
uint16_t conn_intv_min
Minimum value for the connection interval (in unit of 1.25ms).
Definition: ble_gapm.h:692
BLE_GAP_ADV_DATA_TYPE_DATA
@ BLE_GAP_ADV_DATA_TYPE_DATA
Advertising 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:799
ble_gap_evt_adv_report_t::adv_sid
uint8_t adv_sid
Advertising SID , valid only for periodic advertising report.
Definition: ble_gapm.h:820
ble_gap_clk_acc_t
ble_gap_clk_acc_t
Clock ACC error.
Definition: ble_gapm.h:507
BLE_GAP_SCAN_PROP_FILT_TRUNC_BIT
@ BLE_GAP_SCAN_PROP_FILT_TRUNC_BIT
Filter truncated advertising or scan response reports.
Definition: ble_gapm.h:380
ble_gap_init_param_t
Legacy initiating parameters.
Definition: ble_gapm.h:676
BLE_GAP_SCAN_PROP_PHY_CODED_BIT
@ BLE_GAP_SCAN_PROP_PHY_CODED_BIT
Scan advertisement on the LE Coded PHY.
Definition: ble_gapm.h:376
BLE_GAP_ADV_PROP_SCANNABLE_BIT
@ BLE_GAP_ADV_PROP_SCANNABLE_BIT
Definition: ble_gapm.h:289
BLE_GAP_AD_TYPE_RQRD_128_BIT_SVC_UUID
@ BLE_GAP_AD_TYPE_RQRD_128_BIT_SVC_UUID
Require 128-bit service UUID.
Definition: ble_gapm.h:426
BLE_GAP_SCAN_FILT_DUPLIC_EN
@ BLE_GAP_SCAN_FILT_DUPLIC_EN
Enable filtering of duplicate packets.
Definition: ble_gapm.h:324
BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_BIT
@ BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_BIT
Definition: ble_gapm.h:292
BLE_GAP_REPORT_TYPE_SCAN_RSP_LEG
@ BLE_GAP_REPORT_TYPE_SCAN_RSP_LEG
Legacy scan response report.
Definition: ble_gapm.h:461
BLE_GAP_SCAN_FILT_DUPLIC_DIS
@ BLE_GAP_SCAN_FILT_DUPLIC_DIS
Disable filtering of duplicate packets.
Definition: ble_gapm.h:323
BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_POS
@ BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_POS
Use legacy advertising PDUs.
Definition: ble_gapm.h:273
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.
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:344
ble_gap_evt_adv_report_t::per_sync_idx
uint8_t per_sync_idx
Periodic syncronization index, valid only for periodic advertising report.
Definition: ble_gapm.h:822
BLE_GAP_ADV_TYPE_ADV_IND
@ BLE_GAP_ADV_TYPE_ADV_IND
Undirected connectable and scannable mode.
Definition: ble_gapm.h:212
ble_gap_evt_scan_stop_t
Scan Stop info struct.
Definition: ble_gapm.h:805
ble_gap_evt_scan_stop_t::reason
ble_gap_stopped_reason_t reason
Scan Stop info.
Definition: ble_gapm.h:806
BLE_GAP_PHY_UNDEF_VALUE
@ BLE_GAP_PHY_UNDEF_VALUE
Undefined LE PHY.
Definition: ble_gapm.h:244
BLE_GAP_AD_TYPE_COMPLETE_LIST_16_BIT_UUID
@ BLE_GAP_AD_TYPE_COMPLETE_LIST_16_BIT_UUID
Complete List of 16-bit UUID.
Definition: ble_gapm.h:410
ble_gapm_evt_t::dev_info
ble_gap_evt_dev_info_get_t dev_info
Device info parameters.
Definition: ble_gapm.h:858
ble_gap_ext_adv_param_t::period_cfg
ble_gap_adv_period_cfg_t period_cfg
Configuration for periodic advertising (valid only if advertising type is GAP_ADV_TYPE_PERIODIC).
Definition: ble_gapm.h:593
ble_gap_evt_rslv_addr_report_t::rpa_addr
ble_gap_addr_t rpa_addr
rpa address info.
Definition: ble_gapm.h:849
BLE_GAP_PRIVACY_MODE_DEVICE
@ BLE_GAP_PRIVACY_MODE_DEVICE
Set to the device privacy mode for the peer device.
Definition: ble_gapm.h:489
BLE_GAP_SCAN_PROP_ACTIVE_CODED_BIT
@ BLE_GAP_SCAN_PROP_ACTIVE_CODED_BIT
Active scan on LE Coded PHY (scan request PDUs may be sent).
Definition: ble_gapm.h:378
CO_BIT
#define CO_BIT(pos)
Bit operation helper.
Definition: ble_gapm.h:72
ble_gapm_evt_t
BLE GAPM event structure.
Definition: ble_gapm.h:854
ble_gap_ext_scan_param_t::prop
uint8_t prop
Properties for the scan procedure (see enum ble_gap_scan_prop for bit signification).
Definition: ble_gapm.h:642
ble_gap_adv_period_cfg_t::adv_intv_max
uint16_t adv_intv_max
Maximum advertising interval (in unit of 1.25 ms).
Definition: ble_gapm.h:577
BLE_GAP_ACTIVITY_ROLE_SCAN_INIT
@ BLE_GAP_ACTIVITY_ROLE_SCAN_INIT
Scann role.
Definition: ble_gapm.h:499
BLE_GAP_DISC_MODE_BROADCASTER
@ BLE_GAP_DISC_MODE_BROADCASTER
Broadcaster mode.
Definition: ble_gapm.h:225
ble_gap_actv_type_t
ble_gap_actv_type_t
Activity type.
Definition: ble_gapm.h:522
BLE_GAP_ADV_PROP_ANONYMOUS_POS
@ BLE_GAP_ADV_PROP_ANONYMOUS_POS
Enable anonymous mode.
Definition: ble_gapm.h:274
BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE
@ BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE
Limited discovery flag: AD Flag.
Definition: ble_gapm.h:448
BLE_GAP_CLK_ACC_150
@ BLE_GAP_CLK_ACC_150
150 ppm.
Definition: ble_gapm.h:510
ble_gapm_evt_t::scan_req
ble_gap_evt_scan_req_t scan_req
Scan Request parameter.
Definition: ble_gapm.h:860
ble_gap_period_adv_addr_cfg_t::adv_sid
uint8_t adv_sid
Advertising SID.
Definition: ble_gapm.h:657
ble_gap_ext_adv_param_t::prop
uint16_t prop
Bit field value provided by advertising properties.
Definition: ble_gapm.h:587
BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_WLST
@ BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_WLST
Allow scan req from anyone and connection req from white-list devices only.
Definition: ble_gapm.h:235
BLE_GAP_AD_TYPE_SPAIR_RAND
@ BLE_GAP_AD_TYPE_SPAIR_RAND
Simple Pairing Randomizer R-256.
Definition: ble_gapm.h:437
BLE_GAP_GET_DEV_RF_RF_PATH_COMP
@ BLE_GAP_GET_DEV_RF_RF_PATH_COMP
Get RF path compensation values.
Definition: ble_gapm.h:206
ble_gap_period_adv_list_t::num
uint8_t num
Number of available items.
Definition: ble_gapm.h:758
BLE_GAP_GET_MAX_LE_DATA_LEN
@ BLE_GAP_GET_MAX_LE_DATA_LEN
Get the Controller' maximum supported payload octets and packet duration times for transmission and r...
Definition: ble_gapm.h:200
ble_gap_reslv_rpa_addr_callback_t
void(* ble_gap_reslv_rpa_addr_callback_t)(uint8_t status, ble_gap_bdaddr_t *iden_addr, uint8_t src_info)
The BLE reslove rpa address callback.
Definition: ble_gapm.h:874
ble_gap_ext_init_param_t::conn_param_2m
ble_gap_ext_conn_param_t conn_param_2m
Connection parameters for LE 2M PHY.
Definition: ble_gapm.h:710
ble_gap_init_param_t::type
ble_gap_init_type_t type
Initiating type (see enum ble_gap_init_type_t).
Definition: ble_gapm.h:677
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
Operation code.
Definition: ble_gapm.h:841
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_CLK_ACC_30
@ BLE_GAP_CLK_ACC_30
30 ppm.
Definition: ble_gapm.h:514
ble_gap_evt_adv_report_t::tx_pwr
int8_t tx_pwr
TX power (in dBm).
Definition: ble_gapm.h:816
BLE_GAP_OPCODE_PEER_RSLV_ADDR_READ
@ BLE_GAP_OPCODE_PEER_RSLV_ADDR_READ
Peer resolvable address operation.
Definition: ble_gapm.h:788
BLE_GAP_AD_TYPE_LE_ROLE
@ BLE_GAP_AD_TYPE_LE_ROLE
LE Role.
Definition: ble_gapm.h:435
BLE_GAP_ADV_TYPE_ADV_NONCONN_IND
@ BLE_GAP_ADV_TYPE_ADV_NONCONN_IND
Non-connectable and non-scanable mode.
Definition: ble_gapm.h:213
ble_gap_conn_param_t
The parameter of connection.
Definition: ble_gapc.h:267
BLE_GAP_AD_TYPE_SLAVE_CONN_INT_RANGE
@ BLE_GAP_AD_TYPE_SLAVE_CONN_INT_RANGE
Slave connection interval range.
Definition: ble_gapm.h:423
BLE_GAP_ROLE_NONE
@ BLE_GAP_ROLE_NONE
No role set yet.
Definition: ble_gapm.h:150
ble_gap_evt_adv_stop_t::reason
ble_gap_stopped_reason_t reason
Advertising Stop info.
Definition: ble_gapm.h:794
ble_gap_ext_scan_param_t::dup_filt_pol
ble_gap_ext_scan_dup_filt_policy_t dup_filt_pol
Duplicate packet filtering policy (see enum ble_gap_ext_scan_dup_filt_policy_t).
Definition: ble_gapm.h:643
ble_error.h
File that contains error codes.
BLE_GAP_ADV_PROP_HDC_POS
@ BLE_GAP_ADV_PROP_HDC_POS
Indicate that High Duty Cycle has to be used for advertising on primary channel, applicable only if c...
Definition: ble_gapm.h:271
ble_gapc.h
BLE GAPC API.
ble_gap_ral_dev_info_t
RPA list item info.
Definition: ble_gapm.h:766
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
Connection parameters for LE Coded PHY.
Definition: ble_gapm.h:711
ble_gap_init_type_t
ble_gap_init_type_t
Initiating types.
Definition: ble_gapm.h:354
BLE_GAP_REPORT_INFO_SCAN_ADV_BIT
@ BLE_GAP_REPORT_INFO_SCAN_ADV_BIT
Scannable advertising.
Definition: ble_gapm.h:470
BLE_GAP_ADV_PROP_CONNECTABLE_POS
@ BLE_GAP_ADV_PROP_CONNECTABLE_POS
Indicate that advertising is connectable, reception of CONNECT_REQ or UX_CONNECT_REQ PDUs is accepted...
Definition: ble_gapm.h:265
BLE_GAP_EXT_DUP_FILT_DIS
@ BLE_GAP_EXT_DUP_FILT_DIS
Disable filtering of duplicated packets.
Definition: ble_gapm.h:345
ble_gapm_evt_t::adv_report
ble_gap_evt_adv_report_t adv_report
Advertising Report parameter.
Definition: ble_gapm.h:862
BLE_GAP_INIT_TYPE_AUTO_CONN_EST
@ BLE_GAP_INIT_TYPE_AUTO_CONN_EST
Automatic connection establishment: establish a connection with all devices whose address is present ...
Definition: ble_gapm.h:356
ble_gap_adv_param_t::adv_mode
ble_gap_adv_mode_t adv_mode
Advertising mode (see enum ble_gap_adv_mode_t).
Definition: ble_gapm.h:539
ble_gap_scan_param_t::use_whitelist
bool use_whitelist
Filter policy.
Definition: ble_gapm.h:621
BLE_GAP_REPORT_INFO_COMPLETE_BIT
@ BLE_GAP_REPORT_INFO_COMPLETE_BIT
Report is complete.
Definition: ble_gapm.h:468
BLE_GAP_REPORT_TYPE_ADV_LEG
@ BLE_GAP_REPORT_TYPE_ADV_LEG
Legacy advertising report.
Definition: ble_gapm.h:459
ble_gap_adv_type_t
ble_gap_adv_type_t
Advertising type.
Definition: ble_gapm.h:254
ble_gap_white_list_t::num
uint8_t num
Number of available items.
Definition: ble_gapm.h:749
ble_gap_adv_second_cfg_t::adv_sid
uint8_t adv_sid
Advertising SID.
Definition: ble_gapm.h:568
ble_gap_scan_prop_t
ble_gap_scan_prop_t
Scanning properties bit field bit value.
Definition: ble_gapm.h:374
BLE_GAP_ADV_TYPE_ADV_SCAN_IND
@ BLE_GAP_ADV_TYPE_ADV_SCAN_IND
Undirected scannable mode.
Definition: ble_gapm.h:214
ble_gap_evt_sync_established_t
Sync established event for BLE_GAPM_EVT_SYNC_ESTABLISH.
Definition: ble_gapm.h:829
ble_gap_sec_key_t
Security key.
Definition: ble_gapm.h:609
ble_gap_scan_type_t
ble_gap_scan_type_t
Scanning types.
Definition: ble_gapm.h:303
BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_HOST
@ BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_HOST
Dual mode for host supported (BR/EDR/LE): AD Flag.
Definition: ble_gapm.h:452
ble_gap_evt_adv_report_t::data
uint8_t * data
Report.
Definition: ble_gapm.h:824
ble_gap_evt_adv_report_t::phy_second
uint8_t phy_second
Secondary PHY on which advertising report has been received.
Definition: ble_gapm.h:819
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
Enable filtering of duplicated packets, reset for each scan period.
Definition: ble_gapm.h:347
ble_gap_adv_time_param_t::duration
uint16_t duration
Advertising duration (in unit of 10ms).
Definition: ble_gapm.h:601
ble_gap_bond_dev_list_t
Bonded device list.
Definition: ble_gapm.h:729
BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_CONTROLLER
@ BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_CONTROLLER
Dual mode for controller supported (BR/EDR/LE): AD Flag.
Definition: ble_gapm.h:451
BLE_GAP_INIT_TYPE_NAME_DISC
@ BLE_GAP_INIT_TYPE_NAME_DISC
Name discovery: establish a connection with an indicated device in order to read content of its devic...
Definition: ble_gapm.h:357
BLE_GAP_ADV_DATA_TYPE_PER_DATA
@ BLE_GAP_ADV_DATA_TYPE_PER_DATA
Periodic advertising data.
Definition: ble_gapm.h:187
ble_gap_disc_mode_t
ble_gap_disc_mode_t
GAP discoverability modes.
Definition: ble_gapm.h:221
BLE_GAP_SCAN_PROP_ACTIVE_1M_BIT
@ BLE_GAP_SCAN_PROP_ACTIVE_1M_BIT
Active scan on LE 1M PHY (scan request PDUs may be sent).
Definition: ble_gapm.h:377
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
Scan window between 0x0004 and 0xFFFF in 0.625 ms (range: 2.5 ms to 40.959375s).
Definition: ble_gapm.h:633
BLE_GAP_ADV_TYPE_PERIODIC
@ BLE_GAP_ADV_TYPE_PERIODIC
Periodic advertising.
Definition: ble_gapm.h:257
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
Minimum advertising interval (in unit of 625 us).
Definition: ble_gapm.h:555
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_SEC_LVL_ENC_NO_AUTH
@ BLE_GAP_SEC_LVL_ENC_NO_AUTH
Encryption with no auth.
Definition: ble_gapm.h:398
ble_gap_adv_param_t::scan_req_ind_en
bool scan_req_ind_en
Indicate if the application should be informed when receiving a scan request from the scanner.
Definition: ble_gapm.h:546
BLE_GAP_AD_TYPE_APPEARANCE
@ BLE_GAP_AD_TYPE_APPEARANCE
Appearance.
Definition: ble_gapm.h:432
BLE_GAP_REPORT_TYPE_ADV_EXT
@ BLE_GAP_REPORT_TYPE_ADV_EXT
Extended advertising report.
Definition: ble_gapm.h:458
ble_gap_per_sync_param_t::rsvd
uint8_t rsvd
Reserved for future use.
Definition: ble_gapm.h:668
BLE_GAP_EXT_SCAN_TYPE_SEL_OBSERVER
@ BLE_GAP_EXT_SCAN_TYPE_SEL_OBSERVER
Selective observer.
Definition: ble_gapm.h:335
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
Minimum value for the connection interval (in unit of 1.25ms).
Definition: ble_gapm.h:679
ble_gap_ext_adv_param_t::type
ble_gap_adv_type_t type
Advertising type (see enum ble_gap_adv_type_t).
Definition: ble_gapm.h:585
BLE_GAP_DISC_MODE_LIM_DISCOVERABLE
@ BLE_GAP_DISC_MODE_LIM_DISCOVERABLE
Limited-discoverable mode.
Definition: ble_gapm.h:224
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
Maximum value for the connection interval (in unit of 1.25ms).
Definition: ble_gapm.h:680
ble_gap_per_sync_param_t::type
ble_gap_per_sync_type_t type
Periodic synchronization type (see enum ble_gap_per_sync_type_t).
Definition: ble_gapm.h:667
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.
BLE_GAP_MAX_KEY_LEN
#define BLE_GAP_MAX_KEY_LEN
The key length.
Definition: ble_gapm.h:79
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 starts.
BLE_GAP_OPCODE_LOCAL_RSLV_ADDR_READ
@ BLE_GAP_OPCODE_LOCAL_RSLV_ADDR_READ
Local resolvable address operation.
Definition: ble_gapm.h:787
BLE_GAP_AD_TYPE_SERVICE_128_BIT_DATA
@ BLE_GAP_AD_TYPE_SERVICE_128_BIT_DATA
Service data 128-bit UUID.
Definition: ble_gapm.h:429
ble_gap_bond_dev_del_with_local_addr
uint16_t ble_gap_bond_dev_del_with_local_addr(const ble_gap_bdaddr_t *p_peer_addr, const ble_gap_bdaddr_t *p_local_addr)
Delete a bond device with the specified BD address.
ble_gap_adv_flags_t
ble_gap_adv_flags_t
AD Type Flag - Bit mask.
Definition: ble_gapm.h:447
BLE_GAP_AD_TYPE_3D_INFO
@ BLE_GAP_AD_TYPE_3D_INFO
3D Information Data.
Definition: ble_gapm.h:438
BLE_GAP_AD_TYPE_SHORTENED_NAME
@ BLE_GAP_AD_TYPE_SHORTENED_NAME
Shortened Device name.
Definition: ble_gapm.h:415
BLE_GAP_CLK_ACC_500
@ BLE_GAP_CLK_ACC_500
500 ppm.
Definition: ble_gapm.h:508
BLE_GAP_PER_SYNC_TYPE_GENERAL
@ BLE_GAP_PER_SYNC_TYPE_GENERAL
Do not use periodic advertiser list for synchronization.
Definition: ble_gapm.h:388
BLE_GAP_AD_TYPE_SERVICE_32_BIT_DATA
@ BLE_GAP_AD_TYPE_SERVICE_32_BIT_DATA
Service data 32-bit UUID.
Definition: ble_gapm.h:428
BLE_GAP_INIT_PROP_CODED_BIT
@ BLE_GAP_INIT_PROP_CODED_BIT
Scan connectable advertisements on the LE Coded PHY.
Definition: ble_gapm.h:367
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
Simple Pairing Hash C.
Definition: ble_gapm.h:419
BLE_GAP_EXT_SCAN_TYPE_SEL_CONN_DISC
@ BLE_GAP_EXT_SCAN_TYPE_SEL_CONN_DISC
Selective connectable discovery.
Definition: ble_gapm.h:337
ble_gap_adv_param_t
Advertising parameters for legacy advertising.
Definition: ble_gapm.h:538
BLE_GAP_EXT_SCAN_TYPE_OBSERVER
@ BLE_GAP_EXT_SCAN_TYPE_OBSERVER
Observer.
Definition: ble_gapm.h:334
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_ADDR_LEN
#define BLE_GAP_ADDR_LEN
The length of address.
Definition: ble_gapc.h:70
ble_gap_stopped_reason_t
ble_gap_stopped_reason_t
Stop reason code.
Definition: ble_gapm.h:476
ble_gap_adv_rpa_rotate
uint16_t ble_gap_adv_rpa_rotate(uint8_t adv_idx, uint8_t rpa[BLE_GAP_ADDR_LEN])
Set advertising rpa, can be called before advertising start.
ble_gap_ext_adv_param_t::filter_pol
ble_gap_adv_filter_policy_t filter_pol
Advertising filtering policy (see enum ble_gap_adv_filter_policy_t).
Definition: ble_gapm.h:589
ble_gapm_evt_t::index
uint8_t index
Index of connection or advertising.
Definition: ble_gapm.h:855
ble_gapm_evt_t::rslv_addr
ble_gap_evt_rslv_addr_read_t rslv_addr
Read Resolvable Address parameter, generated by controller.
Definition: ble_gapm.h:864
ble_gap_ral_dev_info_t::bd_addr
ble_gap_bdaddr_t bd_addr
Peer device identity.
Definition: ble_gapm.h:767
BLE_GAP_STOPPED_REASON_ON_USER
@ BLE_GAP_STOPPED_REASON_ON_USER
Stop with user stopping it actively.
Definition: ble_gapm.h:478
ble_gap_scan_param_t::scan_mode
ble_gap_scan_mode_t scan_mode
Scan mode.
Definition: ble_gapm.h:619
ble_gap_lepsm_register_t::sec_lvl
ble_gap_sec_lvl_type_t sec_lvl
Security level requirement, see ble_gap_sec_lvl_type_t.
Definition: ble_gapm.h:721
ble_gap_evt_adv_report_t::rssi
int8_t rssi
RSSI (between -127 and +20 dBm).
Definition: ble_gapm.h:817
ble_gap_ral_dev_list_t::num
uint8_t num
Number of RPA list.
Definition: ble_gapm.h:778
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_adv_second_cfg_t::phy
ble_gap_le_phy_value_t phy
Indicate on which PHY secondary advertising has to be performed.
Definition: ble_gapm.h:567
BLE_GAP_SCAN_PROP_PHY_1M_BIT
@ BLE_GAP_SCAN_PROP_PHY_1M_BIT
Scan advertisement on the LE 1M PHY.
Definition: ble_gapm.h:375
ble_gap_sec_lvl_type_t
ble_gap_sec_lvl_type_t
Security level types.
Definition: ble_gapm.h:396
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_bond_dev_addr_get_by_conn_idx
uint16_t ble_gap_bond_dev_addr_get_by_conn_idx(uint8_t conn_idx, ble_gap_bdaddr_t *p_peer_addr)
Get BD address of the bonded device by connection index.
ble_gap_ext_scan_param_t::period
uint16_t period
Scan period, which is the time interval between two consequent starts of a scan duration by the contr...
Definition: ble_gapm.h:648
ble_gap_evt_adv_report_t::phy_prim
uint8_t phy_prim
Primary PHY on which advertising report has been received.
Definition: ble_gapm.h:818
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
Broadcaster device address.
Definition: ble_gapm.h:814
ble_gap_ext_adv_param_t::second_cfg
ble_gap_adv_second_cfg_t second_cfg
Configuration for secondary advertising (valid only if advertising type is GAP_ADV_TYPE_EXTENDED or G...
Definition: ble_gapm.h:592
ble_gapm_evt_t::sync_established
ble_gap_evt_sync_established_t sync_established
Periodic Advertising Synchronization Established parameter.
Definition: ble_gapm.h:863
ble_gapm_evt_t::scan_stop
ble_gap_evt_scan_stop_t scan_stop
Scan Stop parameter.
Definition: ble_gapm.h:861
ble_gapm_evt_t::adv_stop
ble_gap_evt_adv_stop_t adv_stop
Advertising stop parameter.
Definition: ble_gapm.h:859
ble_gap_ext_scan_param_t
Parameters for extended scanning.
Definition: ble_gapm.h:640
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:691
BLE_GAP_GET_NB_ADV_SETS
@ BLE_GAP_GET_NB_ADV_SETS
Read the maximum number of advertising sets currently supported by the controller.
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
Directed high duty cycle mode.
Definition: ble_gapm.h:215
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
Non-discoverable mode.
Definition: ble_gapm.h:222
ble_gap_update_conn_param_method_set
uint16_t ble_gap_update_conn_param_method_set(uint8_t conn_idx, bool use_l2cap_flag)
Set the method for updating connection parameter.
BLE_GAP_WRITE_PERM_NOAUTH
@ BLE_GAP_WRITE_PERM_NOAUTH
LE Security Mode 1, Level 1.
Definition: ble_gapm.h:174
BLE_GAP_DISC_MODE_GEN_DISCOVERABLE
@ BLE_GAP_DISC_MODE_GEN_DISCOVERABLE
General-discoverable mode.
Definition: ble_gapm.h:223
ble_gap_adv_period_cfg_t
Configuration for periodic advertising.
Definition: ble_gapm.h:575
BLE_GAP_MAX_WL_NUM
#define BLE_GAP_MAX_WL_NUM
Maximal white list number.
Definition: ble_gapm.h:76
ble_gap_evt_adv_stop_t
Advertising Stop info.
Definition: ble_gapm.h:793
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
Periodic advertising interval (in unit of 1.25ms, min is 7.5ms), valid only for periodic advertising ...
Definition: ble_gapm.h:821
ble_gap_ext_init_param_t::scan_param_coded
ble_gap_scan_wd_op_param_t scan_param_coded
Scan window opening parameters for LE Coded PHY.
Definition: ble_gapm.h:708
BLE_GAP_GET_SUGGESTED_DFLT_LE_DATA_LEN
@ BLE_GAP_GET_SUGGESTED_DFLT_LE_DATA_LEN
Get suggested values (SuggestedMaxTxOctets and SuggestedMaxTxTime) for the Controller's maximum trans...
Definition: ble_gapm.h:197
ble_gap_scan_param_t::window
uint16_t window
Scan window between 0x0004 and 0x4000 in 0.625 ms (range: 2.5 ms to 10.24s).
Definition: ble_gapm.h:623
BLE_GAP_PER_SYNC_TYPE_SELECTIVE
@ BLE_GAP_PER_SYNC_TYPE_SELECTIVE
Use periodic advertiser list for synchronization.
Definition: ble_gapm.h:389
BLE_GAP_AD_TYPE_FLAGS
@ BLE_GAP_AD_TYPE_FLAGS
Flag.
Definition: ble_gapm.h:408
BLE_GAP_INIT_PROP_1M_BIT
@ BLE_GAP_INIT_PROP_1M_BIT
Scan connectable advertisements on the LE 1M PHY.
Definition: ble_gapm.h:365
ble_gap_period_adv_list_t
Periodic advertising list.
Definition: ble_gapm.h:757
BLE_GAP_MAX_PRD_ADV_NUM
#define BLE_GAP_MAX_PRD_ADV_NUM
Maximal periodic advertising list number.
Definition: ble_gapm.h:78
BLE_GAP_SCAN_PROP_ACCEPT_RPA_BIT
@ BLE_GAP_SCAN_PROP_ACCEPT_RPA_BIT
Accept directed advertising packets if the used RPA and target address cannot be solved by the contro...
Definition: ble_gapm.h:379
ble_gap_adv_param_t::chnl_map
uint8_t chnl_map
Advertising channel map.
Definition: ble_gapm.h:545
BLE_GAP_ACTIVITY_ROLE_UNKNOWN
@ BLE_GAP_ACTIVITY_ROLE_UNKNOWN
Unknown role.
Definition: ble_gapm.h:500
BLE_GAP_SCAN_PASSIVE
@ BLE_GAP_SCAN_PASSIVE
Passive scan type.
Definition: ble_gapm.h:305
ble_gap_privacy_auto_renew_addr_set
void ble_gap_privacy_auto_renew_addr_set(bool enable)
Set privacy auto renew device address enable or disable, if needed.
ble_gap_evt_adv_report_t::adv_type
ble_gap_adv_report_type_t adv_type
Advertising type.
Definition: ble_gapm.h:812
ble_gap_ext_scan_param_t::scan_param_1m
ble_gap_scan_wd_op_param_t scan_param_1m
Scan window opening parameters for LE 1M PHY.
Definition: ble_gapm.h:645
BLE_GAP_AD_TYPE_CLASS_OF_DEVICE
@ BLE_GAP_AD_TYPE_CLASS_OF_DEVICE
Class of device.
Definition: ble_gapm.h:418
ble_gap_adv_prim_cfg_t::phy
ble_gap_le_phy_value_t phy
Indicate on which PHY primary advertising has to be performed.
Definition: ble_gapm.h:558
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
Out of Band Flag.
Definition: ble_gapm.h:422
BLE_GAP_AD_TYPE_RAND_TGT_ADDR
@ BLE_GAP_AD_TYPE_RAND_TGT_ADDR
Random Target Address.
Definition: ble_gapm.h:431
ble_gap_ext_scan_param_t::duration
uint16_t duration
Scan duration (in unit of 10ms).
Definition: ble_gapm.h:647
ble_gap_ext_init_param_t::prop
uint8_t prop
Properties for the initiating procedure (see enum ble_gap_init_prop_t for bit signification).
Definition: ble_gapm.h:705
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.
ble_gap_adv_report_type_t
ble_gap_adv_report_type_t
Advertising report type.
Definition: ble_gapm.h:457
ble_gap_init_param_t::slave_latency
uint16_t slave_latency
Slave latency.
Definition: ble_gapm.h:681
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.
BLE_GAP_AD_TYPE_COMPLETE_LIST_32_BIT_UUID
@ BLE_GAP_AD_TYPE_COMPLETE_LIST_32_BIT_UUID
Complete List of 32-bit UUID.
Definition: ble_gapm.h:412
ble_gap_scan_mode_t
ble_gap_scan_mode_t
Scanning modes.
Definition: ble_gapm.h:312
BLE_GAP_REPORT_TYPE_SCAN_RSP_EXT
@ BLE_GAP_REPORT_TYPE_SCAN_RSP_EXT
Extended scan response report.
Definition: ble_gapm.h:460
ble_gap_bond_dev_list_t::num
uint8_t num
Number of bonded device.
Definition: ble_gapm.h:730
BLE_GAP_ROLE_OBSERVER
@ BLE_GAP_ROLE_OBSERVER
Observer role.
Definition: ble_gapm.h:151
ble_gap_scan_wd_op_param_t::scan_intv
uint16_t scan_intv
Scan interval between 0x0004 and 0xFFFF in 0.625 ms (range: 2.5 ms to 40.959375s).
Definition: ble_gapm.h:632
BLE_GAP_MAX_BOND_NUM
#define BLE_GAP_MAX_BOND_NUM
Maximal bonding number.
Definition: ble_gapm.h:75
ble_gap_ext_init_param_t::peer_addr
ble_gap_bdaddr_t peer_addr
Address of peer device in case white list is not used for connection.
Definition: ble_gapm.h:712
BLE_GAP_AD_TYPE_MANU_SPECIFIC_DATA
@ BLE_GAP_AD_TYPE_MANU_SPECIFIC_DATA
Manufacturer specific data.
Definition: ble_gapm.h:440
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
Generated non-resolvable private random address.
Definition: ble_gapm.h:165
ble_gap_adv_param_t::filter_pol
ble_gap_adv_filter_policy_t filter_pol
Advertising filtering policy (see enum ble_gap_adv_filter_policy_t).
Definition: ble_gapm.h:541
BLE_GAP_AD_TYPE_MORE_128_BIT_UUID
@ BLE_GAP_AD_TYPE_MORE_128_BIT_UUID
Use of more than 128-bit UUID.
Definition: ble_gapm.h:413
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.
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
Require 16-bit service UUID.
Definition: ble_gapm.h:424
ble_gap_ext_scan_param_t::type
ble_gap_ext_scan_type_t type
Type of scanning to be started (see enum ble_gap_ext_scan_type_t).
Definition: ble_gapm.h:641
ble_gap_evt_rslv_addr_report_t::type
ble_gap_actv_type_t type
Activity type.
Definition: ble_gapm.h:848
ble_gap_adv_period_cfg_t::adv_intv_min
uint16_t adv_intv_min
Minimum advertising interval (in unit of 1.25 ms).
Definition: ble_gapm.h:576
BLE_GAP_INIT_PROP_2M_BIT
@ BLE_GAP_INIT_PROP_2M_BIT
Connection parameters for the LE 2M PHY are provided.
Definition: ble_gapm.h:366
ble_gap_evt_rslv_addr_read_t::gap_addr
ble_gap_addr_t gap_addr
Resolvable address info.
Definition: ble_gapm.h:842
BLE_GAP_AD_TYPE_SP_RANDOMIZER_R
@ BLE_GAP_AD_TYPE_SP_RANDOMIZER_R
Simple Pairing Randomizer.
Definition: ble_gapm.h:420
ble_gap_adv_param_t::disc_mode
ble_gap_disc_mode_t disc_mode
Discovery mode (see enum ble_gap_disc_mode_t).
Definition: ble_gapm.h:540
ble_gap_scan_param_t::interval
uint16_t interval
Scan interval between 0x0004 and 0x4000 in 0.625 ms (range: 2.5 ms to 10.24s).
Definition: ble_gapm.h:622
ble_gap_per_sync_param_t::skip
uint16_t skip
Number of periodic advertising that can be skipped after a successful reception.
Definition: ble_gapm.h:665
ble_gap_ext_init_param_t::conn_param_1m
ble_gap_ext_conn_param_t conn_param_1m
Connection parameters for LE 1M PHY.
Definition: ble_gapm.h:709
BLE_GAP_AD_TYPE_ADV_INTV
@ BLE_GAP_AD_TYPE_ADV_INTV
Advertising Interval.
Definition: ble_gapm.h:433
ble_gap_evt_adv_report_t::direct_addr
ble_gap_bdaddr_t direct_addr
Target address (in case of a directed advertising report).
Definition: ble_gapm.h:815
ble_gap_chnl_map_t
Channel map structure.
Definition: ble_gapc.h:291
ble_gap_evt_dev_info_get_t
Get device info event for BLE_GAPC_EVT_DEV_INFO_GOT.
Definition: ble_gapc.h:380
BLE_GAP_ACTV_TYPE_PER_SYNC
@ BLE_GAP_ACTV_TYPE_PER_SYNC
Definition: ble_gapm.h:526
ble_gap_adv_time_param_t::max_adv_evt
uint8_t max_adv_evt
Maximum number of extended advertising events.
Definition: ble_gapm.h:602
ble_gap_adv_second_cfg_t
Configuration for advertising on secondary channel.
Definition: ble_gapm.h:565
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_bond_devs_get
uint16_t ble_gap_bond_devs_get(ble_gap_bond_dev_list_t *p_bond_list)
Get all bonded devices.
ble_gap_evt_rslv_addr_report_t
Resolvable address report event for BLE_GAPM_EVT_RSLV_ADDR_REPORT.
Definition: ble_gapm.h:847
ble_gap_scan_param_t::timeout
uint16_t timeout
Scan timeout should be a value between 0x0001 and 0xFFFF(unit: 10 ms).
Definition: ble_gapm.h:624
BLE_GAP_EXT_DUP_FILT_EN
@ BLE_GAP_EXT_DUP_FILT_EN
Enable filtering of duplicated packets.
Definition: ble_gapm.h:346
ble_gap_rpa_list_add
uint16_t ble_gap_rpa_list_add(ble_gap_bdaddr_t *p_peer_iden_addr, uint8_t *p_peer_irk)
Add rpa list.
BLE_GAP_ADV_TYPE_EXTENDED
@ BLE_GAP_ADV_TYPE_EXTENDED
Extended advertising.
Definition: ble_gapm.h:256
ble_gap_scan_param_t::scan_dup_filt
ble_gap_scan_dup_filt_policy_t scan_dup_filt
Duplicate filter policy.
Definition: ble_gapm.h:620
ble_gap_ext_init_param_t::type
ble_gap_init_type_t type
Initiating type (see enum ble_gap_init_type_t).
Definition: ble_gapm.h:704
ble_gap_init_param_t::conn_timeout
uint16_t conn_timeout
Timeout for connection establishment (in unit of 10ms).
Definition: ble_gapm.h:683
BLE_GAP_WRITE_PERM_AUTH
@ BLE_GAP_WRITE_PERM_AUTH
LE Security Mode 1, Level 3.
Definition: ble_gapm.h:176
ble_gap_adv_param_t::adv_intv_max
uint16_t adv_intv_max
Maximum advertising interval (in unit of 625 us).
Definition: ble_gapm.h:544
ble_gap_bond_dev_list_with_local_addr_t::num
uint8_t num
Number of bonded device.
Definition: ble_gapm.h:739
ble_gap_ext_adv_param_t
Advertising parameters for extended advertising and periodic advertising.
Definition: ble_gapm.h:584
ble_gap_evt_sync_established_t::bd_addr
ble_gap_bdaddr_t bd_addr
Advertiser address.
Definition: ble_gapm.h:834
ble_gap_adv_param_t::adv_intv_min
uint16_t adv_intv_min
Minimum advertising interval (in unit of 625 us).
Definition: ble_gapm.h:543
BLE_GAP_ADV_PROP_DIRECTED_POS
@ BLE_GAP_ADV_PROP_DIRECTED_POS
Indicate that advertising targets at a specific device.
Definition: ble_gapm.h:268
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
General discovery.
Definition: ble_gapm.h:332
ble_gap_adv_filter_policy_t
ble_gap_adv_filter_policy_t
Advertising filter policy.
Definition: ble_gapm.h:232
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.
ble_gap_evt_sync_established_t::adv_sid
uint8_t adv_sid
Advertising SID.
Definition: ble_gapm.h:832
BLE_GAP_SEC_LVL_SC_ENC_AUTH
@ BLE_GAP_SEC_LVL_SC_ENC_AUTH
Security connection encryption with auth.
Definition: ble_gapm.h:400
ble_gap_ad_type_t
ble_gap_ad_type_t
GAP advertising types.
Definition: ble_gapm.h:407
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.
ble_gap_adv_prop_t
ble_gap_adv_prop_t
Advertising properties bit field bit value.
Definition: ble_gapm.h:287
BLE_GAP_SEC_LVL_NO_SECURITY
@ BLE_GAP_SEC_LVL_NO_SECURITY
No encryption or auth.
Definition: ble_gapm.h:397
BLE_GAP_AD_TYPE_SPAIR_HASH
@ BLE_GAP_AD_TYPE_SPAIR_HASH
Simple Pairing Hash C-256.
Definition: ble_gapm.h:436
ble_gap_init_param_t::peer_addr
ble_gap_bdaddr_t peer_addr
Peer device address.
Definition: ble_gapm.h:678
BLE_GAP_ADV_PROP_CONNECTABLE_BIT
@ BLE_GAP_ADV_PROP_CONNECTABLE_BIT
Definition: ble_gapm.h:288
BLE_GAP_PHY_2MBPS_VALUE
@ BLE_GAP_PHY_2MBPS_VALUE
LE 2M PHY.
Definition: ble_gapm.h:246
ble_gap_evt_sync_established_t::intv
uint16_t intv
Periodic advertising interval (in unit of 1.25ms, min is 7.5ms).
Definition: ble_gapm.h:831
ble_gap_evt_sync_established_t::sync_hdl
uint16_t sync_hdl
Sync handle.
Definition: ble_gapm.h:835
ble_gap_ext_conn_param_t::supervision_to
uint16_t supervision_to
Link supervision timeout (in unit of 10ms).
Definition: ble_gapm.h:695
BLE_GAP_ADV_DATA_TYPE_SCAN_RSP
@ BLE_GAP_ADV_DATA_TYPE_SCAN_RSP
Scan response data.
Definition: ble_gapm.h:186
ble_gap_adv_report_info_t
ble_gap_adv_report_info_t
Advertising report information.
Definition: ble_gapm.h:467
ble_gap_lepsm_register_t::le_psm
uint16_t le_psm
LE Protocol/Service Multiplexer (range: 1 to 255), PSMs should be odd.
Definition: ble_gapm.h:720
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.
ble_gap_init_prop_t
ble_gap_init_prop_t
Initiating properties.
Definition: ble_gapm.h:364
BLE_GAP_SCAN_OBSERVER_MODE
@ BLE_GAP_SCAN_OBSERVER_MODE
Observer mode.
Definition: ble_gapm.h:315
BLE_GAP_AD_TYPE_TK_VALUE
@ BLE_GAP_AD_TYPE_TK_VALUE
Temporary key value.
Definition: ble_gapm.h:421
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
The length of connection event needed for this LE connection.
Definition: ble_gapm.h:696
BLE_GAP_INIT_TYPE_DIRECT_CONN_EST
@ BLE_GAP_INIT_TYPE_DIRECT_CONN_EST
Direct connection establishment: establish a connection with an indicated device.
Definition: ble_gapm.h:355
BLE_GAP_WRITE_PERM_SEC_CON
@ BLE_GAP_WRITE_PERM_SEC_CON
LE Security Mode 1, Level 4.
Definition: ble_gapm.h:177