ble_gapm.h File Reference

BLE GAPM API. More...

#include "ble_error.h"
#include "ble_gapc.h"
#include <stdint.h>
#include <stddef.h>
+ Include dependency graph for ble_gapm.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ble_gap_adv_param_t
 Advertising parameters for legacy advertising. More...
 
struct  ble_gap_adv_prim_cfg_t
 Configuration for advertising on primary channel. More...
 
struct  ble_gap_adv_second_cfg_t
 Configuration for advertising on secondary channel. More...
 
struct  ble_gap_adv_period_cfg_t
 Configuration for periodic advertising. More...
 
struct  ble_gap_ext_adv_param_t
 Advertising parameters for extended advertising and periodic advertising. More...
 
struct  ble_gap_adv_time_param_t
 Advertising timing parameter. More...
 
struct  ble_gap_sec_key_t
 Security key. More...
 
struct  ble_gap_scan_param_t
 Parameters for legacy scanning. More...
 
struct  ble_gap_scan_wd_op_param_t
 Scan Window operation parameters. More...
 
struct  ble_gap_ext_scan_param_t
 Parameters for extended scanning. More...
 
struct  ble_gap_period_adv_addr_cfg_t
 Periodic advertising information. More...
 
struct  ble_gap_per_sync_param_t
 Periodic advertising synchronization parameters. More...
 
struct  ble_gap_init_param_t
 Legacy initiating parameters. More...
 
struct  ble_gap_ext_conn_param_t
 Connection parameters. More...
 
struct  ble_gap_ext_init_param_t
 Extended initiating parameters. More...
 
struct  ble_gap_lepsm_register_t
 LE Protocol/Service Multiplexer information. More...
 
struct  ble_gap_bond_dev_list_t
 Bonded device list. More...
 
struct  ble_gap_white_list_t
 White list. More...
 
struct  ble_gap_period_adv_list_t
 Periodic advertising list. More...
 
struct  ble_gap_ral_dev_info_t
 RPA list item info. More...
 
struct  ble_gap_ral_dev_list_t
 RPA list info. More...
 
struct  ble_gap_evt_adv_stop_t
 Advertising Stop info. More...
 
struct  ble_gap_evt_scan_req_t
 Scan request info. More...
 
struct  ble_gap_evt_scan_stop_t
 Scan Stop info struct. More...
 
struct  ble_gap_evt_adv_report_t
 Advertising report event for BLE_GAPM_EVT_ADV_REPORT. More...
 
struct  ble_gap_evt_sync_established_t
 Sync established event for BLE_GAPM_EVT_SYNC_ESTABLISH. More...
 
struct  ble_gap_evt_rslv_addr_read_t
 Read resolvable address event for BLE_GAPM_EVT_READ_RSLV_ADDR. More...
 
struct  ble_gapm_evt_t
 BLE GAPM event structure. More...
 

Macros

#define CO_BIT(pos)   (1UL<<(pos))
 Bit operation helper. More...
 
#define BLE_GAP_MAX_ADV_NUM   5
 Maximal advertising instance number. More...
 
#define BLE_GAP_MAX_PER_SYNC_NUM   5
 Maximal periodic syncronization instance number. More...
 
#define BLE_GAP_MAX_BOND_NUM   10
 Maximal bonding number. More...
 
#define BLE_GAP_MAX_WL_NUM   10
 Maximal white list number. More...
 
#define BLE_GAP_MAX_PRD_ADV_NUM   4
 Maximal periodic advertising list number. More...
 
#define BLE_GAP_MAX_KEY_LEN   16
 The key length. More...
 
#define BLE_GAP_NVALID_ADV_IDX   0xFF
 Invalid adv index. More...
 
#define BLE_GAP_DEVNAME_DEFAULT   "GOODIX_BLE"
 Default device name value. More...
 
#define BLE_GAP_DEVNAME_MAX_LEN   248
 Maximal length of device name. More...
 
#define BLE_APPEARANCE_UNKNOWN   0
 Unknown. More...
 
#define BLE_APPEARANCE_GENERIC_PHONE   64
 Generic Phone. More...
 
