Mistake on this page?
Report an issue in GitHub or email us
Data Structures | Macros | Typedefs
STACK_DM_API

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. More...
 

Typedefs

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

GAP Device Role

Connectable GAP Roles.

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

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. More...
 
#define DM_DISC_MODE_LIMITED   1
 GAP limited discoverable mode. More...
 
#define DM_DISC_MODE_GENERAL   2
 GAP general discoverable mode. More...
 

GAP Advertising Type

Type of connectable or disconverable advertising to perform.

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

GAP AE Advertising Types

Advertising extension types - AE only.

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

GAP Advertising Report Type

Type of an advertising report observed while scanning.

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

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. More...
 
#define DM_DATA_LOC_SCAN   1
 Locate data in the scan response data. More...
 

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. More...
 
#define DM_SCAN_TYPE_ACTIVE   1
 Active scan. More...
 

GAP Advertising Channel Map

Advertising channel map codes

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

DM Client IDs

The client ID parameter to function DmConnRegister()

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

DM Unknown IDs

Values for unknown or unspecificed device identifiers.

#define DM_CONN_ID_NONE   0
 Unknown connection ID or other error. More...
 
#define DM_SYNC_ID_NONE   0
 Unknown sync ID or other error. More...
 
#define DM_CIG_ID_NONE   0xFF
 Unknown Connected Isochronous Group (CIG) ID or other error. More...
 
#define DM_CIS_ID_NONE   0xFF
 Unknown Connected Isochronous Stream (CIS) ID or other error. More...
 

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. More...
 
#define DM_ADDR_RANDOM   0x01
 Random device address. More...
 
#define DM_ADDR_PUBLIC_IDENTITY   0x02
 Public identity address (corresponds to resolved private address) More...
 
#define DM_ADDR_RANDOM_IDENTITY   0x03
 Random (static) identity address (corresponds to resolved private address) More...
 
#define DM_ADDR_RANDOM_UNRESOLVED   0xFE
 Random device address (Controller unable to resolve) More...
 
#define DM_ADDR_NONE   0xFF
 No address provided (anonymous) More...
 

GAP Advertising Data Types

Advertising data types flags.

#define DM_ADV_TYPE_FLAGS   0x01
 Flag bits. More...
 
#define DM_ADV_TYPE_16_UUID_PART   0x02
 Partial list of 16 bit UUIDs. More...
 
#define DM_ADV_TYPE_16_UUID   0x03
 Complete list of 16 bit UUIDs. More...
 
#define DM_ADV_TYPE_32_UUID_PART   0x04
 Partial list of 32 bit UUIDs. More...
 
#define DM_ADV_TYPE_32_UUID   0x05
 Complete list of 32 bit UUIDs. More...
 
#define DM_ADV_TYPE_128_UUID_PART   0x06
 Partial list of 128 bit UUIDs. More...
 
#define DM_ADV_TYPE_128_UUID   0x07
 Complete list of 128 bit UUIDs. More...
 
#define DM_ADV_TYPE_SHORT_NAME   0x08
 Shortened local name. More...
 
#define DM_ADV_TYPE_LOCAL_NAME   0x09
 Complete local name. More...
 
#define DM_ADV_TYPE_TX_POWER   0x0A
 TX power level. More...
 
#define DM_ADV_TYPE_SM_TK_VALUE   0x10
 Security manager TK value. More...
 
#define DM_ADV_TYPE_SM_OOB_FLAGS   0x11
 Security manager OOB flags. More...
 
#define DM_ADV_TYPE_CONN_INTERVAL   0x12
 Slave preferred connection interval. More...
 
#define DM_ADV_TYPE_SIGNED_DATA   0x13
 Signed data. More...
 
#define DM_ADV_TYPE_16_SOLICIT   0x14
 Service soliticiation list of 16 bit UUIDs. More...
 
#define DM_ADV_TYPE_128_SOLICIT   0x15
 Service soliticiation list of 128 bit UUIDs. More...
 
#define DM_ADV_TYPE_SERVICE_DATA   0x16
 Service data - 16-bit UUID. More...
 
#define DM_ADV_TYPE_PUBLIC_TARGET   0x17
 Public target address. More...
 
#define DM_ADV_TYPE_RANDOM_TARGET   0x18
 Random target address. More...
 
#define DM_ADV_TYPE_APPEARANCE   0x19
 Device appearance. More...
 
#define DM_ADV_TYPE_ADV_INTERVAL   0x1A
 Advertising interval. More...
 
#define DM_ADV_TYPE_BD_ADDR   0x1B
 LE Bluetooth device address. More...
 
#define DM_ADV_TYPE_ROLE   0x1C
 LE role. More...
 
#define DM_ADV_TYPE_32_SOLICIT   0x1F
 Service soliticiation list of 32 bit UUIDs. More...
 
#define DM_ADV_TYPE_SVC_DATA_32   0x20
 Service data - 32-bit UUID. More...
 
#define DM_ADV_TYPE_SVC_DATA_128   0x21
 Service data - 128-bit UUID. More...
 
#define DM_ADV_TYPE_LESC_CONFIRM   0x22
 LE Secure Connections confirm value. More...
 
#define DM_ADV_TYPE_LESC_RANDOM   0x23
 LE Secure Connections random value. More...
 
#define DM_ADV_TYPE_URI   0x24
 URI. More...
 
#define DM_ADV_TYPE_INDOOR_POS   0x25
 Indoor positioning service. More...
 
#define DM_ADV_TYPE_TRANS_DISC   0x26
 Transport discovery service. More...
 
#define DM_ADV_TYPE_LE_SUP_FEAT   0x27
 LE supported features. More...
 
#define DM_ADV_TYPE_CH_MAP_UPD_IND   0x28
 Channel map update indication. More...
 
#define DM_ADV_TYPE_PB_ADV   0x29
 PB-ADV. More...
 
#define DM_ADV_TYPE_MESH_MSG   0x2A
 Mesh message. More...
 
#define DM_ADV_TYPE_MESH_BEACON   0x2B
 Mesh beacon. More...
 
#define DM_ADV_TYPE_BIG_INFO   0x2C
 BIG Info. More...
 
#define DM_ADV_TYPE_BCAST_CODE   0x2D
 Mesh beacon. More...
 
#define DM_ADV_TYPE_3D_INFO_DATA   0x3D
 3D information data More...
 
#define DM_ADV_TYPE_MANUFACTURER   0xFF
 Manufacturer specific data. More...
 

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. More...
 
#define DM_FLAG_LE_GENERAL_DISC   0x02
 General discoverable flag. More...
 
#define DM_FLAG_LE_BREDR_NOT_SUP   0x04
 BR/EDR not supported flag. More...
 

GAP Advertising Data Element Indexes

Advertising data element indexes.

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

GAP Advertising URI

Advertising URI Scheme

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

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. More...
 
#define DM_GAP_GEN_DISC_SCAN_MIN   10240
 Minimum scan duration for general discovery. More...
 
#define DM_GAP_LIM_DISC_SCAN_MIN   10240
 Minimum scan duration for limited discovery. More...
 
#define DM_GAP_CONN_PARAM_TIMEOUT   30000
 Connection parameter update timeout. More...
 
#define DM_GAP_SCAN_FAST_PERIOD   30720
 Minimum time to perform scanning when user initiated. More...
 
#define DM_GAP_ADV_FAST_PERIOD   30000
 Minimum time to perform advertising when user initiated. More...
 

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

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

GAP Connection Slave Latency

#define DM_GAP_CONN_EST_LATENCY   0
 GAP connection establishment slaves latency. More...
 

GAP Connection Interval

GAP connection interval in 1.25ms units.

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

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. More...
 
#define DM_GAP_CONN_EST_MAX_CE_LEN   0
 Connection establishment maximum event length. More...
 

GAP Peripheral Privacy Characteristic Values

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

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. More...
 

GAP Security Pairing Authentication Requirements

Pairing authentication/security properties bit mask.

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

GAP Key Distribution Flags

Key distribution bit mask

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

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. More...
 
#define DM_KEY_PEER_LTK   0x02
 LTK received from peer device. More...
 
#define DM_KEY_IRK   0x04
 IRK and identity info of peer device. More...
 
#define DM_KEY_CSRK   0x08
 CSRK of peer device. More...
 

GAP Security Level

GAP Mode 1 Security Levels

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

GAP Broadcast Security Level

GAP Mode 3 Security Levels

