ble_gapm.h File Reference

BLE GAPM API. More...

#include "ble_error.h"
#include "ble_gapc.h"
#include <stdint.h>
#include <stddef.h>

Go to the source code of this file.

Data Structures

struct  gap_adv_param_t
 Advertising parameters for legacy advertising. More...
 
struct  gap_adv_prim_cfg_t
 Configuration for advertising on primary channel. More...
 
struct  gap_adv_second_cfg_t
 Configuration for advertising on secondary channel. More...
 
struct  gap_adv_period_cfg_t
 Configuration for periodic advertising. More...
 
struct  gap_ext_adv_param_t
 Advertising parameters for extended advertising and periodic advertising. More...
 
struct  gap_adv_time_param_t
 Advertising timing parameter. More...
 
struct  gap_sec_key_t
 Security key. More...
 
struct  gap_scan_param_t
 Parameters for legacy scanning. More...
 
struct  gap_scan_wd_op_param_t
 Scan Window operation parameters. More...
 
struct  gap_ext_scan_param_t
 Parameters for extended scanning. More...
 
struct  gap_period_adv_addr_cfg_t
 Periodic advertising information. More...
 
struct  gap_per_sync_param_t
 Periodic advertising synchronization parameters. More...
 
struct  gap_init_param_t
 Legacy initiating parameters. More...
 
struct  gap_ext_conn_param_t
 Connection parameters. More...
 
struct  gap_ext_init_param_t
 Extended initiating parameters. More...
 
struct  gap_lepsm_register_t
 LE Protocol/Service Multiplexer information. More...
 
struct  bond_dev_list_t
 Bonded device list. More...
 
struct  white_list_t
 White list. More...
 
struct  period_adv_list_t
 Periodic advertising list. More...
 
struct  gap_ral_dev_info_t
 RPA list item info. More...
 
struct  ral_dev_list_t
 RPA list info. More...
 

Macros

#define CO_BIT(pos)   (1UL<<(pos))
 
#define MAX_ADV_NUM   5
 
#define MAX_PER_SYNC_NUM   5
 
#define MAX_BOND_NUM   10
 
#define MAX_WL_NUM   10
 
#define MAX_PRD_ADV_NUM   4
 
#define MAX_KEY_LEN   16
 
#define INVALID_ADV_IDX   0xFF
 
#define BLE_GAP_DEVNAME_DEFAULT   "GOODIX_BLE"
 
#define BLE_GAP_DEVNAME_MAX_LEN   248
 
#define BLE_APPEARANCE_UNKNOWN   0
 
#define BLE_APPEARANCE_GENERIC_PHONE   64
 
#define BLE_APPEARANCE_GENERIC_COMPUTER   128
 
#define BLE_APPEARANCE_GENERIC_WATCH   192
 
#define BLE_APPEARANCE_WATCH_SPORTS_WATCH   193
 
#define BLE_APPEARANCE_GENERIC_CLOCK   256
 
#define BLE_APPEARANCE_GENERIC_DISPLAY   320
 
#define BLE_APPEARANCE_GENERIC_REMOTE_CONTROL   384
 
#define BLE_APPEARANCE_GENERIC_EYE_GLASSES   448
 
#define BLE_APPEARANCE_GENERIC_TAG   512
 
#define BLE_APPEARANCE_GENERIC_KEYRING   576
 
#define BLE_APPEARANCE_GENERIC_MEDIA_PLAYER   640
 
#define BLE_APPEARANCE_GENERIC_BARCODE_SCANNER   704
 
#define BLE_APPEARANCE_GENERIC_THERMOMETER   768
 
#define BLE_APPEARANCE_THERMOMETER_EAR   769
 
#define BLE_APPEARANCE_GENERIC_HEART_RATE_SENSOR   832
 
#define BLE_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT   833
 
#define BLE_APPEARANCE_GENERIC_BLOOD_PRESSURE   896
 
#define BLE_APPEARANCE_BLOOD_PRESSURE_ARM   897
 
#define BLE_APPEARANCE_BLOOD_PRESSURE_WRIST   898
 
#define BLE_APPEARANCE_GENERIC_HID   960
 
#define BLE_APPEARANCE_HID_KEYBOARD   961
 
