BlueNRG-MS pack for STM32CubeMX: ACI_GAP

STM32CubeMX BlueNRG-MS

BlueNRG-MS pack for STM32CubeMX  V4.4.0
The BlueNRG-MS pack is an additional software for STM32CubeMX.

API for GAP layer. More...

Modules

 Bluetooth Status/Error Codes
 BLE standard and vendor-specific status/error codes.
 
 AD Types
 AD Types.
 
 GAP functions
 API for GAP layer.
 
 GAP events
 

Macros

#define MAX_ADV_DATA_LEN   (31)
 
#define DEVICE_NAME_LEN   (7)
 
#define BD_ADDR_SIZE   (6)
 

Typedefs

typedef uint8_t tBDAddr[6]
 

GAP UUIDs

#define GAP_SERVICE_UUID   (0x1800)
 
#define DEVICE_NAME_UUID   (0x2A00)
 
#define APPEARANCE_UUID   (0x2A01)
 
#define PERIPHERAL_PRIVACY_FLAG_UUID   (0x2A02)
 
#define RECONNECTION_ADDR_UUID   (0x2A03)
 
#define PERIPHERAL_PREFERRED_CONN_PARAMS_UUID   (0x2A04)
 

Characteristic value lengths

#define DEVICE_NAME_CHARACTERISTIC_LEN   (8)
 
#define APPEARANCE_CHARACTERISTIC_LEN   (2)
 
#define PERIPHERAL_PRIVACY_CHARACTERISTIC_LEN   (1)
 
#define RECONNECTION_ADDR_CHARACTERISTIC_LEN   (6)
 
#define PERIPHERAL_PREF_CONN_PARAMS_CHARACTERISTIC_LEN   (8)
 

Privacy flag values

#define PRIVACY_ENABLED   (0x01)
 
#define PRIVACY_DISABLED   (0x00)
 

Intervals

Intervals in terms of 625 micro sec

#define DIR_CONN_ADV_INT_MIN   (0x190)/*250ms*/
 
#define DIR_CONN_ADV_INT_MAX   (0x320)/*500ms*/
 
#define UNDIR_CONN_ADV_INT_MIN   (0x800)/*1.28s*/
 
#define UNDIR_CONN_ADV_INT_MAX   (0x1000)/*2.56s*/
 
#define LIM_DISC_ADV_INT_MIN   (0x190)/*250ms*/
 
#define LIM_DISC_ADV_INT_MAX   (0x320)/*500ms*/
 
#define GEN_DISC_ADV_INT_MIN   (0x800)/*1.28s*/
 
#define GEN_DISC_ADV_INT_MAX   (0x1000)/*2.56s*/
 

Timeout values

#define LIM_DISC_MODE_TIMEOUT   (180000)/* 180 seconds. according to the errata published */
 
#define PRIVATE_ADDR_INT_TIMEOUT   (900000)/* 15 minutes */
 

GAP Roles

#define GAP_PERIPHERAL_ROLE_IDB05A1   (0x01)
 
#define GAP_BROADCASTER_ROLE_IDB05A1   (0x02)
 
#define GAP_CENTRAL_ROLE_IDB05A1   (0x04)
 
#define GAP_OBSERVER_ROLE_IDB05A1   (0x08)
 
#define GAP_PERIPHERAL_ROLE_IDB04A1   (0x01)
 
#define GAP_BROADCASTER_ROLE_IDB04A1   (0x02)
 
#define GAP_CENTRAL_ROLE_IDB04A1   (0x03)
 
#define GAP_OBSERVER_ROLE_IDB04A1   (0x04)
 

GAP procedure codes

Procedure codes for EVT_BLUE_GAP_PROCEDURE_COMPLETE event and aci_gap_terminate_gap_procedure() command.

#define GAP_LIMITED_DISCOVERY_PROC   (0x01)
 
#define GAP_GENERAL_DISCOVERY_PROC   (0x02)
 
#define GAP_NAME_DISCOVERY_PROC   (0x04)
 
#define GAP_AUTO_CONNECTION_ESTABLISHMENT_PROC   (0x08)
 
#define GAP_GENERAL_CONNECTION_ESTABLISHMENT_PROC   (0x10)
 
#define GAP_SELECTIVE_CONNECTION_ESTABLISHMENT_PROC   (0x20)
 
#define GAP_DIRECT_CONNECTION_ESTABLISHMENT_PROC   (0x40)
 