#define DM_SEC_LEVEL_BCAST_NONE   0
 No security (no authentication and no encryption) More...
 
#define DM_SEC_LEVEL_BCAST_UNAUTH   1
 Use of unauthenticated Broadcast_Code. More...
 
#define DM_SEC_LEVEL_BCAST_AUTH   2
 Use of authenticated Broadcast_Code. More...
 

GAP Random Address Types

Random address type masks.

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

GAP Random Address Macros

Macros for identifying address type.

#define DM_RAND_ADDR_GET(addr)    ((addr)[5] & 0xC0)
 Get the type of random address. More...
 
#define DM_RAND_ADDR_SET(addr, type)    {(addr)[5] = ((addr)[5] & 0x3F) | (type);}
 Set the type of random address. More...
 
#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). More...
 
#define DM_PRIV_MODE_DEVICE   0x01
 Device privacy mode. More...
 

DM Internal State

Connection busy or idle state

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

DM Internal State Flags

Connection busy/idle state bitmask.

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

GAP Filter Policy Modes

Filter policy modes.

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

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. More...
 
#define DM_ERR_ATT_RX_PDU_LEN_EXCEEDED   0x02
 Configured ATT MTU exceeded maximum RX PDU length. More...
 
#define DM_ERR_L2C_RX_PDU_LEN_EXCEEDED   0x03
 Registered COC MPS exceeded maximum RX PDU length. More...
 

DM Conn CTE states

Internal states of the DM conn CTE.

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. More...
 

DM Callback Events

Events handled by the DM state machine.

#define DM_CBACK_START   0x20
 DM callback event starting value. More...
 
#define DM_CBACK_END   DM_VENDOR_SPEC_IND
 DM callback event ending value. More...
 

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 DmAdvSetSid (uint8_t advHandle, uint8_t advSid)
 Set advertising SID for the given advertising handle. 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...
 
bool_t DmPerAdvEnabled (uint8_t advHandle)
 Get status of periodic advertising handle. 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 DmSyncSetEncrypt (uint16_t syncHandle, bool_t encrypt)
 Set the encryption mode of the Broadcast Isochronous Group (BIG) corresponding to the periodic advertising train identified by the sync handle. More...
 
bool_t DmSyncEncrypted (uint16_t syncHandle)
 Get the encryption mode of the Broadcast Isochronous Group (BIG) corresponding to the periodic advertising train identified by the sync handle. More...
 
bool_t DmSyncEnabled (uint16_t syncHandle)
 Get status of sync identified by the handle. More...
 
void DmSyncInitialRptEnable (bool_t enable)
 DM enable or disable initial periodic advertisement reporting. More...
 
void DmBigSyncStart (uint8_t bigHandle, uint16_t syncHandle, uint8_t mse, uint16_t bigSyncTimeout, uint8_t numBis, uint8_t *pBis)
 Synchronize to a Broadcast Isochronous Group (BIG) described in the periodic advertising train specified by the sync handle. More...
 
void DmBigSyncStop (uint8_t bigHandle)
 Stop synchronizing or cancel the process of synchronizing to the Broadcast Isochronous Group (BIG) identified by the handle. More...
 
bool_t DmBisSyncInUse (uint16_t handle)
 For internal use only. Return TRUE if the BIS sync is in use. More...
 
void DmBigSyncSetBcastCode (uint8_t bigHandle, bool_t encrypt, bool_t authen, uint8_t *pBcastCode)
 Set the Broadcast Code for the given Broadcast Isochronous Group (BIG). More...
 
void DmBigSyncSetSecLevel (uint8_t bigHandle, uint8_t secLevel)
 Set the security level of the LE Security Mode 3 for the given Broadcast Isochronous Group (BIG). More...
 
uint8_t DmBigSyncGetSecLevel (uint16_t handle)
 Get the security level of the LE Security Mode 3 for the given Broadcast Isochronous Group (BIG) connection handle. More...
 
void DmBisMasterInit (void)
 Initialize DM BIS manager for operation as master. 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...
 
uint8_t DmConnCteGetReqState (dmConnId_t connId)
 Returns the device manager's CTE request state for a given connection. More...
 
uint8_t DmConnCteGetRspState (dmConnId_t connId)
 Returns the device manager's CTE response state for a given 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...
 
void DmConnRequestPeerSca (dmConnId_t connId)
 Request the Sleep Clock Accuracy (SCA) of a peer device. More...
 

DM CIS Functions

Functions for forming and managing Connected Isochronous Stream (CIS) streams.

void DmCisInit (void)
 Initialize DM Connected Isochronous Stream (CIS) manager. More...
 
void DmCisMasterInit (void)
 Initialize DM Connected Isochronous Stream (CIS) manager for operation as master. More...
 
void DmCisSlaveInit (void)
 Initialize DM Connected Isochronous Stream (CIS) manager for operation as slave. More...
 
void DmCisCigSetSduInterval (uint8_t cigId, uint32_t sduIntervalMToS, uint32_t sduIntervalSToM)
 Set the interval, in microseconds, of periodic SDUs for the given Connected Isochronous Group (CIG). More...
 
void DmCisCigSetSca (uint8_t cigId, uint8_t sca)
 Set the slaves clock accuracy for the given Connected Isochronous Group (CIG). More...
 
void DmCisCigSetPackingFraming (uint8_t cigId, uint8_t packing, uint32_t framing)
 Set the packing scheme and framing format for the given Connected Isochronous Group (CIG). More...
 
void DmCisCigSetTransLatInterval (uint8_t cigId, uint16_t transLatMToS, uint16_t transLatSToM)
 Set the maximum transport latency, in microseconds, for the given Connected Isochronous Group (CIG). More...
 
void DmCisCigConfig (uint8_t cigId, dmConnId_t numCis, HciCisCisParams_t *pCisParam)
 Set the parameters of one or more Connected Isochronous Streams (CISes) that are associated with the given Connected Isochronous Group (CIG). More...
 
void DmCisCigRemove (uint8_t cigId)
 Remove all the Connected Isochronous Streams (CISes) associated with the given Connected Isochronous Group (CIG). More...
 
void DmCisOpen (uint8_t numCis, uint16_t *pCisHandle, uint16_t *pAclHandle)
 Create one or more Connected Isochronous Streams (CISes) using the connections identified by the ACL connection handles. More...
 
void DmCisAccept (uint16_t handle)
 Inform the Controller to accept the request for the Connected Isochronous Stream (CIS) that is identified by the connection handle. More...
 
void DmCisReject (uint16_t handle, uint8_t reason)
 Inform the Controller to reject the request for the Connected Isochronous Stream (CIS) that is identified by the connection handle. More...
 
void DmCisClose (uint16_t handle, uint8_t reason)
 Close the Connected Isochronous Stream (CIS) connection with the given handle. More...
 
bool_t DmCisConnInUse (uint16_t handle)
 For internal use only. Return TRUE if the Connected Isochronous Stream (CIS) connection is in use. More...
 

DM BIS Functions

Functions for forming and managing Broadcast Isochronous Stream (BIS) streams and synchronization.

void DmBisSlaveInit (void)
 Initialize DM BIS manager for operation as slave. More...
 
void DmBigStart (uint8_t bigHandle, uint8_t advHandle, uint8_t numBis, uint32_t sduInterUsec, uint16_t maxSdu, uint16_t mtlMs, uint8_t rtn)
 Start a Broadcast Isochronous Group (BIG) with one or more Broadcast Isochronous Streams (BISes). More...
 
void DmBigStop (uint8_t bigHandle, uint8_t reason)
 Stop a Broadcast Isochronous Group (BIG) identified for the given handle. More...
 
bool_t DmBisInUse (uint16_t handle)
 For internal use only. Return TRUE if the BIS is in use. More...
 
void DmBigSetPhy (uint8_t bigHandle, uint8_t phyBits)
 Set the PHYs used for transmission of PDUs of Broadcast Isochronous Streams (BISes) in Broadcast Isochronous Group (BIG). More...
 
void DmBigSetPackingFraming (uint8_t bigHandle, uint8_t packing, uint32_t framing)
 Set the packing scheme and framing format for the given Broadcast Isochronous Group (BIG). More...
 
void DmBigSetBcastCode (uint8_t bigHandle, bool_t encrypt, bool_t authen, uint8_t *pBcastCode)
 Set the Broadcast Code for the given Broadcast Isochronous Group (BIG). More...
 