#define BLE_APPEARANCE_GENERIC_COMPUTER   128
 Generic Computer. More...
 
#define BLE_APPEARANCE_GENERIC_WATCH   192
 Generic Watch. More...
 
#define BLE_APPEARANCE_WATCH_SPORTS_WATCH   193
 Watch: Sports Watch. More...
 
#define BLE_APPEARANCE_GENERIC_CLOCK   256
 Generic Clock. More...
 
#define BLE_APPEARANCE_GENERIC_DISPLAY   320
 Generic Display. More...
 
#define BLE_APPEARANCE_GENERIC_REMOTE_CONTROL   384
 Generic Remote Control. More...
 
#define BLE_APPEARANCE_GENERIC_EYE_GLASSES   448
 Generic Eye-glasses. More...
 
#define BLE_APPEARANCE_GENERIC_TAG   512
 Generic Tag. More...
 
#define BLE_APPEARANCE_GENERIC_KEYRING   576
 Generic Keyring. More...
 
#define BLE_APPEARANCE_GENERIC_MEDIA_PLAYER   640
 Generic Media Player. More...
 
#define BLE_APPEARANCE_GENERIC_BARCODE_SCANNER   704
 Generic Barcode Scanner. More...
 
#define BLE_APPEARANCE_GENERIC_THERMOMETER   768
 Generic Thermometer. More...
 
#define BLE_APPEARANCE_THERMOMETER_EAR   769
 Thermometer: Ear. More...
 
#define BLE_APPEARANCE_GENERIC_HEART_RATE_SENSOR   832
 Generic Heart Rate Sensor. More...
 
#define BLE_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT   833
 Heart Rate Sensor: Heart Rate Belt. More...
 
#define BLE_APPEARANCE_GENERIC_BLOOD_PRESSURE   896
 Generic Blood Pressure. More...
 
#define BLE_APPEARANCE_BLOOD_PRESSURE_ARM   897
 Blood Pressure: Arm. More...
 
#define BLE_APPEARANCE_BLOOD_PRESSURE_WRIST   898
 Blood Pressure: Wrist. More...
 
#define BLE_APPEARANCE_GENERIC_HID   960
 Human Interface Device (HID). More...
 
#define BLE_APPEARANCE_HID_KEYBOARD   961
 Keyboard (HID Subtype). More...
 
#define BLE_APPEARANCE_HID_MOUSE   962
 Mouse (HID Subtype). More...
 
#define BLE_APPEARANCE_HID_JOYSTICK   963
 Joystick (HID Subtype). More...
 
#define BLE_APPEARANCE_HID_GAMEPAD   964
 Gamepad (HID Subtype). More...
 
#define BLE_APPEARANCE_HID_DIGITIZERSUBTYPE   965
 Digitizer Tablet (HID Subtype). More...
 
#define BLE_APPEARANCE_HID_CARD_READER   966
 Card Reader (HID Subtype). More...
 
#define BLE_APPEARANCE_HID_DIGITAL_PEN   967
 Digital Pen (HID Subtype). More...
 
#define BLE_APPEARANCE_HID_BARCODE   968
 Barcode Scanner (HID Subtype). More...
 
#define BLE_APPEARANCE_GENERIC_GLUCOSE_METER   1024
 Generic Glucose Meter. More...
 
#define BLE_APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR   1088
 Generic Running Walking Sensor. More...
 
#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_IN_SHOE   1089
 Running Walking Sensor: In-Shoe. More...
 
#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_SHOE   1090
 Running Walking Sensor: On-Shoe. More...
 
#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_HIP   1091
 Running Walking Sensor: On-Hip. More...
 
#define BLE_APPEARANCE_GENERIC_CYCLING   1152
 Generic Cycling. More...
 
#define BLE_APPEARANCE_CYCLING_CYCLING_COMPUTER   1153
 Cycling: Cycling Computer. More...
 
#define BLE_APPEARANCE_CYCLING_SPEED_SENSOR   1154
 Cycling: Speed Sensor. More...
 
#define BLE_APPEARANCE_CYCLING_CADENCE_SENSOR   1155
 Cycling: Cadence Sensor. More...
 
