Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of nRF51822 by
ble_conn_params.h
00001 /* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved. 00002 * 00003 * The information contained herein is property of Nordic Semiconductor ASA. 00004 * Terms and conditions of usage are described in detail in NORDIC 00005 * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. 00006 * 00007 * Licensees are granted free, non-transferable use of the information. NO 00008 * WARRANTY of ANY KIND is provided. This heading must NOT be removed from 00009 * the file. 00010 * 00011 */ 00012 00013 /** @file 00014 * 00015 * @defgroup ble_sdk_lib_conn_params Connection Parameters Negotiation 00016 * @{ 00017 * @ingroup ble_sdk_lib 00018 * @brief Module for initiating and executing a connection parameters negotiation procedure. 00019 */ 00020 00021 #ifndef BLE_CONN_PARAMS_H__ 00022 #define BLE_CONN_PARAMS_H__ 00023 00024 #include <stdint.h> 00025 #include "nordic_global.h" 00026 #include "ble.h" 00027 #include "ble_srv_common.h " 00028 00029 /**@brief Connection Parameters Module event type. */ 00030 typedef enum 00031 { 00032 BLE_CONN_PARAMS_EVT_FAILED , /**< Negotiation procedure failed. */ 00033 BLE_CONN_PARAMS_EVT_SUCCEEDED /**< Negotiation procedure succeeded. */ 00034 } ble_conn_params_evt_type_t; 00035 00036 /**@brief Connection Parameters Module event. */ 00037 typedef struct 00038 { 00039 ble_conn_params_evt_type_t evt_type; /**< Type of event. */ 00040 } ble_conn_params_evt_t; 00041 00042 /**@brief Connection Parameters Module event handler type. */ 00043 typedef void (*ble_conn_params_evt_handler_t) (ble_conn_params_evt_t * p_evt); 00044 00045 /**@brief Connection Parameters Module init structure. This contains all options and data needed for 00046 * initialization of the connection parameters negotiation module. */ 00047 typedef struct 00048 { 00049 ble_gap_conn_params_t * p_conn_params; /**< Pointer to the connection parameters desired by the application. When calling ble_conn_params_init, if this parameter is set to NULL, the connection parameters will be fetched from host. */ 00050 uint32_t first_conn_params_update_delay; /**< Time from initiating event (connect or start of notification) to first time sd_ble_gap_conn_param_update is called (in number of timer ticks). */ 00051 uint32_t next_conn_params_update_delay; /**< Time between each call to sd_ble_gap_conn_param_update after the first (in number of timer ticks). Recommended value 30 seconds as per BLUETOOTH SPECIFICATION Version 4.0. */ 00052 uint8_t max_conn_params_update_count; /**< Number of attempts before giving up the negotiation. */ 00053 uint16_t start_on_notify_cccd_handle; /**< If procedure is to be started when notification is started, set this to the handle of the corresponding CCCD. Set to BLE_GATT_HANDLE_INVALID if procedure is to be started on connect event. */ 00054 bool disconnect_on_fail; /**< Set to TRUE if a failed connection parameters update shall cause an automatic disconnection, set to FALSE otherwise. */ 00055 ble_conn_params_evt_handler_t evt_handler; /**< Event handler to be called for handling events in the Battery Service. */ 00056 ble_srv_error_handler_t error_handler; /**< Function to be called in case of an error. */ 00057 } ble_conn_params_init_t; 00058 00059 00060 /**@brief Function for initializing the Connection Parameters module. 00061 * 00062 * @note If the negotiation procedure should be triggered when notification/indication of 00063 * any characteristic is enabled by the peer, then this function must be called after 00064 * having initialized the services. 00065 * 00066 * @param[in] p_init This contains information needed to initialize this module. 00067 * 00068 * @return NRF_SUCCESS on successful initialization, otherwise an error code. 00069 */ 00070 uint32_t ble_conn_params_init(const ble_conn_params_init_t * p_init); 00071 00072 /**@brief Function for stopping the Connection Parameters module. 00073 * 00074 * @details This function is intended to be used by the application to clean up the connection 00075 * parameters update module. This will stop the connection parameters update timer if 00076 * running, thereby preventing any impending connection parameters update procedure. This 00077 * function must be called by the application when it needs to clean itself up (for 00078 * example, before disabling the bluetooth SoftDevice) so that an unwanted timer expiry 00079 * event can be avoided. 00080 * 00081 * @return NRF_SUCCESS on successful initialization, otherwise an error code. 00082 */ 00083 uint32_t ble_conn_params_stop(void); 00084 00085 /**@brief Function for changing the current connection parameters to a new set. 00086 * 00087 * @details Use this function to change the connection parameters to a new set of parameter 00088 * (ie different from the ones given at init of the module). 00089 * This function is usefull for scenario where most of the time the application 00090 * needs a relatively big connection interval, and just sometimes, for a temporary 00091 * period requires shorter connection interval, for example to transfer a higher 00092 * amount of data. 00093 * If the given parameters does not match the current connection's parameters 00094 * this function initiates a new negotiation. 00095 * 00096 * @param[in] new_params This contains the new connections parameters to setup. 00097 * 00098 * @return NRF_SUCCESS on successful initialization, otherwise an error code. 00099 */ 00100 uint32_t ble_conn_params_change_conn_params(ble_gap_conn_params_t *new_params); 00101 00102 /**@brief Function for handling the Application's BLE Stack events. 00103 * 00104 * @details Handles all events from the BLE stack that are of interest to this module. 00105 * 00106 * @param[in] p_ble_evt The event received from the BLE stack. 00107 */ 00108 void ble_conn_params_on_ble_evt(ble_evt_t * p_ble_evt); 00109 00110 #endif // BLE_CONN_PARAMS_H__ 00111 00112 /** @} */
Generated on Tue Jul 12 2022 18:44:25 by