void DmBigSetSecLevel (uint8_t bigHandle, uint8_t secLevel)
 Set the security level of the LE Security Mode 3 for the given Broadcast Isochronous Group (BIG). More...
 
uint8_t DmBigGetSecLevel (uint16_t handle)
 Get the security level of the LE Security Mode 3 for the given Broadcast Isochronous Group (BIG) connection handle. More...
 

DM Isochronous (ISO) Functions

Functions for setting up and managing isochronous data path between the Host and the Controller.

void DmIsoInit (void)
 Initialize DM ISO manager. More...
 
void DmIsoDataPathSetup (HciIsoSetupDataPath_t *pDataPathParam)
 Setup the isochronous data path between the Host and the Controller for an established Connected Isochronous Stream (CIS) or Broadcast Isochronous Stream (BIS) identified by the connection handle parameter. More...
 
void DmIsoDataPathRemove (uint16_t handle, uint8_t directionBits)
 Remove the input and/or output data path(s) associated with a Connected Isochronous Stream (CIS) or Broadcast Isochronous Stream (BIS) identified by the connection handle parameter. More...
 
void DmDataPathConfig (HciConfigDataPath_t *pDataPathParam)
 Request the Controller to configure the data transport path in a given direction between the Controller and the Host. More...
 
void DmReadLocalSupCodecs (void)
 Read a list of the codecs supported by the Controller, as well as vendor specific codecs, which are defined by an individual manufacturer. More...
 
void DmReadLocalSupCodecCap (HciReadLocalSupCodecCaps_t *pCodecParam)
 Read a list of codec capabilities supported by the Controller for a given codec. More...
 
void DmReadLocalSupCtrDly (HciReadLocalSupControllerDly_t *pDelayParam)
 Read the range of supported Controller delays for the codec specified by Codec ID on a given transport type specified by Logical Transport Type, in the direction specified by Direction, and with the codec configuration specified by Codec Configuration. 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, uint8_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, uint8_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 DmSecSetLocalIdentityAddr (const uint8_t *pAddr, uint8_t type)
 This function sets the local identity address 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...
 
uint8_t * DmSecGetLocalIdentityAddr (void)
 For internal use only. This function gets the local identity address used by the device. More...
 
uint8_t DmSecGetLocalIdentityAddrType (void)
 For internal use only. This function gets the local identity address type 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_AD_DATA_IDX   2

Advertising data element data.

Definition at line 221 of file dm_api.h.

#define DM_AD_LEN_IDX   0

Advertising data element len.

Definition at line 219 of file dm_api.h.

#define DM_AD_TYPE_IDX   1

Advertising data element type.

Definition at line 220 of file dm_api.h.

#define DM_ADDR_NONE   0xFF

No address provided (anonymous)

Definition at line 157 of file dm_api.h.

#define DM_ADDR_PUBLIC   0x00

Public device address.

Definition at line 152 of file dm_api.h.

#define DM_ADDR_PUBLIC_IDENTITY   0x02

Public identity address (corresponds to resolved private address)

Definition at line 154 of file dm_api.h.

#define DM_ADDR_RANDOM   0x01

Random device address.

Definition at line 153 of file dm_api.h.

#define DM_ADDR_RANDOM_IDENTITY   0x03

Random (static) identity address (corresponds to resolved private address)

Definition at line 155 of file dm_api.h.

#define DM_ADDR_RANDOM_UNRESOLVED   0xFE

Random device address (Controller unable to resolve)

Definition at line 156 of file dm_api.h.

#define DM_ADV_CHAN_37   HCI_ADV_CHAN_37

Advertising channel 37.

Definition at line 112 of file dm_api.h.

#define DM_ADV_CHAN_38   HCI_ADV_CHAN_38

Advertising channel 38.

Definition at line 113 of file dm_api.h.

#define DM_ADV_CHAN_39   HCI_ADV_CHAN_39

Advertising channel 39.

Definition at line 114 of file dm_api.h.

#define DM_ADV_CHAN_ALL   (HCI_ADV_CHAN_37 | HCI_ADV_CHAN_38 | HCI_ADV_CHAN_39)

All advertising channels.

Definition at line 116 of file dm_api.h.

#define DM_ADV_CONN_DIRECT   1

Connectable directed advertising.

Definition at line 65 of file dm_api.h.

#define DM_ADV_CONN_DIRECT_LO_DUTY   4

Connectable directed low duty cycle advertising.

Definition at line 68 of file dm_api.h.

#define DM_ADV_CONN_UNDIRECT   0

Connectable and scannable undirected advertising.

Definition at line 64 of file dm_api.h.

#define DM_ADV_HANDLE_DEFAULT   0

Default Advertising handle for legacy advertising.

Definition at line 473 of file dm_api.h.

#define DM_ADV_NONCONN_UNDIRECT   3

Non-connectable and non-scannable undirected advertising.

Definition at line 67 of file dm_api.h.

#define DM_ADV_NONE   255

For internal use only.

Definition at line 78 of file dm_api.h.

#define DM_ADV_SCAN_UNDIRECT   2

Scannable undirected advertising.

Definition at line 66 of file dm_api.h.

#define DM_ADV_TYPE_128_SOLICIT   0x15

Service soliticiation list of 128 bit UUIDs.

Definition at line 179 of file dm_api.h.

#define DM_ADV_TYPE_128_UUID   0x07

Complete list of 128 bit UUIDs.

Definition at line 170 of file dm_api.h.

#define DM_ADV_TYPE_128_UUID_PART   0x06

Partial list of 128 bit UUIDs.

Definition at line 169 of file dm_api.h.

#define DM_ADV_TYPE_16_SOLICIT   0x14

Service soliticiation list of 16 bit UUIDs.

Definition at line 178 of file dm_api.h.

#define DM_ADV_TYPE_16_UUID   0x03

Complete list of 16 bit UUIDs.

Definition at line 166 of file dm_api.h.

#define DM_ADV_TYPE_16_UUID_PART   0x02

Partial list of 16 bit UUIDs.

Definition at line 165 of file dm_api.h.

#define DM_ADV_TYPE_32_SOLICIT   0x1F

Service soliticiation list of 32 bit UUIDs.

Definition at line 187 of file dm_api.h.

#define DM_ADV_TYPE_32_UUID   0x05

Complete list of 32 bit UUIDs.

Definition at line 168 of file dm_api.h.

#define DM_ADV_TYPE_32_UUID_PART   0x04

Partial list of 32 bit UUIDs.

Definition at line 167 of file dm_api.h.

#define DM_ADV_TYPE_3D_INFO_DATA   0x3D

3D information data

Definition at line 202 of file dm_api.h.

#define DM_ADV_TYPE_ADV_INTERVAL   0x1A

Advertising interval.

Definition at line 184 of file dm_api.h.

#define DM_ADV_TYPE_APPEARANCE   0x19

Device appearance.

Definition at line 183 of file dm_api.h.

#define DM_ADV_TYPE_BCAST_CODE   0x2D

Mesh beacon.

Definition at line 201 of file dm_api.h.

#define DM_ADV_TYPE_BD_ADDR   0x1B

LE Bluetooth device address.

Definition at line 185 of file dm_api.h.

#define DM_ADV_TYPE_BIG_INFO   0x2C

BIG Info.

Definition at line 200 of file dm_api.h.

#define DM_ADV_TYPE_CH_MAP_UPD_IND   0x28

Channel map update indication.

Definition at line 196 of file dm_api.h.

#define DM_ADV_TYPE_CONN_INTERVAL   0x12

Slave preferred connection interval.

Definition at line 176 of file dm_api.h.

#define DM_ADV_TYPE_FLAGS   0x01

Flag bits.

Definition at line 164 of file dm_api.h.

#define DM_ADV_TYPE_INDOOR_POS   0x25

Indoor positioning service.

Definition at line 193 of file dm_api.h.

#define DM_ADV_TYPE_LE_SUP_FEAT   0x27

LE supported features.

Definition at line 195 of file dm_api.h.

#define DM_ADV_TYPE_LESC_CONFIRM   0x22

LE Secure Connections confirm value.

Definition at line 190 of file dm_api.h.

#define DM_ADV_TYPE_LESC_RANDOM   0x23

LE Secure Connections random value.

Definition at line 191 of file dm_api.h.

#define DM_ADV_TYPE_LOCAL_NAME   0x09

Complete local name.

Definition at line 172 of file dm_api.h.

#define DM_ADV_TYPE_MANUFACTURER   0xFF