#define GAP_OBSERVATION_PROC_IDB05A1   (0x80)
 

Advertising filter

Advertising policy for filtering (white list related)

#define NO_WHITE_LIST_USE   (0x00)
 
#define WHITE_LIST_FOR_ONLY_SCAN   (0x01)
 
#define WHITE_LIST_FOR_ONLY_CONN   (0x02)
 
#define WHITE_LIST_FOR_ALL   (0x03)
 

Bluetooth address types

Bluetooth address types

#define PUBLIC_ADDR   (0)
 
#define RANDOM_ADDR   (1)
 
#define STATIC_RANDOM_ADDR   (1)
 
#define RESOLVABLE_PRIVATE_ADDR   (2)
 
#define NON_RESOLVABLE_PRIVATE_ADDR   (3)
 

Directed advertising types

Type of advertising during directed advertising

#define HIGH_DUTY_CYCLE_DIRECTED_ADV   (1)
 
#define LOW_DUTY_CYCLE_DIRECTED_ADV   (4)
 

Advertising type

#define ADV_IND   (0x00)
 
#define ADV_DIRECT_IND   (0x01)
 
#define ADV_SCAN_IND   (0x02)
 
#define ADV_NONCONN_IND   (0x03)
 
#define SCAN_RSP   (0x04)
 

Advertising ranges

#define ADV_INTERVAL_LOWEST_CONN   (0X0020)
 
#define ADV_INTERVAL_HIGHEST   (0X4000)
 
#define ADV_INTERVAL_LOWEST_NONCONN   (0X00a0)
 

Advertising channels

#define ADV_CH_37   0x01
 
#define ADV_CH_38   0x02
 
#define ADV_CH_39   0x04
 

Scan_types Scan types

#define PASSIVE_SCAN   0
 
#define ACTIVE_SCAN   1
 

IO capabilities

#define IO_CAP_DISPLAY_ONLY   (0x00)
 
#define IO_CAP_DISPLAY_YES_NO   (0x01)
 
#define IO_CAP_KEYBOARD_ONLY   (0x02)
 
#define IO_CAP_NO_INPUT_NO_OUTPUT   (0x03)
 
#define IO_CAP_KEYBOARD_DISPLAY   (0x04)
 

Authentication requirements

#define BONDING   (0x01)
 
#define NO_BONDING   (0x00)
 

MITM protection requirements

#define MITM_PROTECTION_NOT_REQUIRED   (0x00)
 
#define MITM_PROTECTION_REQUIRED   (0x01)
 

Out-Of-Band data

#define OOB_AUTH_DATA_ABSENT   (0x00)
 
#define OOB_AUTH_DATA_PRESENT   (0x01)
 

Authorization requirements

#define AUTHORIZATION_NOT_REQUIRED   (0x00)
 
#define AUTHORIZATION_REQUIRED   (0x01)
 

Connection authorization

#define CONNECTION_AUTHORIZED   (0x01)
 
#define CONNECTION_REJECTED   (0x02)
 

Use fixed pin

#define USE_FIXED_PIN_FOR_PAIRING   (0x00)
 
#define DONOT_USE_FIXED_PIN_FOR_PAIRING   (0x01)
 

Link security status

#define SM_LINK_AUTHENTICATED   (0x01)
 
#define SM_LINK_AUTHORIZED   (0x02)
 
#define SM_LINK_ENCRYPTED   (0x04)
 

SMP pairing failed reason codes

#define PASSKEY_ENTRY_FAILED   (0x01)
 
#define OOB_NOT_AVAILABLE   (0x02)
 
#define AUTH_REQ_CANNOT_BE_MET   (0x03)
 
#define CONFIRM_VALUE_FAILED   (0x04)
 
#define PAIRING_NOT_SUPPORTED   (0x05)
 
#define INSUFF_ENCRYPTION_KEY_SIZE   (0x06)
 
#define CMD_NOT_SUPPORTED   (0x07)
 
#define UNSPECIFIED_REASON   (0x08)
 
#define VERY_EARLY_NEXT_ATTEMPT   (0x09)
 
#define SM_INVALID_PARAMS   (0x0A)
 

Pairing failed error codes

Error codes in EVT_BLUE_GAP_PAIRING_CMPLT event

#define SM_PAIRING_SUCCESS   (0x00)
 
#define SM_PAIRING_TIMEOUT   (0x01)
 
#define SM_PAIRING_FAILED   (0x02)
 

Detailed Description

API for GAP layer.

