Mistake on this page? Email us
Data Structures | Macros | Typedefs

Data Structures

struct  dmCfg_t
 Configuration structure. More...
 
struct  dmSecLtk_t
 LTK data type. More...
 
struct  dmSecIrk_t
 IRK data type. More...
 
struct  dmSecCsrk_t
 CSRK data type. More...
 
union  dmSecKey_t
 Union of key types. More...
 
struct  dmSecPairCmplIndEvt_t
 Data type for DM_SEC_PAIR_CMPL_IND. More...
 
struct  dmSecEncryptIndEvt_t
 Data type for DM_SEC_ENCRYPT_IND. More...
 
struct  dmSecAuthReqIndEvt_t
 Data type for DM_SEC_AUTH_REQ_IND. More...
 
struct  dmSecPairIndEvt_t
 Data type for DM_SEC_PAIR_IND. More...
 
struct  dmSecSlaveIndEvt_t
 Data type for DM_SEC_SLAVE_REQ_IND. More...
 
struct  dmSecKeyIndEvt_t
 Data type for DM_SEC_KEY_IND. More...
 
struct  dmSecCnfIndEvt_t
 Data type for DM_SEC_COMPARE_IND. More...
 
struct  dmSecKeypressIndEvt_t
 Data type for DM_SEC_KEYPRESS_IND. More...
 
struct  dmPrivGenAddrIndEvt_t
 Data type for DM_PRIV_GENERATE_ADDR_IND. More...
 
struct  dmSecOobCalcIndEvt_t
 Data type for DM_SEC_CALC_OOB_IND. More...
 
struct  dmAdvNewAddrIndEvt_t
 Data type for DM_ADV_NEW_ADDR_IND. More...
 
struct  dmAdvSetStartEvt_t
 Data structure for DM_ADV_SET_START_IND. More...
 
struct  dmPerAdvSetStartEvt_t
 Data structure for DM_PER_ADV_SET_START_IND. More...
 
struct  dmPerAdvSetStopEvt_t
 Data structure for DM_PER_ADV_SET_STOP_IND. More...
 
struct  dmL2cCmdRejEvt_t
 Data structure for DM_L2C_CMD_REJ_IND. More...
 
union  dmEvt_t
 Union of DM callback event data types. More...
 
struct  dmSecLescOobCfg_t
 Data type for DmSecSetOob(). More...
 

Macros

#define DM_SEC_HCI_ERR_BASE   0x20
 Base value for HCI error status values for DM_SEC_PAIR_CMPL_IND.
 

Typedefs

typedef uint8_t dmConnId_t
 Connection identifier.
 
typedef uint8_t dmSyncId_t
 Synchronization identifier.
 
typedef void(* dmCback_t) (dmEvt_t *pDmEvt)
 Callback type.
 

GAP Device Role

Connectable GAP Roles.

#define DM_ROLE_MASTER   HCI_ROLE_MASTER
 Role is master.
 
#define DM_ROLE_SLAVE   HCI_ROLE_SLAVE
 Role is slave.
 

GAP Discovery Mode

When setup as a discoverable device, these are the possible modes of discovery.

#define DM_DISC_MODE_NONE   0
 GAP non-discoverable.
 
#define DM_DISC_MODE_LIMITED   1
 GAP limited discoverable mode.
 
#define DM_DISC_MODE_GENERAL   2
 GAP general discoverable mode.
 

GAP Advertising Type

Type of connectable or disconverable advertising to perform.

#define DM_ADV_CONN_UNDIRECT   0
 Connectable and scannable undirected advertising.
 
#define DM_ADV_CONN_DIRECT   1
 Connectable directed advertising.
 
#define DM_ADV_SCAN_UNDIRECT   2
 Scannable undirected advertising.
 
#define DM_ADV_NONCONN_UNDIRECT   3
 Non-connectable and non-scannable undirected advertising.
 
#define DM_ADV_CONN_DIRECT_LO_DUTY   4
 Connectable directed low duty cycle advertising.
 

GAP AE Advertising Types

Advertising extension types - AE only.

#define DM_EXT_ADV_CONN_UNDIRECT   5
 Connectable undirected advertising.
 
#define DM_EXT_ADV_NONCONN_DIRECT   6
 Non-connectable and non-scannable directed advertising.
 
#define DM_EXT_ADV_SCAN_DIRECT   7
 Scannable directed advertising.
 
#define DM_ADV_NONE   255
 For internal use only.
 

GAP Advertising Report Type

Type of an advertising report observed while scanning.

#define DM_RPT_CONN_UNDIRECT   0
 Connectable and scannable undirected advertising.
 
#define DM_RPT_CONN_DIRECT   1
 Connectable directed advertising.
 
#define DM_RPT_SCAN_UNDIRECT   2
 Scannable undirected advertising.
 
#define DM_RPT_NONCONN_UNDIRECT   3
 Non-connectable undirected advertising.
 
#define DM_RPT_SCAN_RESPONSE   4
 Scan response.
 

GAP Advertising Data Location

Whether data is located in the advertising data or in the scan response data

#define DM_DATA_LOC_ADV   0
 Locate data in the advertising data.
 
#define DM_DATA_LOC_SCAN   1
 Locate data in the scan response data.
 

GAP Scan Type

When setup as a connectable or observer device, this is the type of scanning to perform.

#define DM_SCAN_TYPE_PASSIVE   0
 Passive scan.
 
#define DM_SCAN_TYPE_ACTIVE   1
 Active scan.
 

GAP Advertising Channel Map

Advertising channel map codes

#define DM_ADV_CHAN_37   HCI_ADV_CHAN_37
 Advertising channel 37.
 
#define DM_ADV_CHAN_38   HCI_ADV_CHAN_38
 Advertising channel 38.
 
#define DM_ADV_CHAN_39   HCI_ADV_CHAN_39
 Advertising channel 39.
 
#define DM_ADV_CHAN_ALL   (HCI_ADV_CHAN_37 | HCI_ADV_CHAN_38 | HCI_ADV_CHAN_39)
 All advertising channels.
 

DM Client IDs

The client ID parameter to function DmConnRegister()

#define DM_CLIENT_ID_ATT   0
 Identifier for attribute protocol, for internal use only.
 
#define DM_CLIENT_ID_SMP   1
 Identifier for security manager protocol, for internal use only.
 
#define DM_CLIENT_ID_DM   2
 Identifier for device manager, for internal use only.
 
#define DM_CLIENT_ID_APP   3
 Identifier for the application.
 
#define DM_CLIENT_ID_L2C   4
 Identifier for L2CAP.
 
#define DM_CLIENT_ID_MAX   5
 For internal use only.
 

DM Unknown IDs

Values for unknown or unspecificed device identifiers.

#define DM_CONN_ID_NONE   0
 Unknown connection ID or other error.
 
#define DM_SYNC_ID_NONE   0
 Unknown sync ID or other error.
 

GAP Address Type

The address type to use over the air or that is associated with a received address.

#define DM_ADDR_PUBLIC   0x00
 Public device address.
 
#define DM_ADDR_RANDOM   0x01
 Random device address.
 
#define DM_ADDR_PUBLIC_IDENTITY   0x02
 Public identity address (corresponds to resolved private address)
 
#define DM_ADDR_RANDOM_IDENTITY   0x03
 Random (static) identity address (corresponds to resolved private address)
 
#define DM_ADDR_RANDOM_UNRESOLVED   0xFE
 Random device address (Controller unable to resolve)
 
#define DM_ADDR_NONE   0xFF
 No address provided (anonymous)
 

GAP Advertising Data Types

Advertising data types flags.

#define DM_ADV_TYPE_FLAGS   0x01
 Flag bits.
 
#define DM_ADV_TYPE_16_UUID_PART   0x02
 Partial list of 16 bit UUIDs.
 
#define DM_ADV_TYPE_16_UUID   0x03
 Complete list of 16 bit UUIDs.
 
#define DM_ADV_TYPE_32_UUID_PART   0x04
 Partial list of 32 bit UUIDs.
 
#define DM_ADV_TYPE_32_UUID   0x05
 Complete list of 32 bit UUIDs.
 
#define DM_ADV_TYPE_128_UUID_PART   0x06
 Partial list of 128 bit UUIDs.
 
#define DM_ADV_TYPE_128_UUID   0x07
 Complete list of 128 bit UUIDs.
 
#define DM_ADV_TYPE_SHORT_NAME   0x08
 Shortened local name.
 
#define DM_ADV_TYPE_LOCAL_NAME   0x09
 Complete local name.
 
#define DM_ADV_TYPE_TX_POWER   0x0A
 TX power level.
 
#define DM_ADV_TYPE_SM_TK_VALUE   0x10
 Security manager TK value.
 
#define DM_ADV_TYPE_SM_OOB_FLAGS   0x11
 Security manager OOB flags.
 
#define DM_ADV_TYPE_CONN_INTERVAL   0x12
 Slave preferred connection interval.
 
#define DM_ADV_TYPE_SIGNED_DATA   0x13
 Signed data.
 
#define DM_ADV_TYPE_16_SOLICIT   0x14
 Service soliticiation list of 16 bit UUIDs.
 
#define DM_ADV_TYPE_128_SOLICIT   0x15
 Service soliticiation list of 128 bit UUIDs.
 
#define DM_ADV_TYPE_SERVICE_DATA   0x16
 Service data - 16-bit UUID.
 
#define DM_ADV_TYPE_PUBLIC_TARGET   0x17
 Public target address.
 
#define DM_ADV_TYPE_RANDOM_TARGET   0x18
 Random target address.
 
#define DM_ADV_TYPE_APPEARANCE   0x19
 Device appearance.
 
#define DM_ADV_TYPE_ADV_INTERVAL   0x1A
 Advertising interval.
 
#define DM_ADV_TYPE_BD_ADDR   0x1B
 LE Bluetooth device address.
 
#define DM_ADV_TYPE_ROLE   0x1C
 LE role.
 
#define DM_ADV_TYPE_32_SOLICIT   0x1F
 Service soliticiation list of 32 bit UUIDs.
 
#define DM_ADV_TYPE_SVC_DATA_32   0x20
 Service data - 32-bit UUID.
 
#define DM_ADV_TYPE_SVC_DATA_128   0x21
 Service data - 128-bit UUID.
 
#define DM_ADV_TYPE_LESC_CONFIRM   0x22
 LE Secure Connections confirm value.
 
#define DM_ADV_TYPE_LESC_RANDOM   0x23
 LE Secure Connections random value.
 
#define DM_ADV_TYPE_URI   0x24
 URI.
 
#define DM_ADV_TYPE_MANUFACTURER   0xFF
 Manufacturer specific data.
 

GAP Advertising Data Flag Advertising Type

Bit mask for Advertising Type flag in advertising data.

#define DM_FLAG_LE_LIMITED_DISC   0x01
 Limited discoverable flag.
 
#define DM_FLAG_LE_GENERAL_DISC   0x02
 General discoverable flag.
 
#define DM_FLAG_LE_BREDR_NOT_SUP   0x04
 BR/EDR not supported flag.
 

GAP Advertising Data Element Indexes

Advertising data element indexes.

#define DM_AD_LEN_IDX   0
 Advertising data element len.
 
#define DM_AD_TYPE_IDX   1
 Advertising data element type.
 
#define DM_AD_DATA_IDX   2
 Advertising data element data.
 

GAP Advertising URI

Advertising URI Scheme

#define DM_URI_SCHEME_HTTP   0x16
 URI HTTP Scheme.
 
#define DM_URI_SCHEME_HTTPS   0x17
 URI HTTPS Scheme.
 

GAP Timeouts

Timeouts defined by the GAP specification; in units of milliseconds.

#define DM_GAP_LIM_ADV_TIMEOUT   180000
 Maximum advertising duration in limited discoverable mode.
 
#define DM_GAP_GEN_DISC_SCAN_MIN   10240
 Minimum scan duration for general discovery.
 
#define DM_GAP_LIM_DISC_SCAN_MIN   10240
 Minimum scan duration for limited discovery.
 
#define DM_GAP_CONN_PARAM_TIMEOUT   30000
 Connection parameter update timeout.
 
#define DM_GAP_SCAN_FAST_PERIOD   30720
 Minimum time to perform scanning when user initiated.
 
#define DM_GAP_ADV_FAST_PERIOD   30000
 Minimum time to perform advertising when user initiated.
 

GAP 1M PHY Timing

Advertising, scanning, and connection parameters defined in the GAP specification for the LE 1M PHY. In units of 625 microseconds.

#define DM_GAP_SCAN_FAST_INT_MIN   48
 Minimum scan interval when user initiated.
 
#define DM_GAP_SCAN_FAST_INT_MAX   96
 Maximum scan interval when user initiated.
 
#define DM_GAP_SCAN_FAST_WINDOW   48
 Scan window when user initiated.
 
#define DM_GAP_SCAN_SLOW_INT_1   2048
 Scan interval 1 when background scannning.
 
#define DM_GAP_SCAN_SLOW_WINDOW_1   18
 Scan window 1 when background scanning.
 
#define DM_GAP_SCAN_SLOW_INT_2   4096
 Scan interval 2 when background scannning.
 
#define DM_GAP_SCAN_SLOW_WINDOW_2   36
 Scan window 2 when background scanning.
 
#define DM_GAP_ADV_FAST_INT_MIN_1   48
 Minimum advertising interval 1 when user initiated.
 
#define DM_GAP_ADV_FAST_INT_MAX_1   96
 Maximum advertising interval 1 when user initiated.
 
#define DM_GAP_ADV_FAST_INT_MIN_2   160
 Minimum advertising interval 2 when user initiated.
 
#define DM_GAP_ADV_FAST_INT_MAX_2   240
 Maximum advertising interval 2 when user initiated.
 