#define BLE_APPEARANCE_HID_MOUSE   962
 
#define BLE_APPEARANCE_HID_JOYSTICK   963
 
#define BLE_APPEARANCE_HID_GAMEPAD   964
 
#define BLE_APPEARANCE_HID_DIGITIZERSUBTYPE   965
 
#define BLE_APPEARANCE_HID_CARD_READER   966
 
#define BLE_APPEARANCE_HID_DIGITAL_PEN   967
 
#define BLE_APPEARANCE_HID_BARCODE   968
 
#define BLE_APPEARANCE_GENERIC_GLUCOSE_METER   1024
 
#define BLE_APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR   1088
 
#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_IN_SHOE   1089
 
#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_SHOE   1090
 
#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_HIP   1091
 
#define BLE_APPEARANCE_GENERIC_CYCLING   1152
 
#define BLE_APPEARANCE_CYCLING_CYCLING_COMPUTER   1153
 
#define BLE_APPEARANCE_CYCLING_SPEED_SENSOR   1154
 
#define BLE_APPEARANCE_CYCLING_CADENCE_SENSOR   1155
 
#define BLE_APPEARANCE_CYCLING_POWER_SENSOR   1156
 
#define BLE_APPEARANCE_CYCLING_SPEED_CADENCE_SENSOR   1157
 
#define BLE_APPEARANCE_GENERIC_PULSE_OXIMETER   3136
 
#define BLE_APPEARANCE_PULSE_OXIMETER_FINGERTIP   3137
 
#define BLE_APPEARANCE_PULSE_OXIMETER_WRIST_WORN   3138
 
#define BLE_APPEARANCE_GENERIC_WEIGHT_SCALE   3200
 
#define BLE_APPEARANCE_GENERIC_OUTDOOR_SPORTS_ACT   5184
 
#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_DISP   5185
 
#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_DISP   5186
 
#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_POD   5187
 
#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_POD   5188
 
#define BLE_GAP_PHY_ANY   0x00
 
#define BLE_GAP_PHY_LE_1MBPS   (1 << 0)
 
#define BLE_GAP_PHY_LE_2MBPS   (1 << 1)
 
#define BLE_GAP_PHY_LE_CODED   (1 << 2)
 
#define GAP_ADV_CHANNEL_37   0x01
 
#define GAP_ADV_CHANNEL_38   0x02
 
#define GAP_ADV_CHANNEL_39   0x04
 
#define GAP_ADV_CHANNEL_37_38_39   0x07
 

Typedefs

typedef void(* reslv_rpa_addr_callback_t) (uint8_t status, gap_bdaddr_t *iden_addr, uint8_t src_info)
 The BLE reslove rpa address callback.
 
typedef void(* rpa_addr_report_callback_t) (ble_actv_type_t type, uint8_t index, const uint8_t *rpa_addr)
 The BLE rpa address report callback.
 

Enumerations

enum  gap_role_t {
  BLE_GAP_ROLE_NONE = 0x00, BLE_GAP_ROLE_OBSERVER = 0x01, BLE_GAP_ROLE_BROADCASTER = 0x02, BLE_GAP_ROLE_CENTRAL = (0x04 | BLE_GAP_ROLE_OBSERVER),
  BLE_GAP_ROLE_PERIPHERAL = (0x08 | BLE_GAP_ROLE_BROADCASTER), BLE_GAP_ROLE_ALL = (BLE_GAP_ROLE_CENTRAL | BLE_GAP_ROLE_PERIPHERAL)
}
 GAP role options. More...
 
enum  gap_own_addr_t { BLE_GAP_OWN_ADDR_STATIC = 0, BLE_GAP_OWN_ADDR_GEN_RSLV, BLE_GAP_OWN_ADDR_GEN_NON_RSLV }
 Own BD address source of the device. More...
 
enum  gap_dev_name_write_perm_t {
  BLE_GAP_WRITE_PERM_DISABLE = 0, BLE_GAP_WRITE_PERM_NOAUTH, BLE_GAP_WRITE_PERM_UNAUTH, BLE_GAP_WRITE_PERM_AUTH,
  BLE_GAP_WRITE_PERM_SEC_CON
}
 Write permissions of the device name characteristic. More...
 