Manufacturer specific data.

Definition at line 203 of file dm_api.h.

#define DM_ADV_TYPE_MESH_BEACON   0x2B

Mesh beacon.

Definition at line 199 of file dm_api.h.

#define DM_ADV_TYPE_MESH_MSG   0x2A

Mesh message.

Definition at line 198 of file dm_api.h.

#define DM_ADV_TYPE_PB_ADV   0x29

PB-ADV.

Definition at line 197 of file dm_api.h.

#define DM_ADV_TYPE_PUBLIC_TARGET   0x17

Public target address.

Definition at line 181 of file dm_api.h.

#define DM_ADV_TYPE_RANDOM_TARGET   0x18

Random target address.

Definition at line 182 of file dm_api.h.

#define DM_ADV_TYPE_ROLE   0x1C

LE role.

Definition at line 186 of file dm_api.h.

#define DM_ADV_TYPE_SERVICE_DATA   0x16

Service data - 16-bit UUID.

Definition at line 180 of file dm_api.h.

#define DM_ADV_TYPE_SHORT_NAME   0x08

Shortened local name.

Definition at line 171 of file dm_api.h.

#define DM_ADV_TYPE_SIGNED_DATA   0x13

Signed data.

Definition at line 177 of file dm_api.h.

#define DM_ADV_TYPE_SM_OOB_FLAGS   0x11

Security manager OOB flags.

Definition at line 175 of file dm_api.h.

#define DM_ADV_TYPE_SM_TK_VALUE   0x10

Security manager TK value.

Definition at line 174 of file dm_api.h.

#define DM_ADV_TYPE_SVC_DATA_128   0x21

Service data - 128-bit UUID.

Definition at line 189 of file dm_api.h.

#define DM_ADV_TYPE_SVC_DATA_32   0x20

Service data - 32-bit UUID.

Definition at line 188 of file dm_api.h.

#define DM_ADV_TYPE_TRANS_DISC   0x26

Transport discovery service.

Definition at line 194 of file dm_api.h.

#define DM_ADV_TYPE_TX_POWER   0x0A

TX power level.

Definition at line 173 of file dm_api.h.

#define DM_ADV_TYPE_URI   0x24

URI.

Definition at line 192 of file dm_api.h.

#define DM_AUTH_BOND_FLAG   SMP_AUTH_BOND_FLAG

Bonding requested.

Definition at line 328 of file dm_api.h.

#define DM_AUTH_KP_FLAG   SMP_AUTH_KP_FLAG

Keypress notifications requested.

Definition at line 331 of file dm_api.h.

#define DM_AUTH_MITM_FLAG   SMP_AUTH_MITM_FLAG

MITM (authenticated pairing) requested.

Definition at line 329 of file dm_api.h.

#define DM_AUTH_SC_FLAG   SMP_AUTH_SC_FLAG

LE Secure Connections requested.

Definition at line 330 of file dm_api.h.

#define DM_CBACK_END   DM_VENDOR_SPEC_IND

DM callback event ending value.

Definition at line 580 of file dm_api.h.

#define DM_CBACK_START   0x20

DM callback event starting value.

Definition at line 480 of file dm_api.h.

#define DM_CIG_ID_NONE   0xFF

Unknown Connected Isochronous Group (CIG) ID or other error.

Definition at line 142 of file dm_api.h.

#define DM_CIS_ID_NONE   0xFF

Unknown Connected Isochronous Stream (CIS) ID or other error.

Definition at line 145 of file dm_api.h.

#define DM_CLIENT_ID_APP   3

Identifier for the application.

Definition at line 126 of file dm_api.h.

#define DM_CLIENT_ID_ATT   0

Identifier for attribute protocol, for internal use only.

Definition at line 123 of file dm_api.h.

#define DM_CLIENT_ID_DM   2

Identifier for device manager, for internal use only.

Definition at line 125 of file dm_api.h.

#define DM_CLIENT_ID_L2C   4

Identifier for L2CAP.

Definition at line 127 of file dm_api.h.

#define DM_CLIENT_ID_MAX   5

For internal use only.

Definition at line 128 of file dm_api.h.

#define DM_CLIENT_ID_SMP   1

Identifier for security manager protocol, for internal use only.

Definition at line 124 of file dm_api.h.

#define DM_CONN_BUSY   1

Connection is busy.

Definition at line 416 of file dm_api.h.

#define DM_CONN_ID_NONE   0

Unknown connection ID or other error.

Definition at line 136 of file dm_api.h.

#define DM_CONN_IDLE   0

Connection is idle.

Definition at line 415 of file dm_api.h.

#define DM_DATA_LOC_ADV   0

Locate data in the advertising data.

Definition at line 96 of file dm_api.h.

#define DM_DATA_LOC_SCAN   1

Locate data in the scan response data.

Definition at line 97 of file dm_api.h.

#define DM_DEFAULT_EST_SUP_TIMEOUT   2000

Connection establishment supervision timeout default, in 10ms units.

Definition at line 321 of file dm_api.h.

#define DM_DISC_MODE_GENERAL   2

GAP general discoverable mode.

Definition at line 57 of file dm_api.h.

#define DM_DISC_MODE_LIMITED   1

GAP limited discoverable mode.

Definition at line 56 of file dm_api.h.

#define DM_DISC_MODE_NONE   0

GAP non-discoverable.

Definition at line 55 of file dm_api.h.

#define DM_ERR_ATT_RX_PDU_LEN_EXCEEDED   0x02

Configured ATT MTU exceeded maximum RX PDU length.

Definition at line 448 of file dm_api.h.

#define DM_ERR_L2C_RX_PDU_LEN_EXCEEDED   0x03

Registered COC MPS exceeded maximum RX PDU length.

Definition at line 449 of file dm_api.h.

#define DM_ERR_SMP_RX_PDU_LEN_EXCEEDED   0x01

LESC key length exceeded maximum RX PDU length.

Definition at line 447 of file dm_api.h.

#define DM_EXT_ADV_CONN_UNDIRECT   5

Connectable undirected advertising.

Definition at line 75 of file dm_api.h.

#define DM_EXT_ADV_NONCONN_DIRECT   6

Non-connectable and non-scannable directed advertising.

Definition at line 76 of file dm_api.h.

#define DM_EXT_ADV_SCAN_DIRECT   7

Scannable directed advertising.

Definition at line 77 of file dm_api.h.

#define DM_FILT_POLICY_MODE_ADV   0

Advertising filter policy mode.

Definition at line 437 of file dm_api.h.

#define DM_FILT_POLICY_MODE_INIT   2

Initiator filter policy mode.

Definition at line 439 of file dm_api.h.

#define DM_FILT_POLICY_MODE_SCAN   1

Scanning filter policy mode.

Definition at line 438 of file dm_api.h.

#define DM_FILT_POLICY_MODE_SYNC   3

Synchronization filter policy mode.

Definition at line 440 of file dm_api.h.

#define DM_FLAG_LE_BREDR_NOT_SUP   0x04

BR/EDR not supported flag.

Definition at line 212 of file dm_api.h.

#define DM_FLAG_LE_GENERAL_DISC   0x02

General discoverable flag.

Definition at line 211 of file dm_api.h.

#define DM_FLAG_LE_LIMITED_DISC   0x01

Limited discoverable flag.

Definition at line 210 of file dm_api.h.

#define DM_GAP_ADV_CODED_FAST_INT_MAX_1   288

Maximum advertising interval 1 when user initiated on LE Coded PHY.

Definition at line 277 of file dm_api.h.

#define DM_GAP_ADV_CODED_FAST_INT_MAX_2   720

Maximum advertising interval 2 when user initiated on LE Coded PHY.

Definition at line 279 of file dm_api.h.

#define DM_GAP_ADV_CODED_FAST_INT_MIN_1   144

Minimum advertising interval 1 when user initiated on LE Coded PHY.

Definition at line 276 of file dm_api.h.

#define DM_GAP_ADV_CODED_FAST_INT_MIN_2   480

Minimum advertising interval 2 when user initiated on LE Coded PHY.

Definition at line 278 of file dm_api.h.

#define DM_GAP_ADV_CODED_SLOW_INT_MAX   5760

Maximum advertising interval when background advertising on LE Coded PHY.

Definition at line 281 of file dm_api.h.

#define DM_GAP_ADV_CODED_SLOW_INT_MIN   4800

Minimum advertising interval when background advertising on LE Coded PHY.