#define DM_GAP_ADV_SLOW_INT_MIN   1600
 Minimum advertising interval when background advertising.
 
#define DM_GAP_ADV_SLOW_INT_MAX   1920
 Maximum advertising interval when background advertising.
 

GAP Coded PHY Timing

Advertising, scanning, and connection parameters defined in the GAP specification for the LE Coded PHY. In units of 625 microseconds.

#define DM_GAP_SCAN_CODED_FAST_INT_MIN   144
 Minimum scan interval when user initiated on LE Coded PHY.
 
#define DM_GAP_SCAN_CODED_FAST_INT_MAX   288
 Maximum scan interval when user initiated on LE Coded PHY.
 
#define DM_GAP_SCAN_CODED_FAST_WINDOW   144
 Scan window when user initiated on LE Coded PHY.
 
#define DM_GAP_SCAN_CODED_SLOW_INT_1   6144
 Scan interval 1 when background scannning on LE Coded PHY.
 
#define DM_GAP_SCAN_CODED_SLOW_WINDOW_1   54
 Scan window 1 when background scanning on LE Coded PHY.
 
#define DM_GAP_SCAN_CODED_SLOW_INT_2   12288
 Scan interval 2 when background scannning on LE Coded PHY.
 
#define DM_GAP_SCAN_CODED_SLOW_WINDOW_2   108
 Scan window 2 when background scanning on LE Coded PHY.
 
#define DM_GAP_ADV_CODED_FAST_INT_MIN_1   144
 Minimum advertising interval 1 when user initiated on LE Coded PHY.
 
#define DM_GAP_ADV_CODED_FAST_INT_MAX_1   288
 Maximum advertising interval 1 when user initiated on LE Coded PHY.
 
#define DM_GAP_ADV_CODED_FAST_INT_MIN_2   480
 Minimum advertising interval 2 when user initiated on LE Coded PHY.
 
#define DM_GAP_ADV_CODED_FAST_INT_MAX_2   720
 Maximum advertising interval 2 when user initiated on LE Coded PHY.
 
#define DM_GAP_ADV_CODED_SLOW_INT_MIN   4800
 Minimum advertising interval when background advertising on LE Coded PHY.
 
#define DM_GAP_ADV_CODED_SLOW_INT_MAX   5760
 Maximum advertising interval when background advertising on LE Coded PHY.
 

GAP Connection Slave Latency

#define DM_GAP_CONN_EST_LATENCY   0
 GAP connection establishment slaves latency.
 

GAP Connection Interval

GAP connection interval in 1.25ms units.

#define DM_GAP_INITIAL_CONN_INT_MIN   24
 Minimum initial connection interval.
 
#define DM_GAP_INITIAL_CONN_INT_MAX   40
 Maximum initial connection interval.
 

GAP Connection Event Lengths

GAP connection establishment minimum and maximum connection event lengths.

#define DM_GAP_CONN_EST_MIN_CE_LEN   0
 Connection establishment minimum event length.
 
#define DM_GAP_CONN_EST_MAX_CE_LEN   0
 Connection establishment maximum event length.
 

GAP Peripheral Privacy Characteristic Values

#define DM_GAP_PRIV_DISABLED   0
 Privacy Disabled.
 
#define DM_GAP_PRIV_ENABLED   1
 Privacy Enabled.
 

GAP Connection Supervision Timeout

Connection supervision timeout, in 10ms units

#define DM_DEFAULT_EST_SUP_TIMEOUT   2000
 Connection establishment supervision timeout default, in 10ms units.
 

GAP Security Pairing Authentication Requirements

Pairing authentication/security properties bit mask.

#define DM_AUTH_BOND_FLAG   SMP_AUTH_BOND_FLAG
 Bonding requested.
 
#define DM_AUTH_MITM_FLAG   SMP_AUTH_MITM_FLAG
 MITM (authenticated pairing) requested.
 
#define DM_AUTH_SC_FLAG   SMP_AUTH_SC_FLAG
 LE Secure Connections requested.
 
#define DM_AUTH_KP_FLAG   SMP_AUTH_KP_FLAG
 Keypress notifications requested.
 

GAP Key Distribution Flags

Key distribution bit mask

#define DM_KEY_DIST_LTK   SMP_KEY_DIST_ENC
 Distribute LTK used for encryption.
 
#define DM_KEY_DIST_IRK   SMP_KEY_DIST_ID
 Distribute IRK used for privacy.
 
#define DM_KEY_DIST_CSRK   SMP_KEY_DIST_SIGN
 Distribute CSRK used for signed data.
 

DM Security Key Indication Types

Type of key used in DM_SEC_KEY_IND.

#define DM_KEY_LOCAL_LTK   0x01
 LTK generated locally for this device.
 
#define DM_KEY_PEER_LTK   0x02
 LTK received from peer device.
 
#define DM_KEY_IRK   0x04
 IRK and identity info of peer device.
 
#define DM_KEY_CSRK   0x08
 CSRK of peer device.
 

GAP Security Level

GAP Mode 1 Security Levels

#define DM_SEC_LEVEL_NONE   0
 Connection has no security.
 
#define DM_SEC_LEVEL_ENC   1
 Connection is encrypted with unauthenticated key.
 
#define DM_SEC_LEVEL_ENC_AUTH   2
 Connection is encrypted with authenticated key.
 
#define DM_SEC_LEVEL_ENC_LESC   3
 Connection is encrypted with LE Secure Connections.
 

GAP Random Address Types

Random address type masks.

#define DM_RAND_ADDR_STATIC   0xC0
 Static address.
 
#define DM_RAND_ADDR_RESOLV   0x40
 Resolvable private address.
 
#define DM_RAND_ADDR_NONRESOLV   0x00
 Non-resolvable private address.
 

GAP Random Address Macros

Macros for identifying address type.

#define DM_RAND_ADDR_GET(addr)    ((addr)[5] & 0xC0)
 Get the type of random address.
 
#define DM_RAND_ADDR_SET(addr, type)    {(addr)[5] = ((addr)[5] & 0x3F) | (type);}
 Set the type of random address.
 
#define DM_RAND_ADDR_SA(addr, type)
 Check for Static Address. More...
 
#define DM_RAND_ADDR_RPA(addr, type)
 Check for Resolvable Private Address. More...
 

GAP Privacy Mode

Privacy Mode of this device in regards to a peer device.

#define DM_PRIV_MODE_NETWORK   0x00
 Network privacy mode (default).
 
#define DM_PRIV_MODE_DEVICE   0x01
 Device privacy mode.
 

DM Internal State

Connection busy or idle state

#define DM_CONN_IDLE   0
 Connection is idle.
 
#define DM_CONN_BUSY   1
 Connection is busy.
 

DM Internal State Flags

Connection busy/idle state bitmask.

#define DM_IDLE_SMP_PAIR   0x0001
 SMP pairing in progress.
 
#define DM_IDLE_DM_ENC   0x0002
 DM Encryption setup in progress.
 
#define DM_IDLE_ATTS_DISC   0x0004
 ATTS service discovery in progress.
 
#define DM_IDLE_APP_DISC   0x0008
 App framework service discovery in progress.
 
#define DM_IDLE_USER_1   0x0010
 For use by user application.
 
#define DM_IDLE_USER_2   0x0020
 For use by user application.
 
#define DM_IDLE_USER_3   0x0040
 For use by user application.
 
#define DM_IDLE_USER_4   0x0080
 For use by user application.
 

GAP Filter Policy Modes

Filter policy modes.

#define DM_FILT_POLICY_MODE_ADV   0
 Advertising filter policy mode.
 
#define DM_FILT_POLICY_MODE_SCAN   1
 Scanning filter policy mode.
 
#define DM_FILT_POLICY_MODE_INIT   2
 Initiator filter policy mode.
 
#define DM_FILT_POLICY_MODE_SYNC   3
 Synchronization filter policy mode.
 

DM Proprietary Error Codes

Internal error codes not sent in any PDU.

#define DM_ERR_SMP_RX_PDU_LEN_EXCEEDED   0x01
 LESC key length exceeded maximum RX PDU length.
 
#define DM_ERR_ATT_RX_PDU_LEN_EXCEEDED   0x02
 Configured ATT MTU exceeded maximum RX PDU length.
 
#define DM_ERR_L2C_RX_PDU_LEN_EXCEEDED   0x03
 Registered COC MPS exceeded maximum RX PDU length.
 

DM Legacy Advertising Handle

Default handle for legacy advertising when using legacy HCI interface. In this case only one advertising set is allowed so all activity uses the same handle.

#define DM_ADV_HANDLE_DEFAULT   0
 Default Advertising handle for legacy advertising.
 

DM Callback Events

Events handled by the DM state machine.

enum  {
  DM_RESET_CMPL_IND = DM_CBACK_START, DM_ADV_START_IND, DM_ADV_STOP_IND, DM_ADV_NEW_ADDR_IND,
  DM_SCAN_START_IND, DM_SCAN_STOP_IND, DM_SCAN_REPORT_IND, DM_CONN_OPEN_IND,
  DM_CONN_CLOSE_IND, DM_CONN_UPDATE_IND, DM_SEC_PAIR_CMPL_IND, DM_SEC_PAIR_FAIL_IND,
  DM_SEC_ENCRYPT_IND, DM_SEC_ENCRYPT_FAIL_IND, DM_SEC_AUTH_REQ_IND, DM_SEC_KEY_IND,
  DM_SEC_LTK_REQ_IND, DM_SEC_PAIR_IND, DM_SEC_SLAVE_REQ_IND, DM_SEC_CALC_OOB_IND,
  DM_SEC_ECC_KEY_IND, DM_SEC_COMPARE_IND, DM_SEC_KEYPRESS_IND, DM_PRIV_RESOLVED_ADDR_IND,
  DM_PRIV_GENERATE_ADDR_IND, DM_CONN_READ_RSSI_IND, DM_PRIV_ADD_DEV_TO_RES_LIST_IND, DM_PRIV_REM_DEV_FROM_RES_LIST_IND,
  DM_PRIV_CLEAR_RES_LIST_IND, DM_PRIV_READ_PEER_RES_ADDR_IND, DM_PRIV_READ_LOCAL_RES_ADDR_IND, DM_PRIV_SET_ADDR_RES_ENABLE_IND,
  DM_REM_CONN_PARAM_REQ_IND, DM_CONN_DATA_LEN_CHANGE_IND, DM_CONN_WRITE_AUTH_TO_IND, DM_CONN_AUTH_TO_EXPIRED_IND,
  DM_PHY_READ_IND, DM_PHY_SET_DEF_IND, DM_PHY_UPDATE_IND, DM_ADV_SET_START_IND,
  DM_ADV_SET_STOP_IND, DM_SCAN_REQ_RCVD_IND, DM_EXT_SCAN_START_IND, DM_EXT_SCAN_STOP_IND,
  DM_EXT_SCAN_REPORT_IND, DM_PER_ADV_SET_START_IND, DM_PER_ADV_SET_STOP_IND, DM_PER_ADV_SYNC_EST_IND,
  DM_PER_ADV_SYNC_EST_FAIL_IND, DM_PER_ADV_SYNC_LOST_IND, DM_PER_ADV_SYNC_TRSF_EST_IND, DM_PER_ADV_SYNC_TRSF_EST_FAIL_IND,
  DM_PER_ADV_SYNC_TRSF_IND, DM_PER_ADV_SET_INFO_TRSF_IND, DM_PER_ADV_REPORT_IND, DM_REMOTE_FEATURES_IND,
  DM_READ_REMOTE_VER_INFO_IND, DM_CONN_IQ_REPORT_IND, DM_CTE_REQ_FAIL_IND, DM_CONN_CTE_RX_SAMPLE_START_IND,
  DM_CONN_CTE_RX_SAMPLE_STOP_IND, DM_CONN_CTE_TX_CFG_IND, DM_CONN_CTE_REQ_START_IND, DM_CONN_CTE_REQ_STOP_IND,
  DM_CONN_CTE_RSP_START_IND, DM_CONN_CTE_RSP_STOP_IND, DM_READ_ANTENNA_INFO_IND, DM_L2C_CMD_REJ_IND,
  DM_ERROR_IND, DM_HW_ERROR_IND, DM_VENDOR_SPEC_IND
}
 DM callback events. More...
 
#define DM_CBACK_START   0x20
 DM callback event starting value.
 
#define DM_CBACK_END   DM_VENDOR_SPEC_IND
 DM callback event ending value.
 

DM App Callback Registration

void DmRegister (dmCback_t cback)
 Register a callback with DM for scan and advertising events. More...
 

DM Advertising Functions

Functions used to control Legacy and Extended Advertising.

uint8_t * DmFindAdType (uint8_t adType, uint16_t dataLen, uint8_t *pData)
 Find an advertising data element in the given advertising or scan response data. More...
 
void DmAdvInit (void)
 Initialize DM legacy advertising. More...
 
void DmExtAdvInit (void)
 Initialize DM extended advertising. More...
 
bool_t DmAdvModeLeg (void)
 Whether DM advertising is in legacy mode. More...
 
bool_t DmAdvModeExt (void)
 Whether DM advertising is in extended mode. More...
 
void DmAdvConfig (uint8_t advHandle, uint8_t advType, uint8_t peerAddrType, uint8_t *pPeerAddr)
 Set the advertising parameters using the given advertising type, and peer address. More...
 
void DmAdvSetData (uint8_t advHandle, uint8_t op, uint8_t location, uint8_t len, uint8_t *pData)
 Set the advertising or scan response data to the given data. More...
 
void DmAdvStart (uint8_t numSets, uint8_t *pAdvHandles, uint16_t *pDuration, uint8_t *pMaxEaEvents)
 Start advertising using the given advertising set and duration. More...
 