enum  gap_adv_data_type_t { BLE_GAP_ADV_DATA_TYPE_DATA = 0, BLE_GAP_ADV_DATA_TYPE_SCAN_RSP, BLE_GAP_ADV_DATA_TYPE_PER_DATA }
 Advertising data type. More...
 
enum  gap_dev_info_get_type_t {
  BLE_GAP_GET_DEV_VERSION = 0, BLE_GAP_GET_DEV_BDADDR, BLE_GAP_GET_SUGGESTED_DFLT_LE_DATA_LEN, BLE_GAP_GET_MAX_LE_DATA_LEN,
  BLE_GAP_GET_NB_ADV_SETS, BLE_GAP_GET_MAX_LE_ADV_DATA_LEN, BLE_GAP_GET_DEV_TX_POWER, BLE_GAP_GET_DEV_RF_RF_PATH_COMP
}
 Get device parameters operation code. More...
 
enum  gap_adv_mode_t {
  GAP_ADV_TYPE_ADV_IND = 0, GAP_ADV_TYPE_ADV_NONCONN_IND, GAP_ADV_TYPE_ADV_SCAN_IND, GAP_ADV_TYPE_ADV_HIGH_DIRECT_IND,
  GAP_ADV_TYPE_ADV_LOW_DIRECT_IND
}
 GAP advertising modes. More...
 
enum  gap_disc_mode_t { GAP_DISC_MODE_NON_DISCOVERABLE = 0, GAP_DISC_MODE_GEN_DISCOVERABLE, GAP_DISC_MODE_LIM_DISCOVERABLE, GAP_DISC_MODE_BROADCASTER }
 GAP discoverability modes. More...
 
enum  gap_adv_filter_policy_t { GAP_ADV_ALLOW_SCAN_ANY_CON_ANY = 0, GAP_ADV_ALLOW_SCAN_WLST_CON_ANY, GAP_ADV_ALLOW_SCAN_ANY_CON_WLST, GAP_ADV_ALLOW_SCAN_WLST_CON_WLST }
 Advertising filter policy. More...
 
enum  gap_le_phy_value_t { GAP_PHY_UNDEF_VALUE = 0, GAP_PHY_1MBPS_VALUE = 1, GAP_PHY_2MBPS_VALUE = 2, GAP_PHY_CODED_VALUE = 3 }
 Specify what PHY the Controller has changed for TX/RX. HCI:7.7.65.12. More...
 
enum  gap_adv_type_t { GAP_ADV_TYPE_LEGACY = 0, GAP_ADV_TYPE_EXTENDED, GAP_ADV_TYPE_PERIODIC }
 Advertising type. More...
 
enum  gap_adv_prop_pos_t {
  GAP_ADV_PROP_CONNECTABLE_POS = 0, GAP_ADV_PROP_SCANNABLE_POS, GAP_ADV_PROP_DIRECTED_POS, GAP_ADV_PROP_HDC_POS,
  GAP_ADV_PROP_USE_LEGACY_PDUS_POS, GAP_ADV_PROP_ANONYMOUS_POS, GAP_ADV_PROP_TX_PWR_POS, GAP_ADV_PROP_PER_TX_PWR_POS,
  GAP_ADV_PROP_SCAN_REQ_NTF_EN_POS
}
 Advertising properties bit field and bit positions. More...
 
enum  gap_adv_prop_t {
  GAP_ADV_PROP_CONNECTABLE_BIT = CO_BIT(GAP_ADV_PROP_CONNECTABLE_POS), GAP_ADV_PROP_SCANNABLE_BIT = CO_BIT(GAP_ADV_PROP_SCANNABLE_POS), GAP_ADV_PROP_DIRECTED_BIT = CO_BIT(GAP_ADV_PROP_DIRECTED_POS), GAP_ADV_PROP_HDC_BIT = CO_BIT(GAP_ADV_PROP_HDC_POS),
  GAP_ADV_PROP_USE_LEGACY_PDUS_BIT = CO_BIT(GAP_ADV_PROP_USE_LEGACY_PDUS_POS), GAP_ADV_PROP_ANONYMOUS_BIT = CO_BIT(GAP_ADV_PROP_ANONYMOUS_POS), GAP_ADV_PROP_TX_PWR_BIT = CO_BIT(GAP_ADV_PROP_TX_PWR_POS), GAP_ADV_PROP_PER_TX_PWR_BIT = CO_BIT(GAP_ADV_PROP_PER_TX_PWR_POS),
  GAP_ADV_PROP_SCAN_REQ_NTF_EN_BIT = CO_BIT(GAP_ADV_PROP_SCAN_REQ_NTF_EN_POS)
}
 Advertising properties bit field bit value.
 