#define BLE_APPEARANCE_CYCLING_POWER_SENSOR   1156
 Cycling: Power Sensor. More...
 
#define BLE_APPEARANCE_CYCLING_SPEED_CADENCE_SENSOR   1157
 Cycling: Speed and Cadence Sensor. More...
 
#define BLE_APPEARANCE_GENERIC_PULSE_OXIMETER   3136
 Generic Pulse Oximeter. More...
 
#define BLE_APPEARANCE_PULSE_OXIMETER_FINGERTIP   3137
 Fingertip (Pulse Oximeter subtype). More...
 
#define BLE_APPEARANCE_PULSE_OXIMETER_WRIST_WORN   3138
 Wrist Worn(Pulse Oximeter subtype). More...
 
#define BLE_APPEARANCE_GENERIC_WEIGHT_SCALE   3200
 Generic Weight Scale. More...
 
#define BLE_APPEARANCE_GENERIC_OUTDOOR_SPORTS_ACT   5184
 Generic Outdoor Sports Activity. More...
 
#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_DISP   5185
 Location Display Device (Outdoor Sports Activity subtype). More...
 
#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_DISP   5186
 Location and Navigation Display Device (Outdoor Sports Activity subtype). More...
 
#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_POD   5187
 Location Pod (Outdoor Sports Activity subtype). More...
 
#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_POD   5188
 Location and Navigation Pod (Outdoor Sports Activity subtype). More...
 
#define BLE_GAP_PHY_ANY   0x00
 No preferred PHY. More...
 
#define BLE_GAP_PHY_LE_1MBPS   (1 << 0)
 LE 1M PHY preferred for an active link. More...
 
#define BLE_GAP_PHY_LE_2MBPS   (1 << 1)
 LE 2M PHY preferred for an active link. More...
 
#define BLE_GAP_PHY_LE_CODED   (1 << 2)
 LE Coded PHY preferred for an active link. More...
 
#define BLE_GAP_ADV_CHANNEL_37   0x01
 Advertising Channel 37 (2402MHz). More...
 
#define BLE_GAP_ADV_CHANNEL_38   0x02
 Advertising Channel 38 (2426MHz). More...
 
#define BLE_GAP_ADV_CHANNEL_39   0x04
 Advertising Channel 39 (2480MHz). More...
 
#define BLE_GAP_ADV_CHANNEL_37_38_39   0x07
 Advertising Channel 37, 38, 39. More...
 

Typedefs

typedef 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. More...
 
typedef void(* ble_gap_rpa_addr_report_callback_t) (ble_gap_actv_type_t type, uint8_t index, const uint8_t *rpa_addr)
 The BLE rpa address report callback. More...
 

Enumerations

enum  ble_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  ble_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  ble_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  ble_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  ble_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  ble_gap_adv_mode_t {
  BLE_GAP_ADV_TYPE_ADV_IND = 0, BLE_GAP_ADV_TYPE_ADV_NONCONN_IND, BLE_GAP_ADV_TYPE_ADV_SCAN_IND, BLE_GAP_ADV_TYPE_ADV_HIGH_DIRECT_IND,
  BLE_GAP_ADV_TYPE_ADV_LOW_DIRECT_IND
}
 GAP advertising modes. More...
 
enum  ble_gap_disc_mode_t { BLE_GAP_DISC_MODE_NON_DISCOVERABLE = 0, BLE_GAP_DISC_MODE_GEN_DISCOVERABLE, BLE_GAP_DISC_MODE_LIM_DISCOVERABLE, BLE_GAP_DISC_MODE_BROADCASTER }
 GAP discoverability modes. More...
 
enum  ble_gap_adv_filter_policy_t { BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_ANY = 0, BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_ANY, BLE_GAP_ADV_ALLOW_SCAN_ANY_CON_WLST, BLE_GAP_ADV_ALLOW_SCAN_WLST_CON_WLST }
 Advertising filter policy. More...
 
enum  ble_gap_le_phy_value_t { BLE_GAP_PHY_UNDEF_VALUE = 0, BLE_GAP_PHY_1MBPS_VALUE = 1, BLE_GAP_PHY_2MBPS_VALUE = 2, BLE_GAP_PHY_CODED_VALUE = 3 }
 Specify what PHY the Controller has changed for TX/RX. More...
 