Definition at line 280 of file dm_api.h.

#define DM_GAP_ADV_FAST_INT_MAX_1   96

Maximum advertising interval 1 when user initiated.

Definition at line 257 of file dm_api.h.

#define DM_GAP_ADV_FAST_INT_MAX_2   240

Maximum advertising interval 2 when user initiated.

Definition at line 259 of file dm_api.h.

#define DM_GAP_ADV_FAST_INT_MIN_1   48

Minimum advertising interval 1 when user initiated.

Definition at line 256 of file dm_api.h.

#define DM_GAP_ADV_FAST_INT_MIN_2   160

Minimum advertising interval 2 when user initiated.

Definition at line 258 of file dm_api.h.

#define DM_GAP_ADV_FAST_PERIOD   30000

Minimum time to perform advertising when user initiated.

Definition at line 241 of file dm_api.h.

#define DM_GAP_ADV_SLOW_INT_MAX   1920

Maximum advertising interval when background advertising.

Definition at line 261 of file dm_api.h.

#define DM_GAP_ADV_SLOW_INT_MIN   1600

Minimum advertising interval when background advertising.

Definition at line 260 of file dm_api.h.

#define DM_GAP_CONN_EST_LATENCY   0

GAP connection establishment slaves latency.

Definition at line 289 of file dm_api.h.

#define DM_GAP_CONN_EST_MAX_CE_LEN   0

Connection establishment maximum event length.

Definition at line 305 of file dm_api.h.

#define DM_GAP_CONN_EST_MIN_CE_LEN   0

Connection establishment minimum event length.

Definition at line 304 of file dm_api.h.

#define DM_GAP_CONN_PARAM_TIMEOUT   30000

Connection parameter update timeout.

Definition at line 239 of file dm_api.h.

#define DM_GAP_GEN_DISC_SCAN_MIN   10240

Minimum scan duration for general discovery.

Definition at line 237 of file dm_api.h.

#define DM_GAP_INITIAL_CONN_INT_MAX   40

Maximum initial connection interval.

Definition at line 297 of file dm_api.h.

#define DM_GAP_INITIAL_CONN_INT_MIN   24

Minimum initial connection interval.

Definition at line 296 of file dm_api.h.

#define DM_GAP_LIM_ADV_TIMEOUT   180000

Maximum advertising duration in limited discoverable mode.

Definition at line 236 of file dm_api.h.

#define DM_GAP_LIM_DISC_SCAN_MIN   10240

Minimum scan duration for limited discovery.

Definition at line 238 of file dm_api.h.

#define DM_GAP_PRIV_DISABLED   0

Privacy Disabled.

Definition at line 312 of file dm_api.h.

#define DM_GAP_PRIV_ENABLED   1

Privacy Enabled.

Definition at line 313 of file dm_api.h.

#define DM_GAP_SCAN_CODED_FAST_INT_MAX   288

Maximum scan interval when user initiated on LE Coded PHY.

Definition at line 270 of file dm_api.h.

#define DM_GAP_SCAN_CODED_FAST_INT_MIN   144

Minimum scan interval when user initiated on LE Coded PHY.

Definition at line 269 of file dm_api.h.

#define DM_GAP_SCAN_CODED_FAST_WINDOW   144

Scan window when user initiated on LE Coded PHY.

Definition at line 271 of file dm_api.h.

#define DM_GAP_SCAN_CODED_SLOW_INT_1   6144

Scan interval 1 when background scannning on LE Coded PHY.

Definition at line 272 of file dm_api.h.

#define DM_GAP_SCAN_CODED_SLOW_INT_2   12288

Scan interval 2 when background scannning on LE Coded PHY.

Definition at line 274 of file dm_api.h.

#define DM_GAP_SCAN_CODED_SLOW_WINDOW_1   54

Scan window 1 when background scanning on LE Coded PHY.

Definition at line 273 of file dm_api.h.

#define DM_GAP_SCAN_CODED_SLOW_WINDOW_2   108

Scan window 2 when background scanning on LE Coded PHY.

Definition at line 275 of file dm_api.h.

#define DM_GAP_SCAN_FAST_INT_MAX   96

Maximum scan interval when user initiated.

Definition at line 250 of file dm_api.h.

#define DM_GAP_SCAN_FAST_INT_MIN   48

Minimum scan interval when user initiated.

Definition at line 249 of file dm_api.h.

#define DM_GAP_SCAN_FAST_PERIOD   30720

Minimum time to perform scanning when user initiated.

Definition at line 240 of file dm_api.h.

#define DM_GAP_SCAN_FAST_WINDOW   48

Scan window when user initiated.

Definition at line 251 of file dm_api.h.

#define DM_GAP_SCAN_SLOW_INT_1   2048

Scan interval 1 when background scannning.

Definition at line 252 of file dm_api.h.

#define DM_GAP_SCAN_SLOW_INT_2   4096

Scan interval 2 when background scannning.

Definition at line 254 of file dm_api.h.

#define DM_GAP_SCAN_SLOW_WINDOW_1   18

Scan window 1 when background scanning.

Definition at line 253 of file dm_api.h.

#define DM_GAP_SCAN_SLOW_WINDOW_2   36

Scan window 2 when background scanning.

Definition at line 255 of file dm_api.h.

#define DM_IDLE_APP_DISC   0x0008

App framework service discovery in progress.

Definition at line 426 of file dm_api.h.

#define DM_IDLE_ATTS_DISC   0x0004

ATTS service discovery in progress.

Definition at line 425 of file dm_api.h.

#define DM_IDLE_DM_ENC   0x0002

DM Encryption setup in progress.

Definition at line 424 of file dm_api.h.

#define DM_IDLE_SMP_PAIR   0x0001

SMP pairing in progress.

Definition at line 423 of file dm_api.h.

#define DM_IDLE_USER_1   0x0010

For use by user application.

Definition at line 427 of file dm_api.h.

#define DM_IDLE_USER_2   0x0020

For use by user application.

Definition at line 428 of file dm_api.h.

#define DM_IDLE_USER_3   0x0040

For use by user application.

Definition at line 429 of file dm_api.h.

#define DM_IDLE_USER_4   0x0080

For use by user application.

Definition at line 430 of file dm_api.h.

#define DM_KEY_CSRK   0x08

CSRK of peer device.

Definition at line 350 of file dm_api.h.

#define DM_KEY_DIST_CSRK   SMP_KEY_DIST_SIGN

Distribute CSRK used for signed data.

Definition at line 340 of file dm_api.h.

#define DM_KEY_DIST_IRK   SMP_KEY_DIST_ID

Distribute IRK used for privacy.

Definition at line 339 of file dm_api.h.

#define DM_KEY_DIST_LTK   SMP_KEY_DIST_ENC

Distribute LTK used for encryption.

Definition at line 338 of file dm_api.h.

#define DM_KEY_IRK   0x04

IRK and identity info of peer device.

Definition at line 349 of file dm_api.h.

#define DM_KEY_LOCAL_LTK   0x01

LTK generated locally for this device.

Definition at line 347 of file dm_api.h.

#define DM_KEY_PEER_LTK   0x02

LTK received from peer device.

Definition at line 348 of file dm_api.h.

#define DM_PRIV_MODE_DEVICE   0x01

Device privacy mode.

Definition at line 408 of file dm_api.h.

#define DM_PRIV_MODE_NETWORK   0x00

Network privacy mode (default).

Definition at line 407 of file dm_api.h.

#define DM_RAND_ADDR_GET (   addr)    ((addr)[5] & 0xC0)

Get the type of random address.

Definition at line 389 of file dm_api.h.

#define DM_RAND_ADDR_NONRESOLV   0x00

Non-resolvable private address.

Definition at line 381 of file dm_api.h.

#define DM_RAND_ADDR_RESOLV   0x40

Resolvable private address.

Definition at line 380 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:380
#define DM_RAND_ADDR_GET(addr)
Get the type of random address.
Definition: dm_api.h:389
#define DM_ADDR_RANDOM
Random device address.
Definition: dm_api.h:153

Check for Resolvable Private Address.

Definition at line 399 of file dm_api.h.

#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:389
#define DM_RAND_ADDR_STATIC
Static address.
Definition: dm_api.h:379
#define DM_ADDR_RANDOM
Random device address.
Definition: dm_api.h:153

Check for Static Address.

Definition at line 395 of file dm_api.h.

#define DM_RAND_ADDR_SET (   addr,
  type 
)    {(addr)[5] = ((addr)[5] & 0x3F) | (type);}