enum  gap_scan_type_t { GAP_SCAN_ACTIVE = 0, GAP_SCAN_PASSIVE }
 Scanning types. More...
 
enum  gap_scan_mode_t { GAP_SCAN_GEN_DISC_MODE = 0, GAP_SCAN_LIM_DISC_MODE, GAP_SCAN_OBSERVER_MODE }
 Scanning modes. More...
 
enum  gap_scan_dup_filt_policy_t { GAP_SCAN_FILT_DUPLIC_DIS = 0, GAP_SCAN_FILT_DUPLIC_EN }
 Duplicate filter policy. More...
 
enum  gap_ext_scan_type_t {
  GAP_EXT_SCAN_TYPE_GEN_DISC = 0, GAP_EXT_SCAN_TYPE_LIM_DISC, GAP_EXT_SCAN_TYPE_OBSERVER, GAP_EXT_SCAN_TYPE_SEL_OBSERVER,
  GAP_EXT_SCAN_TYPE_CONN_DISC, GAP_EXT_SCAN_TYPE_SEL_CONN_DISC
}
 Extended scanning types. More...
 
enum  gap_scan_prop_t {
  GAP_EXT_SCAN_PROP_PHY_1M_BIT = (1 << 0), GAP_EXT_SCAN_PROP_PHY_CODED_BIT = (1 << 1), GAP_EXT_SCAN_PROP_ACTIVE_1M_BIT = (1 << 2), GAP_EXT_SCAN_PROP_ACTIVE_CODED_BIT = (1 << 3),
  GAP_EXT_SCAN_PROP_ACCEPT_RPA_BIT = (1 << 4), GAP_EXT_SCAN_PROP_FILT_TRUNC_BIT = (1 << 5)
}
 Scanning properties bit field bit value. More...
 
enum  gap_ext_scan_dup_filt_policy_t { GAP_EXT_DUP_FILT_DIS = 0, GAP_EXT_DUP_FILT_EN, GAP_EXT_DUP_FILT_EN_PERIOD }
 Filtering policy for duplicated packets. More...
 
enum  gap_init_type_t { GAP_INIT_TYPE_DIRECT_CONN_EST = 0, GAP_INIT_TYPE_AUTO_CONN_EST, GAP_INIT_TYPE_NAME_DISC }
 Initiating types. More...
 
enum  gap_init_prop_t { GAP_INIT_PROP_1M_BIT = (1 << 0), GAP_INIT_PROP_2M_BIT = (1 << 1), GAP_INIT_PROP_CODED_BIT = (1 << 2) }
 Initiating properties. More...
 
enum  gap_scan_prop {
  GAP_SCAN_PROP_PHY_1M_BIT = (1 << 0), GAP_SCAN_PROP_PHY_CODED_BIT = (1 << 1), GAP_SCAN_PROP_ACTIVE_1M_BIT = (1 << 2), GAP_SCAN_PROP_ACTIVE_CODED_BIT = (1 << 3),
  GAP_SCAN_PROP_ACCEPT_RPA_BIT = (1 << 4), GAP_SCAN_PROP_FILT_TRUNC_BIT = (1 << 5)
}
 Scanning properties bit field bit value. More...
 
enum  gap_per_sync_type { GAP_PER_SYNC_TYPE_GENERAL = 0, GAP_PER_SYNC_TYPE_SELECTIVE }
 Periodic synchronization types. More...
 
enum  gap_sec_lvl_type { GAP_SEC_LVL_NO_SECURITY = 0, GAP_SEC_LVL_ENC_NO_AUTH, GAP_SEC_LVL_LE_ENC_AUTH, GAP_SEC_LVL_SC_ENC_AUTH }
 Security level types. More...
 