Macro Definition Documentation

◆ ACTIVE_SCAN

#define ACTIVE_SCAN   1

◆ ADV_CH_37

#define ADV_CH_37   0x01

◆ ADV_CH_38

#define ADV_CH_38   0x02

◆ ADV_CH_39

#define ADV_CH_39   0x04

◆ ADV_DIRECT_IND

#define ADV_DIRECT_IND   (0x01)

directed non scannable

◆ ADV_IND

#define ADV_IND   (0x00)

undirected scannable and connectable

◆ ADV_INTERVAL_HIGHEST

#define ADV_INTERVAL_HIGHEST   (0X4000)

highest allowed interval value (10.24s)..multiple of 625us.

◆ ADV_INTERVAL_LOWEST_CONN

#define ADV_INTERVAL_LOWEST_CONN   (0X0020)

lowest allowed interval value for connectable types(20ms)..multiple of 625us

◆ ADV_INTERVAL_LOWEST_NONCONN

#define ADV_INTERVAL_LOWEST_NONCONN   (0X00a0)

lowest allowed interval value for non connectable types (100ms)..multiple of 625us.

◆ ADV_NONCONN_IND

#define ADV_NONCONN_IND   (0x03)

non-connectable and no scan response

◆ ADV_SCAN_IND

#define ADV_SCAN_IND   (0x02)

scannable non connectable

◆ APPEARANCE_CHARACTERISTIC_LEN

#define APPEARANCE_CHARACTERISTIC_LEN   (2)

◆ APPEARANCE_UUID

#define APPEARANCE_UUID   (0x2A01)

◆ AUTH_REQ_CANNOT_BE_MET

#define AUTH_REQ_CANNOT_BE_MET   (0x03)

◆ AUTHORIZATION_NOT_REQUIRED

#define AUTHORIZATION_NOT_REQUIRED   (0x00)

◆ AUTHORIZATION_REQUIRED

#define AUTHORIZATION_REQUIRED   (0x01)

◆ BD_ADDR_SIZE

#define BD_ADDR_SIZE   (6)

◆ BONDING

#define BONDING   (0x01)

◆ CMD_NOT_SUPPORTED

#define CMD_NOT_SUPPORTED   (0x07)

◆ CONFIRM_VALUE_FAILED

#define CONFIRM_VALUE_FAILED   (0x04)

◆ CONNECTION_AUTHORIZED

#define CONNECTION_AUTHORIZED   (0x01)

◆ CONNECTION_REJECTED

#define CONNECTION_REJECTED   (0x02)

◆ DEVICE_NAME_CHARACTERISTIC_LEN

#define DEVICE_NAME_CHARACTERISTIC_LEN   (8)

◆ DEVICE_NAME_LEN

#define DEVICE_NAME_LEN   (7)

◆ DEVICE_NAME_UUID

#define DEVICE_NAME_UUID   (0x2A00)

◆ DIR_CONN_ADV_INT_MAX

#define DIR_CONN_ADV_INT_MAX   (0x320)/*500ms*/

◆ DIR_CONN_ADV_INT_MIN

#define DIR_CONN_ADV_INT_MIN   (0x190)/*250ms*/

◆ DONOT_USE_FIXED_PIN_FOR_PAIRING

#define DONOT_USE_FIXED_PIN_FOR_PAIRING   (0x01)

◆ GAP_AUTO_CONNECTION_ESTABLISHMENT_PROC

#define GAP_AUTO_CONNECTION_ESTABLISHMENT_PROC   (0x08)

◆ GAP_BROADCASTER_ROLE_IDB04A1

#define GAP_BROADCASTER_ROLE_IDB04A1   (0x02)

◆ GAP_BROADCASTER_ROLE_IDB05A1

#define GAP_BROADCASTER_ROLE_IDB05A1   (0x02)

◆ GAP_CENTRAL_ROLE_IDB04A1

#define GAP_CENTRAL_ROLE_IDB04A1   (0x03)

◆ GAP_CENTRAL_ROLE_IDB05A1

#define GAP_CENTRAL_ROLE_IDB05A1   (0x04)

◆ GAP_DIRECT_CONNECTION_ESTABLISHMENT_PROC

#define GAP_DIRECT_CONNECTION_ESTABLISHMENT_PROC   (0x40)

◆ GAP_GENERAL_CONNECTION_ESTABLISHMENT_PROC

#define GAP_GENERAL_CONNECTION_ESTABLISHMENT_PROC   (0x10)