Set the type of random address.

Definition at line 392 of file dm_api.h.

#define DM_RAND_ADDR_STATIC   0xC0

Static address.

Definition at line 379 of file dm_api.h.

#define DM_ROLE_MASTER   HCI_ROLE_MASTER

Role is master.

Definition at line 47 of file dm_api.h.

#define DM_ROLE_SLAVE   HCI_ROLE_SLAVE

Role is slave.

Definition at line 48 of file dm_api.h.

#define DM_RPT_CONN_DIRECT   1

Connectable directed advertising.

Definition at line 86 of file dm_api.h.

#define DM_RPT_CONN_UNDIRECT   0

Connectable and scannable undirected advertising.

Definition at line 85 of file dm_api.h.

#define DM_RPT_NONCONN_UNDIRECT   3

Non-connectable undirected advertising.

Definition at line 88 of file dm_api.h.

#define DM_RPT_SCAN_RESPONSE   4

Scan response.

Definition at line 89 of file dm_api.h.

#define DM_RPT_SCAN_UNDIRECT   2

Scannable undirected advertising.

Definition at line 87 of file dm_api.h.

#define DM_SCAN_TYPE_ACTIVE   1

Active scan.

Definition at line 105 of file dm_api.h.

#define DM_SCAN_TYPE_PASSIVE   0

Passive scan.

Definition at line 104 of file dm_api.h.

#define DM_SEC_HCI_ERR_BASE   0x20

Base value for HCI error status values for DM_SEC_PAIR_CMPL_IND.

Definition at line 354 of file dm_api.h.

#define DM_SEC_LEVEL_BCAST_AUTH   2

Use of authenticated Broadcast_Code.

Definition at line 372 of file dm_api.h.

#define DM_SEC_LEVEL_BCAST_NONE   0

No security (no authentication and no encryption)

Definition at line 370 of file dm_api.h.

#define DM_SEC_LEVEL_BCAST_UNAUTH   1

Use of unauthenticated Broadcast_Code.

Definition at line 371 of file dm_api.h.

#define DM_SEC_LEVEL_ENC   1

Connection is encrypted with unauthenticated key.

Definition at line 361 of file dm_api.h.

#define DM_SEC_LEVEL_ENC_AUTH   2

Connection is encrypted with authenticated key.

Definition at line 362 of file dm_api.h.

#define DM_SEC_LEVEL_ENC_LESC   3

Connection is encrypted with LE Secure Connections.

Definition at line 363 of file dm_api.h.

#define DM_SEC_LEVEL_NONE   0

Connection has no security.

Definition at line 360 of file dm_api.h.

#define DM_SYNC_ID_NONE   0

Unknown sync ID or other error.

Definition at line 139 of file dm_api.h.

#define DM_URI_SCHEME_HTTP   0x16

URI HTTP Scheme.

Definition at line 228 of file dm_api.h.

#define DM_URI_SCHEME_HTTPS   0x17

URI HTTPS Scheme.

Definition at line 229 of file dm_api.h.

Typedef Documentation

typedef void(* dmCback_t) (dmEvt_t *pDmEvt)

Callback type.

Definition at line 868 of file dm_api.h.

typedef uint8_t dmConnId_t

Connection identifier.

Definition at line 588 of file dm_api.h.

typedef uint8_t dmSyncId_t

Synchronization identifier.

Definition at line 591 of file dm_api.h.

Enumeration Type Documentation

anonymous enum
Enumerator
DM_CONN_CTE_STATE_IDLE 

Idle

DM_CONN_CTE_STATE_INITIATING 

Initiating CTE request

DM_CONN_CTE_STATE_RESPONDING 

Responding to CTE request

DM_CONN_CTE_STATE_SAMPLING 

Sampling received CTE

DM_CONN_CTE_STATE_STARTING 

Starting CTE request, CTE response or sampling received CTE

DM_CONN_CTE_STATE_STOPPING 

Stopping CTE request, CTE response or sampling received CTE

Definition at line 456 of file dm_api.h.

anonymous enum

DM callback events.

Enumerator
DM_RESET_CMPL_IND 

DM callback event starting value.

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_CIS_CIG_CONFIG_IND 

CIS CIG configure complete.

DM_CIS_CIG_REMOVE_IND 

CIS CIG remove complete.

DM_CIS_REQ_IND 

CIS request.

DM_CIS_OPEN_IND 

CIS connection opened.

DM_CIS_CLOSE_IND 

CIS connection closed.

DM_REQ_PEER_SCA_IND 

Request peer SCA complete.

DM_ISO_DATA_PATH_SETUP_IND 

ISO data path setup complete.

DM_ISO_DATA_PATH_REMOVE_IND 

ISO data path remove complete.

DM_DATA_PATH_CONFIG_IND 

Data path configure complete.

DM_READ_LOCAL_SUP_CODECS_IND 

Local supported codecs read.

DM_READ_LOCAL_SUP_CODEC_CAP_IND 

Local supported codec capabilities read.

DM_READ_LOCAL_SUP_CTR_DLY_IND 

Local supported controller delay read.

DM_BIG_START_IND 

BIG started.

DM_BIG_STOP_IND 

BIG stopped.

DM_BIG_SYNC_EST_IND 

BIG sync established.

DM_BIG_SYNC_EST_FAIL_IND 

BIG sync establishment failed.

DM_BIG_SYNC_LOST_IND 

BIG sync lost.

DM_BIG_SYNC_STOP_IND 

BIG sync stopped.

DM_BIG_INFO_ADV_REPORT_IND 

BIG Info advertising data received from peer device.

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 483 of file dm_api.h.

Function Documentation

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 DmAdvClearAdvSets ( void  )

Clear advertising sets.

Returns
None.
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 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 DmAdvInit ( void  )

Initialize DM legacy advertising.

Returns
None.
bool_t DmAdvModeExt ( void  )

Whether DM advertising is in extended mode.

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

Whether DM advertising is in legacy mode.

Returns
TRUE if DM advertising is in legacy mode. FALSE, otherwise.
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 DmAdvRemoveAdvSet ( uint8_t  advHandle)

Remove an advertising set.

Parameters
advHandleAdvertising handle.
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 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.
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 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 DmAdvSetFragPref ( uint8_t  advHandle,
uint8_t  fragPref 
)

Set fragment preference for advertising data.

Parameters
advHandleAdvertising handle.
fragPrefFragment preference.
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.
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 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 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 DmAdvSetSid ( uint8_t  advHandle,
uint8_t  advSid 
)

Set advertising SID for the given advertising handle.

Parameters
advHandleAdvertising handle.
advSidAdvertsing SID.
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 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.
uint8_t DmBigGetSecLevel ( uint16_t  handle)

Get the security level of the LE Security Mode 3 for the given Broadcast Isochronous Group (BIG) connection handle.

Parameters
handleBIS connection handle.
Returns
Security level.
void DmBigSetBcastCode ( uint8_t  bigHandle,
bool_t  encrypt,
bool_t  authen,
uint8_t *  pBcastCode 
)

Set the Broadcast Code for the given Broadcast Isochronous Group (BIG).

Parameters
bigHandleBIG handle.
encryptFALSE (Unencrypted) or TRUE (Encrypted).
authenFALSE (Unauthenticated) or TRUE (Authenticated).
pBcastCodeBroadcast code.
Returns
None.
void DmBigSetPackingFraming ( uint8_t  bigHandle,
uint8_t  packing,
uint32_t  framing 
)

Set the packing scheme and framing format for the given Broadcast Isochronous Group (BIG).

Parameters
bigHandleBIG handle.
packingPacking scheme.
framingIndicates format of BIS Data PDUs.
Returns
None.
void DmBigSetPhy ( uint8_t  bigHandle,
uint8_t  phyBits 
)

Set the PHYs used for transmission of PDUs of Broadcast Isochronous Streams (BISes) in Broadcast Isochronous Group (BIG).

Parameters
bigHandleBIG handle.
phyBitsPHY bit field.
Returns
None.
void DmBigSetSecLevel ( uint8_t  bigHandle,
uint8_t  secLevel 
)

Set the security level of the LE Security Mode 3 for the given Broadcast Isochronous Group (BIG).

Parameters
bigHandleBIG handle.
secLevelSecurity level.
Returns
None.
void DmBigStart ( uint8_t  bigHandle,
uint8_t  advHandle,
uint8_t  numBis,
uint32_t  sduInterUsec,
uint16_t  maxSdu,
uint16_t  mtlMs,
uint8_t  rtn 
)

