ble_gapc.h
Go to the documentation of this file.
1 /**
2  ****************************************************************************************
3  *
4  * @file ble_gapc.h
5  *
6  * @brief BLE GAPC 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  /**
51  * @defgroup BLE_GAPC Generic Access Profile (GAP) Connection Control
52  * @{
53  * @brief Definitions and prototypes for the GAP Connection Control interface.
54  */
55 #ifndef __BLE_GAPC_H__
56 #define __BLE_GAPC_H__
57 
58 #include "ble_error.h"
59 #include "gr55xx_sys_cfg.h"
60 #include <stdint.h> // Standard Integer
61 #include <string.h>
62 #include <stdbool.h>
63 
64 /**
65  * @defgroup BLE_GAPC_DEFINES Defines
66  * @{
67  */
68 #define BLE_GAP_CHNL_MAP_LEN 0x05 /**< The length of channel map. */
69 #define BLE_GAP_FEATS_LEN 0x08 /**< The length of features. */
70 #define BLE_GAP_ADDR_LEN 0x06 /**< The length of address. */
71 #define BLE_GAP_INVALID_CONN_INDEX 0xFF /**< Invalid connection index. */
72 
73 /**@defgroup BLE_GAP_ADDR_TYPES GAP Address types
74  * @{ */
75 #define BLE_GAP_ADDR_TYPE_PUBLIC 0x00 /**< Public (identity) address.*/
76 #define BLE_GAP_ADDR_TYPE_RANDOM_STATIC 0x01 /**< Random static (identity) address. */
77 /**@} */
78 
79 /**@defgroup BLE_GAP_PHY_OPTIONS GAP PHY OPTIONS (bitmask)
80  * @{ */
81 #define BLE_GAP_PHY_OPT_NO_CODING 0x00 /**< The Host has no preferred coding when transmitting on the LE Coded PHY. */
82 #define BLE_GAP_PHY_OPT_S2_CODING 0x01 /**< The Host prefers that S=2 coding be used when transmitting on the LE Coded PHY. */
83 #define BLE_GAP_PHY_OPT_S8_CODING 0x02 /**< The Host prefers that S=8 coding be used when transmitting on the LE Coded PHY. */
84 /**@} */
85 
86 /** @} */
87 
88 /**
89  * @defgroup BLE_GAPC_ENUM Enumerations
90  * @{
91  */
92 /** @brief The operation code used to get connection info */
93 typedef enum
94 {
95  BLE_GAP_GET_CON_RSSI = 0, /**< Get connection RSSI info. */
96  BLE_GAP_GET_CON_CHANNEL_MAP, /**< Get connection channel map. */
97  BLE_GAP_GET_PHY, /**< Get connection PHY. */
98  BLE_GAP_GET_CHAN_SEL_ALGO /**< Get selection algorithm for connection channel. */
100 
101 /**@brief The operation code used to get peer device info. */
102 typedef enum
103 {
104  BLE_GAP_GET_PEER_VERSION = 0, /**< Get peer device version info. */
105  BLE_GAP_GET_PEER_FEATURES /**< Get peer device features info. */
107 
108 /** @brief Device role of LL layer type */
109 typedef enum
110 {
111  BLE_GAP_LL_ROLE_MASTER = 0, /**< Master role. */
112  BLE_GAP_LL_ROLE_SLAVE = 1, /**< Slave role. */
114 
115 /**
116  * @brief Operation code used to set param(s).
117  */
118 typedef enum
119 {
120  BLE_GAP_OPCODE_CHNL_MAP_SET, /**< Set Channel Map. */
121  BLE_GAP_OPCODE_WHITELIST_SET, /**< Set white list. */
122  BLE_GAP_OPCODE_PER_ADV_LIST_SET, /**< Set periodic advertising list. */
123  BLE_GAP_OPCODE_PRIVACY_MODE_SET, /**< Set privacy mode for peer device. */
125 
126 /**
127  * @brief Operation code used for LEPSM manager.
128  */
129 typedef enum
130 {
131  BLE_GAP_OPCODE_LEPSM_REGISTER, /**< LEPSM register operation. */
132  BLE_GAP_OPCODE_LEPSM_UNREGISTER, /**< LEPSM unregister operation. */
134 
135 /**
136  * @brief The specified reason for terminating a connection.
137  */
138 typedef enum
139 {
140  BLE_GAP_HCI_AUTHENTICATION_FAILURE = 0x05, /**< Authentication Failure. */
141  BLE_GAP_HCI_REMOTE_USER_TERMINATED_CONNECTION = 0x13, /**< Remote User Terminated Connection. */
142  BLE_GAP_HCI_REMOTE_DEV_TERMINATION_DUE_TO_LOW_RESOURCES = 0x14, /**< Remote Device Terminated Connection due to Low Resources . */
143  BLE_GAP_HCI_REMOTE_DEV_TERMINATION_DUE_TO_POWER_OFF = 0x15, /**< Remote Device Terminated Connection due to Power Off. */
144  BLE_GAP_HCI_UNSUPPORTED_REMOTE_FEATURE = 0x1A, /**< Unsupported Remote Feature. */
145  BLE_GAP_HCI_PAIRING_WITH_UNIT_KEY_UNSUPPORTED = 0X29, /**< Pairing With Unit Key Not Supported. */
146  BLE_GAP_HCI_CONN_INTERVAL_UNACCEPTABLE = 0x3B, /**< Unacceptable Connection Parameters. */
148 
149 /** @} */
150 
151 /**
152  * @defgroup BLE_GAPC_STRUCT Structures
153  * @{
154  */
155 
156 /** @brief The struct of device version. */
157 typedef struct
158 {
159  uint8_t hci_ver; /**< HCI version. */
160  uint8_t lmp_ver; /**< LMP version. */
161  uint8_t host_ver; /**< Host version. */
162  uint16_t hci_subver; /**< HCI subversion. */
163  uint16_t lmp_subver; /**< LMP subversion. */
164  uint16_t host_subver; /**< Host subversion. */
165  uint16_t manuf_name; /**< Manufacturer name. */
167 
168 /** @brief The struct of address. */
169 typedef struct
170 {
171  uint8_t addr[BLE_GAP_ADDR_LEN]; /**< 6-byte array address value. */
173 
174 /** @brief The struct of broadcast address with broadcast type. */
175 typedef struct
176 {
177  ble_gap_addr_t gap_addr; /**< Device BD Address. */
178  uint8_t addr_type; /**< Address type of the device: 0=public/1=random. please @ref BLE_GAP_ADDR_TYPES. */
180 
181 /** @brief Get broadcast address struct. */
182 typedef struct
183 {
184  uint8_t index; /**< Advertsing index. The valid range is: 0 - 4. */
185  ble_gap_bdaddr_t bd_addr; /**< BD address. */
187 
188 /** @brief TX power info struct. */
189 typedef struct
190 {
191  int8_t power_lvl; /**< Advertising channel TX power level. Range: -20 to 10. Unit: dBm. Accuracy: +/-4dB. */
193 
194 /** @brief TX power info struct. */
195 typedef struct
196 {
197  int8_t min_tx_pwr; /**< MIN of TX power. Size: 1 octet (signed integer). Range: -127 to +126. Unit: dBm. */
198  int8_t max_tx_pwr; /**< MAX of TX power. Size: 1 octet (signed integer). Range: -127 to +126. Unit: dBm. */
200 
201 /** @brief Max data length info struct. */
202 typedef struct
203 {
204  uint16_t suppted_max_tx_octets; /**< Maximum number of payload octets that the local Controller supports for transmission of a single Link Layer packet on a data connection.
205  Range: 0x001B-0x00FB (all other values reserved for future use). */
206  uint16_t suppted_max_tx_time; /**< Maximum time, in microseconds, that the local Controller supports for transmission of a single Link Layer packet on a data connection.
207  Range: 0x0148-0x4290 (all other values reserved for future use). */
208  uint16_t suppted_max_rx_octets; /**< Maximum number of payload octets that the local Controller supports for reception of a single Link Layer packet on a data connection.
209  Range: 0x001B-0x00FB (all other values reserved for future use). */
210  uint16_t suppted_max_rx_time; /**< Maximum time, in microseconds, that the local Controller supports for reception of a single Link Layer packet on a data connection.
211  Range: 0x0148-0x4290 (all other values reserved for future use). */
213 
214 /** @brief Suggested default data length info. */
215 typedef struct
216 {
217  uint16_t suggted_max_tx_octets; /**< The Host's suggested value for the Controller's maximum transmitted number of payload octets to be used for new connections.
218  Range: 0x001B-0x00FB (all other values reserved for future use), default: 0x001B */
219  uint16_t suggted_max_tx_time; /**< The Host's suggested value for the Controller's maximum packet transmission time to be used for new connections.
220  Range: 0x0148-0x4290 (all other values reserved for future use), default: 0x0148*/
222 
223 /** @brief Number of available advertising sets info. */
224 typedef struct
225 {
226  uint8_t nb_adv_sets; /**< Number of available advertising sets. */
228 
229 /** @brief Maximum advertising data length info. */
230 typedef struct
231 {
232  uint16_t length; /**< Maximum advertising data length supported by controller. */
234 
235 /** @brief RF path compensation values info. */
236 typedef struct
237 {
238  uint16_t tx_path_comp; /**< RF TX path compensation. */
239  uint16_t rx_path_comp; /**< RF RX path compensation. */
241 
242 /** @brief Device info. */
243 typedef union
244 {
245  ble_gap_dev_version_ind_t dev_version; /**< Version info. */
246  ble_gap_get_bd_addr_t get_bd_addr; /**< Device BD address info. */
247  ble_gap_dev_adv_tx_power_t adv_tx_power; /**< Advertising TX power info. */
248  ble_gap_sugg_dflt_data_len_t sugg_dflt_data_len; /**< Suggested default data length info. */
249  ble_gap_max_data_len_t max_data_len; /**< Suggested MAX data length info. */
250  ble_gap_nb_adv_sets_t nb_adv_sets; /**< Number of available advertising sets. */
251  ble_gap_max_adv_data_len_ind_t max_adv_data_len; /**< Maximum advertising data length info. */
252  ble_gap_dev_tx_power_t dev_tx_power; /**< Device TX power info. */
253  ble_gap_dev_rf_path_comp_ind_t dev_rf_path_comp; /**< RF path compensation values. */
255 
256 /** @brief The parameter of connection. */
257 typedef struct
258 {
259  uint16_t interval_min; /**< Minimum value for the connection interval. This shall be less than or equal to Conn_Interval_Max.
260  Range: 0x0006 to 0x0C80, unit: 1.25 ms, time range: 7.5 ms to 4 s*/
261  uint16_t interval_max; /**< Maximum value for the connection interval. This shall be greater than or equal to Conn_Interval_Min.
262  Range: 0x0006 to 0x0C80, unit: 1.25 ms, time range: 7.5 ms to 4 s.*/
263  uint16_t slave_latency; /**< Slave latency for the connection in number of connection events. Range: 0x0000 to 0x01F3. */
264  uint16_t sup_timeout; /**< Supervision timeout for the LE link. Range: 0x000A to 0x0C80, unit: 10 ms, time range: 100 ms to 32 s. */
266 
267 /** @brief The parameter of update connection. */
268 typedef struct
269 {
270  uint16_t interval_min; /**< Minimum value for the connection interval. This shall be less than or equal to Conn_Interval_Max.
271  Range: 0x0006 to 0x0C80, unit: 1.25 ms, time range: 7.5 ms to 4 s*/
272  uint16_t interval_max; /**< Maximum value for the connection interval. This shall be greater than or equal to Conn_Interval_Min.
273  Range: 0x0006 to 0x0C80, unit: 1.25 ms, time range: 7.5 ms to 4 s.*/
274  uint16_t slave_latency; /**< Slave latency for the connection in number of connection events. Range: 0x0000 to 0x01F3. */
275  uint16_t sup_timeout; /**< Supervision timeout for the LE link. range: 0x000A to 0x0C80, unit: 10 ms, Time range: 100 ms to 32 s. */
276  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.9 s.
277  recommended value: 0x0002 for 1M phy, 0x0006 for coded phy */
279 
280 /** @brief Channel map structure. */
281 typedef struct
282 {
283  uint8_t map[BLE_GAP_CHNL_MAP_LEN]; /**< This parameter contains 37 1-bit fields. The nth bit (n is in the range of 0 to 36) contains the value for the link layer channel index n.
284  Channel n is unused = 0, channel n is used = 1. The most significant bits are reserved for future use.*/
286 
287 /** @brief PHY info. */
288 typedef struct
289 {
290  uint8_t tx_phy; /**< LE PHY for data transmission. @ref BLE_GAP_PHY_OPTIONS. */
291  uint8_t rx_phy; /**< LE PHY for data reception. @ref BLE_GAP_PHY_OPTIONS. */
293 
294 /** @brief Connection info. */
295 typedef union
296 {
297  int8_t rssi; /**< RSSI. */
298  ble_gap_chnl_map_t chnl_map; /**< channel map. */
299  ble_gap_le_phy_ind_t phy; /**< PHY indicaiton. */
300  uint8_t chan_sel_algo; /**< Chanel Selection algorithm, 0x00: LE Channel Selection Algorithm #1 is used.
301  0x01: LE Channel Selection Algorithm #2 is used.\n 0x02-0xFF: reserved. */
303 
304 /** @brief Peer version info. */
305 typedef struct
306 {
307  uint16_t compid; /**<Manufacturer name. */
308  uint16_t lmp_subvers; /**< LMP subversion. */
309  uint8_t lmp_vers; /**< LMP version. */
311 
312 /** @brief LE features info. */
313 typedef struct
314 {
315  uint8_t features[BLE_GAP_FEATS_LEN]; /**< 8-byte array for LE features\n
316  Feature Setting field's bit mapping to Controller Features (0: not support, 1: support) \n
317  |Bit position | Link Layer Feature|
318  |-------------|-----------------|
319  |0 | LE Encryption|
320  |1 |Connection Parameters Request Procedure|
321  |2 |Extended Reject Indication|
322  |3 | Slave-initiated Features Exchange |
323  |4 |LE Ping |
324  |5 |LE Data Packet Length Extension |
325  |6 |LL Privacy |
326  |7 |Extended Scanner Filter Policies |
327  |8 |LE 2M PHY|
328  |9 | Stable Modulation Index - Transmitter |
329  |10 | Stable Modulation Index - Receiver |
330  |11 |LE Coded PHY |
331  |12 |LE Extended Advertising|
332  |13 | LE Periodic Advertising|
333  |14 | Channel Selection Algorithm #2|
334  |15 |LE Power Class 1|
335  |16 |Minimum Number of Used Channels Procedure|
336  |All other values |Reserved for Future Use|*/
338 
339 /** @brief LE peer info. */
340 typedef union
341 {
345 
346 /**@brief The Structure for BLE Connection Arrangement. */
347 typedef struct
348 {
349  uint16_t conn_idx; /**< Connection Index. */
350  uint32_t interval; /**< Connection Interval (in 625us). */
351  uint32_t offset; /**< Connection Offset (in 625us). */
352  uint32_t duration; /**< Connection Duration (in 625us). */
354 
355 /** @brief Set preference slave event duration */
356 typedef struct
357 {
358  uint16_t duration; /**< Preferred event duration. */
359  uint8_t single_tx; /**< Slave transmits a single packet per connection event (False/True). */
361 
362 /**@brief PHY update event for @ref BLE_GAPC_EVT_PHY_UPDATED. */
363 typedef struct
364 {
365  uint8_t tx_phy; /**< LE PHY for data transmission. @ref BLE_GAP_PHY_OPTIONS. */
366  uint8_t rx_phy; /**< LE PHY for data reception. @ref BLE_GAP_PHY_OPTIONS. */
368 
369 /** @brief Get device info event for BLE_GAPC_EVT_DEV_INFO_GOT. */
370 typedef struct
371 {
372  uint8_t operation; /**< Operation code. @ref ble_gap_dev_info_get_type_t. */
373  ble_gap_dev_info_t dev_info; /**< Device info. */
375 
376 /** @brief Connection complete event for @ref BLE_GAPC_EVT_CONNECTED. */
377 typedef struct
378 {
379  uint16_t conn_handle; /**< Connection_Handle. Range: 0x0000-0x0EFF (all other values reserved for future use). */
380  uint16_t conn_interval; /**< Connection interval. Range: 0x0006 to 0x0C80, unit: 1.25 ms, time range: 7.5 ms to 4 s. */
381  uint16_t slave_latency; /**< Latency for the connection in number of connection events. Range: 0x0000 to 0x01F3. */
382  uint16_t sup_timeout; /**< Connection supervision timeout. Range: 0x000A to 0x0C80, unit: 10 ms, time range: 100 ms to 32 s. */
383  uint8_t clk_accuracy; /**< Clock accuracy (0x00: 500 ppm, 0x01: 250 ppm, 0x02: 150 ppm, 0x03: 100 ppm, 0x04: 75 ppm, 0x05:50 ppm, 0x06:30 ppm, 0x07:20 ppm, others: reserved for future use). */
384  uint8_t peer_addr_type; /**< Peer address type(0x00: Public Device Address, 0x01 : Random Device Address, others: reserved for future use). */
385  ble_gap_addr_t peer_addr; /**< Peer BT address. */
386  ble_gap_ll_role_type_t ll_role; /**< Device Role of LL Layer. */
388 
389 /**@brief Disconnection event for @ref BLE_GAPC_EVT_DISCONNECTED. */
390 typedef struct
391 {
392  uint8_t reason; /**< HCI error code, see BLE_HCI_STATUS_CODES. */
394 
395 /** @brief Name of peer device indication event for @ref BLE_GAPC_EVT_PEER_NAME_GOT. */
396 typedef struct
397 {
398  ble_gap_addr_t peer_addr; /**< Peer device bd address. */
399  uint8_t addr_type; /**< Peer device address type. */
400  uint8_t name_len; /**< Peer device name length. */
401  uint8_t *name; /**< Peer device name. */
403 
404 /** @brief Get peer info event for @ref BLE_GAPC_EVT_PEER_INFO_GOT. */
405 typedef struct
406 {
407  uint8_t opcode; /**< Operation code. See @ref ble_gap_get_peer_info_op_t. */
408  ble_gap_peer_info_t peer_info; /**< Peer info. */
410 
411 /** @brief Connection parameter updated event for @ref BLE_GAPC_EVT_CONN_PARAM_UPDATED. */
412 typedef struct
413 {
414  uint16_t conn_interval; /**< Connection interval. Range: 0x0006 to 0x0C80. Unit: 1.25 ms. Time range: 7.5 ms to 4 s. */
415  uint16_t slave_latency; /**< Latency for the connection in number of connection events. Range: 0x0000 to 0x01F3. */
416  uint16_t sup_timeout; /**< Supervision timeout for the LE link. Range: 0x000A to 0x0C80, unit: 10 ms, time range: 100 ms to 32 s. */
418 
419 /** @brief Connection parameter update request event for @ref BLE_GAPC_EVT_CONN_PARAM_UPDATE_REQ. */
420 typedef struct
421 {
422  uint16_t interval_min; /**< Minimum value for the connection interval. This shall be less than or equal to Conn_Interval_Max.
423  Range: 0x0006 to 0x0C80, unit: 1.25 ms, time range: 7.5 ms to 4 s*/
424  uint16_t interval_max; /**< Maximum value for the connection interval. This shall be greater than or equal to Conn_Interval_Min.
425  Range: 0x0006 to 0x0C80, unit: 1.25 ms, time range: 7.5 ms to 4 s.*/
426  uint16_t slave_latency; /**< Slave latency for the connection in number of connection events. Range: 0x0000 to 0x01F3. */
427  uint16_t sup_timeout; /**< Supervision timeout for the LE link. Range: 0x000A to 0x0C80, unit: 10 ms, time range: 100 ms to 32 s. */
429 
430 /** @brief Get Connection info event for @ref BLE_GAPC_EVT_CONN_INFO_GOT. */
431 typedef struct
432 {
433  uint8_t opcode; /**< Operation code. See @ref ble_gap_get_conn_info_op_t. */
434  ble_gap_conn_info_t info; /**< Connection info. */
436 
437 /** @brief Data Length Updated event for @ref BLE_GAPC_EVT_DATA_LENGTH_UPDATED. */
438 typedef struct
439 {
440  uint16_t max_tx_octets; /**< The maximum number of payload octets in TX. */
441  uint16_t max_tx_time; /**< The maximum time that the local Controller will take to TX. */
442  uint16_t max_rx_octets; /**< The maximum number of payload octets in RX. */
443  uint16_t max_rx_time; /**< The maximum time that the local Controller will take to RX. */
445 
446 /**@brief BLE GAPC event structure. */
447 typedef struct
448 {
449  uint8_t index; /**< Index of connection. */
450  union /**< union alternative identified by evt_id in enclosing struct. */
451  {
452  ble_gap_evt_phy_update_t phy_update; /**< PHY update parameters. */
453  ble_gap_evt_connected_t connected; /**< Connection parameters. */
454  ble_gap_evt_disconnected_t disconnected; /**< Disconnection parameters. See @ref BLE_STACK_ERROR_CODES. */
455  ble_gap_evt_peer_name_get_t peer_name; /**< Peer device name indication parameters. */
456  ble_gap_evt_peer_info_t peer_info; /**< Peer info indication parameters. */
457  ble_gap_evt_conn_param_updated_t conn_param_updated; /**< Connection parameter updated parameters. */
458  ble_gap_evt_conn_param_update_req_t conn_param_update_req; /**< Connection parameter update request parameters. */
459  ble_gap_evt_conn_info_t conn_info; /**< Connection info parameters. */
460  ble_gap_evt_data_length_t data_length; /**< Data Length Update parameter. */
461  } params; /**< Event Parameters. */
463 
464 /** @} */
465 
466 /**
467  * @defgroup BLE_GAPC_FUNCTION Functions
468  * @{
469  */
470 /**
471  ****************************************************************************************
472  * @brief Terminate an existing connection.
473  *
474  * @param[in] conn_idx: The index of connection.
475  *
476  * @retval ::SDK_SUCCESS: Operation is Success.
477  * @retval ::SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
478  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
479  ****************************************************************************************
480  */
481 uint16_t ble_gap_disconnect(uint8_t conn_idx);
482 
483 /**
484  ****************************************************************************************
485  * @brief Terminate an existing connection with a specified reason.
486  *
487  * @param[in] conn_idx: The index of connection.
488  * @param[in] reason: The specified reason.
489  *
490  * @retval ::SDK_SUCCESS: Operation is Success.
491  * @retval ::SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
492  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
493  ****************************************************************************************
494  */
495 uint16_t ble_gap_disconnect_with_reason(uint8_t conn_idx, ble_gap_disconn_reason_t reason);
496 
497 /**
498  ****************************************************************************************
499  * @brief Change the Link Layer connection parameters of a connection.
500  *
501  * @param[in] conn_idx: The index of connection.
502  * @param[in] p_conn_param: Pointer to the new connection param.
503  *
504  * @retval ::SDK_SUCCESS: Operation is Success.
505  * @retval ::SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
506  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
507  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
508  ****************************************************************************************
509  */
510 uint16_t ble_gap_conn_param_update (uint8_t conn_idx, const ble_gap_conn_update_param_t *p_conn_param);
511 
512 /**
513  *****************************************************************************************
514  * @brief Set connection's Latency.
515  * @note The latency shall be set to X value by LLCP firstly, then uses this API to change the latency in [0, X].
516  *
517  * @param[in] conn_idx: The index of connection.
518  * @param[in] latency: The latency of connection.
519  *
520  * @retval ::SDK_SUCCESS: Operation is Success.
521  * @retval ::SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
522  *****************************************************************************************
523  */
524 uint16_t ble_gap_latency_set(uint8_t conn_idx, uint16_t latency);
525 
526 /**
527  *****************************************************************************************
528  * @brief Consult BLE connection activity plan situation function.
529  * @note This function should be called when connection established and no periodic advertising exists.
530  *
531  * @param[out] p_act_num: Pointer to the number of existing connection activities.
532  * @param[out] p_conn_plan_arr: Pointer to the global array that stores planned connection activities.
533  *
534  * @retval ::SDK_SUCCESS: Operation is Success.
535  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
536  *****************************************************************************************
537  */
538 uint16_t ble_gap_con_plan_consult(uint8_t *p_act_num, ble_gap_con_plan_tag_t **p_conn_plan_arr);
539 
540 /**
541  ****************************************************************************************
542  * @brief Connection param update reply to peer device.
543  *
544  * @param[in] conn_idx: The index of connection.
545  * @param[in] accept: True to accept connection parameters, false to reject.
546  *
547  * @retval ::SDK_SUCCESS: Operation is success.
548  * @retval ::SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
549  * @retval ::SDK_ERR_POINTER_NULL: Invalid pointer supplied.
550  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
551  ****************************************************************************************
552  */
553 uint16_t ble_gap_conn_param_update_reply(uint8_t conn_idx, bool accept);
554 
555 /**
556  ****************************************************************************************
557  * @brief The suggested maximum transmission packet size and maximum packet transmission time to be used for a given connection.
558  *
559  * @param[in] conn_idx: The index of connection.
560  * @param[in] tx_octects: Preferred maximum number of payload octets that the local Controller should include in a single Link Layer packet on this connection.
561  * Range 0x001B-0x00FB (all other values reserved for future use).
562  * @param[in] tx_time: Preferred maximum number of microseconds that the local Controller should use to transmit a single Link Layer packet on this connection.
563  * Range 0x0148-0x4290 (all other values reserved for future use).
564  *
565  * @retval ::SDK_SUCCESS: Operation is Success.
566  * @retval ::SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
567  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
568  ****************************************************************************************
569  */
570 uint16_t ble_gap_data_length_update(uint8_t conn_idx, uint16_t tx_octects , uint16_t tx_time);
571 
572 /**
573  ****************************************************************************************
574  * @brief Set the PHY preferences for the connection identified by the connection index.
575  *
576  * @param[in] conn_idx: The index of connection.
577  * @param[in] tx_phys: The transmitter PHYs that the Host prefers the Controller to use (see @ref BLE_GAP_PHY_OPTIONS).
578  * @param[in] rx_phys: A bit field that indicates the receiver PHYs that the Host prefers the Controller to use (see @ref BLE_GAP_PHY_OPTIONS).
579  * @param[in] phy_opt: A bit field that allows the Host to specify options for PHYs (see @ref BLE_GAP_PHY_OPTIONS).
580  *
581  * @retval ::SDK_SUCCESS: Operation is Success.
582  * @retval ::SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
583  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
584  ****************************************************************************************
585  */
586 uint16_t ble_gap_phy_update(uint8_t conn_idx, uint8_t tx_phys , uint8_t rx_phys, uint8_t phy_opt);
587 
588 /**
589  ****************************************************************************************
590  * @brief Get the information of the connection.
591  *
592  * @param[in] conn_idx: The index of connection.
593  * @param[in] opcode: The operation code. See @ref ble_gap_get_conn_info_op_t.
594  *
595  * @retval ::SDK_SUCCESS: Operation is Success.
596  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
597  * @retval ::SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
598  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
599  ****************************************************************************************
600  */
601 uint16_t ble_gap_conn_info_get(uint8_t conn_idx, ble_gap_get_conn_info_op_t opcode);
602 
603 /**
604  ****************************************************************************************
605  * @brief Get the information of the peer device.
606  *
607  * @param[in] conn_idx: The index of connection.
608  * @param[in] opcode: The operation code. See @ref ble_gap_get_peer_info_op_t.
609  *
610  * @retval ::SDK_SUCCESS: Operation is Success.
611  * @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
612  * @retval ::SDK_ERR_INVALID_CONN_IDX: Invalid connection index supplied.
613  * @retval ::SDK_ERR_NO_RESOURCES: Not enough resources.
614  ****************************************************************************************
615  */
616 uint16_t ble_gap_peer_info_get(uint8_t conn_idx, ble_gap_get_peer_info_op_t opcode);
617 
618 /**
619  ****************************************************************************************
620  * @brief Get BD address of the local device by the conidx.
621  *
622  * @param[in] conidx: The index of conncetion.
623  * @param[in] p_addr: Pointer to the local BD addrss
624  ****************************************************************************************
625  */
626 void ble_gap_get_local_addr_by_conidx(uint8_t conidx, uint8_t *p_addr);
627 
628 
629 /** @} */
630 
631 #endif
632 /** @} */
633 /** @} */
634 /** @} */
ble_gap_get_bd_addr_t::index
uint8_t index
Advertsing index.
Definition: ble_gapc.h:184
ble_gap_dev_adv_tx_power_t
TX power info struct.
Definition: ble_gapc.h:190
ble_gap_dev_rf_path_comp_ind_t
RF path compensation values info.
Definition: ble_gapc.h:237
ble_gap_get_bd_addr_t
Get broadcast address struct.
Definition: ble_gapc.h:183
ble_gap_evt_peer_info_t::peer_info
ble_gap_peer_info_t peer_info
Peer info.
Definition: ble_gapc.h:408
BLE_GAP_OPCODE_LEPSM_UNREGISTER
@ BLE_GAP_OPCODE_LEPSM_UNREGISTER
LEPSM unregister operation.
Definition: ble_gapc.h:132
ble_gap_peer_features_ind_t
LE features info.
Definition: ble_gapc.h:314
ble_gap_evt_connected_t
Connection complete event for BLE_GAPC_EVT_CONNECTED.
Definition: ble_gapc.h:378
ble_gap_peer_info_t::peer_features
ble_gap_peer_features_ind_t peer_features
Features info.
Definition: ble_gapc.h:343
ble_gap_evt_peer_name_get_t::peer_addr
ble_gap_addr_t peer_addr
Peer device bd address.
Definition: ble_gapc.h:398
ble_gap_disconn_reason_t
ble_gap_disconn_reason_t
The specified reason for terminating a connection.
Definition: ble_gapc.h:139
ble_gapc_evt_t::phy_update
ble_gap_evt_phy_update_t phy_update
PHY update parameters.
Definition: ble_gapc.h:452
ble_gapc_evt_t::disconnected
ble_gap_evt_disconnected_t disconnected
Disconnection parameters.
Definition: ble_gapc.h:454
ble_gap_dev_rf_path_comp_ind_t::tx_path_comp
uint16_t tx_path_comp
RF TX path compensation.
Definition: ble_gapc.h:238
ble_gap_max_adv_data_len_ind_t::length
uint16_t length
Maximum advertising data length supported by controller.
Definition: ble_gapc.h:232
ble_gap_conn_update_param_t::interval_max
uint16_t interval_max
Maximum value for the connection interval.
Definition: ble_gapc.h:272
ble_gap_addr_t
The struct of address.
Definition: ble_gapc.h:170
ble_gap_peer_version_ind_t
Peer version info.
Definition: ble_gapc.h:306
ble_gap_conn_param_t::slave_latency
uint16_t slave_latency
Slave latency for the connection in number of connection events.
Definition: ble_gapc.h:263
ble_gap_conn_info_t::rssi
int8_t rssi
RSSI.
Definition: ble_gapc.h:297
ble_gap_dev_info_t::dev_rf_path_comp
ble_gap_dev_rf_path_comp_ind_t dev_rf_path_comp
RF path compensation values.
Definition: ble_gapc.h:253
ble_gap_peer_version_ind_t::lmp_vers
uint8_t lmp_vers
LMP version.
Definition: ble_gapc.h:309
ble_gap_max_data_len_t::suppted_max_rx_time
uint16_t suppted_max_rx_time
Maximum time, in microseconds, that the local Controller supports for reception of a single Link Laye...
Definition: ble_gapc.h:210
ble_gap_conn_param_t::sup_timeout
uint16_t sup_timeout
Supervision timeout for the LE link.
Definition: ble_gapc.h:264
ble_gap_evt_connected_t::sup_timeout
uint16_t sup_timeout
Connection supervision timeout.
Definition: ble_gapc.h:382
ble_gap_evt_disconnected_t
Disconnection event for BLE_GAPC_EVT_DISCONNECTED.
Definition: ble_gapc.h:391
BLE_GAP_LL_ROLE_SLAVE
@ BLE_GAP_LL_ROLE_SLAVE
Slave role.
Definition: ble_gapc.h:112
ble_gap_con_plan_tag_t
The Structure for BLE Connection Arrangement.
Definition: ble_gapc.h:348
ble_gapc_evt_t::peer_info
ble_gap_evt_peer_info_t peer_info
Peer info indication parameters.
Definition: ble_gapc.h:456
ble_gap_evt_peer_info_t
Get peer info event for BLE_GAPC_EVT_PEER_INFO_GOT.
Definition: ble_gapc.h:406
ble_gap_evt_data_length_t::max_rx_time
uint16_t max_rx_time
The maximum time that the local Controller will take to RX.
Definition: ble_gapc.h:443
ble_gap_psm_manager_op_id_t
ble_gap_psm_manager_op_id_t
Operation code used for LEPSM manager.
Definition: ble_gapc.h:130
ble_gap_bdaddr_t
The struct of broadcast address with broadcast type.
Definition: ble_gapc.h:176
ble_gap_dev_info_t
Device info.
Definition: ble_gapc.h:244
ble_gap_peer_info_t
LE peer info.
Definition: ble_gapc.h:341
ble_gap_dev_version_ind_t::hci_subver
uint16_t hci_subver
HCI subversion.
Definition: ble_gapc.h:162
ble_gap_le_phy_ind_t::rx_phy
uint8_t rx_phy
LE PHY for data reception.
Definition: ble_gapc.h:291
ble_gap_evt_phy_update_t
PHY update event for BLE_GAPC_EVT_PHY_UPDATED.
Definition: ble_gapc.h:364
ble_gap_dev_rf_path_comp_ind_t::rx_path_comp
uint16_t rx_path_comp
RF RX path compensation.
Definition: ble_gapc.h:239
ble_gap_dev_version_ind_t::hci_ver
uint8_t hci_ver
HCI version.
Definition: ble_gapc.h:159
ble_gap_conn_update_param_t::interval_min
uint16_t interval_min
Minimum value for the connection interval.
Definition: ble_gapc.h:270
BLE_GAP_HCI_PAIRING_WITH_UNIT_KEY_UNSUPPORTED
@ BLE_GAP_HCI_PAIRING_WITH_UNIT_KEY_UNSUPPORTED
Pairing With Unit Key Not Supported.
Definition: ble_gapc.h:145
ble_gap_nb_adv_sets_t
Number of available advertising sets info.
Definition: ble_gapc.h:225
ble_gap_evt_peer_name_get_t
Name of peer device indication event for BLE_GAPC_EVT_PEER_NAME_GOT.
Definition: ble_gapc.h:397
BLE_GAP_OPCODE_PRIVACY_MODE_SET
@ BLE_GAP_OPCODE_PRIVACY_MODE_SET
Set privacy mode for peer device.
Definition: ble_gapc.h:123
ble_gap_peer_version_ind_t::lmp_subvers
uint16_t lmp_subvers
LMP subversion.
Definition: ble_gapc.h:308
ble_gap_con_plan_tag_t::interval
uint32_t interval
Connection Interval (in 625us).
Definition: ble_gapc.h:350
ble_gap_dev_info_t::max_adv_data_len
ble_gap_max_adv_data_len_ind_t max_adv_data_len
Maximum advertising data length info.
Definition: ble_gapc.h:251
BLE_GAP_GET_CON_RSSI
@ BLE_GAP_GET_CON_RSSI
Get connection RSSI info.
Definition: ble_gapc.h:95
ble_gapc_evt_t::peer_name
ble_gap_evt_peer_name_get_t peer_name
Peer device name indication parameters.
Definition: ble_gapc.h:455
ble_gap_conn_info_t::chnl_map
ble_gap_chnl_map_t chnl_map
channel map.
Definition: ble_gapc.h:298
ble_gap_evt_dev_info_get_t::operation
uint8_t operation
Operation code.
Definition: ble_gapc.h:372
ble_gap_sugg_dflt_data_len_t::suggted_max_tx_octets
uint16_t suggted_max_tx_octets
The Host's suggested value for the Controller's maximum transmitted number of payload octets to be us...
Definition: ble_gapc.h:217
ble_gap_conn_info_get
uint16_t ble_gap_conn_info_get(uint8_t conn_idx, ble_gap_get_conn_info_op_t opcode)
Get the information of the connection.
ble_gap_disconnect_with_reason
uint16_t ble_gap_disconnect_with_reason(uint8_t conn_idx, ble_gap_disconn_reason_t reason)
Terminate an existing connection with a specified reason.
ble_gap_peer_info_get
uint16_t ble_gap_peer_info_get(uint8_t conn_idx, ble_gap_get_peer_info_op_t opcode)
Get the information of the peer device.
ble_gap_latency_set
uint16_t ble_gap_latency_set(uint8_t conn_idx, uint16_t latency)
Set connection's Latency.
ble_gap_con_plan_tag_t::duration
uint32_t duration
Connection Duration (in 625us).
Definition: ble_gapc.h:352
ble_gapc_evt_t::conn_param_update_req
ble_gap_evt_conn_param_update_req_t conn_param_update_req
Connection parameter update request parameters.
Definition: ble_gapc.h:458
ble_gap_set_pref_slave_evt_dur_param_t
Set preference slave event duration.
Definition: ble_gapc.h:357
ble_gap_con_plan_tag_t::conn_idx
uint16_t conn_idx
Connection Index.
Definition: ble_gapc.h:349
ble_gap_evt_connected_t::peer_addr_type
uint8_t peer_addr_type
Peer address type(0x00: Public Device Address, 0x01 : Random Device Address, others: reserved for fut...
Definition: ble_gapc.h:384
gr55xx_sys_cfg.h
Define the chip configuration.
BLE_GAP_GET_PEER_VERSION
@ BLE_GAP_GET_PEER_VERSION
Get peer device version info.
Definition: ble_gapc.h:104
ble_gap_dev_tx_power_t::max_tx_pwr
int8_t max_tx_pwr
MAX of TX power.
Definition: ble_gapc.h:198
ble_gapc_evt_t::conn_param_updated
ble_gap_evt_conn_param_updated_t conn_param_updated
Connection parameter updated parameters.
Definition: ble_gapc.h:457
ble_gap_conn_info_t
Connection info.
Definition: ble_gapc.h:296
ble_gap_evt_conn_param_updated_t::conn_interval
uint16_t conn_interval
Connection interval.
Definition: ble_gapc.h:414
ble_gap_param_set_op_id_t
ble_gap_param_set_op_id_t
Operation code used to set param(s).
Definition: ble_gapc.h:119
ble_gap_dev_version_ind_t::host_ver
uint8_t host_ver
Host version.
Definition: ble_gapc.h:161
BLE_GAP_HCI_REMOTE_DEV_TERMINATION_DUE_TO_POWER_OFF
@ BLE_GAP_HCI_REMOTE_DEV_TERMINATION_DUE_TO_POWER_OFF
Remote Device Terminated Connection due to Power Off.
Definition: ble_gapc.h:143
ble_gap_dev_info_t::adv_tx_power
ble_gap_dev_adv_tx_power_t adv_tx_power
Advertising TX power info.
Definition: ble_gapc.h:247
BLE_GAP_GET_PEER_FEATURES
@ BLE_GAP_GET_PEER_FEATURES
Get peer device features info.
Definition: ble_gapc.h:105
ble_gap_conn_param_t::interval_min
uint16_t interval_min
Minimum value for the connection interval.
Definition: ble_gapc.h:259
ble_gap_evt_conn_info_t
Get Connection info event for BLE_GAPC_EVT_CONN_INFO_GOT.
Definition: ble_gapc.h:432
ble_gap_max_data_len_t::suppted_max_tx_time
uint16_t suppted_max_tx_time
Maximum time, in microseconds, that the local Controller supports for transmission of a single Link L...
Definition: ble_gapc.h:206
ble_gapc_evt_t::connected
ble_gap_evt_connected_t connected
Connection parameters.
Definition: ble_gapc.h:453
BLE_GAP_OPCODE_WHITELIST_SET
@ BLE_GAP_OPCODE_WHITELIST_SET
Set white list.
Definition: ble_gapc.h:121
ble_gap_evt_data_length_t::max_tx_octets
uint16_t max_tx_octets
The maximum number of payload octets in TX.
Definition: ble_gapc.h:440
ble_gap_phy_update
uint16_t ble_gap_phy_update(uint8_t conn_idx, uint8_t tx_phys, uint8_t rx_phys, uint8_t phy_opt)
Set the PHY preferences for the connection identified by the connection index.
ble_gap_evt_conn_param_updated_t
Connection parameter updated event for BLE_GAPC_EVT_CONN_PARAM_UPDATED.
Definition: ble_gapc.h:413
ble_gap_evt_data_length_t::max_rx_octets
uint16_t max_rx_octets
The maximum number of payload octets in RX.
Definition: ble_gapc.h:442
BLE_GAP_HCI_CONN_INTERVAL_UNACCEPTABLE
@ BLE_GAP_HCI_CONN_INTERVAL_UNACCEPTABLE
Unacceptable Connection Parameters.
Definition: ble_gapc.h:146
BLE_GAP_GET_PHY
@ BLE_GAP_GET_PHY
Get connection PHY.
Definition: ble_gapc.h:97
ble_gap_evt_conn_param_update_req_t::interval_max
uint16_t interval_max
Maximum value for the connection interval.
Definition: ble_gapc.h:424
ble_gap_evt_conn_param_update_req_t::slave_latency
uint16_t slave_latency
Slave latency for the connection in number of connection events.
Definition: ble_gapc.h:426
ble_gap_evt_conn_param_updated_t::slave_latency
uint16_t slave_latency
Latency for the connection in number of connection events.
Definition: ble_gapc.h:415
ble_gap_evt_dev_info_get_t::dev_info
ble_gap_dev_info_t dev_info
Device info.
Definition: ble_gapc.h:373
ble_gap_bdaddr_t::addr_type
uint8_t addr_type
Address type of the device: 0=public/1=random.
Definition: ble_gapc.h:178
ble_gap_conn_param_t
The parameter of connection.
Definition: ble_gapc.h:258
BLE_GAP_OPCODE_LEPSM_REGISTER
@ BLE_GAP_OPCODE_LEPSM_REGISTER
LEPSM register operation.
Definition: ble_gapc.h:131
BLE_GAP_LL_ROLE_MASTER
@ BLE_GAP_LL_ROLE_MASTER
Master role.
Definition: ble_gapc.h:111
ble_error.h
File that contains error codes.
BLE_GAP_FEATS_LEN
#define BLE_GAP_FEATS_LEN
The length of features.
Definition: ble_gapc.h:69
ble_gap_conn_update_param_t
The parameter of update connection.
Definition: ble_gapc.h:269
BLE_GAP_HCI_REMOTE_DEV_TERMINATION_DUE_TO_LOW_RESOURCES
@ BLE_GAP_HCI_REMOTE_DEV_TERMINATION_DUE_TO_LOW_RESOURCES
Remote Device Terminated Connection due to Low Resources .
Definition: ble_gapc.h:142
BLE_GAP_CHNL_MAP_LEN
#define BLE_GAP_CHNL_MAP_LEN
The length of channel map.
Definition: ble_gapc.h:68
ble_gap_evt_disconnected_t::reason
uint8_t reason
HCI error code, see BLE_HCI_STATUS_CODES.
Definition: ble_gapc.h:392
ble_gap_evt_connected_t::peer_addr
ble_gap_addr_t peer_addr
Peer BT address.
Definition: ble_gapc.h:385
ble_gap_dev_tx_power_t
TX power info struct.
Definition: ble_gapc.h:196
ble_gap_evt_connected_t::clk_accuracy
uint8_t clk_accuracy
Clock accuracy (0x00: 500 ppm, 0x01: 250 ppm, 0x02: 150 ppm, 0x03: 100 ppm, 0x04: 75 ppm,...
Definition: ble_gapc.h:383
ble_gap_evt_peer_info_t::opcode
uint8_t opcode
Operation code.
Definition: ble_gapc.h:407
ble_gap_evt_conn_param_update_req_t::sup_timeout
uint16_t sup_timeout
Supervision timeout for the LE link.
Definition: ble_gapc.h:427
ble_gap_evt_conn_param_updated_t::sup_timeout
uint16_t sup_timeout
Supervision timeout for the LE link.
Definition: ble_gapc.h:416
BLE_GAP_HCI_AUTHENTICATION_FAILURE
@ BLE_GAP_HCI_AUTHENTICATION_FAILURE
Authentication Failure.
Definition: ble_gapc.h:140
ble_gap_dev_info_t::dev_tx_power
ble_gap_dev_tx_power_t dev_tx_power
Device TX power info.
Definition: ble_gapc.h:252
ble_gap_dev_info_t::dev_version
ble_gap_dev_version_ind_t dev_version
Version info.
Definition: ble_gapc.h:245
ble_gap_dev_version_ind_t::manuf_name
uint16_t manuf_name
Manufacturer name.
Definition: ble_gapc.h:165
BLE_GAP_OPCODE_PER_ADV_LIST_SET
@ BLE_GAP_OPCODE_PER_ADV_LIST_SET
Set periodic advertising list.
Definition: ble_gapc.h:122
ble_gap_conn_info_t::chan_sel_algo
uint8_t chan_sel_algo
Chanel Selection algorithm, 0x00: LE Channel Selection Algorithm #1 is used.
Definition: ble_gapc.h:300
ble_gap_evt_connected_t::conn_interval
uint16_t conn_interval
Connection interval.
Definition: ble_gapc.h:380
BLE_GAP_ADDR_LEN
#define BLE_GAP_ADDR_LEN
The length of address.
Definition: ble_gapc.h:70
ble_gap_conn_param_update
uint16_t ble_gap_conn_param_update(uint8_t conn_idx, const ble_gap_conn_update_param_t *p_conn_param)
Change the Link Layer connection parameters of a connection.
ble_gap_dev_version_ind_t
The struct of device version.
Definition: ble_gapc.h:158
ble_gap_evt_data_length_t
Data Length Updated event for BLE_GAPC_EVT_DATA_LENGTH_UPDATED.
Definition: ble_gapc.h:439
ble_gap_get_bd_addr_t::bd_addr
ble_gap_bdaddr_t bd_addr
BD address.
Definition: ble_gapc.h:185
ble_gap_conn_update_param_t::slave_latency
uint16_t slave_latency
Slave latency for the connection in number of connection events.
Definition: ble_gapc.h:274
ble_gap_conn_info_t::phy
ble_gap_le_phy_ind_t phy
PHY indicaiton.
Definition: ble_gapc.h:299
ble_gap_dev_info_t::get_bd_addr
ble_gap_get_bd_addr_t get_bd_addr
Device BD address info.
Definition: ble_gapc.h:246
ble_gap_evt_connected_t::ll_role
ble_gap_ll_role_type_t ll_role
Device Role of LL Layer.
Definition: ble_gapc.h:386
ble_gap_get_peer_info_op_t
ble_gap_get_peer_info_op_t
The operation code used to get peer device info.
Definition: ble_gapc.h:103
ble_gapc_evt_t
BLE GAPC event structure.
Definition: ble_gapc.h:448
ble_gap_le_phy_ind_t::tx_phy
uint8_t tx_phy
LE PHY for data transmission.
Definition: ble_gapc.h:290
ble_gap_data_length_update
uint16_t ble_gap_data_length_update(uint8_t conn_idx, uint16_t tx_octects, uint16_t tx_time)
The suggested maximum transmission packet size and maximum packet transmission time to be used for a ...
ble_gap_peer_version_ind_t::compid
uint16_t compid
Manufacturer name.
Definition: ble_gapc.h:307
BLE_GAP_GET_CHAN_SEL_ALGO
@ BLE_GAP_GET_CHAN_SEL_ALGO
Get selection algorithm for connection channel.
Definition: ble_gapc.h:98
ble_gap_con_plan_tag_t::offset
uint32_t offset
Connection Offset (in 625us).
Definition: ble_gapc.h:351
ble_gap_ll_role_type_t
ble_gap_ll_role_type_t
Device role of LL layer type.
Definition: ble_gapc.h:110
ble_gap_le_phy_ind_t
PHY info.
Definition: ble_gapc.h:289
ble_gap_dev_tx_power_t::min_tx_pwr
int8_t min_tx_pwr
MIN of TX power.
Definition: ble_gapc.h:197
ble_gap_evt_peer_name_get_t::name
uint8_t * name
Peer device name.
Definition: ble_gapc.h:401
ble_gap_dev_version_ind_t::lmp_ver
uint8_t lmp_ver
LMP version.
Definition: ble_gapc.h:160
BLE_GAP_HCI_REMOTE_USER_TERMINATED_CONNECTION
@ BLE_GAP_HCI_REMOTE_USER_TERMINATED_CONNECTION
Remote User Terminated Connection.
Definition: ble_gapc.h:141
ble_gap_evt_connected_t::slave_latency
uint16_t slave_latency
Latency for the connection in number of connection events.
Definition: ble_gapc.h:381
ble_gap_evt_data_length_t::max_tx_time
uint16_t max_tx_time
The maximum time that the local Controller will take to TX.
Definition: ble_gapc.h:441
ble_gap_dev_version_ind_t::host_subver
uint16_t host_subver
Host subversion.
Definition: ble_gapc.h:164
ble_gap_evt_conn_info_t::opcode
uint8_t opcode
Operation code.
Definition: ble_gapc.h:433
ble_gap_max_data_len_t::suppted_max_tx_octets
uint16_t suppted_max_tx_octets
Maximum number of payload octets that the local Controller supports for transmission of a single Link...
Definition: ble_gapc.h:204
ble_gap_conn_param_t::interval_max
uint16_t interval_max
Maximum value for the connection interval.
Definition: ble_gapc.h:261
ble_gap_nb_adv_sets_t::nb_adv_sets
uint8_t nb_adv_sets
Number of available advertising sets.
Definition: ble_gapc.h:226
ble_gap_sugg_dflt_data_len_t
Suggested default data length info.
Definition: ble_gapc.h:216
BLE_GAP_GET_CON_CHANNEL_MAP
@ BLE_GAP_GET_CON_CHANNEL_MAP
Get connection channel map.
Definition: ble_gapc.h:96
ble_gap_evt_conn_param_update_req_t::interval_min
uint16_t interval_min
Minimum value for the connection interval.
Definition: ble_gapc.h:422
ble_gap_evt_conn_param_update_req_t
Connection parameter update request event for BLE_GAPC_EVT_CONN_PARAM_UPDATE_REQ.
Definition: ble_gapc.h:421
ble_gap_evt_phy_update_t::tx_phy
uint8_t tx_phy
LE PHY for data transmission.
Definition: ble_gapc.h:365
ble_gap_max_data_len_t
Max data length info struct.
Definition: ble_gapc.h:203
ble_gap_disconnect
uint16_t ble_gap_disconnect(uint8_t conn_idx)
Terminate an existing connection.
ble_gap_conn_update_param_t::sup_timeout
uint16_t sup_timeout
Supervision timeout for the LE link.
Definition: ble_gapc.h:275
ble_gap_peer_info_t::peer_version
ble_gap_peer_version_ind_t peer_version
Version info.
Definition: ble_gapc.h:342
ble_gap_max_data_len_t::suppted_max_rx_octets
uint16_t suppted_max_rx_octets
Maximum number of payload octets that the local Controller supports for reception of a single Link La...
Definition: ble_gapc.h:208
ble_gap_set_pref_slave_evt_dur_param_t::single_tx
uint8_t single_tx
Slave transmits a single packet per connection event (False/True).
Definition: ble_gapc.h:359
ble_gap_evt_conn_info_t::info
ble_gap_conn_info_t info
Connection info.
Definition: ble_gapc.h:434
BLE_GAP_HCI_UNSUPPORTED_REMOTE_FEATURE
@ BLE_GAP_HCI_UNSUPPORTED_REMOTE_FEATURE
Unsupported Remote Feature.
Definition: ble_gapc.h:144
ble_gap_get_local_addr_by_conidx
void ble_gap_get_local_addr_by_conidx(uint8_t conidx, uint8_t *p_addr)
Get BD address of the local device by the conidx.
ble_gap_bdaddr_t::gap_addr
ble_gap_addr_t gap_addr
Device BD Address.
Definition: ble_gapc.h:177
BLE_GAP_OPCODE_CHNL_MAP_SET
@ BLE_GAP_OPCODE_CHNL_MAP_SET
Set Channel Map.
Definition: ble_gapc.h:120
ble_gap_conn_param_update_reply
uint16_t ble_gap_conn_param_update_reply(uint8_t conn_idx, bool accept)
Connection param update reply to peer device.
ble_gap_get_conn_info_op_t
ble_gap_get_conn_info_op_t
The operation code used to get connection info.
Definition: ble_gapc.h:94
ble_gap_chnl_map_t
Channel map structure.
Definition: ble_gapc.h:282
ble_gap_evt_dev_info_get_t
Get device info event for BLE_GAPC_EVT_DEV_INFO_GOT.
Definition: ble_gapc.h:371
ble_gap_dev_adv_tx_power_t::power_lvl
int8_t power_lvl
Advertising channel TX power level.
Definition: ble_gapc.h:191
ble_gapc_evt_t::data_length
ble_gap_evt_data_length_t data_length
Data Length Update parameter.
Definition: ble_gapc.h:460
ble_gap_max_adv_data_len_ind_t
Maximum advertising data length info.
Definition: ble_gapc.h:231
ble_gap_evt_peer_name_get_t::addr_type
uint8_t addr_type
Peer device address type.
Definition: ble_gapc.h:399
ble_gap_dev_info_t::nb_adv_sets
ble_gap_nb_adv_sets_t nb_adv_sets
Number of available advertising sets.
Definition: ble_gapc.h:250
ble_gapc_evt_t::index
uint8_t index
Index of connection.
Definition: ble_gapc.h:449
ble_gap_sugg_dflt_data_len_t::suggted_max_tx_time
uint16_t suggted_max_tx_time
The Host's suggested value for the Controller's maximum packet transmission time to be used for new c...
Definition: ble_gapc.h:219
ble_gap_conn_update_param_t::ce_len
uint16_t ce_len
The length of connection event needed for this LE connection.
Definition: ble_gapc.h:276
ble_gap_dev_info_t::sugg_dflt_data_len
ble_gap_sugg_dflt_data_len_t sugg_dflt_data_len
Suggested default data length info.
Definition: ble_gapc.h:248
ble_gap_set_pref_slave_evt_dur_param_t::duration
uint16_t duration
Preferred event duration.
Definition: ble_gapc.h:358
ble_gap_evt_phy_update_t::rx_phy
uint8_t rx_phy
LE PHY for data reception.
Definition: ble_gapc.h:366
ble_gap_dev_info_t::max_data_len
ble_gap_max_data_len_t max_data_len
Suggested MAX data length info.
Definition: ble_gapc.h:249
ble_gap_evt_connected_t::conn_handle
uint16_t conn_handle
Connection_Handle.
Definition: ble_gapc.h:379
ble_gapc_evt_t::conn_info
ble_gap_evt_conn_info_t conn_info
Connection info parameters.
Definition: ble_gapc.h:459
ble_gap_con_plan_consult
uint16_t ble_gap_con_plan_consult(uint8_t *p_act_num, ble_gap_con_plan_tag_t **p_conn_plan_arr)
Consult BLE connection activity plan situation function.
ble_gap_evt_peer_name_get_t::name_len
uint8_t name_len
Peer device name length.
Definition: ble_gapc.h:400
ble_gap_dev_version_ind_t::lmp_subver
uint16_t lmp_subver
LMP subversion.
Definition: ble_gapc.h:163