enum  gap_ad_type_t {
  BLE_GAP_AD_TYPE_FLAGS = 0x01, BLE_GAP_AD_TYPE_MORE_16_BIT_UUID = 0x02, BLE_GAP_AD_TYPE_COMPLETE_LIST_16_BIT_UUID = 0x03, BLE_GAP_AD_TYPE_MORE_32_BIT_UUID = 0x04,
  BLE_GAP_AD_TYPE_COMPLETE_LIST_32_BIT_UUID = 0x05, BLE_GAP_AD_TYPE_MORE_128_BIT_UUID = 0x06, BLE_GAP_AD_TYPE_COMPLETE_LIST_128_BIT_UUID = 0x07, BLE_GAP_AD_TYPE_SHORTENED_NAME = 0x08,
  BLE_GAP_AD_TYPE_COMPLETE_NAME = 0x09, BLE_GAP_AD_TYPE_TRANSMIT_POWER = 0x0A, BLE_GAP_AD_TYPE_CLASS_OF_DEVICE = 0x0D, BLE_GAP_AD_TYPE_SP_HASH_C = 0x0E,
  BLE_GAP_AD_TYPE_SP_RANDOMIZER_R = 0x0F, BLE_GAP_AD_TYPE_TK_VALUE = 0x10, BLE_GAP_AD_TYPE_OOB_FLAGS = 0x11, BLE_GAP_AD_TYPE_SLAVE_CONN_INT_RANGE = 0x12,
  BLE_GAP_AD_TYPE_RQRD_16_BIT_SVC_UUID = 0x14, BLE_GAP_AD_TYPE_RQRD_32_BIT_SVC_UUID = 0x1F, BLE_GAP_AD_TYPE_RQRD_128_BIT_SVC_UUID = 0x15, BLE_GAP_AD_TYPE_SERVICE_16_BIT_DATA = 0x16,
  BLE_GAP_AD_TYPE_SERVICE_32_BIT_DATA = 0x20, BLE_GAP_AD_TYPE_SERVICE_128_BIT_DATA = 0x21, BLE_GAP_AD_TYPE_PUB_TGT_ADDR = 0x17, BLE_GAP_AD_TYPE_RAND_TGT_ADDR = 0x18,
  BLE_GAP_AD_TYPE_APPEARANCE = 0x19, BLE_GAP_AD_TYPE_ADV_INTV = 0x1A, BLE_GAP_AD_TYPE_LE_BT_ADDR = 0x1B, BLE_GAP_AD_TYPE_LE_ROLE = 0x1C,
  BLE_GAP_AD_TYPE_SPAIR_HASH = 0x1D, BLE_GAP_AD_TYPE_SPAIR_RAND = 0x1E, BLE_GAP_AD_TYPE_3D_INFO = 0x3D, BLE_GAP_AD_TYPE_MANU_SPECIFIC_DATA = 0xFF
}
 GAP advertising types. More...
 
enum  gap_adv_flags_t {
  GAP_ADV_FLAG_LE_LIMITED_DISC_MODE = 0x01, GAP_ADV_FLAG_LE_GENERAL_DISC_MODE = 0x02, GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED = 0x04, GAP_ADV_FLAG_SIMUL_BR_EDR_LE_CONTROLLER = 0x08,
  GAP_ADV_FLAG_SIMUL_BR_EDR_LE_HOST = 0x10
}
 AD Type Flag - Bit mask. More...
 
enum  privacy_mode_t { PRIVACY_MODE_NETWORK = 0x00, PRIVACY_MODE_DEVICE = 0x01 }
 Privacy mode. More...
 
enum  gap_activity_role_t { GAP_ACTIVITY_ROLE_ADV = 0, GAP_ACTIVITY_ROLE_CON = 1, GAP_ACTIVITY_ROLE_SCAN_INIT = 2, GAP_ACTIVITY_ROLE_UNKNOWN = 0xf }
 Possible roles of the activity. More...
 
enum  ble_actv_type_t { TYPE_ADV = 0, TYPE_SCAN, TYPE_INIT, TYPE_PER_SYNC }
 Activity type.
 

Functions

void ble_gap_pair_enable (bool enable)
 Decide whether to support the pair feature. More...
 