void DmAdvStop (uint8_t numSets, uint8_t *pAdvHandles)
 Stop advertising for the given advertising set. If the number of sets is set to 0 then all advertising sets are disabled. More...
 
void DmAdvRemoveAdvSet (uint8_t advHandle)
 Remove an advertising set. More...
 
void DmAdvClearAdvSets (void)
 Clear advertising sets. More...
 
void DmAdvSetRandAddr (uint8_t advHandle, const uint8_t *pAddr)
 Set the random device address for a given advertising set. More...
 
void DmAdvSetInterval (uint8_t advHandle, uint16_t intervalMin, uint16_t intervalMax)
 Set the minimum and maximum advertising intervals. More...
 
void DmAdvSetChannelMap (uint8_t advHandle, uint8_t channelMap)
 Include or exclude certain channels from the advertising channel map. More...
 
void DmAdvSetAddrType (uint8_t addrType)
 Set the local address type used while advertising. This function can be used to configure advertising to use a random address. More...
 
bool_t DmAdvSetAdValue (uint8_t adType, uint8_t len, uint8_t *pValue, uint16_t *pAdvDataLen, uint8_t *pAdvData, uint16_t advDataBufLen)
 Set the value of an advertising data element in the given advertising or scan response data. If the element already exists in the data then it is replaced with the new value. If the element does not exist in the data it is appended to it, space permitting. More...
 
bool_t DmAdvSetName (uint8_t len, uint8_t *pValue, uint16_t *pAdvDataLen, uint8_t *pAdvData, uint16_t advDataBufLen)
 Set the device name in the given advertising or scan response data. If the name can only fit in the data if it is shortened, the name is shortened and the AD type is changed to DM_ADV_TYPE_SHORT_NAME. More...
 
void DmDevPrivInit (void)
 Initialize device privacy module. More...
 
void DmDevPrivStart (uint16_t changeInterval)
 Start using a private resolvable address. More...
 
void DmDevPrivStop (void)
 Stop using a private resolvable address. More...
 
void DmAdvUseLegacyPdu (uint8_t advHandle, bool_t useLegacyPdu)
 Set whether or not to use legacy advertising PDUs with extended advertising. More...
 
void DmAdvOmitAdvAddr (uint8_t advHandle, bool_t omitAdvAddr)
 Set whether or not to omit advertiser's address from all PDUs (anonymous advertising). More...
 
void DmAdvIncTxPwr (uint8_t advHandle, bool_t incTxPwr, int8_t advTxPwr)
 Set whether or not to include TxPower in extended header of advertising PDU. More...
 
void DmAdvSetPhyParam (uint8_t advHandle, uint8_t priAdvPhy, uint8_t secAdvMaxSkip, uint8_t secAdvPhy)
 Set extended advertising PHY parameters. More...
 
void DmAdvScanReqNotifEnable (uint8_t advHandle, bool_t scanReqNotifEna)
 Set scan request notification enable. More...
 
void DmAdvSetFragPref (uint8_t advHandle, uint8_t fragPref)
 Set fragment preference for advertising data. More...
 
void DmPerAdvConfig (uint8_t advHandle)
 Set the advertising parameters for periodic advertising. More...
 
void DmPerAdvSetData (uint8_t advHandle, uint8_t op, uint8_t len, uint8_t *pData)
 Set the advertising data to the given data for periodic advertising. More...
 
void DmPerAdvStart (uint8_t advHandle)
 Start periodic advertising for the advertising set specified by the advertising handle. More...
 
void DmPerAdvStop (uint8_t advHandle)
 Stop periodic advertising for the advertising set specified by the advertising handle. More...
 
void DmPerAdvSetInterval (uint8_t advHandle, uint16_t intervalMin, uint16_t intervalMax)
 Set the minimum and maximum advertising intervals for periodic advertising. More...
 
void DmPerAdvIncTxPwr (uint8_t advHandle, bool_t incTxPwr)
 Set whether or not to include TxPower in extended header of advertising PDU for periodic advertising. More...
 
uint16_t DmExtMaxAdvDataLen (uint8_t advType, bool_t useLegacyPdu)
 Get the maximum advertising data length supported by Controller for a given advertising type. More...
 

DM Privacy Functions

Functions for controlling Privacy.

void DmPrivInit (void)
 Initialize DM privacy module. More...
 
void DmPrivResolveAddr (uint8_t *pAddr, uint8_t *pIrk, uint16_t param)
 Resolve a private resolvable address. When complete the client's callback function is called with a DM_PRIV_RESOLVED_ADDR_IND event. The client must wait to receive this event before executing this function again. More...
 
void DmPrivAddDevToResList (uint8_t addrType, const uint8_t *pIdentityAddr, uint8_t *pPeerIrk, uint8_t *pLocalIrk, bool_t enableLlPriv, uint16_t param)
 Add device to resolving list. When complete the client's callback function is called with a DM_PRIV_ADD_DEV_TO_RES_LIST_IND event. The client must wait to receive this event before executing this function again. More...
 
void DmPrivRemDevFromResList (uint8_t addrType, const uint8_t *pIdentityAddr, uint16_t param)
 Remove device from resolving list. When complete the client's callback function is called with a DM_PRIV_REM_DEV_FROM_RES_LIST_IND event. The client must wait to receive this event before executing this function again. More...
 
void DmPrivClearResList (void)
 Clear resolving list. When complete the client's callback function is called with a DM_PRIV_CLEAR_RES_LIST_IND event. The client must wait to receive this event before executing this function again. More...
 
void DmPrivReadPeerResolvableAddr (uint8_t addrType, const uint8_t *pIdentityAddr)
 HCI read peer resolvable address command. When complete the client's callback function is called with a DM_PRIV_READ_PEER_RES_ADDR_IND event. The client must wait to receive this event before executing this function again. More...
 
void DmPrivReadLocalResolvableAddr (uint8_t addrType, const uint8_t *pIdentityAddr)
 Read local resolvable address command. When complete the client's callback function is called with a DM_PRIV_READ_LOCAL_RES_ADDR_IND event. The client must wait to receive this event before executing this function again. More...
 
void DmPrivSetAddrResEnable (bool_t enable)
 Enable or disable address resolution in LL. When complete the client's callback function is called with a DM_PRIV_SET_ADDR_RES_ENABLE_IND event. The client must wait to receive this event before executing this function again. More...
 
void DmPrivSetResolvablePrivateAddrTimeout (uint16_t rpaTimeout)
 Set resolvable private address timeout command. More...
 
void DmPrivSetPrivacyMode (uint8_t addrType, const uint8_t *pIdentityAddr, uint8_t mode)
 Set privacy mode for a given entry in the resolving list. More...
 
void DmPrivGenerateAddr (uint8_t *pIrk, uint16_t param)
 Generate a Resolvable Private Address (RPA). More...
 
bool_t DmLlPrivEnabled (void)
 Whether LL Privacy is enabled. More...
 

DM Scanner Functions

Functions for controlling Legacy and Extended Scanner behavior.

void DmScanInit (void)
 Initialize DM legacy scanning. More...
 
void DmExtScanInit (void)
 Initialize DM extended scanning. More...
 
void DmPastInit (void)
 Initialize DM Periodic Advertising Sync Transfer (PAST) module. More...
 
void DmConnCteInit (void)
 Initialize DM Connection Constant Tone Extension (CTE) module. More...
 
bool_t DmScanModeLeg (void)
 Whether DM scanning is in legacy mode. More...
 
bool_t DmScanModeExt (void)
 Whether DM scanning is in extended mode. More...
 
void DmScanStart (uint8_t scanPhys, uint8_t mode, const uint8_t *pScanType, bool_t filterDup, uint16_t duration, uint16_t period)
 Start scanning on the given PHYs. More...
 
void DmScanStop (void)
 Stop scanning. More...
 
void DmScanSetInterval (uint8_t scanPhys, uint16_t *pScanInterval, uint16_t *pScanWindow)
 Set the scan interval and window for the specified PHYs. More...
 
void DmScanSetAddrType (uint8_t addrType)
 Set the local address type used while scanning. This function can be used to configure scanning to use a random address. More...
 
dmSyncId_t DmSyncStart (uint8_t advSid, uint8_t advAddrType, const uint8_t *pAdvAddr, uint16_t skip, uint16_t syncTimeout)
 Synchronize with periodic advertising from the given advertiser, and start receiving periodic advertising packets. More...
 
void DmSyncStop (dmSyncId_t syncId)
 Stop reception of the periodic advertising identified by the given sync identifier. More...
 
void DmSyncInitialRptEnable (bool_t enable)
 DM enable or disable initial periodic advertisement reporting. More...
 
void DmAddDeviceToPerAdvList (uint8_t advAddrType, uint8_t *pAdvAddr, uint8_t advSid)
 Add device to periodic advertiser list. More...
 
void DmRemoveDeviceFromPerAdvList (uint8_t advAddrType, uint8_t *pAdvAddr, uint8_t advSid)
 DM remove device from periodic advertiser list. More...
 
void DmClearPerAdvList (void)
 DM clear periodic advertiser list. More...
 
void DmPastRptRcvEnable (dmSyncId_t syncId, bool_t enable)
 Enable or disable reports for the periodic advertising identified by the sync id. More...
 
void DmPastSyncTrsf (dmConnId_t connId, uint16_t serviceData, dmSyncId_t syncId)
 Send synchronization information about the periodic advertising identified by the sync id to a connected device. More...
 
void DmPastSetInfoTrsf (dmConnId_t connId, uint16_t serviceData, uint8_t advHandle)
 Send synchronization information about the periodic advertising in an advertising set to a connected device. More...
 
void DmPastConfig (dmConnId_t connId, uint8_t mode, uint16_t skip, uint16_t syncTimeout, uint8_t cteType)
 Specify how the Controller should process periodic advertising synchronization information received from the device identified by the connnection handle. More...
 
void DmPastDefaultConfig (uint8_t mode, uint16_t skip, uint16_t syncTimeout, uint8_t cteType)
 Specify the initial value for the mode, skip, timeout, and Constant Tone Extension type to be used for all subsequent connections over the LE transport. More...
 
void DmConnCteRxSampleStart (dmConnId_t connId, uint8_t slotDurations, uint8_t switchPatternLen, uint8_t *pAntennaIDs)
 Enable sampling received CTE fields on the specified connection, and configure the antenna switching pattern, and switching and sampling slot durations to be used. More...
 
void DmConnCteRxSampleStop (dmConnId_t connId)
 Disable sampling received CTE fields on the specified connection. More...
 
void DmConnCteTxConfig (dmConnId_t connId, uint8_t cteTypeBits, uint8_t switchPatternLen, uint8_t *pAntennaIDs)
 Configure the antenna switching pattern, and permitted CTE types used for transmitting CTEs requested by the peer device on the specified connection. More...
 
void DmConnCteReqStart (dmConnId_t connId, uint16_t cteReqInt, uint8_t reqCteLen, uint8_t reqCteType)
 Initiate the CTE Request procedure on the specified connection. More...
 
void DmConnCteReqStop (dmConnId_t connId)
 Stop initiating the CTE Request procedure on the specified connection. More...
 
void DmConnCteRspStart (dmConnId_t connId)
 Start responding to LL_CTE_REQ PDUs with LL_CTE_RSP PDUs on the specified connection. More...
 
void DmConnCteRspStop (dmConnId_t connId)
 Stop responding to LL_CTE_REQ PDUs with LL_CTE_RSP PDUs on the specified connection. More...
 
void DmReadAntennaInfo (void)
 Read the switching rates, the sampling rates, the number of antennae, and the maximum length of a transmitted Constant Tone Extension supported by the Controller. More...
 

DM Connection Functions

Functions for forming connections and managing connection behavior and parameter updates.

void DmConnInit (void)
 Initialize DM connection manager. More...
 
void DmConnMasterInit (void)
 Initialize DM connection manager for operation as legacy master. More...
 
void DmExtConnMasterInit (void)
 Initialize DM connection manager for operation as extended master. More...
 
void DmConnSlaveInit (void)
 Initialize DM connection manager for operation as legacy slave. More...
 
void DmExtConnSlaveInit (void)
 Initialize DM connection manager for operation as extended slave. More...
 
void DmConnRegister (uint8_t clientId, dmCback_t cback)
 Register with the DM connection manager. More...
 
dmConnId_t DmConnOpen (uint8_t clientId, uint8_t initPhys, uint8_t addrType, uint8_t *pAddr)
 Open a connection to a peer device with the given address. More...
 
void DmConnClose (uint8_t clientId, dmConnId_t connId, uint8_t reason)
 Close the connection with the give connection identifier. More...
 
dmConnId_t DmConnAccept (uint8_t clientId, uint8_t advHandle, uint8_t advType, uint16_t duration, uint8_t maxEaEvents, uint8_t addrType, uint8_t *pAddr)
 Accept a connection from the given peer device by initiating directed advertising. More...
 
void DmConnUpdate (dmConnId_t connId, hciConnSpec_t *pConnSpec)
 Update the connection parameters of an open connection. More...
 
void DmConnSetScanInterval (uint16_t scanInterval, uint16_t scanWindow)
 Set the scan interval and window for connections to be created with DmConnOpen(). More...
 
void DmExtConnSetScanInterval (uint8_t initPhys, uint16_t *pScanInterval, uint16_t *pScanWindow)
 Set the scan interval and window for extended connections to be created with DmConnOpen(). More...
 
void DmConnSetConnSpec (hciConnSpec_t *pConnSpec)
 Set the connection spec parameters for connections to be created with DmConnOpen(). More...
 
void DmExtConnSetConnSpec (uint8_t initPhys, hciConnSpec_t *pConnSpec)
 Set the extended connection spec parameters for extended connections to be created with DmConnOpen(). More...
 
void DmConnSetAddrType (uint8_t addrType)
 Set the local address type used for connections created with DmConnOpen(). More...
 