enum  ble_gap_adv_type_t { BLE_GAP_ADV_TYPE_LEGACY = 0, BLE_GAP_ADV_TYPE_EXTENDED, BLE_GAP_ADV_TYPE_PERIODIC }
 Advertising type. More...
 
enum  ble_gap_adv_prop_pos_t {
  BLE_GAP_ADV_PROP_CONNECTABLE_POS = 0, BLE_GAP_ADV_PROP_SCANNABLE_POS, BLE_GAP_ADV_PROP_DIRECTED_POS, BLE_GAP_ADV_PROP_HDC_POS,
  BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_POS, BLE_GAP_ADV_PROP_ANONYMOUS_POS, BLE_GAP_ADV_PROP_TX_PWR_POS, BLE_GAP_ADV_PROP_PER_TX_PWR_POS,
  BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_POS
}
 Advertising properties bit field and bit positions. More...
 
enum  ble_gap_adv_prop_t {
  BLE_GAP_ADV_PROP_CONNECTABLE_BIT = CO_BIT(BLE_GAP_ADV_PROP_CONNECTABLE_POS), BLE_GAP_ADV_PROP_SCANNABLE_BIT = CO_BIT(BLE_GAP_ADV_PROP_SCANNABLE_POS), BLE_GAP_ADV_PROP_DIRECTED_BIT = CO_BIT(BLE_GAP_ADV_PROP_DIRECTED_POS), BLE_GAP_ADV_PROP_HDC_BIT = CO_BIT(BLE_GAP_ADV_PROP_HDC_POS),
  BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_BIT = CO_BIT(BLE_GAP_ADV_PROP_USE_LEGACY_PDUS_POS), BLE_GAP_ADV_PROP_ANONYMOUS_BIT = CO_BIT(BLE_GAP_ADV_PROP_ANONYMOUS_POS), BLE_GAP_ADV_PROP_TX_PWR_BIT = CO_BIT(BLE_GAP_ADV_PROP_TX_PWR_POS), BLE_GAP_ADV_PROP_PER_TX_PWR_BIT = CO_BIT(BLE_GAP_ADV_PROP_PER_TX_PWR_POS),
  BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_BIT = CO_BIT(BLE_GAP_ADV_PROP_SCAN_REQ_NTF_EN_POS)
}
 Advertising properties bit field bit value. More...
 
enum  ble_gap_scan_type_t { BLE_GAP_SCAN_ACTIVE = 0, BLE_GAP_SCAN_PASSIVE }
 Scanning types. More...
 
enum  ble_gap_scan_mode_t { BLE_GAP_SCAN_GEN_DISC_MODE = 0, BLE_GAP_SCAN_LIM_DISC_MODE, BLE_GAP_SCAN_OBSERVER_MODE }
 Scanning modes. More...
 
enum  ble_gap_scan_dup_filt_policy_t { BLE_GAP_SCAN_FILT_DUPLIC_DIS = 0, BLE_GAP_SCAN_FILT_DUPLIC_EN }
 Duplicate filter policy. More...
 
enum  ble_gap_ext_scan_type_t {
  BLE_GAP_EXT_SCAN_TYPE_GEN_DISC = 0, BLE_GAP_EXT_SCAN_TYPE_LIM_DISC, BLE_GAP_EXT_SCAN_TYPE_OBSERVER, BLE_GAP_EXT_SCAN_TYPE_SEL_OBSERVER,
  BLE_GAP_EXT_SCAN_TYPE_CONN_DISC, BLE_GAP_EXT_SCAN_TYPE_SEL_CONN_DISC
}
 Extended scanning types. More...
 
enum  ble_gap_ext_scan_dup_filt_policy_t { BLE_GAP_EXT_DUP_FILT_DIS = 0, BLE_GAP_EXT_DUP_FILT_EN, BLE_GAP_EXT_DUP_FILT_EN_PERIOD }
 Filtering policy for duplicated packets. More...
 