Start a Broadcast Isochronous Group (BIG) with one or more Broadcast Isochronous Streams (BISes).

Parameters
bigHandleCIG identifier.
advHandleUsed to identify the periodic advertising train.
numBis;Total number of BISes in the BIG.
sduInterUsecInterval, in microseconds, of BIG SDUs.
maxSduMaximum size of SDU
mtlMsMaximum time, in milliseconds, for transmitting SDU.
rtnRetransmitted number.
Returns
None.
void DmBigStop ( uint8_t  bigHandle,
uint8_t  reason 
)

Stop a Broadcast Isochronous Group (BIG) identified for the given handle.

Parameters
bigHandleBIG identifier.
reasonReason BIG is terminated.
Returns
None.
uint8_t DmBigSyncGetSecLevel ( uint16_t  handle)

Get the security level of the LE Security Mode 3 for the given Broadcast Isochronous Group (BIG) connection handle.

Parameters
handleBIS connection handle.
Returns
Security level.
void DmBigSyncSetBcastCode ( uint8_t  bigHandle,
bool_t  encrypt,
bool_t  authen,
uint8_t *  pBcastCode 
)

Set the Broadcast Code for the given Broadcast Isochronous Group (BIG).

Parameters
bigHandleBIG handle.
encryptFALSE (Unencrypted) or TRUE (Encrypted).
authenFALSE (Unauthenticated) or TRUE (Authenticated).
pBcastCodeBroadcast code.
Returns
None.
void DmBigSyncSetSecLevel ( uint8_t  bigHandle,
uint8_t  secLevel 
)

Set the security level of the LE Security Mode 3 for the given Broadcast Isochronous Group (BIG).

Parameters
bigHandleBIG handle.
secLevelSecurity level.
Returns
None.
void DmBigSyncStart ( uint8_t  bigHandle,
uint16_t  syncHandle,
uint8_t  mse,
uint16_t  bigSyncTimeout,
uint8_t  numBis,
uint8_t *  pBis 
)

Synchronize to a Broadcast Isochronous Group (BIG) described in the periodic advertising train specified by the sync handle.

Parameters
bigHandleBIG handle.
syncHandlePeriodic advertising train handle.
mseMaximum number of subevents.
bigSyncTimeoutSynchronization timeout for the BIS, in the units of 10ms.
numBisTotal number of BISes in the BIG.
pBisList of indices of BISes (in ascending order).
Returns
None.
void DmBigSyncStop ( uint8_t  bigHandle)

Stop synchronizing or cancel the process of synchronizing to the Broadcast Isochronous Group (BIG) identified by the handle.

Note
The command also terminates the reception of BISes in the BIG specified in DmBigSyncStart, destroys the associated connection handles of the BISes in the BIG and removes the data paths for all BISes in the BIG.
Parameters
bigHandleBIG handle.
Returns
None.
bool_t DmBisInUse ( uint16_t  handle)

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

Parameters
handleBIS connection handle.
Returns
TRUE if the BIS connection is in use, FALSE otherwise.
void DmBisMasterInit ( void  )

Initialize DM BIS manager for operation as master.

Returns
None.
void DmBisSlaveInit ( void  )

Initialize DM BIS manager for operation as slave.

Returns
None.
bool_t DmBisSyncInUse ( uint16_t  handle)

For internal use only. Return TRUE if the BIS sync is in use.

Parameters
handleBIS connection handle.
Returns
TRUE if the BIS sync is in use, FALSE otherwise.
void DmCisAccept ( uint16_t  handle)

Inform the Controller to accept the request for the Connected Isochronous Stream (CIS) that is identified by the connection handle.

Parameters
handleConnection handle of the CIS.
Returns
None.
void DmCisCigConfig ( uint8_t  cigId,
dmConnId_t  numCis,
HciCisCisParams_t pCisParam 
)

Set the parameters of one or more Connected Isochronous Streams (CISes) that are associated with the given Connected Isochronous Group (CIG).

Parameters
cigIdCIG identifier.
numCisNumber of CIS to be configured.
pCisParamCIS parameters.
Returns
None.
void DmCisCigRemove ( uint8_t  cigId)

Remove all the Connected Isochronous Streams (CISes) associated with the given Connected Isochronous Group (CIG).

Parameters
cigIdCIG identifier.
Returns
None.
void DmCisCigSetPackingFraming ( uint8_t  cigId,
uint8_t  packing,
uint32_t  framing 
)

Set the packing scheme and framing format for the given Connected Isochronous Group (CIG).

Parameters
cigIdCIG identifier.
packingPacking scheme.
framingIndicates format of CIS Data PDUs.
Returns
None.
void DmCisCigSetSca ( uint8_t  cigId,
uint8_t  sca 
)

Set the slaves clock accuracy for the given Connected Isochronous Group (CIG).

Parameters
cigIdCIG identifier.
scaSlaves clck accuracy (0 if unknown).
Returns
None.
Note
The slaves clock accuracy must which must be the worst-case sleep clock accuracy of the slaves that will participate in the CIG.
void DmCisCigSetSduInterval ( uint8_t  cigId,
uint32_t  sduIntervalMToS,
uint32_t  sduIntervalSToM 
)

Set the interval, in microseconds, of periodic SDUs for the given Connected Isochronous Group (CIG).

Parameters
cigIdCIG ID.
sduIntervalMToSTime interval between start of consecutive SDUs from master Host.
sduIntervalSToMTime interval between start of consecutive SDUs from slave Host.
Returns
None.
void DmCisCigSetTransLatInterval ( uint8_t  cigId,
uint16_t  transLatMToS,
uint16_t  transLatSToM 
)

Set the maximum transport latency, in microseconds, for the given Connected Isochronous Group (CIG).

Parameters
cigIdCIG identifier.
transLatMToSMaximum time for SDU to be transported from master Controller to slave Controller.
transLatSToMMaximum time for SDU to be transported from slave Controller to master Controller.
Returns
None.
void DmCisClose ( uint16_t  handle,
uint8_t  reason 
)

Close the Connected Isochronous Stream (CIS) connection with the given handle.

Parameters
handleCIS connection handle.
reasonReason connection is being closed.
Returns
None.
bool_t DmCisConnInUse ( uint16_t  handle)

For internal use only. Return TRUE if the Connected Isochronous Stream (CIS) connection is in use.

Parameters
handleCIS connection handle.
Returns
TRUE if the CIS connection is in use, FALSE otherwise.
void DmCisInit ( void  )

Initialize DM Connected Isochronous Stream (CIS) manager.

Returns
None.
void DmCisMasterInit ( void  )

Initialize DM Connected Isochronous Stream (CIS) manager for operation as master.

Returns
None.
void DmCisOpen ( uint8_t  numCis,
uint16_t *  pCisHandle,
uint16_t *  pAclHandle 
)

Create one or more Connected Isochronous Streams (CISes) using the connections identified by the ACL connection handles.

Parameters
numCisTotal number of CISes to be created.
pCisHandleList of connection handles of CISes.
pAclHandleList of connection handles of ACLs.
Returns
None.
void DmCisReject ( uint16_t  handle,
uint8_t  reason 
)

Inform the Controller to reject the request for the Connected Isochronous Stream (CIS) that is identified by the connection handle.

Parameters
handleConnection handle of the CIS to be rejected.
reasonReason the CIS request was rejected.
Returns
None.
void DmCisSlaveInit ( void  )

Initialize DM Connected Isochronous Stream (CIS) manager for operation as slave.

Returns
None.
void DmClearPerAdvList ( void  )

DM clear periodic advertiser list.

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.
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 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.
uint8_t DmConnCteGetReqState ( dmConnId_t  connId)

Returns the device manager's CTE request state for a given connection.

Parameters
connIdConnection identifier.
Returns
The CTE request state.
uint8_t DmConnCteGetRspState ( dmConnId_t  connId)

Returns the device manager's CTE response state for a given connection.

Parameters
connIdConnection identifier.
Returns
The CTE response state.
void DmConnCteInit ( void  )

Initialize DM Connection Constant Tone Extension (CTE) module.

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 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.
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.
void DmConnInit ( void  )

Initialize DM connection manager.

Returns
None.
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* DmConnLocalAddr ( dmConnId_t  connId)

For internal use only. Return the local address.