void DmConnSetIdle (dmConnId_t connId, uint16_t idleMask, uint8_t idle)
 Configure a bit in the connection idle state mask as busy or idle. More...
 
uint16_t DmConnCheckIdle (dmConnId_t connId)
 Check if a connection is idle. More...
 
void DmConnReadRssi (dmConnId_t connId)
 Read RSSI of a given connection. More...
 
void DmRemoteConnParamReqReply (dmConnId_t connId, hciConnSpec_t *pConnSpec)
 Reply to the HCI remote connection parameter request event. This command is used to indicate that the Host has accepted the remote device's request to change connection parameters. More...
 
void DmRemoteConnParamReqNegReply (dmConnId_t connId, uint8_t reason)
 Negative reply to the HCI remote connection parameter request event. This command is used to indicate that the Host has rejected the remote device's request to change connection parameters. More...
 
void DmConnSetDataLen (dmConnId_t connId, uint16_t txOctets, uint16_t txTime)
 Set data length for a given connection. More...
 
uint8_t DmConnRole (dmConnId_t connId)
 Return the connection role indicating master or slave. More...
 
void DmWriteAuthPayloadTimeout (dmConnId_t connId, uint16_t timeout)
 Set authenticated payload timeout for a given connection. More...
 

DM PHY Control Functions

Functions for setting PHY preferences.

void DmSetDefaultPhy (uint8_t allPhys, uint8_t txPhys, uint8_t rxPhys)
 Set the preferred values for the transmitter PHY and receiver PHY for all subsequent connections. More...
 
void DmReadPhy (dmConnId_t connId)
 Read the current transmitter PHY and receiver PHY for a given connection. More...
 
void DmSetPhy (dmConnId_t connId, uint8_t allPhys, uint8_t txPhys, uint8_t rxPhys, uint16_t phyOptions)
 Set the PHY preferences for a given connection. More...
 
void DmPhyInit (void)
 Initialize DM PHY. More...
 

DM Device Functions

Device control functions

void DmDevReset (void)
 Reset the device. More...
 
void DmDevSetRandAddr (uint8_t *pAddr)
 Set the random address to be used by the local device. More...
 
void DmDevWhiteListAdd (uint8_t addrType, uint8_t *pAddr)
 Add a peer device to the white list. Note that this function cannot be called while advertising, scanning, or connecting with white list filtering active. More...
 
void DmDevWhiteListRemove (uint8_t addrType, uint8_t *pAddr)
 Remove a peer device from the white list. Note that this function cannot be called while advertising, scanning, or connecting with white list filtering active. More...
 
void DmDevWhiteListClear (void)
 Clear the white list. Note that this function cannot be called while advertising, scanning, or connecting with white list filtering active. More...
 
bool_t DmDevSetFilterPolicy (uint8_t mode, uint8_t policy)
 Set the Advertising, Scanning or Initiator filter policy. More...
 
bool_t DmDevSetExtFilterPolicy (uint8_t advHandle, uint8_t mode, uint8_t policy)
 Set the Advertising filter policy for the given advertising, Scanning or Initiator filter policy. More...
 
void DmDevVsInit (uint8_t param)
 Vendor-specific controller initialization function. More...
 

DM Security Functions

Functions for accessing and controlling security configuration of device.

void DmSecInit (void)
 Initialize DM security. More...
 
void DmSecLescInit (void)
 Initialize DM LE Secure Connections security. More...
 
void DmSecPairReq (dmConnId_t connId, bool_t oob, uint8_t auth, uint8_t iKeyDist, uint8_t rKeyDist)
 This function is called by a master device to initiate pairing. More...
 
void DmSecPairRsp (dmConnId_t connId, bool_t oob, uint8_t auth, uint8_t iKeyDist, uint8_t rKeyDist)
 This function is called by a slave device to proceed with pairing after a DM_SEC_PAIR_IND event is received. More...
 
void DmSecCancelReq (dmConnId_t connId, uint8_t reason)
 This function is called to cancel the pairing process. More...
 
void DmSecAuthRsp (dmConnId_t connId, uint8_t authDataLen, uint8_t *pAuthData)
 This function is called in response to a DM_SEC_AUTH_REQ_IND event to provide PIN or OOB data during pairing. More...
 
void DmSecSlaveReq (dmConnId_t connId, uint8_t auth)
 This function is called by a slave device to request that the master initiates pairing or link encryption. More...
 
void DmSecEncryptReq (dmConnId_t connId, uint8_t secLevel, dmSecLtk_t *pLtk)
 This function is called by a master device to initiate link encryption. More...
 
void DmSecLtkRsp (dmConnId_t connId, bool_t keyFound, uint8_t secLevel, uint8_t *pKey)
 This function is called by a slave in response to a DM_SEC_LTK_REQ_IND event to provide the long term key used for encryption. More...
 
void DmSecSetLocalCsrk (uint8_t *pCsrk)
 This function sets the local CSRK used by the device. More...
 
void DmSecSetLocalIrk (uint8_t *pIrk)
 This function sets the local IRK used by the device. More...
 
void DmSecGenerateEccKeyReq (void)
 This function generates an ECC key for use with LESC security. More...
 
void DmSecSetEccKey (secEccKey_t *pKey)
 This function sets the ECC key for use with LESC security. More...
 
secEccKey_tDmSecGetEccKey (void)
 This function gets the local ECC key for use with LESC security. More...
 
void DmSecSetDebugEccKey (void)
 This function sets the ECC key for use with LESC security to standard debug keys values. More...
 
void DmSecSetOob (dmConnId_t connId, dmSecLescOobCfg_t *pConfig)
 This function configures the DM to use OOB pairing for the given connection. The pRand and pConfirm contain the Random and Confirm values exchanged via out of band methods. More...
 
void DmSecCalcOobReq (uint8_t *pRand, uint8_t *pPubKeyX)
 This function calculates the local random and confirm values used in LESC OOB pairing. The operation's result is posted as a DM_SEC_CALC_OOB_IND event to the application's DM callback handler. The local rand and confirm values are exchanged with the peer via out-of-band (OOB) methods and passed into the DmSecSetOob after DM_CONN_OPEN_IND. More...
 
void DmSecCompareRsp (dmConnId_t connId, bool_t valid)
 This function is called by the application in response to a DM_SEC_COMPARE_IND event. The valid parameter indicates if the compare value of the DM_SEC_COMPARE_IND was valid. More...
 
uint32_t DmSecGetCompareValue (uint8_t *pConfirm)
 This function returns the 6-digit compare value for the specified 128-bit confirm value. More...
 

DM Internal Functions

Functions called internally by the stack.

uint8_t DmLlAddrType (uint8_t addrType)
 Map an address type to a type used by LL. More...
 
uint8_t DmHostAddrType (uint8_t addrType)
 Map an address type to a type used by Host. More...
 
uint16_t DmSizeOfEvt (dmEvt_t *pDmEvt)
 Return size of a DM callback event. More...
 
void DmL2cConnUpdateCnf (uint16_t handle, uint16_t reason)
 For internal use only. L2C calls this function to send the result of an L2CAP connection update response to DM. More...
 
void DmL2cCmdRejInd (uint16_t handle, uint16_t result)
 For internal use only. L2C calls this function to send the result of an L2CAP Command Reject up to the application. More...
 
void DmL2cConnUpdateInd (uint8_t identifier, uint16_t handle, hciConnSpec_t *pConnSpec)
 For internal use only. L2C calls this function when it receives a connection update request from a peer device. More...
 
dmConnId_t DmConnIdByHandle (uint16_t handle)
 For internal use only. Find the connection ID with matching handle. More...
 
bool_t DmConnInUse (dmConnId_t connId)
 For internal use only. Return TRUE if the connection is in use. More...
 
uint8_t DmConnPeerAddrType (dmConnId_t connId)
 For internal use only. Return the peer address type. More...
 
uint8_t * DmConnPeerAddr (dmConnId_t connId)
 For internal use only. Return the peer device address. More...
 
uint8_t DmConnLocalAddrType (dmConnId_t connId)
 For internal use only. Return the local address type. More...
 
uint8_t * DmConnLocalAddr (dmConnId_t connId)
 For internal use only. Return the local address. More...
 
uint8_t * DmConnPeerRpa (dmConnId_t connId)
 For internal use only. Return the peer resolvable private address (RPA). More...
 
uint8_t * DmConnLocalRpa (dmConnId_t connId)
 For internal use only. Return the local resolvable private address (RPA). More...
 
uint8_t DmConnSecLevel (dmConnId_t connId)
 For internal use only. Return the security level of the connection. More...
 
void DmSmpEncryptReq (dmConnId_t connId, uint8_t secLevel, uint8_t *pKey)
 For internal use only. This function is called by SMP to request encryption. More...
 
void DmSmpCbackExec (dmEvt_t *pDmEvt)
 For internal use only. Execute DM callback from SMP procedures. More...
 
uint8_t * DmSecGetLocalCsrk (void)
 For internal use only. This function gets the local CSRK used by the device. More...
 
uint8_t * DmSecGetLocalIrk (void)
 For internal use only. This function gets the local IRK used by the device. More...
 
void DmReadRemoteFeatures (dmConnId_t connId)
 For internal use only. Read the features of the remote device. More...
 
void DmReadRemoteVerInfo (dmConnId_t connId)
 Read the version info of the remote device. More...
 

Detailed Description

Macro Definition Documentation