uint16_t ble_gap_addr_set (gap_bdaddr_t const *p_addr)
 Set the device identity address (public or random static). More...
 
uint16_t ble_gap_addr_get (gap_bdaddr_t *p_addr)
 Get the device identity address (public or random static). More...
 
uint16_t ble_gap_tx_power_set (gap_activity_role_t role, uint8_t index, int8_t txpwr_dbm)
 Set the tx power. More...
 
uint16_t ble_gap_tx_power_get (gap_activity_role_t role, uint8_t index, int8_t *txpwr_dbm)
 Get the tx power. More...
 
uint16_t ble_gap_irk_set (gap_sec_key_t *p_irk)
 Set IRK used for resolvable random BD address generation (LSB first). More...
 
uint16_t ble_gap_privacy_params_set (uint16_t renew_dur, bool enable_flag)
 Set privacy related parameters. More...
 
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. More...
 
uint16_t ble_gap_l2cap_params_set (uint16_t max_mtu, uint16_t max_mps, uint8_t max_nb_lecb)
 Set L2CAP related parameters. More...
 
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. More...
 
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 components. More...
 
uint16_t ble_gap_chnl_map_set (gap_chnl_map_t *p_chnl_map)
 Set advertising channel map before advertising starts. More...
 
uint16_t ble_gap_bond_devs_get (bond_dev_list_t *p_bond_list)
 Get all bonded devices. More...
 
uint16_t ble_gap_bond_dev_addr_get (uint8_t conn_idx, gap_bdaddr_t *p_peer_addr)
 Get BD address of the bonded device. More...
 
uint16_t ble_gap_bond_devs_clear (void)
 Clear all bonded devices. More...
 
uint16_t ble_gap_bond_dev_del (const gap_bdaddr_t *p_peer_addr)
 Delete a bond device with the specified BD address. More...
 
uint16_t ble_gap_whitelist_get (white_list_t *p_whitelist)
 Get the content of the whole white list. More...
 
uint16_t ble_gap_whitelist_add (const white_list_t *p_whitelist)
 Add the devices into current white list. If white list is full or there are duplicated entries, it will return error. More...
 
uint16_t ble_gap_whitelist_del (const white_list_t *p_whitelist)
 Delete the devices out of current white list. If the entries do not exist in the current white list, it will return error. More...
 
uint16_t ble_gap_whitelist_clear (void)
 Clear all the entries in the current white list. More...
 
uint16_t ble_gap_per_adv_list_get (period_adv_list_t *p_pal_list)
 Get the content of the whole periodic advertising list. More...
 
uint16_t ble_gap_per_adv_list_add (const period_adv_list_t *p_pal_list)
 Add the devices into current periodic advertising list. If periodic advertising list is full or there are duplicated entries, it will return error. More...
 
uint16_t ble_gap_per_adv_list_del (const period_adv_list_t *p_pal_list)
 Delete the devices out of periodic advertising list. If the entries do not exist in the current list, an error will be returned. More...
 
uint16_t ble_gap_per_adv_list_clear (void)
 Clear all the entries in the current periodic advertising list. More...
 
uint16_t ble_gap_rpa_list_get (ral_dev_list_t *p_rpa_list)
 Get the RPA list info. More...
 
uint16_t ble_gap_dev_info_get (gap_dev_info_get_type_t type)
 Get the device information according to param type. More...
 
uint16_t ble_gap_adv_param_set (uint8_t adv_idx, gap_own_addr_t own_addr_type, gap_adv_param_t *p_adv_param)
 Set parameters for advertising. Note that this function must be called prior to advertising started. More...
 
uint16_t ble_gap_ext_adv_param_set (uint8_t adv_idx, gap_own_addr_t own_addr_type, gap_ext_adv_param_t *p_adv_param)
 Set extended parameters for advertising. Note that this function must be called prior to advertising. More...
 
uint16_t ble_gap_adv_data_set (uint8_t adv_idx, gap_adv_data_type_t type, const uint8_t *p_data, uint16_t length)
 Set Advertising Data, Scan Response Data and Periodic Advertising Data. See ENUM gap_ad_type_t for ADV Type definitions. See ENUM gap_adv_flags_t for ADV flag definitions. More...
 