enum  ble_gap_init_type_t { BLE_GAP_INIT_TYPE_DIRECT_CONN_EST = 0, BLE_GAP_INIT_TYPE_AUTO_CONN_EST, BLE_GAP_INIT_TYPE_NAME_DISC }
 Initiating types. More...
 
enum  ble_gap_init_prop_t { BLE_GAP_INIT_PROP_1M_BIT = (1 << 0), BLE_GAP_INIT_PROP_2M_BIT = (1 << 1), BLE_GAP_INIT_PROP_CODED_BIT = (1 << 2) }
 Initiating properties. More...
 
enum  ble_gap_scan_prop_t {
  BLE_GAP_SCAN_PROP_PHY_1M_BIT = (1 << 0), BLE_GAP_SCAN_PROP_PHY_CODED_BIT = (1 << 1), BLE_GAP_SCAN_PROP_ACTIVE_1M_BIT = (1 << 2), BLE_GAP_SCAN_PROP_ACTIVE_CODED_BIT = (1 << 3),
  BLE_GAP_SCAN_PROP_ACCEPT_RPA_BIT = (1 << 4), BLE_GAP_SCAN_PROP_FILT_TRUNC_BIT = (1 << 5)
}
 Scanning properties bit field bit value. More...
 
enum  ble_gap_per_sync_type_t { BLE_GAP_PER_SYNC_TYPE_GENERAL = 0, BLE_GAP_PER_SYNC_TYPE_SELECTIVE }
 Periodic synchronization types. More...
 
enum  ble_gap_sec_lvl_type_t { BLE_GAP_SEC_LVL_NO_SECURITY = 0, BLE_GAP_SEC_LVL_ENC_NO_AUTH, BLE_GAP_SEC_LVL_LE_ENC_AUTH, BLE_GAP_SEC_LVL_SC_ENC_AUTH }
 Security level types. More...
 
enum  ble_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  ble_gap_adv_flags_t {
  BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE = 0x01, BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE = 0x02, BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED = 0x04, BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_CONTROLLER = 0x08,
  BLE_GAP_ADV_FLAG_SIMUL_BR_EDR_LE_HOST = 0x10
}
 AD Type Flag - Bit mask. More...
 
enum  ble_gap_adv_report_type_t {
  BLE_GAP_REPORT_TYPE_ADV_EXT = 0, BLE_GAP_REPORT_TYPE_ADV_LEG, BLE_GAP_REPORT_TYPE_SCAN_RSP_EXT, BLE_GAP_REPORT_TYPE_SCAN_RSP_LEG,
  BLE_GAP_REPORT_TYPE_PER_ADV
}
 Advertising report type. More...
 
enum  ble_gap_adv_report_info_t { BLE_GAP_REPORT_INFO_COMPLETE_BIT = (1 << 0), BLE_GAP_REPORT_INFO_CONN_ADV_BIT = (1 << 1), BLE_GAP_REPORT_INFO_SCAN_ADV_BIT = (1 << 2), BLE_GAP_REPORT_INFO_DIR_ADV_BIT = (1 << 3) }
 Advertising report information. More...
 
enum  ble_gap_stopped_reason_t { BLE_GAP_STOPPED_REASON_TIMEOUT = 0, BLE_GAP_STOPPED_REASON_ON_USER, BLE_GAP_STOPPED_REASON_CONN_EST }
 Stop reason code. More...
 
enum  ble_gap_privacy_mode_t { BLE_GAP_PRIVACY_MODE_NETWORK = 0x00, BLE_GAP_PRIVACY_MODE_DEVICE = 0x01 }
 Privacy mode. More...
 
enum  ble_gap_actv_role_t { BLE_GAP_ACTIVITY_ROLE_ADV = 0, BLE_GAP_ACTIVITY_ROLE_CON = 1, BLE_GAP_ACTIVITY_ROLE_SCAN_INIT = 2, BLE_GAP_ACTIVITY_ROLE_UNKNOWN = 0xf }
 Possible roles of the activity. More...
 