◆ GAP_GENERAL_DISCOVERY_PROC

#define GAP_GENERAL_DISCOVERY_PROC   (0x02)

◆ GAP_LIMITED_DISCOVERY_PROC

#define GAP_LIMITED_DISCOVERY_PROC   (0x01)

◆ GAP_NAME_DISCOVERY_PROC

#define GAP_NAME_DISCOVERY_PROC   (0x04)

◆ GAP_OBSERVATION_PROC_IDB05A1

#define GAP_OBSERVATION_PROC_IDB05A1   (0x80)

◆ GAP_OBSERVER_ROLE_IDB04A1

#define GAP_OBSERVER_ROLE_IDB04A1   (0x04)

◆ GAP_OBSERVER_ROLE_IDB05A1

#define GAP_OBSERVER_ROLE_IDB05A1   (0x08)

◆ GAP_PERIPHERAL_ROLE_IDB04A1

#define GAP_PERIPHERAL_ROLE_IDB04A1   (0x01)

◆ GAP_PERIPHERAL_ROLE_IDB05A1

#define GAP_PERIPHERAL_ROLE_IDB05A1   (0x01)

◆ GAP_SELECTIVE_CONNECTION_ESTABLISHMENT_PROC

#define GAP_SELECTIVE_CONNECTION_ESTABLISHMENT_PROC   (0x20)

◆ GAP_SERVICE_UUID

#define GAP_SERVICE_UUID   (0x1800)

◆ GEN_DISC_ADV_INT_MAX

#define GEN_DISC_ADV_INT_MAX   (0x1000)/*2.56s*/

◆ GEN_DISC_ADV_INT_MIN

#define GEN_DISC_ADV_INT_MIN   (0x800)/*1.28s*/

◆ HIGH_DUTY_CYCLE_DIRECTED_ADV

#define HIGH_DUTY_CYCLE_DIRECTED_ADV   (1)

◆ INSUFF_ENCRYPTION_KEY_SIZE

#define INSUFF_ENCRYPTION_KEY_SIZE   (0x06)

◆ IO_CAP_DISPLAY_ONLY

#define IO_CAP_DISPLAY_ONLY   (0x00)

◆ IO_CAP_DISPLAY_YES_NO

#define IO_CAP_DISPLAY_YES_NO   (0x01)

◆ IO_CAP_KEYBOARD_DISPLAY

#define IO_CAP_KEYBOARD_DISPLAY   (0x04)

◆ IO_CAP_KEYBOARD_ONLY

#define IO_CAP_KEYBOARD_ONLY   (0x02)

◆ IO_CAP_NO_INPUT_NO_OUTPUT

#define IO_CAP_NO_INPUT_NO_OUTPUT   (0x03)

◆ LIM_DISC_ADV_INT_MAX

#define LIM_DISC_ADV_INT_MAX   (0x320)/*500ms*/

◆ LIM_DISC_ADV_INT_MIN

#define LIM_DISC_ADV_INT_MIN   (0x190)/*250ms*/

◆ LIM_DISC_MODE_TIMEOUT

#define LIM_DISC_MODE_TIMEOUT   (180000)/* 180 seconds. according to the errata published */

◆ LOW_DUTY_CYCLE_DIRECTED_ADV

#define LOW_DUTY_CYCLE_DIRECTED_ADV   (4)

◆ MAX_ADV_DATA_LEN

#define MAX_ADV_DATA_LEN   (31)

◆ MITM_PROTECTION_NOT_REQUIRED

#define MITM_PROTECTION_NOT_REQUIRED   (0x00)

◆ MITM_PROTECTION_REQUIRED

#define MITM_PROTECTION_REQUIRED   (0x01)

◆ NO_BONDING

#define NO_BONDING   (0x00)

◆ NO_WHITE_LIST_USE

#define NO_WHITE_LIST_USE   (0x00)

Process scan and connection requests from all devices (i.e., the White List is not in use)

◆ NON_RESOLVABLE_PRIVATE_ADDR

#define NON_RESOLVABLE_PRIVATE_ADDR   (3)

◆ OOB_AUTH_DATA_ABSENT

#define OOB_AUTH_DATA_ABSENT   (0x00)

◆ OOB_AUTH_DATA_PRESENT

#define OOB_AUTH_DATA_PRESENT   (0x01)

◆ OOB_NOT_AVAILABLE

#define OOB_NOT_AVAILABLE   (0x02)