#define DM_RAND_ADDR_SA (   addr,
  type 
)
Value:
(((type) == DM_ADDR_RANDOM) && \
#define DM_RAND_ADDR_GET(addr)
Get the type of random address.
Definition: dm_api.h:359
#define DM_RAND_ADDR_STATIC
Static address.
Definition: dm_api.h:349
#define DM_ADDR_RANDOM
Random device address.
Definition: dm_api.h:142

Check for Static Address.

Definition at line 365 of file dm_api.h.

#define DM_RAND_ADDR_RPA (   addr,
  type 
)
Value:
(((type) == DM_ADDR_RANDOM) && \
#define DM_RAND_ADDR_RESOLV
Resolvable private address.
Definition: dm_api.h:350
#define DM_RAND_ADDR_GET(addr)
Get the type of random address.
Definition: dm_api.h:359
#define DM_ADDR_RANDOM
Random device address.
Definition: dm_api.h:142

Check for Resolvable Private Address.

Definition at line 369 of file dm_api.h.

Enumeration Type Documentation

anonymous enum

DM callback events.

Enumerator
DM_RESET_CMPL_IND 

Reset complete.

DM_ADV_START_IND 

Advertising started.

DM_ADV_STOP_IND 

Advertising stopped.

DM_ADV_NEW_ADDR_IND 

New resolvable address has been generated.

DM_SCAN_START_IND 

Scanning started.

DM_SCAN_STOP_IND 

Scanning stopped.

DM_SCAN_REPORT_IND 

Scan data received from peer device.

DM_CONN_OPEN_IND 

Connection opened.

DM_CONN_CLOSE_IND 

Connection closed.

DM_CONN_UPDATE_IND 

Connection update complete.

DM_SEC_PAIR_CMPL_IND 

Pairing completed successfully.

DM_SEC_PAIR_FAIL_IND 

Pairing failed or other security failure.

DM_SEC_ENCRYPT_IND 

Connection encrypted.

DM_SEC_ENCRYPT_FAIL_IND 

Encryption failed.

DM_SEC_AUTH_REQ_IND 

PIN or OOB data requested for pairing.

DM_SEC_KEY_IND 

Security key indication.

DM_SEC_LTK_REQ_IND 

LTK requested for encyption.

DM_SEC_PAIR_IND 

Incoming pairing request from master.

DM_SEC_SLAVE_REQ_IND 

Incoming security request from slave.

DM_SEC_CALC_OOB_IND 

Result of OOB Confirm Calculation Generation.

DM_SEC_ECC_KEY_IND 

Result of ECC Key Generation.

DM_SEC_COMPARE_IND 

Result of Just Works/Numeric Comparison Compare Value Calculation.

DM_SEC_KEYPRESS_IND 

Keypress indication from peer in passkey security.

DM_PRIV_RESOLVED_ADDR_IND 

Private address resolved.

DM_PRIV_GENERATE_ADDR_IND 

Private resolvable address generated.

DM_CONN_READ_RSSI_IND 

Connection RSSI read.

DM_PRIV_ADD_DEV_TO_RES_LIST_IND 

Device added to resolving list.

DM_PRIV_REM_DEV_FROM_RES_LIST_IND 

Device removed from resolving list.

DM_PRIV_CLEAR_RES_LIST_IND 

Resolving list cleared.

DM_PRIV_READ_PEER_RES_ADDR_IND 

Peer resolving address read.

DM_PRIV_READ_LOCAL_RES_ADDR_IND 

Local resolving address read.

DM_PRIV_SET_ADDR_RES_ENABLE_IND 

Address resolving enable set.

DM_REM_CONN_PARAM_REQ_IND 

Remote connection parameter requested.

DM_CONN_DATA_LEN_CHANGE_IND 

Data length changed.

DM_CONN_WRITE_AUTH_TO_IND 

Write authenticated payload complete.

DM_CONN_AUTH_TO_EXPIRED_IND 

Authenticated payload timeout expired.

DM_PHY_READ_IND 

Read PHY.

DM_PHY_SET_DEF_IND 

Set default PHY.

DM_PHY_UPDATE_IND 

PHY update.

DM_ADV_SET_START_IND 

Advertising set(s) started.

DM_ADV_SET_STOP_IND 

Advertising set(s) stopped.

DM_SCAN_REQ_RCVD_IND 

Scan request received.

DM_EXT_SCAN_START_IND 

Extended scanning started.

DM_EXT_SCAN_STOP_IND 

Extended scanning stopped.

DM_EXT_SCAN_REPORT_IND 

Extended scan data received from peer device.

DM_PER_ADV_SET_START_IND 

Periodic advertising set started.

DM_PER_ADV_SET_STOP_IND 

Periodic advertising set stopped.

DM_PER_ADV_SYNC_EST_IND 

Periodic advertising sync established.

DM_PER_ADV_SYNC_EST_FAIL_IND 

Periodic advertising sync establishment failed.

DM_PER_ADV_SYNC_LOST_IND 

Periodic advertising sync lost.

DM_PER_ADV_SYNC_TRSF_EST_IND 

Periodic advertising sync transfer established.

DM_PER_ADV_SYNC_TRSF_EST_FAIL_IND 

Periodic advertising sync transfer establishment failed.

DM_PER_ADV_SYNC_TRSF_IND 

Periodic advertising sync info transferred.

DM_PER_ADV_SET_INFO_TRSF_IND 

Periodic advertising set sync info transferred.

DM_PER_ADV_REPORT_IND 

Periodic advertising data received from peer device.

DM_REMOTE_FEATURES_IND 

Remote features from peer device.

DM_READ_REMOTE_VER_INFO_IND 

Remote LL version information read.

DM_CONN_IQ_REPORT_IND 

IQ samples from CTE of received packet from peer device.

DM_CTE_REQ_FAIL_IND 

CTE request failed.

DM_CONN_CTE_RX_SAMPLE_START_IND 

Sampling received CTE started.

DM_CONN_CTE_RX_SAMPLE_STOP_IND 

Sampling received CTE stopped.

DM_CONN_CTE_TX_CFG_IND 

Connection CTE transmit parameters configured.

DM_CONN_CTE_REQ_START_IND 

Initiating connection CTE request started.

DM_CONN_CTE_REQ_STOP_IND 

Initiating connection CTE request stopped.

DM_CONN_CTE_RSP_START_IND 

Responding to connection CTE request started.

DM_CONN_CTE_RSP_STOP_IND 

Responding to connection CTE request stopped.

DM_READ_ANTENNA_INFO_IND 

Antenna information read.

DM_L2C_CMD_REJ_IND 

L2CAP Command Reject.

DM_ERROR_IND 

General error.

DM_HW_ERROR_IND 

Hardware error.

DM_VENDOR_SPEC_IND 

Vendor specific event.

Definition at line 438 of file dm_api.h.

439 {
440  DM_RESET_CMPL_IND = DM_CBACK_START, /*!< \brief Reset complete */
441  DM_ADV_START_IND, /*!< \brief Advertising started */
442  DM_ADV_STOP_IND, /*!< \brief Advertising stopped */
443  DM_ADV_NEW_ADDR_IND, /*!< \brief New resolvable address has been generated */
444  DM_SCAN_START_IND, /*!< \brief Scanning started */
445  DM_SCAN_STOP_IND, /*!< \brief Scanning stopped */
446  DM_SCAN_REPORT_IND, /*!< \brief Scan data received from peer device */
447  DM_CONN_OPEN_IND, /*!< \brief Connection opened */
448  DM_CONN_CLOSE_IND, /*!< \brief Connection closed */
449  DM_CONN_UPDATE_IND, /*!< \brief Connection update complete */
450  DM_SEC_PAIR_CMPL_IND, /*!< \brief Pairing completed successfully */
451  DM_SEC_PAIR_FAIL_IND, /*!< \brief Pairing failed or other security failure */
452  DM_SEC_ENCRYPT_IND, /*!< \brief Connection encrypted */
453  DM_SEC_ENCRYPT_FAIL_IND, /*!< \brief Encryption failed */
454  DM_SEC_AUTH_REQ_IND, /*!< \brief PIN or OOB data requested for pairing */
455  DM_SEC_KEY_IND, /*!< \brief Security key indication */
456  DM_SEC_LTK_REQ_IND, /*!< \brief LTK requested for encyption */
457  DM_SEC_PAIR_IND, /*!< \brief Incoming pairing request from master */
458  DM_SEC_SLAVE_REQ_IND, /*!< \brief Incoming security request from slave */
459  DM_SEC_CALC_OOB_IND, /*!< \brief Result of OOB Confirm Calculation Generation */
460  DM_SEC_ECC_KEY_IND, /*!< \brief Result of ECC Key Generation */
461  DM_SEC_COMPARE_IND, /*!< \brief Result of Just Works/Numeric Comparison Compare Value Calculation */
462  DM_SEC_KEYPRESS_IND, /*!< \brief Keypress indication from peer in passkey security */
463  DM_PRIV_RESOLVED_ADDR_IND, /*!< \brief Private address resolved */
464  DM_PRIV_GENERATE_ADDR_IND, /*!< \brief Private resolvable address generated */
465  DM_CONN_READ_RSSI_IND, /*!< \brief Connection RSSI read */
466  DM_PRIV_ADD_DEV_TO_RES_LIST_IND, /*!< \brief Device added to resolving list */
467  DM_PRIV_REM_DEV_FROM_RES_LIST_IND, /*!< \brief Device removed from resolving list */
468  DM_PRIV_CLEAR_RES_LIST_IND, /*!< \brief Resolving list cleared */
469  DM_PRIV_READ_PEER_RES_ADDR_IND, /*!< \brief Peer resolving address read */
470  DM_PRIV_READ_LOCAL_RES_ADDR_IND, /*!< \brief Local resolving address read */
471  DM_PRIV_SET_ADDR_RES_ENABLE_IND, /*!< \brief Address resolving enable set */
472  DM_REM_CONN_PARAM_REQ_IND, /*!< \brief Remote connection parameter requested */
473  DM_CONN_DATA_LEN_CHANGE_IND, /*!< \brief Data length changed */
474  DM_CONN_WRITE_AUTH_TO_IND, /*!< \brief Write authenticated payload complete */
475  DM_CONN_AUTH_TO_EXPIRED_IND, /*!< \brief Authenticated payload timeout expired */
476  DM_PHY_READ_IND, /*!< \brief Read PHY */
477  DM_PHY_SET_DEF_IND, /*!< \brief Set default PHY */
478  DM_PHY_UPDATE_IND, /*!< \brief PHY update */
479  DM_ADV_SET_START_IND, /*!< \brief Advertising set(s) started */
480  DM_ADV_SET_STOP_IND, /*!< \brief Advertising set(s) stopped */
481  DM_SCAN_REQ_RCVD_IND, /*!< \brief Scan request received */
482  DM_EXT_SCAN_START_IND, /*!< \brief Extended scanning started */
483  DM_EXT_SCAN_STOP_IND, /*!< \brief Extended scanning stopped */
484  DM_EXT_SCAN_REPORT_IND, /*!< \brief Extended scan data received from peer device */
485  DM_PER_ADV_SET_START_IND, /*!< \brief Periodic advertising set started */
486  DM_PER_ADV_SET_STOP_IND, /*!< \brief Periodic advertising set stopped */
487  DM_PER_ADV_SYNC_EST_IND, /*!< \brief Periodic advertising sync established */
488  DM_PER_ADV_SYNC_EST_FAIL_IND, /*!< \brief Periodic advertising sync establishment failed */
489  DM_PER_ADV_SYNC_LOST_IND, /*!< \brief Periodic advertising sync lost */
490  DM_PER_ADV_SYNC_TRSF_EST_IND, /*!< \brief Periodic advertising sync transfer established */
491  DM_PER_ADV_SYNC_TRSF_EST_FAIL_IND, /*!< \brief Periodic advertising sync transfer establishment failed */
492  DM_PER_ADV_SYNC_TRSF_IND, /*!< \brief Periodic advertising sync info transferred */
493  DM_PER_ADV_SET_INFO_TRSF_IND, /*!< \brief Periodic advertising set sync info transferred */
494  DM_PER_ADV_REPORT_IND, /*!< \brief Periodic advertising data received from peer device */
495  DM_REMOTE_FEATURES_IND, /*!< \brief Remote features from peer device */
496  DM_READ_REMOTE_VER_INFO_IND, /*!< \brief Remote LL version information read */
497  DM_CONN_IQ_REPORT_IND, /*!< \brief IQ samples from CTE of received packet from peer device */
498  DM_CTE_REQ_FAIL_IND, /*!< \brief CTE request failed */
499  DM_CONN_CTE_RX_SAMPLE_START_IND, /*!< \brief Sampling received CTE started */
500  DM_CONN_CTE_RX_SAMPLE_STOP_IND, /*!< \brief Sampling received CTE stopped */
501  DM_CONN_CTE_TX_CFG_IND, /*!< \brief Connection CTE transmit parameters configured */
502  DM_CONN_CTE_REQ_START_IND, /*!< \brief Initiating connection CTE request started */
503  DM_CONN_CTE_REQ_STOP_IND, /*!< \brief Initiating connection CTE request stopped */
504  DM_CONN_CTE_RSP_START_IND, /*!< \brief Responding to connection CTE request started */
505  DM_CONN_CTE_RSP_STOP_IND, /*!< \brief Responding to connection CTE request stopped */
506  DM_READ_ANTENNA_INFO_IND, /*!< \brief Antenna information read */
507  DM_L2C_CMD_REJ_IND, /*!< \brief L2CAP Command Reject */
508  DM_ERROR_IND, /*!< \brief General error */
509  DM_HW_ERROR_IND, /*!< \brief Hardware error */
510  DM_VENDOR_SPEC_IND /*!< \brief Vendor specific event */
511 };
Private resolvable address generated.
Definition: dm_api.h:464
Remote features from peer device.
Definition: dm_api.h:495
Extended scan data received from peer device.
Definition: dm_api.h:484
Set default PHY.
Definition: dm_api.h:477
Advertising started.
Definition: dm_api.h:441
Connection RSSI read.
Definition: dm_api.h:465
Advertising set(s) started.
Definition: dm_api.h:479
Pairing failed or other security failure.
Definition: dm_api.h:451
Scan data received from peer device.
Definition: dm_api.h:446
Peer resolving address read.
Definition: dm_api.h:469
CTE request failed.
Definition: dm_api.h:498
Local resolving address read.
Definition: dm_api.h:470
Write authenticated payload complete.
Definition: dm_api.h:474
Responding to connection CTE request started.
Definition: dm_api.h:504
Result of ECC Key Generation.
Definition: dm_api.h:460
Scanning stopped.
Definition: dm_api.h:445
Extended scanning started.
Definition: dm_api.h:482
Responding to connection CTE request stopped.
Definition: dm_api.h:505
Pairing completed successfully.
Definition: dm_api.h:450
PIN or OOB data requested for pairing.
Definition: dm_api.h:454
Device removed from resolving list.
Definition: dm_api.h:467
Periodic advertising sync transfer establishment failed.
Definition: dm_api.h:491
Security key indication.
Definition: dm_api.h:455
Periodic advertising sync info transferred.
Definition: dm_api.h:492
Result of Just Works/Numeric Comparison Compare Value Calculation.
Definition: dm_api.h:461
Connection closed.
Definition: dm_api.h:448
Periodic advertising sync lost.
Definition: dm_api.h:489
Read PHY.
Definition: dm_api.h:476
Initiating connection CTE request stopped.
Definition: dm_api.h:503
Initiating connection CTE request started.
Definition: dm_api.h:502
Connection CTE transmit parameters configured.
Definition: dm_api.h:501
New resolvable address has been generated.
Definition: dm_api.h:443
Keypress indication from peer in passkey security.
Definition: dm_api.h:462
Periodic advertising set stopped.
Definition: dm_api.h:486
Sampling received CTE stopped.
Definition: dm_api.h:500
Sampling received CTE started.
Definition: dm_api.h:499
Periodic advertising sync established.
Definition: dm_api.h:487
LTK requested for encyption.
Definition: dm_api.h:456
Antenna information read.
Definition: dm_api.h:506
Data length changed.
Definition: dm_api.h:473
Periodic advertising sync establishment failed.
Definition: dm_api.h:488
Vendor specific event.
Definition: dm_api.h:510
General error.
Definition: dm_api.h:508
Reset complete.
Definition: dm_api.h:440
Device added to resolving list.
Definition: dm_api.h:466
Extended scanning stopped.
Definition: dm_api.h:483
Periodic advertising set sync info transferred.
Definition: dm_api.h:493
Scanning started.
Definition: dm_api.h:444
Scan request received.
Definition: dm_api.h:481
Result of OOB Confirm Calculation Generation.
Definition: dm_api.h:459
Connection opened.
Definition: dm_api.h:447
Hardware error.
Definition: dm_api.h:509
Incoming pairing request from master.
Definition: dm_api.h:457
#define DM_CBACK_START
DM callback event starting value.
Definition: dm_api.h:435
Private address resolved.
Definition: dm_api.h:463
Address resolving enable set.
Definition: dm_api.h:471
Periodic advertising data received from peer device.
Definition: dm_api.h:494
Remote LL version information read.
Definition: dm_api.h:496
Authenticated payload timeout expired.
Definition: dm_api.h:475
Connection update complete.
Definition: dm_api.h:449
Resolving list cleared.
Definition: dm_api.h:468
Periodic advertising set started.
Definition: dm_api.h:485
Remote connection parameter requested.
Definition: dm_api.h:472
PHY update.
Definition: dm_api.h:478
Advertising stopped.
Definition: dm_api.h:442
Periodic advertising sync transfer established.
Definition: dm_api.h:490
Connection encrypted.
Definition: dm_api.h:452
L2CAP Command Reject.
Definition: dm_api.h:507
Incoming security request from slave.
Definition: dm_api.h:458
Advertising set(s) stopped.
Definition: dm_api.h:480
IQ samples from CTE of received packet from peer device.
Definition: dm_api.h:497
Encryption failed.
Definition: dm_api.h:453

Function Documentation

void DmRegister ( dmCback_t  cback)

Register a callback with DM for scan and advertising events.

Parameters
cbackClient callback function.
Returns
None.
uint8_t* DmFindAdType ( uint8_t  adType,
uint16_t  dataLen,
uint8_t *  pData 
)

Find an advertising data element in the given advertising or scan response data.

Parameters
adTypeAdvertising data element type to find.
dataLenData length.
pDataPointer to advertising or scan response data.
Returns
Pointer to the advertising data element byte array or NULL if not found.
void DmAdvInit ( void  )

Initialize DM legacy advertising.

Returns
None.
void DmExtAdvInit ( void  )

Initialize DM extended advertising.

Returns
None.
bool_t DmAdvModeLeg ( void  )

Whether DM advertising is in legacy mode.

Returns
TRUE if DM advertising is in legacy mode. FALSE, otherwise.
bool_t DmAdvModeExt ( void  )

Whether DM advertising is in extended mode.

Returns
TRUE if DM advertising is in extended mode. FALSE, otherwise.
void DmAdvConfig ( uint8_t  advHandle,
uint8_t  advType,
uint8_t  peerAddrType,
uint8_t *  pPeerAddr 
)

Set the advertising parameters using the given advertising type, and peer address.

Parameters
advHandleAdvertising handle.
advTypeAdvertising type.
peerAddrTypePeer address type.
pPeerAddrPeer address.
Returns
None.
void DmAdvSetData ( uint8_t  advHandle,
uint8_t  op,
uint8_t  location,
uint8_t  len,
uint8_t *  pData 
)

Set the advertising or scan response data to the given data.

Parameters
advHandleAdvertising handle.
opData operation.
locationData location.
lenLength of the data. Maximum length is 236 bytes.
pDataPointer to the data.
Returns
None.
void DmAdvStart ( uint8_t  numSets,
uint8_t *  pAdvHandles,
uint16_t *  pDuration,
uint8_t *  pMaxEaEvents 
)

Start advertising using the given advertising set and duration.

Parameters
numSetsNumber of advertising sets to enable.
pAdvHandlesAdvertising handles array.
pDurationAdvertising duration (in milliseconds) array.
pMaxEaEventsMaximum number of extended advertising events array.
Returns
None.
void DmAdvStop ( uint8_t  numSets,
uint8_t *  pAdvHandles 
)

Stop advertising for the given advertising set. If the number of sets is set to 0 then all advertising sets are disabled.

Parameters
numSetsNumber of advertising sets to disable.
pAdvHandlesAdvertising handles array.
Returns
None.
void DmAdvRemoveAdvSet ( uint8_t  advHandle)

Remove an advertising set.

Parameters
advHandleAdvertising handle.
Returns
None.
void DmAdvClearAdvSets ( void  )

Clear advertising sets.

Returns
None.
void DmAdvSetRandAddr ( uint8_t  advHandle,
const uint8_t *  pAddr 
)

Set the random device address for a given advertising set.

Parameters
advHandleAdvertising handle.
pAddrRandom device address.
Returns
None.
void DmAdvSetInterval ( uint8_t  advHandle,
uint16_t  intervalMin,
uint16_t  intervalMax 
)

Set the minimum and maximum advertising intervals.

Parameters
advHandleAdvertising handle.
intervalMinMinimum advertising interval.
intervalMaxMaximum advertising interval.
Returns
None.
void DmAdvSetChannelMap ( uint8_t  advHandle,
uint8_t  channelMap 
)

Include or exclude certain channels from the advertising channel map.

Parameters
advHandleAdvertising handle.
channelMapAdvertising channel map.
Returns
None.
void DmAdvSetAddrType ( uint8_t  addrType)

Set the local address type used while advertising. This function can be used to configure advertising to use a random address.

Parameters
addrTypeAddress type.
Returns
None.
bool_t DmAdvSetAdValue ( uint8_t  adType,
uint8_t  len,
uint8_t *  pValue,
uint16_t *  pAdvDataLen,
uint8_t *  pAdvData,
uint16_t  advDataBufLen 
)

Set the value of an advertising data element in the given advertising or scan response data. If the element already exists in the data then it is replaced with the new value. If the element does not exist in the data it is appended to it, space permitting.

Parameters
adTypeAdvertising data element type.
lenLength of the value. Maximum length is 29 bytes.
pValuePointer to the value.
pAdvDataLenAdvertising or scan response data length. The new length is returned in this parameter.
pAdvDataPointer to advertising or scan response data.
advDataBufLenLength of the advertising or scan response data buffer maintained by Application.
Returns
TRUE if the element was successfully added to the data, FALSE otherwise.
bool_t DmAdvSetName ( uint8_t  len,
uint8_t *  pValue,
uint16_t *  pAdvDataLen,
uint8_t *  pAdvData,
uint16_t  advDataBufLen 
)

Set the device name in the given advertising or scan response data. If the name can only fit in the data if it is shortened, the name is shortened and the AD type is changed to DM_ADV_TYPE_SHORT_NAME.

Parameters
lenLength of the name. Maximum length is 29 bytes.
pValuePointer to the name in UTF-8 format.
pAdvDataLenAdvertising or scan response data length. The new length is returned in this parameter.
pAdvDataPointer to advertising or scan response data.
advDataBufLenLength of the advertising or scan response data buffer maintained by Application.
Returns
TRUE if the element was successfully added to the data, FALSE otherwise.
void DmDevPrivInit ( void  )

Initialize device privacy module.

Returns
None.
void DmDevPrivStart ( uint16_t  changeInterval)

Start using a private resolvable address.

Parameters
changeIntervalInterval between automatic address changes, in seconds.
Returns
None.
void DmDevPrivStop ( void  )

Stop using a private resolvable address.

Returns
None.
void DmAdvUseLegacyPdu ( uint8_t  advHandle,
bool_t  useLegacyPdu 
)

Set whether or not to use legacy advertising PDUs with extended advertising.

Parameters
advHandleAdvertising handle.
useLegacyPduWhether to use legacy advertising PDUs (default value is TRUE).
Returns
None.
void DmAdvOmitAdvAddr ( uint8_t  advHandle,
bool_t  omitAdvAddr 
)

Set whether or not to omit advertiser's address from all PDUs (anonymous advertising).

Parameters
advHandleAdvertising handle.
omitAdvAddrWhether to omit advertiser's address from all PDUs (default value is FALSE).
Returns
None.
void DmAdvIncTxPwr ( uint8_t  advHandle,
bool_t  incTxPwr,
int8_t  advTxPwr 
)

Set whether or not to include TxPower in extended header of advertising PDU.

Parameters
advHandleAdvertising handle.
incTxPwrWhether to include TxPower in extended header of advertising PDU (default value is FALSE).
advTxPwrAdvertising tx power (127 = no preference).
Returns
None.
void DmAdvSetPhyParam ( uint8_t  advHandle,
uint8_t  priAdvPhy,
uint8_t  secAdvMaxSkip,
uint8_t  secAdvPhy 
)

Set extended advertising PHY parameters.

Parameters
advHandleAdvertising handle.
priAdvPhyPrimary advertising Phy.
secAdvMaxSkipMaximum advertising events Controller can skip before sending AUX_ADV_IND on secondary advertising channel (0 = AUX_ADV_IND will be sent prior to next advertising event).
secAdvPhySecondary advertising Phy.
Returns
None.
void DmAdvScanReqNotifEnable ( uint8_t  advHandle,
bool_t  scanReqNotifEna 
)

Set scan request notification enable.

Parameters
advHandleAdvertising handle.
scanReqNotifEnaScan request notification enable.
Returns
None.
void DmAdvSetFragPref ( uint8_t  advHandle,
uint8_t  fragPref 
)

Set fragment preference for advertising data.

Parameters
advHandleAdvertising handle.
fragPrefFragment preference.
Returns
None.
void DmPerAdvConfig ( uint8_t  advHandle)

Set the advertising parameters for periodic advertising.

Parameters
advHandleAdvertising handle.
Returns
None.
void DmPerAdvSetData ( uint8_t  advHandle,
uint8_t  op,
uint8_t  len,
uint8_t *  pData 
)

Set the advertising data to the given data for periodic advertising.

Parameters
advHandleAdvertising handle.
opData operation.
lenLength of the data. Maximum length is 236 bytes.
pDataPointer to the data.
Returns
None.
void DmPerAdvStart ( uint8_t  advHandle)

Start periodic advertising for the advertising set specified by the advertising handle.

Parameters
advHandleAdvertising handle.
Returns
None.
void DmPerAdvStop ( uint8_t  advHandle)

Stop periodic advertising for the advertising set specified by the advertising handle.

Parameters
advHandleAdvertising handle.
Returns
None.
void DmPerAdvSetInterval ( uint8_t  advHandle,
uint16_t  intervalMin,
uint16_t  intervalMax 
)

Set the minimum and maximum advertising intervals for periodic advertising.

Parameters
advHandleAdvertising handle.
intervalMinMinimum advertising interval.
intervalMaxMaximum advertising interval.
Returns
None.
void DmPerAdvIncTxPwr ( uint8_t  advHandle,
bool_t  incTxPwr 
)

Set whether or not to include TxPower in extended header of advertising PDU for periodic advertising.

Parameters
advHandleAdvertising handle.
incTxPwrWhether to include TxPower in extended header of advertising PDU (default value is FALSE).
Returns
None.
uint16_t DmExtMaxAdvDataLen ( uint8_t  advType,
bool_t  useLegacyPdu 
)

Get the maximum advertising data length supported by Controller for a given advertising type.

Parameters
advTypeAdvertising type.
useLegacyPduWhether to use legacy advertising PDUs with extended advertising.
Returns
Maximum advertising data length.
void DmPrivInit ( void  )

Initialize DM privacy module.

Returns
None.
void DmPrivResolveAddr ( uint8_t *  pAddr,
uint8_t *  pIrk,
uint16_t  param 
)

Resolve a private resolvable address. When complete the client's callback function is called with a DM_PRIV_RESOLVED_ADDR_IND event. The client must wait to receive this event before executing this function again.

Parameters
pAddrPeer device address.
pIrkThe peer's identity resolving key.
paramClient-defined parameter returned with callback event.
Returns
None.
void DmPrivAddDevToResList ( uint8_t  addrType,
const uint8_t *  pIdentityAddr,
uint8_t *  pPeerIrk,
uint8_t *  pLocalIrk,
bool_t  enableLlPriv,
uint16_t  param 
)

Add device to resolving list. When complete the client's callback function is called with a DM_PRIV_ADD_DEV_TO_RES_LIST_IND event. The client must wait to receive this event before executing this function again.

Parameters
addrTypePeer identity address type.
pIdentityAddrPeer identity address.
pPeerIrkThe peer's identity resolving key.
pLocalIrkThe local identity resolving key.
enableLlPrivSet to TRUE to enable address resolution in LL.
paramclient-defined parameter returned with callback event.
Returns
None.

This command cannot be used when address resolution is enabled in the Controller and:

  • Advertising (other than periodic advertising) is enabled,
  • Scanning is enabled, or
  • (Extended) Create connection or Create Sync command is outstanding.

If the local or peer IRK associated with the peer Identity Address is all zeros then the Controller will use or accept the local or peer Identity Address respectively.

Parameter 'enableLlPriv' should be set to TRUE when the last device is being added to resolving list to enable address resolution in the Controller.

void DmPrivRemDevFromResList ( uint8_t  addrType,
const uint8_t *  pIdentityAddr,
uint16_t  param 
)

Remove device from resolving list. When complete the client's callback function is called with a DM_PRIV_REM_DEV_FROM_RES_LIST_IND event. The client must wait to receive this event before executing this function again.

Parameters
addrTypePeer identity address type.
pIdentityAddrPeer identity address.
paramclient-defined parameter returned with callback event.
Returns
None.

This command cannot be used when address resolution is enabled in the Controller and:

  • Advertising (other than periodic advertising) is enabled,
  • Scanning is enabled, or
  • (Extended) Create connection or Create Sync command is outstanding.
void DmPrivClearResList ( void  )

Clear resolving list. When complete the client's callback function is called with a DM_PRIV_CLEAR_RES_LIST_IND event. The client must wait to receive this event before executing this function again.

Returns
None.

This command cannot be used when address resolution is enabled in the Controller and:

  • Advertising (other than periodic advertising) is enabled,
  • Scanning is enabled, or
  • (Extended) Create connection or Create Sync command is outstanding.

Address resolution in Controller will be disabled when resolving list's cleared successfully.

void DmPrivReadPeerResolvableAddr ( uint8_t  addrType,
const uint8_t *  pIdentityAddr 
)

HCI read peer resolvable address command. When complete the client's callback function is called with a DM_PRIV_READ_PEER_RES_ADDR_IND event. The client must wait to receive this event before executing this function again.

Parameters
addrTypePeer identity address type.
pIdentityAddrPeer identity address.
Returns
None.
void DmPrivReadLocalResolvableAddr ( uint8_t  addrType,
const uint8_t *  pIdentityAddr 
)

Read local resolvable address command. When complete the client's callback function is called with a DM_PRIV_READ_LOCAL_RES_ADDR_IND event. The client must wait to receive this event before executing this function again.

Parameters
addrTypePeer identity address type.
pIdentityAddrPeer identity address.
Returns
None.
void DmPrivSetAddrResEnable ( bool_t  enable)

Enable or disable address resolution in LL. When complete the client's callback function is called with a DM_PRIV_SET_ADDR_RES_ENABLE_IND event. The client must wait to receive this event before executing this function again.

Parameters
enableSet to TRUE to enable address resolution or FALSE to disable it.
Returns
None.

This command can be used at any time except when:

  • Advertising (other than periodic advertising) is enabled,
  • Scanning is enabled, or
  • (Extended) Create connection or Create Sync command is outstanding.
void DmPrivSetResolvablePrivateAddrTimeout ( uint16_t  rpaTimeout)

Set resolvable private address timeout command.

Parameters
rpaTimeoutTimeout measured in seconds.
Returns
None.
void DmPrivSetPrivacyMode ( uint8_t  addrType,
const uint8_t *  pIdentityAddr,
uint8_t  mode 
)

Set privacy mode for a given entry in the resolving list.

Parameters
addrTypePeer identity address type.
pIdentityAddrPeer identity address.
modePrivacy mode (by default, network privacy mode is used).
Returns
None.

This command can be used at any time except when:

  • Advertising (other than periodic advertising) is enabled,
  • Scanning is enabled, or
  • (Extended) Create connection or Create Sync command is outstanding.
void DmPrivGenerateAddr ( uint8_t *  pIrk,
uint16_t  param 
)

Generate a Resolvable Private Address (RPA).

Parameters
pIrkThe identity resolving key.
paramClient-defined parameter returned with callback event.
Returns
None.
bool_t DmLlPrivEnabled ( void  )

Whether LL Privacy is enabled.

Returns
TRUE if LL Privacy is enabled. FALSE, otherwise.
void DmScanInit ( void  )

Initialize DM legacy scanning.

Returns
None.
void DmExtScanInit ( void  )

Initialize DM extended scanning.

Returns
None.
void DmPastInit ( void  )

Initialize DM Periodic Advertising Sync Transfer (PAST) module.

Returns
None.
void DmConnCteInit ( void  )

Initialize DM Connection Constant Tone Extension (CTE) module.

Returns
None.
bool_t DmScanModeLeg ( void  )

Whether DM scanning is in legacy mode.

Returns
TRUE if DM scanning is in legacy mode. FALSE, otherwise.
bool_t DmScanModeExt ( void  )

Whether DM scanning is in extended mode.

Returns
TRUE if DM scanning is in extended mode. FALSE, otherwise.
void DmScanStart ( uint8_t  scanPhys,
uint8_t  mode,
const uint8_t *  pScanType,
bool_t  filterDup,
uint16_t  duration,
uint16_t  period 
)

Start scanning on the given PHYs.

Parameters
scanPhysScanner PHYs.
modeDiscoverability mode.
pScanTypeScan type array.
filterDupFilter duplicates. Set to TRUE to filter duplicate responses received from the same device. Set to FALSE to receive all responses.
durationThe scan duration, in milliseconds. If set to zero or both duration and period set to non-zero, scanning will continue until DmScanStop() is called.
periodThe scan period, in 1.28 sec units (only applicable to AE). If set to zero, periodic scanning is disabled.
Returns
None.
void DmScanStop ( void  )

Stop scanning.

Returns
None.
void DmScanSetInterval ( uint8_t  scanPhys,
uint16_t *  pScanInterval,
uint16_t *  pScanWindow 
)

Set the scan interval and window for the specified PHYs.

Parameters
scanPhysScanning PHYs.
pScanIntervalScan interval array.
pScanWindowScan window array.
Returns
None.
void DmScanSetAddrType ( uint8_t  addrType)

Set the local address type used while scanning. This function can be used to configure scanning to use a random address.

Parameters
addrTypeAddress type.
Returns
None.
dmSyncId_t DmSyncStart ( uint8_t  advSid,
uint8_t  advAddrType,
const uint8_t *  pAdvAddr,
uint16_t  skip,
uint16_t  syncTimeout 
)

Synchronize with periodic advertising from the given advertiser, and start receiving periodic advertising packets.

Note: The synchronization filter policy is used to determine whether the periodic advertiser list is used. If the periodic advertiser list is not used, the advertising SID, advertiser address type, and advertiser address parameters specify the periodic advertising device to listen to; otherwise these parameters are ignored.

Parameters
advSidAdvertising SID.
advAddrTypeAdvertiser address type.
pAdvAddrAdvertiser address.
skipNumber of periodic advertising packets that can be skipped after successful receive.
syncTimeoutSynchronization timeout.
Returns
Sync indentifier.
void DmSyncStop ( dmSyncId_t  syncId)

Stop reception of the periodic advertising identified by the given sync identifier.

Parameters
syncIdSync identifier.
Returns
None.
void DmSyncInitialRptEnable ( bool_t  enable)

DM enable or disable initial periodic advertisement reporting.

Parameters
enableTRUE to enable initial reporting, FALSE to disable initial reporting.
Returns
None.
void DmAddDeviceToPerAdvList ( uint8_t  advAddrType,
uint8_t *  pAdvAddr,
uint8_t  advSid 
)

Add device to periodic advertiser list.

Parameters
advAddrTypeAdvertiser address type.
pAdvAddrAdvertiser address.
advSidAdvertising SID.
Returns
None.
void DmRemoveDeviceFromPerAdvList ( uint8_t  advAddrType,
uint8_t *  pAdvAddr,
uint8_t  advSid 
)

DM remove device from periodic advertiser list.

Parameters
advAddrTypeAdvertiser address type.
pAdvAddrAdvertiser address.
advSidAdvertising SID.
Returns
None.
void DmClearPerAdvList ( void  )

DM clear periodic advertiser list.

Returns
None.
void DmPastRptRcvEnable ( dmSyncId_t  syncId,
bool_t  enable 
)

Enable or disable reports for the periodic advertising identified by the sync id.

Parameters
syncIdSync identifier.
enableTRUE to enable reporting, FALSE to disable reporting.
Returns
None.
void DmPastSyncTrsf ( dmConnId_t  connId,
uint16_t  serviceData,
dmSyncId_t  syncId 
)

Send synchronization information about the periodic advertising identified by the sync id to a connected device.

Parameters
connIdConnection identifier.
serviceDataValue provided by the Host.
syncIdSync identifier.
Returns
None.
void DmPastSetInfoTrsf ( dmConnId_t  connId,
uint16_t  serviceData,
uint8_t  advHandle 
)

Send synchronization information about the periodic advertising in an advertising set to a connected device.

Parameters
connIdConnection identifier.
serviceDataValue provided by the Host.
advHandleAdvertising handle.
Returns
None.
void DmPastConfig ( dmConnId_t  connId,
uint8_t  mode,
uint16_t  skip,
uint16_t  syncTimeout,
uint8_t  cteType 
)

Specify how the Controller should process periodic advertising synchronization information received from the device identified by the connnection handle.

Parameters
connIdConnection identifier.
modeAction to be taken when periodic advertising info is received.
skipNumber of consecutive periodic advertising packets that the receiver may skip after successfully receiving a periodic advertising packet.
syncTimeoutMaximum permitted time between successful receives. If this time is exceeded, synchronization is lost.
cteTypeWhether to only synchronize to periodic advertising with certain types of Constant Tone Extension.
Returns
None.
void DmPastDefaultConfig ( uint8_t  mode,
uint16_t  skip,
uint16_t  syncTimeout,
uint8_t  cteType 
)

Specify the initial value for the mode, skip, timeout, and Constant Tone Extension type to be used for all subsequent connections over the LE transport.

Parameters
modeAction to be taken when periodic advertising info is received.
skipNumber of consecutive periodic advertising packets that the receiver may skip after successfully receiving a periodic advertising packet.
syncTimeoutMaximum permitted time between successful receives. If this time is exceeded, synchronization is lost.
cteTypeWhether to only synchronize to periodic advertising with certain types of Constant Tone Extension.
Returns
None.
void DmConnCteRxSampleStart ( dmConnId_t  connId,
uint8_t  slotDurations,
uint8_t  switchPatternLen,
uint8_t *  pAntennaIDs 
)

Enable sampling received CTE fields on the specified connection, and configure the antenna switching pattern, and switching and sampling slot durations to be used.

Parameters
connIdConnection identifier.
slotDurationsSwitching and sampling slot durations to be used while receiving CTE.
switchPatternLenNumber of Antenna IDs in switching pattern.
pAntennaIDsList of Antenna IDs in switching pattern.
Returns
None.
void DmConnCteRxSampleStop ( dmConnId_t  connId)

Disable sampling received CTE fields on the specified connection.

Parameters
connIdConnection identifier.
Returns
None.
void DmConnCteTxConfig ( dmConnId_t  connId,
uint8_t  cteTypeBits,
uint8_t  switchPatternLen,
uint8_t *  pAntennaIDs 
)

Configure the antenna switching pattern, and permitted CTE types used for transmitting CTEs requested by the peer device on the specified connection.

Parameters
connIdConnection identifier.
cteTypeBitsPermitted CTE type bits used for transmitting CTEs requested by peer.
switchPatternLenNumber of Antenna IDs in switching pattern.
pAntennaIDsList of Antenna IDs in switching pattern.
Returns
None.
void DmConnCteReqStart ( dmConnId_t  connId,
uint16_t  cteReqInt,
uint8_t  reqCteLen,
uint8_t  reqCteType 
)

Initiate the CTE Request procedure on the specified connection.

Parameters
connIdConnection identifier.
cteReqIntCTE request interval.
reqCteLenMinimum length of CTE being requested in 8 us units.
reqCteTypeRequested CTE type.
Returns
None.
void DmConnCteReqStop ( dmConnId_t  connId)

Stop initiating the CTE Request procedure on the specified connection.

Parameters
connIdConnection identifier.
Returns
None.
void DmConnCteRspStart ( dmConnId_t  connId)

Start responding to LL_CTE_REQ PDUs with LL_CTE_RSP PDUs on the specified connection.

Parameters
connIdConnection identifier.
Returns
None.
void DmConnCteRspStop ( dmConnId_t  connId)

Stop responding to LL_CTE_REQ PDUs with LL_CTE_RSP PDUs on the specified connection.

Parameters
connIdConnection identifier.
Returns
None.
void DmReadAntennaInfo ( void  )

Read the switching rates, the sampling rates, the number of antennae, and the maximum length of a transmitted Constant Tone Extension supported by the Controller.

Returns
None.
Note
The antenna info will be returned with DM indication DM_READ_ANTENNA_INFO_IND.
void DmConnInit ( void  )

Initialize DM connection manager.

Returns
None.
void DmConnMasterInit ( void  )

Initialize DM connection manager for operation as legacy master.

Returns
None.
void DmExtConnMasterInit ( void  )

Initialize DM connection manager for operation as extended master.

Returns
None.
void DmConnSlaveInit ( void  )

Initialize DM connection manager for operation as legacy slave.

Returns
None.
void DmExtConnSlaveInit ( void  )

Initialize DM connection manager for operation as extended slave.

Returns
None.
void DmConnRegister ( uint8_t  clientId,
dmCback_t  cback 
)

Register with the DM connection manager.

Parameters
clientIdThe client identifier.
cbackClient callback function.
Returns
None.
dmConnId_t DmConnOpen ( uint8_t  clientId,
uint8_t  initPhys,
uint8_t  addrType,
uint8_t *  pAddr 
)

Open a connection to a peer device with the given address.

Parameters
clientIdThe client identifier.
initPhysInitiator PHYs.
addrTypeAddress type.
pAddrPeer device address.
Returns
Connection identifier.
void DmConnClose ( uint8_t  clientId,
dmConnId_t  connId,
uint8_t  reason 
)

Close the connection with the give connection identifier.

Parameters
clientIdThe client identifier.
connIdConnection identifier.
reasonReason connection is being closed.
Returns
None.
dmConnId_t DmConnAccept ( uint8_t  clientId,
uint8_t  advHandle,
uint8_t  advType,
uint16_t  duration,
uint8_t  maxEaEvents,
uint8_t  addrType,
uint8_t *  pAddr 
)

Accept a connection from the given peer device by initiating directed advertising.

Parameters
clientIdThe client identifier.
advHandleAdvertising handle.
advTypeAdvertising type.
durationAdvertising duration (in ms).
maxEaEventsMaximum number of extended advertising events.
addrTypeAddress type.
pAddrPeer device address.
Returns
Connection identifier.
void DmConnUpdate ( dmConnId_t  connId,
hciConnSpec_t pConnSpec 
)

Update the connection parameters of an open connection.

Parameters
connIdConnection identifier.
pConnSpecConnection specification.
Returns
None.
void DmConnSetScanInterval ( uint16_t  scanInterval,
uint16_t  scanWindow 
)

Set the scan interval and window for connections to be created with DmConnOpen().

Parameters
scanIntervalThe scan interval.
scanWindowThe scan window.
Returns
None.
void DmExtConnSetScanInterval ( uint8_t  initPhys,
uint16_t *  pScanInterval,
uint16_t *  pScanWindow 
)

Set the scan interval and window for extended connections to be created with DmConnOpen().

Parameters
initPhysInitiator PHYs.
pScanIntervalScan interval array.
pScanWindowScan window array.
Returns
None.
void DmConnSetConnSpec ( hciConnSpec_t pConnSpec)

Set the connection spec parameters for connections to be created with DmConnOpen().

Parameters
pConnSpecConnection spec parameters.
Returns
None.
void DmExtConnSetConnSpec ( uint8_t  initPhys,
hciConnSpec_t pConnSpec 
)

Set the extended connection spec parameters for extended connections to be created with DmConnOpen().

Parameters
initPhysThe initiator PHYs.
pConnSpecConnection spec parameters array.
Returns
None.
void DmConnSetAddrType ( uint8_t  addrType)

Set the local address type used for connections created with DmConnOpen().

Parameters
addrTypeAddress type.
Returns
None.
void DmConnSetIdle ( dmConnId_t  connId,
uint16_t  idleMask,
uint8_t  idle 
)

Configure a bit in the connection idle state mask as busy or idle.

Parameters
connIdConnection identifier.
idleMaskBit in the idle state mask to configure.
idleDM_CONN_BUSY or DM_CONN_IDLE.
Returns
None.
uint16_t DmConnCheckIdle ( dmConnId_t  connId)

Check if a connection is idle.

Parameters
connIdConnection identifier.
Returns
Zero if connection is idle, nonzero if busy.
void DmConnReadRssi ( dmConnId_t  connId)

Read RSSI of a given connection.

Parameters
connIdConnection identifier.
Returns
None.
void DmRemoteConnParamReqReply ( dmConnId_t  connId,
hciConnSpec_t pConnSpec 
)

Reply to the HCI remote connection parameter request event. This command is used to indicate that the Host has accepted the remote device's request to change connection parameters.

Parameters
connIdConnection identifier.
pConnSpecConnection specification.
Returns
None.
void DmRemoteConnParamReqNegReply ( dmConnId_t  connId,
uint8_t  reason 
)

Negative reply to the HCI remote connection parameter request event. This command is used to indicate that the Host has rejected the remote device's request to change connection parameters.

Parameters
connIdConnection identifier.
reasonReason for rejection.
Returns
None.
void DmConnSetDataLen ( dmConnId_t  connId,
uint16_t  txOctets,
uint16_t  txTime 
)

Set data length for a given connection.

Parameters
connIdConnection identifier.
txOctetsMaximum number of payload octets for a Data PDU.
txTimeMaximum number of microseconds for a Data PDU.
Returns
None.
uint8_t DmConnRole ( dmConnId_t  connId)

Return the connection role indicating master or slave.

Parameters
connIdConnection identifier.
Returns
Device role.
void DmWriteAuthPayloadTimeout ( dmConnId_t  connId,
uint16_t  timeout 
)

Set authenticated payload timeout for a given connection.

Parameters
connIdConnection identifier.
timeoutTimeout period in units of 10ms.
Returns
None.
void DmSetDefaultPhy ( uint8_t  allPhys,
uint8_t  txPhys,
uint8_t  rxPhys 
)

Set the preferred values for the transmitter PHY and receiver PHY for all subsequent connections.

Parameters
allPhysAll PHYs preferences.
txPhysPreferred transmitter PHYs.
rxPhysPreferred receiver PHYs.
Returns
None.
void DmReadPhy ( dmConnId_t  connId)

Read the current transmitter PHY and receiver PHY for a given connection.

Parameters
connIdConnection identifier.
Returns
None.
void DmSetPhy ( dmConnId_t  connId,
uint8_t  allPhys,
uint8_t  txPhys,
uint8_t  rxPhys,
uint16_t  phyOptions 
)

Set the PHY preferences for a given connection.

Parameters
connIdConnection identifier.
allPhysAll PHYs preferences.
txPhysPreferred transmitter PHYs.
rxPhysPreferred receiver PHYs.
phyOptionsPHY options.
Returns
None.
void DmPhyInit ( void  )

Initialize DM PHY.

Returns
None.
void DmDevReset ( void  )

Reset the device.

Returns
None.
void DmDevSetRandAddr ( uint8_t *  pAddr)

Set the random address to be used by the local device.

Parameters
pAddrRandom address.
Returns
None.
void DmDevWhiteListAdd ( uint8_t  addrType,
uint8_t *  pAddr 
)

Add a peer device to the white list. Note that this function cannot be called while advertising, scanning, or connecting with white list filtering active.

Parameters
addrTypeAddress type.
pAddrPeer device address.
Returns
None.
void DmDevWhiteListRemove ( uint8_t  addrType,
uint8_t *  pAddr 
)

Remove a peer device from the white list. Note that this function cannot be called while advertising, scanning, or connecting with white list filtering active.

Parameters
addrTypeAddress type.
pAddrPeer device address.
Returns
None.
void DmDevWhiteListClear ( void  )

Clear the white list. Note that this function cannot be called while advertising, scanning, or connecting with white list filtering active.

Returns
None.
bool_t DmDevSetFilterPolicy ( uint8_t  mode,
uint8_t  policy 
)

Set the Advertising, Scanning or Initiator filter policy.

Parameters
modePolicy mode.
policyFilter policy.
Returns
TRUE if the filter policy was successfully set, FALSE otherwise.
bool_t DmDevSetExtFilterPolicy ( uint8_t  advHandle,
uint8_t  mode,
uint8_t  policy 
)

Set the Advertising filter policy for the given advertising, Scanning or Initiator filter policy.

Parameters
advHandleAdvertising handle (only applicable to advertising).
modePolicy mode.
policyFilter policy.
Returns
TRUE if the filter policy was successfully set, FALSE otherwise.
void DmDevVsInit ( uint8_t  param)

Vendor-specific controller initialization function.

Parameters
paramVendor-specific parameter.
Returns
None.
void DmSecInit ( void  )

Initialize DM security.

Returns
None.
void DmSecLescInit ( void  )

Initialize DM LE Secure Connections security.

Returns
None.
void DmSecPairReq ( dmConnId_t  connId,
bool_t  oob,
uint8_t  auth,
uint8_t  iKeyDist,
uint8_t  rKeyDist 
)

This function is called by a master device to initiate pairing.

Parameters
connIdDM connection ID.
oobOut-of-band pairing data present or not present.
authAuthentication and bonding flags.
iKeyDistInitiator key distribution flags.
rKeyDistResponder key distribution flags.
Returns
None.
void DmSecPairRsp ( dmConnId_t  connId,
bool_t  oob,
uint8_t  auth,
uint8_t  iKeyDist,
uint8_t  rKeyDist 
)

This function is called by a slave device to proceed with pairing after a DM_SEC_PAIR_IND event is received.

Parameters
connIdDM connection ID.
oobOut-of-band pairing data present or not present.
authAuthentication and bonding flags.
iKeyDistInitiator key distribution flags.
rKeyDistResponder key distribution flags.
Returns
None.
void DmSecCancelReq ( dmConnId_t  connId,
uint8_t  reason 
)

This function is called to cancel the pairing process.

Parameters
connIdDM connection ID.
reasonFailure reason.
Returns
None.
void DmSecAuthRsp ( dmConnId_t  connId,
uint8_t  authDataLen,
uint8_t *  pAuthData 
)

This function is called in response to a DM_SEC_AUTH_REQ_IND event to provide PIN or OOB data during pairing.

Parameters
connIdDM connection ID.
authDataLenLength of PIN or OOB data.
pAuthDatapointer to PIN or OOB data.
Returns
None.
void DmSecSlaveReq ( dmConnId_t  connId,
uint8_t  auth 
)

This function is called by a slave device to request that the master initiates pairing or link encryption.

Parameters
connIdDM connection ID.
authAuthentication flags.
Returns
None.
void DmSecEncryptReq ( dmConnId_t  connId,
uint8_t  secLevel,
dmSecLtk_t pLtk 
)

This function is called by a master device to initiate link encryption.

Parameters
connIdDM connection ID.
secLevelSecurity level of pairing when LTK was exchanged.
pLtkPointer to LTK parameter structure.
Returns
None.
void DmSecLtkRsp ( dmConnId_t  connId,
bool_t  keyFound,
uint8_t  secLevel,
uint8_t *  pKey 
)

This function is called by a slave in response to a DM_SEC_LTK_REQ_IND event to provide the long term key used for encryption.

Parameters
connIdDM connection ID.
keyFoundTRUE if key found.
secLevelSecurity level of pairing when key was exchanged.
pKeyPointer to the key, if found.
Returns
None.
void DmSecSetLocalCsrk ( uint8_t *  pCsrk)

This function sets the local CSRK used by the device.

Parameters
pCsrkPointer to CSRK.
Returns
None.
void DmSecSetLocalIrk ( uint8_t *  pIrk)

This function sets the local IRK used by the device.

Parameters
pIrkPointer to IRK.
Returns
None.
void DmSecGenerateEccKeyReq ( void  )

This function generates an ECC key for use with LESC security.

Returns
None.
void DmSecSetEccKey ( secEccKey_t pKey)

This function sets the ECC key for use with LESC security.

Parameters
pKeyPointer to key.
Returns
None.
secEccKey_t* DmSecGetEccKey ( void  )

This function gets the local ECC key for use with LESC security.

Returns
Pointer to local ECC key.
void DmSecSetDebugEccKey ( void  )

This function sets the ECC key for use with LESC security to standard debug keys values.

Returns
None.
void DmSecSetOob ( dmConnId_t  connId,
dmSecLescOobCfg_t pConfig 
)

This function configures the DM to use OOB pairing for the given connection. The pRand and pConfirm contain the Random and Confirm values exchanged via out of band methods.

Parameters
connIdID of the connection.
pConfigPointer to OOB configuration.
Returns
Pointer to IRK.
void DmSecCalcOobReq ( uint8_t *  pRand,
uint8_t *  pPubKeyX 
)

This function calculates the local random and confirm values used in LESC OOB pairing. The operation's result is posted as a DM_SEC_CALC_OOB_IND event to the application's DM callback handler. The local rand and confirm values are exchanged with the peer via out-of-band (OOB) methods and passed into the DmSecSetOob after DM_CONN_OPEN_IND.

Parameters
pRandRandom value used in calculation.
pPubKeyXX component of the local public key.
Returns
None.
void DmSecCompareRsp ( dmConnId_t  connId,
bool_t  valid 
)

This function is called by the application in response to a DM_SEC_COMPARE_IND event. The valid parameter indicates if the compare value of the DM_SEC_COMPARE_IND was valid.

Parameters
connIdID of the connection.
validTRUE if compare value was valid
Returns
None.
uint32_t DmSecGetCompareValue ( uint8_t *  pConfirm)

This function returns the 6-digit compare value for the specified 128-bit confirm value.

Parameters
pConfirmPointer to 128-bit comfirm value.
Returns
Six-digit compare value.
uint8_t DmLlAddrType ( uint8_t  addrType)

Map an address type to a type used by LL.

Parameters
addrTypeAddress type used by Host.
Returns
Address type used by LL.
uint8_t DmHostAddrType ( uint8_t  addrType)

Map an address type to a type used by Host.

Parameters
addrTypeAddress type used by LL.
Returns
Address type used by Host.
uint16_t DmSizeOfEvt ( dmEvt_t pDmEvt)

Return size of a DM callback event.

Parameters
pDmEvtDM callback event.
Returns
Size of DM callback event.
void DmL2cConnUpdateCnf ( uint16_t  handle,
uint16_t  reason 
)

For internal use only. L2C calls this function to send the result of an L2CAP connection update response to DM.

Parameters
handleConnection handle.
reasonConnection update response reason code.
Returns
None.
void DmL2cCmdRejInd ( uint16_t  handle,
uint16_t  result 
)

For internal use only. L2C calls this function to send the result of an L2CAP Command Reject up to the application.

Parameters
handleConnection handle.
resultConnection update result code.
Returns
None.
void DmL2cConnUpdateInd ( uint8_t  identifier,
uint16_t  handle,
hciConnSpec_t pConnSpec 
)

For internal use only. L2C calls this function when it receives a connection update request from a peer device.

Parameters
identifierIdentifier value.
handleConnection handle.
pConnSpecConnection spec parameters.
Returns
None.
dmConnId_t DmConnIdByHandle ( uint16_t  handle)

For internal use only. Find the connection ID with matching handle.

Parameters
handleHandle to find.
Returns
Connection ID or DM_CONN_ID_NONE if error.
bool_t DmConnInUse ( dmConnId_t  connId)

For internal use only. Return TRUE if the connection is in use.

Parameters
connIdConnection ID.
Returns
TRUE if the connection is in use, FALSE otherwise.
uint8_t DmConnPeerAddrType ( dmConnId_t  connId)

For internal use only. Return the peer address type.

Parameters
connIdConnection ID.
Returns
Peer address type.
uint8_t* DmConnPeerAddr ( dmConnId_t  connId)

For internal use only. Return the peer device address.

Parameters
connIdConnection ID.
Returns
Pointer to peer device address.
uint8_t DmConnLocalAddrType ( dmConnId_t  connId)

For internal use only. Return the local address type.

Parameters
connIdConnection ID.
Returns
Local address type.
uint8_t* DmConnLocalAddr ( dmConnId_t  connId)

For internal use only. Return the local address.

Parameters
connIdConnection ID.
Returns
Pointer to local address.
uint8_t* DmConnPeerRpa ( dmConnId_t  connId)

For internal use only. Return the peer resolvable private address (RPA).

Parameters
connIdConnection ID.
Returns
Pointer to peer RPA.
uint8_t* DmConnLocalRpa ( dmConnId_t  connId)

For internal use only. Return the local resolvable private address (RPA).

Parameters
connIdConnection ID.
Returns
Pointer to local RPA.
uint8_t DmConnSecLevel ( dmConnId_t  connId)

For internal use only. Return the security level of the connection.

Parameters
connIdConnection ID.
Returns
Security level of the connection.
void DmSmpEncryptReq ( dmConnId_t  connId,
uint8_t  secLevel,
uint8_t *  pKey 
)

For internal use only. This function is called by SMP to request encryption.

Parameters
connIdDM connection ID.
secLevelSecurity level of pairing when key was exchanged.
pKeyPointer to key.
Returns
None.
void DmSmpCbackExec ( dmEvt_t pDmEvt)

For internal use only. Execute DM callback from SMP procedures.

Parameters
pDmEvtPointer to callback event data.
Returns
None.
uint8_t* DmSecGetLocalCsrk ( void  )

For internal use only. This function gets the local CSRK used by the device.

Returns
Pointer to CSRK.
uint8_t* DmSecGetLocalIrk ( void  )

For internal use only. This function gets the local IRK used by the device.

Returns
Pointer to IRK.
void DmReadRemoteFeatures ( dmConnId_t  connId)

For internal use only. Read the features of the remote device.

Parameters
connIdConnection identifier.
Returns
None.
void DmReadRemoteVerInfo ( dmConnId_t  connId)

Read the version info of the remote device.

Parameters
connIdConnection identifier.
Returns
None.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.