enum  ble_gap_clk_acc_t {
  BLE_GAP_CLK_ACC_500 = 0, BLE_GAP_CLK_ACC_250, BLE_GAP_CLK_ACC_150, BLE_GAP_CLK_ACC_100,
  BLE_GAP_CLK_ACC_75, BLE_GAP_CLK_ACC_50, BLE_GAP_CLK_ACC_30, BLE_GAP_CLK_ACC_20
}
 Clock ACC error. More...
 
enum  ble_gap_actv_type_t { BLE_GAP_ACTV_TYPE_ADV = 0, BLE_GAP_ACTV_TYPE_SCAN, BLE_GAP_ACTV_TYPE_INIT, BLE_GAP_ACTV_TYPE_PER_SYNC }
 Activity type. More...
 
enum  ble_gap_rslv_addr_read_op_id_t { BLE_GAP_OPCODE_LOCAL_RSLV_ADDR_READ, BLE_GAP_OPCODE_PEER_RSLV_ADDR_READ }
 Operation code used to read resolvable address. More...
 

Functions

void ble_gap_pair_enable (bool enable)
 Decide whether to support the pair feature. More...
 
uint16_t ble_gap_addr_set (ble_gap_bdaddr_t const *p_addr)
 Set the device identity address (public or random static). More...
 
uint16_t ble_gap_addr_get (ble_gap_bdaddr_t *p_addr)
 Get the device identity address (public or random static). More...
 
uint16_t ble_gap_tx_power_set (ble_gap_actv_role_t role, uint8_t index, int8_t txpwr_dbm)
 Set the tx power. More...
 
uint16_t ble_gap_tx_power_get (ble_gap_actv_role_t role, uint8_t index, int8_t *txpwr_dbm)
 Get the tx power. More...
 
uint16_t ble_gap_irk_set (ble_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 (ble_gap_chnl_map_t *p_chnl_map)
 Set advertising channel map before advertising starts. More...
 
uint16_t ble_gap_chnl_map_timer_set (bool enable_flag)
 Set ble channel map update timer enable or disable. More...
 
uint16_t ble_gap_bond_devs_get (ble_gap_bond_dev_list_t *p_bond_list)
 Get all bonded devices. More...
 
uint16_t ble_gap_bond_dev_addr_get (uint8_t conn_idx, ble_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 ble_gap_bdaddr_t *p_peer_addr)
 Delete a bond device with the specified BD address. More...
 
uint16_t ble_gap_whitelist_get (ble_gap_white_list_t *p_whitelist)
 Get the content of the whole white list. More...
 
uint16_t ble_gap_whitelist_add (const ble_gap_white_list_t *p_whitelist)
 Add the devices into current white list. More...
 
uint16_t ble_gap_whitelist_del (const ble_gap_white_list_t *p_whitelist)
 Delete the devices out of current white list. 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 (ble_gap_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 ble_gap_period_adv_list_t *p_pal_list)
 Add the devices into current periodic advertising list. More...
 
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. 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 (ble_gap_ral_dev_list_t *p_rpa_list)
 Get the RPA list info. More...
 
uint16_t ble_gap_dev_info_get (ble_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, ble_gap_own_addr_t own_addr_type, ble_gap_adv_param_t *p_adv_param)
 Set parameters for advertising. More...
 
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. More...
 
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. More...
 
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. More...
 
uint16_t ble_gap_adv_start (uint8_t adv_idx, ble_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 (ble_gap_own_addr_t own_addr_type, ble_gap_scan_param_t *p_scan_param)
 Set parameters for scanning. More...
 
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. 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, ble_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 (ble_gap_own_addr_t own_addr_type, ble_gap_init_param_t *p_init_param)
 Start a legacy connection to a device. More...
 
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. 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 (ble_gap_conn_param_t const *p_conn_params)
 Set GAP Peripheral Preferred Connection Parameters. More...
 
uint16_t ble_gap_ppcp_get (ble_gap_conn_param_t *p_conn_params)
 Get GAP Peripheral Preferred Connection Parameters. More...
 
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. 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 (ble_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 (ble_gap_bdaddr_t peer_addr, ble_gap_privacy_mode_t mode)
 Set privacy mode for peer device. More...
 
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. More...
 
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. 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 (ble_gap_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.

Definition in file ble_gapm.h.