Parameters
connIdConnection ID.
Returns
Pointer to local 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* DmConnLocalRpa ( dmConnId_t  connId)

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

Parameters
connIdConnection ID.
Returns
Pointer to local RPA.
void DmConnMasterInit ( void  )

Initialize DM connection manager for operation as legacy master.

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.
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 DmConnPeerAddrType ( dmConnId_t  connId)

For internal use only. Return the peer address type.

Parameters
connIdConnection ID.
Returns
Peer address type.
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.
void DmConnReadRssi ( dmConnId_t  connId)

Read RSSI of a given connection.

Parameters
connIdConnection identifier.
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.
void DmConnRequestPeerSca ( dmConnId_t  connId)

Request the Sleep Clock Accuracy (SCA) of a peer device.

Parameters
connIdConnection identifier.
Returns
None.
uint8_t DmConnRole ( dmConnId_t  connId)

Return the connection role indicating master or slave.

Parameters
connIdConnection identifier.
Returns
Device role.
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 DmConnSetAddrType ( uint8_t  addrType)

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

Parameters
addrTypeAddress type.
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 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.
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.
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 DmConnSlaveInit ( void  )

Initialize DM connection manager for operation as legacy slave.

Returns
None.
void DmConnUpdate ( dmConnId_t  connId,
hciConnSpec_t pConnSpec 
)

Update the connection parameters of an open connection.

Parameters
connIdConnection identifier.
pConnSpecConnection specification.
Returns
None.
void DmDataPathConfig ( HciConfigDataPath_t pDataPathParam)

Request the Controller to configure the data transport path in a given direction between the Controller and the Host.

Parameters
pDataPathParamParameters for configuring data path.
Returns
None.
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 DmDevReset ( void  )

Reset the device.

Returns
None.
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.
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.
void DmDevSetRandAddr ( uint8_t *  pAddr)

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

Parameters
pAddrRandom address.
Returns
None.
void DmDevVsInit ( uint8_t  param)

Vendor-specific controller initialization function.

Parameters
paramVendor-specific parameter.
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 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.
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 DmExtAdvInit ( void  )

Initialize DM extended advertising.

Returns
None.
void DmExtConnMasterInit ( void  )

Initialize DM connection manager for operation as extended master.

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 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 DmExtConnSlaveInit ( void  )

Initialize DM connection manager for operation as extended slave.

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 DmExtScanInit ( void  )

Initialize DM extended scanning.

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.
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.
void DmIsoDataPathRemove ( uint16_t  handle,
uint8_t  directionBits 
)

Remove the input and/or output data path(s) associated with a Connected Isochronous Stream (CIS) or Broadcast Isochronous Stream (BIS) identified by the connection handle parameter.

Parameters
handleConnection handle of CIS or BIS.
directionBitsData path direction bits.
Returns
None.
void DmIsoDataPathSetup ( HciIsoSetupDataPath_t pDataPathParam)

Setup the isochronous data path between the Host and the Controller for an established Connected Isochronous Stream (CIS) or Broadcast Isochronous Stream (BIS) identified by the connection handle parameter.

Parameters
pDataPathParamParameters to setup ISO data path.
Returns
None.
void DmIsoInit ( void  )

Initialize DM ISO manager.

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 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 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.
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.
bool_t DmLlPrivEnabled ( void  )

Whether LL Privacy is enabled.

Returns
TRUE if LL Privacy is enabled. FALSE, otherwise.
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 DmPastInit ( void  )

Initialize DM Periodic Advertising Sync Transfer (PAST) module.

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 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 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 DmPerAdvConfig ( uint8_t  advHandle)

Set the advertising parameters for periodic advertising.

Parameters
advHandleAdvertising handle.
Returns
None.
bool_t DmPerAdvEnabled ( uint8_t  advHandle)

Get status of periodic advertising handle.

Parameters
advHandleAdvertising handle.
Returns
TRUE if periodic advertising is running on that handle. FALSE, otherwise.
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.
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 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 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 DmPhyInit ( void  )

Initialize DM PHY.

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 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 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.
void DmPrivInit ( void  )

Initialize DM privacy module.

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 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 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 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 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 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 DmPrivSetResolvablePrivateAddrTimeout ( uint16_t  rpaTimeout)

Set resolvable private address timeout command.

Parameters
rpaTimeoutTimeout measured in seconds.
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 DmReadLocalSupCodecCap ( HciReadLocalSupCodecCaps_t pCodecParam)

Read a list of codec capabilities supported by the Controller for a given codec.

Parameters
pCodecParamParameters for reading local supported codec capabilities.
Returns
None.
void DmReadLocalSupCodecs ( void  )

Read a list of the codecs supported by the Controller, as well as vendor specific codecs, which are defined by an individual manufacturer.

Returns
None.
void DmReadLocalSupCtrDly ( HciReadLocalSupControllerDly_t pDelayParam)

Read the range of supported Controller delays for the codec specified by Codec ID on a given transport type specified by Logical Transport Type, in the direction specified by Direction, and with the codec configuration specified by Codec Configuration.

Parameters
pDelayParamParameters for reading local supported controller delay.
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 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.
void DmRegister ( dmCback_t  cback)

Register a callback with DM for scan and advertising events.

Parameters
cbackClient callback function.
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 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 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 DmScanInit ( void  )

Initialize DM legacy scanning.

Returns
None.
bool_t DmScanModeExt ( void  )

Whether DM scanning is in extended mode.

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

Whether DM scanning is in legacy mode.

Returns
TRUE if DM scanning is in legacy mode. FALSE, otherwise.
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.
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 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 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 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 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 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.
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 DmSecGenerateEccKeyReq ( void  )

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

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.
secEccKey_t* DmSecGetEccKey ( void  )

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

Returns
Pointer to local ECC key.
uint8_t* DmSecGetLocalCsrk ( void  )

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

Returns
Pointer to CSRK.
uint8_t* DmSecGetLocalIdentityAddr ( void  )

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

Returns
Pointer to the identity address.
uint8_t DmSecGetLocalIdentityAddrType ( void  )

For internal use only. This function gets the local identity address type used by the device.

Returns
The identity address type.
uint8_t* DmSecGetLocalIrk ( void  )

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

Returns
Pointer to IRK.
void DmSecInit ( void  )

Initialize DM security.

Returns
None.
void DmSecLescInit ( void  )

Initialize DM LE Secure Connections security.

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 DmSecPairReq ( dmConnId_t  connId,
uint8_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,
uint8_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 DmSecSetDebugEccKey ( void  )

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

Returns
None.
void DmSecSetEccKey ( secEccKey_t pKey)

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

Parameters
pKeyPointer to key.
Returns
None.
void DmSecSetLocalCsrk ( uint8_t *  pCsrk)

This function sets the local CSRK used by the device.

Parameters
pCsrkPointer to CSRK.
Returns
None.
void DmSecSetLocalIdentityAddr ( const uint8_t *  pAddr,
uint8_t  type 
)

This function sets the local identity address used by the device.

Parameters
pAddrPointer to the address.
typeType of the address.
Returns
None.
void DmSecSetLocalIrk ( uint8_t *  pIrk)

This function sets the local IRK used by the device.

Parameters
pIrkPointer to IRK.
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 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 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 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.
uint16_t DmSizeOfEvt ( dmEvt_t pDmEvt)

Return size of a DM callback event.

Parameters
pDmEvtDM callback event.
Returns
Size of DM callback event.
void DmSmpCbackExec ( dmEvt_t pDmEvt)

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

Parameters
pDmEvtPointer to callback event data.
Returns
None.
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.
bool_t DmSyncEnabled ( uint16_t  syncHandle)

Get status of sync identified by the handle.

Parameters
syncHandleSynch handle.
Returns
TRUE if sync is enabled for that handle. FALSE, otherwise.
bool_t DmSyncEncrypted ( uint16_t  syncHandle)

Get the encryption mode of the Broadcast Isochronous Group (BIG) corresponding to the periodic advertising train identified by the sync handle.

Parameters
syncHandleSynch handle.
Returns
TRUE if sync encrypted. FALSE, otherwise.
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 DmSyncSetEncrypt ( uint16_t  syncHandle,
bool_t  encrypt 
)

Set the encryption mode of the Broadcast Isochronous Group (BIG) corresponding to the periodic advertising train identified by the sync handle.

Parameters
syncHandleSynch handle.
encryptFALSE (Unencrypted) or FALSE (Encrypted).
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 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.
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.