◆ PAIRING_NOT_SUPPORTED

#define PAIRING_NOT_SUPPORTED   (0x05)

◆ PASSIVE_SCAN

#define PASSIVE_SCAN   0

◆ PASSKEY_ENTRY_FAILED

#define PASSKEY_ENTRY_FAILED   (0x01)

◆ PERIPHERAL_PREF_CONN_PARAMS_CHARACTERISTIC_LEN

#define PERIPHERAL_PREF_CONN_PARAMS_CHARACTERISTIC_LEN   (8)

◆ PERIPHERAL_PREFERRED_CONN_PARAMS_UUID

#define PERIPHERAL_PREFERRED_CONN_PARAMS_UUID   (0x2A04)

◆ PERIPHERAL_PRIVACY_CHARACTERISTIC_LEN

#define PERIPHERAL_PRIVACY_CHARACTERISTIC_LEN   (1)

◆ PERIPHERAL_PRIVACY_FLAG_UUID

#define PERIPHERAL_PRIVACY_FLAG_UUID   (0x2A02)

◆ PRIVACY_DISABLED

#define PRIVACY_DISABLED   (0x00)

◆ PRIVACY_ENABLED

#define PRIVACY_ENABLED   (0x01)

◆ PRIVATE_ADDR_INT_TIMEOUT

#define PRIVATE_ADDR_INT_TIMEOUT   (900000)/* 15 minutes */

◆ PUBLIC_ADDR

#define PUBLIC_ADDR   (0)

◆ RANDOM_ADDR

#define RANDOM_ADDR   (1)

◆ RECONNECTION_ADDR_CHARACTERISTIC_LEN

#define RECONNECTION_ADDR_CHARACTERISTIC_LEN   (6)

◆ RECONNECTION_ADDR_UUID

#define RECONNECTION_ADDR_UUID   (0x2A03)

◆ RESOLVABLE_PRIVATE_ADDR

#define RESOLVABLE_PRIVATE_ADDR   (2)

◆ SCAN_RSP

#define SCAN_RSP   (0x04)

scan response

◆ SM_INVALID_PARAMS

#define SM_INVALID_PARAMS   (0x0A)

◆ SM_LINK_AUTHENTICATED

#define SM_LINK_AUTHENTICATED   (0x01)

◆ SM_LINK_AUTHORIZED

#define SM_LINK_AUTHORIZED   (0x02)

◆ SM_LINK_ENCRYPTED

#define SM_LINK_ENCRYPTED   (0x04)

◆ SM_PAIRING_FAILED

#define SM_PAIRING_FAILED   (0x02)

◆ SM_PAIRING_SUCCESS

#define SM_PAIRING_SUCCESS   (0x00)

◆ SM_PAIRING_TIMEOUT

#define SM_PAIRING_TIMEOUT   (0x01)

◆ STATIC_RANDOM_ADDR

#define STATIC_RANDOM_ADDR   (1)

◆ UNDIR_CONN_ADV_INT_MAX

#define UNDIR_CONN_ADV_INT_MAX   (0x1000)/*2.56s*/

◆ UNDIR_CONN_ADV_INT_MIN

#define UNDIR_CONN_ADV_INT_MIN   (0x800)/*1.28s*/

◆ UNSPECIFIED_REASON

#define UNSPECIFIED_REASON   (0x08)

◆ USE_FIXED_PIN_FOR_PAIRING

#define USE_FIXED_PIN_FOR_PAIRING   (0x00)

◆ VERY_EARLY_NEXT_ATTEMPT

#define VERY_EARLY_NEXT_ATTEMPT   (0x09)

◆ WHITE_LIST_FOR_ALL

#define WHITE_LIST_FOR_ALL   (0x03)

Process scan and connection requests only from devices in the White List.

◆ WHITE_LIST_FOR_ONLY_CONN

#define WHITE_LIST_FOR_ONLY_CONN   (0x02)

Process scan requests from all devices and only connection requests from devices that are in the White List

◆ WHITE_LIST_FOR_ONLY_SCAN

#define WHITE_LIST_FOR_ONLY_SCAN   (0x01)

Process connection requests from all devices and only scan requests from devices that are in the White List

Typedef Documentation

◆ tBDAddr

typedef uint8_t tBDAddr[6]

Bluetooth 48 bit address (in little-endian order).

Generated on Mon Apr 15 2019 18:10:40 for BlueNRG-MS pack for STM32CubeMX by   doxygen 1.8.13