uint16_t ble_gap_update_adv_data (uint8_t adv_idx, gap_adv_data_type_t type, const uint8_t *p_data, uint16_t length)
 Update Advertising Data, Scan Response Data and Periodic Advertising Data. See ENUM gap_ad_type_t for ADV Type definitions. See ENUM gap_adv_flags_t for ADV flag definitions. More...
 
uint16_t ble_gap_adv_start (uint8_t adv_idx, gap_adv_time_param_t *p_timeout)
 Start advertising. More...
 
uint16_t ble_gap_adv_stop (uint8_t adv_idx)
 Stop advertising. More...
 
uint16_t ble_gap_scan_param_set (gap_own_addr_t own_addr_type, gap_scan_param_t *p_scan_param)
 Set parameters for scanning. Note that this function must be called prior to scanning started. More...
 
uint16_t ble_gap_ext_scan_param_set (gap_own_addr_t own_addr_type, gap_ext_scan_param_t *p_scan_param)
 Set extended parameters for scanning. Note that this function must be called prior to scanning started. More...
 
uint16_t ble_gap_scan_start (void)
 Start scanning. More...
 
uint16_t ble_gap_scan_stop (void)
 Stop scanning. More...
 
uint16_t ble_gap_per_sync_param_set (uint8_t per_sync_idx, gap_per_sync_param_t *p_per_sync_param)
 Set the parameters used for periodic sync. More...
 
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 advertising packets. More...
 
uint16_t ble_gap_per_sync_stop (uint8_t per_sync_idx)
 Stop periodic synchronization. More...
 
uint16_t ble_gap_connect (gap_own_addr_t own_addr_type, gap_init_param_t *p_init_param)
 Start a legacy connection to a device. More...
 
uint16_t ble_gap_ext_connect (gap_own_addr_t own_addr_type, gap_ext_init_param_t *p_init_param)
 Start an extended connection to a device. More...
 
uint16_t ble_gap_connect_cancel (void)
 Cancel an initiated connection. More...
 
void ble_gap_appearance_set (uint16_t appearance)
 Set GAP appearance value. More...
 
uint16_t ble_gap_appearance_get (uint16_t *p_appearance)
 Get GAP appearance value. More...
 
void ble_gap_ppcp_present_set (bool present_flag)
 Set GAP Peripheral Preferred Connection Parameters present flag. More...
 
uint16_t ble_gap_ppcp_set (gap_conn_param_t const *p_conn_params)
 Set GAP Peripheral Preferred Connection Parameters. More...
 
uint16_t ble_gap_ppcp_get (gap_conn_param_t *p_conn_params)
 Get GAP Peripheral Preferred Connection Parameters. More...
 
uint16_t ble_gap_device_name_set (gap_dev_name_write_perm_t write_perm, uint8_t const *p_dev_name, uint16_t length)
 Set GAP device name. More...
 
uint16_t ble_gap_device_name_get (uint8_t *p_dev_name, uint16_t *p_length)
 Get GAP device name. More...
 
uint16_t ble_gap_lepsm_register (gap_lepsm_register_t *p_lepsm)
 Register a LE Protocol/Service Multiplexer. More...
 
uint16_t ble_gap_lepsm_unregister (uint16_t le_psm)
 Unregister a LE Protocol/Service Multiplexer. More...
 
uint16_t ble_gap_privacy_mode_set (gap_bdaddr_t peer_addr, privacy_mode_t mode)
 Set privacy mode for peer device. More...
 
uint16_t ble_gap_rslv_addr_read (gap_rslv_addr_read_op_id_t op_code, gap_bdaddr_t peer_iden_addr)
 Read peer or local resolvable address. More...
 
uint16_t ble_gap_reslv_rpa_addr (uint8_t *reslv_addr, uint8_t src_info, reslv_rpa_addr_callback_t cb)
 Resolve the rpa address. More...
 
uint16_t ble_gap_update_conn_param_method_set (uint8_t conn_idx, bool use_l2cap_flag)
 Set the method for updating connection parameter. More...
 
void ble_gap_rpa_addr_report_cb_register (rpa_addr_report_callback_t cb)
 Set the cb for rpa address report. More...
 

Detailed Description

BLE GAPM API.

Attention
Copyright (c) 2019 GOODIX

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of GOODIX nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.