This module includes the platform abstraction for BLE Host communication.

Classes

struct  otPlatBleDeviceAddr
 This structure represents BLE Device Address.
 
struct  otPlatBleGapConnParams
 This structure represents BLE connection parameters.
 
union  otPlatBleUuidValue
 This structure represents BLE UUID value.
 
struct  otPlatBleUuid
 This structure represents BLE UUID.
 
struct  otPlatBleGattCharacteristic
 This structure represents GATT Characteristic.
 
struct  otPlatBleGattDescriptor
 This structure represents GATT Descriptor.
 
struct  otPlatBleGattService
 Registration descriptor for a GATT service.
 
struct  otBleRadioPacket
 This structure represents an BLE packet.

Macros

#define OT_BLE_MS_TO_TICKS(x)   (((x)*1000) / OT_BLE_ADV_INTERVAL_UNIT)
 Convert the advertising interval from [ms] to [ble symbol times].

Typedefs

typedef enum otPlatBleAddressType otPlatBleAddressType
 This enum represents BLE Device Address types.
 
typedef enum otPlatBleCccdFlags otPlatBleCccdFlags
 This enumeration defines the characterstic properties flags for a Client Characteristic Configuration Descriptor (CCCD).
 
typedef struct otPlatBleDeviceAddr otPlatBleDeviceAddr
 This structure represents BLE Device Address.
 
typedef enum otPlatBleAdvMode otPlatBleAdvMode
 This enumeration defines flags for BLE advertisement mode.
 
typedef struct otPlatBleGapConnParams otPlatBleGapConnParams
 This structure represents BLE connection parameters.
 
typedef enum otPlatBleUuidType otPlatBleUuidType
 This enumeration represents BLE UUID value.
 
typedef union otPlatBleUuidValue otPlatBleUuidValue
 This structure represents BLE UUID value.
 
typedef struct otPlatBleUuid otPlatBleUuid
 This structure represents BLE UUID.
 
typedef struct otPlatBleGattCharacteristic otPlatBleGattCharacteristic
 This structure represents GATT Characteristic.
 
typedef struct otPlatBleGattDescriptor otPlatBleGattDescriptor
 This structure represents GATT Descriptor.
 
typedef struct otPlatBleGattService otPlatBleGattService
 Registration descriptor for a GATT service.
 
typedef struct otBleRadioPacket otBleRadioPacket
 This structure represents an BLE packet.
 
typedef enum otPlatBleL2capError otPlatBleL2capError
 The enum indicates the outcome of the L2CAP connection request procedure.

Enumerations

enum  {
  OT_BLE_ADDRESS_LENGTH = 6,
  OT_BLE_TIMESLOT_UNIT = 625,
  OT_BLE_CONN_INTERVAL_UNIT = 2 * OT_BLE_TIMESLOT_UNIT,
  OT_BLE_CONN_INTERVAL_MIN = 0x0006,
  OT_BLE_CONN_INTERVAL_MAX = 0x0C80,
  OT_BLE_CONN_SLAVE_LATENCY_MAX = 0x01F3,
  OT_BLE_CONN_SUPERVISOR_TIMEOUT_MIN = 0x000A,
  OT_BLE_CONN_SUPERVISOR_TIMEOUT_MAX = 0x0C80,
  OT_BLE_CONN_SUPERVISOR_UNIT = 16 * OT_BLE_TIMESLOT_UNIT,
  OT_BLE_DEV_NAME_MAX_LENGTH = 248,
  OT_BLE_ADV_DATA_MAX_LENGTH = 31,
  OT_BLE_SCAN_RESPONSE_MAX_LENGTH = 31,
  OT_BLE_ADV_INTERVAL_MIN = 0x0020,
  OT_BLE_ADV_INTERVAL_MAX = 0x4000,
  OT_BLE_ADV_INTERVAL_UNIT = OT_BLE_TIMESLOT_UNIT,
  OT_BLE_SCAN_INTERVAL_MIN = 0x0004,
  OT_BLE_SCAN_INTERVAL_MAX = 0x4000,
  OT_BLE_SCAN_INTERVAL_UNIT = OT_BLE_TIMESLOT_UNIT,
  OT_BLE_SCAN_WINDOW_MIN = 0x0004,
  OT_BLE_SCAN_WINDOW_MAX = 0x4000,
  OT_BLE_SCAN_WINDOW_UNIT = OT_BLE_TIMESLOT_UNIT,
  OT_BLE_HCI_REMOTE_USER_TERMINATED = 0x13,
  OT_BLE_INVALID_HANDLE = 0x0000,
  OT_BLE_CHARACTERISTIC_MAX_LENGTH = 512,
  OT_BLE_ATT_MTU_MAX = 511,
  OT_BLE_UUID_LENGTH = 16,
  OT_BLE_UUID_CCCD = 0x2902
}
 
enum  otPlatBleAddressType {
  OT_BLE_ADDRESS_TYPE_PUBLIC = 0,
  OT_BLE_ADDRESS_TYPE_RANDOM_STATIC = 1,
  OT_BLE_ADDRESS_TYPE_RANDOM_PRIVATE_RESOLVABLE = 2,
  OT_BLE_ADDRESS_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE = 3
}
 This enum represents BLE Device Address types.
 
enum  otPlatBleCccdFlags {
  OT_BLE_CHAR_PROP_BROADCAST = (1 << 0),
  OT_BLE_CHAR_PROP_READ = (1 << 1),
  OT_BLE_CHAR_PROP_WRITE_NO_RESPONSE = (1 << 2),
  OT_BLE_CHAR_PROP_WRITE = (1 << 3),
  OT_BLE_CHAR_PROP_NOTIFY = (1 << 4),
  OT_BLE_CHAR_PROP_INDICATE = (1 << 5),
  OT_BLE_CHAR_PROP_AUTH_SIGNED_WRITE = (1 << 6),
  OT_BLE_CHAR_PROP_EXTENDED = (1 << 7)
}
 This enumeration defines the characterstic properties flags for a Client Characteristic Configuration Descriptor (CCCD).
 
enum  otPlatBleAdvMode {
  OT_BLE_ADV_MODE_CONNECTABLE = (1 << 0),
  OT_BLE_ADV_MODE_SCANNABLE = (1 << 1)
}
 This enumeration defines flags for BLE advertisement mode.
 
enum  otPlatBleUuidType {
  OT_BLE_UUID_TYPE_NONE = 0,
  OT_BLE_UUID_TYPE_16 = 1,
  OT_BLE_UUID_TYPE_32 = 2,
  OT_BLE_UUID_TYPE_128 = 3
}
 This enumeration represents BLE UUID value.
 
enum  otPlatBleL2capError {
  OT_BLE_L2C_ERROR_NONE = 0x00,
  OT_BLE_L2C_ERROR_INVALID_PSM = 0x02,
  OT_BLE_L2C_ERROR_NO_MEM = 0x04,
  OT_BLE_L2C_ERROR_INVALID_PARAMS = 0x0b
}
 The enum indicates the outcome of the L2CAP connection request procedure.

Functions

otError otPlatBleEnable (otInstance *aInstance)
 Enable the Bluetooth Low Energy radio.
 
otError otPlatBleDisable (otInstance *aInstance)
 Disable the Bluetooth Low Energy radio.
 
otError otPlatBleReset (otInstance *aInstance)
 Reset the Bluetooth Low Energy subsystem.
 
bool otPlatBleIsEnabled (otInstance *aInstance)
 Check whether Bluetooth Low Energy radio is enabled or not.
 
void otPlatBleOnEnabled (otInstance *aInstance)
 Callback sent when Bluetooth Low Energy is ready after being enabled.
 
otError otPlatBleGapAddressGet (otInstance *aInstance, otPlatBleDeviceAddr *aAddress)
 Gets Bluetooth Device Address.
 
otError otPlatBleGapAddressSet (otInstance *aInstance, const otPlatBleDeviceAddr *aAddress)
 Sets Bluetooth Device Address.
 
otError otPlatBleGapServiceSet (otInstance *aInstance, const char *aDeviceName, uint16_t aAppearance)
 Sets BLE device name and appearance that is visible as GATT Based service.
 
otError otPlatBleGapConnParamsSet (otInstance *aInstance, const otPlatBleGapConnParams *aConnParams)
 Sets desired BLE Connection Parameters.
 
otError otPlatBleGapAdvDataSet (otInstance *aInstance, const uint8_t *aAdvData, uint8_t aAdvDataLength)
 Sets BLE Advertising packet content.
 
otError otPlatBleGapScanResponseSet (otInstance *aInstance, const uint8_t *aScanResponse, uint8_t aScanResponseLength)
 Sets BLE Scan Response packet content.
 
otError otPlatBleGapAdvStart (otInstance *aInstance, uint16_t aInterval, uint8_t aType)
 Starts BLE Advertising procedure.
 
otError otPlatBleGapAdvStop (otInstance *aInstance)
 Stops BLE Advertising procedure.
 
void otPlatBleGapOnConnected (otInstance *aInstance, uint16_t aConnectionId)
 The BLE driver calls this method to notify OpenThread that BLE Device has been connected.
 
void otPlatBleGapOnDisconnected (otInstance *aInstance, uint16_t aConnectionId)
 The BLE driver calls this method to notify OpenThread that the BLE Device has been disconnected.
 
otError otPlatBleGapScanStart (otInstance *aInstance, uint16_t aInterval, uint16_t aWindow)
 Starts BLE Scanning procedure.
 
otError otPlatBleGapScanStop (otInstance *aInstance)
 Stops BLE Scanning procedure.
 
void otPlatBleGapOnAdvReceived (otInstance *aInstance, otPlatBleDeviceAddr *aAddress, otBleRadioPacket *aPacket)
 The BLE driver calls this method to notify OpenThread that an advertisement packet has been received.
 
void otPlatBleGapOnScanRespReceived (otInstance *aInstance, otPlatBleDeviceAddr *aAddress, otBleRadioPacket *aPacket)
 The BLE driver calls this method to notify OpenThread that a scan response packet has been received.
 
otError otPlatBleGapConnect (otInstance *aInstance, otPlatBleDeviceAddr *aAddress, uint16_t aInterval, uint16_t aWindow)
 Starts BLE Connection procedure.
 
otError otPlatBleGapDisconnect (otInstance *aInstance)
 Disconnects BLE connection.
 
otError otPlatBleGattVendorUuidRegister (otInstance *aInstance, const otPlatBleUuid *aUuid)
 Registers vendor specific UUID Base.
 
otError otPlatBleGattMtuGet (otInstance *aInstance, uint16_t *aMtu)
 Reads currently use value of ATT_MTU.
 
otError otPlatBleGattClientRead (otInstance *aInstance, uint16_t aHandle)
 Sends ATT Read Request.
 
void otPlatBleGattClientOnReadResponse (otInstance *aInstance, otBleRadioPacket *aPacket)
 The BLE driver calls this method to notify OpenThread that ATT Read Response packet has been received.
 
otError otPlatBleGattClientWrite (otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket)
 Sends ATT Write Request.
 
void otPlatBleGattClientOnWriteResponse (otInstance *aInstance, uint16_t aHandle)
 The BLE driver calls this method to notify OpenThread that ATT Write Response packet has been received.
 
otError otPlatBleGattClientSubscribeRequest (otInstance *aInstance, uint16_t aHandle, bool aSubscribing)
 Subscribes for characteristic indications.
 
void otPlatBleGattClientOnSubscribeResponse (otInstance *aInstance, uint16_t aHandle)
 The BLE driver calls this method to notify OpenThread that subscribe response has been received.
 
void otPlatBleGattClientOnIndication (otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket)
 The BLE driver calls this method to notify OpenThread that an ATT Handle Value Indication has been received.
 
otError otPlatBleGattClientServicesDiscover (otInstance *aInstance)
 Performs GATT Primary Service Discovery of all services available.
 
otError otPlatBleGattClientServiceDiscover (otInstance *aInstance, const otPlatBleUuid *aUuid)
 Performs GATT Primary Service Discovery by UUID procedure of specific service.
 
void otPlatBleGattClientOnServiceDiscovered (otInstance *aInstance, uint16_t aStartHandle, uint16_t aEndHandle, uint16_t aServiceUuid, otError aError)
 The BLE driver calls this method to notify OpenThread that the next entry from GATT Primary Service Discovery has been found.
 
otError otPlatBleGattClientCharacteristicsDiscover (otInstance *aInstance, uint16_t aStartHandle, uint16_t aEndHandle)
 Performs GATT Characteristic Discovery of a service.
 
void otPlatBleGattClientOnCharacteristicsDiscoverDone (otInstance *aInstance, otPlatBleGattCharacteristic *aChars, uint16_t aCount, otError aError)
 The BLE driver calls this method to notify OpenThread that GATT Characteristic Discovery of a service has been done.
 
otError otPlatBleGattClientDescriptorsDiscover (otInstance *aInstance, uint16_t aStartHandle, uint16_t aEndHandle)
 Performs GATT Descriptor Discovery.
 
void otPlatBleGattClientOnDescriptorsDiscoverDone (otInstance *aInstance, otPlatBleGattDescriptor *aDescs, uint16_t aCount, otError aError)
 The BLE driver calls this method to notify OpenThread that GATT Descriptor Discovery has been done.
 
otError otPlatBleGattClientMtuExchangeRequest (otInstance *aInstance, uint16_t aMtu)
 Sends Exchange MTU Request.
 
void otPlatBleGattClientOnMtuExchangeResponse (otInstance *aInstance, uint16_t aMtu, otError aError)
 The BLE driver calls this method to notify OpenThread that Exchange MTU Response has been received.
 
otError otPlatBleGattServerServicesRegister (otInstance *aInstance, otPlatBleGattService *aServices)
 Registers a list of GATT Services and their enclosed Characteristics.
 
otError otPlatBleGattServerIndicate (otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket)
 Sends ATT Handle Value Indication.
 
void otPlatBleGattServerOnIndicationConfirmation (otInstance *aInstance, uint16_t aHandle)
 The BLE driver calls this method to notify OpenThread that an ATT Handle Value Confirmation has been received.
 
void otPlatBleGattServerOnWriteRequest (otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket)
 The BLE driver calls this method to notify OpenThread that an ATT Write Request packet has been received.
 
void otPlatBleGattServerOnReadRequest (otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket)
 The BLE driver calls this method to notify OpenThread that an ATT Read Request packet has been received.
 
void otPlatBleGattServerOnSubscribeRequest (otInstance *aInstance, uint16_t aHandle, bool aSubscribing)
 The BLE driver calls this method to notify OpenThread that an ATT Subscription Request packet has been received.
 
otError otPlatBleL2capConnectionRequest (otInstance *aInstance, uint16_t aPsm, uint16_t aMtu, uint16_t *aCid)
 Sends LE Credit Based Connection Request.
 
void otPlatBleL2capOnConnectionRequest (otInstance *aInstance, uint16_t aPsm, uint16_t aMtu, uint16_t aPeerCid)
 The BLE driver calls this method to notify OpenThread that an LE Credit Based Connection Request packet has been received.
 
otError otPlatBleL2capConnectionResponse (otInstance *aInstance, otPlatBleL2capError aError, uint16_t aMtu, uint16_t *aCid)
 Sends LE Credit Based Connection Response.
 
void otPlatBleL2capOnConnectionResponse (otInstance *aInstance, otPlatBleL2capError aError, uint16_t aMtu, uint16_t aPeerCid)
 The BLE driver calls this method to notify OpenThread that an LE Credit Based Connection Response packet has been received.
 
otError otPlatBleL2capSduSend (otInstance *aInstance, uint16_t aLocalCid, uint16_t aPeerCid, otBleRadioPacket *aPacket)
 Sends an SDU on an L2CAP channel.
 
void otPlatBleL2capOnSduReceived (otInstance *aInstance, uint16_t aLocalCid, uint16_t aPeerCid, otBleRadioPacket *aPacket)
 The BLE driver calls this method to notify OpenThread that an L2CAP SDU has been received.
 
void otPlatBleL2capOnSduSent (otInstance *aInstance)
 The BLE driver calls this method to notify OpenThread that an L2CAP SDU has been sent.
 
otError otPlatBleL2capDisconnect (otInstance *aInstance, uint16_t aLocalCid, uint16_t aPeerCid)
 Sends an L2CAP Disconnection Request.
 
void otPlatBleL2capOnDisconnect (otInstance *aInstance, uint16_t aLocalCid, uint16_t aPeerCid)
 The BLE driver calls this method to notify OpenThread that an L2CAP Disconnection Request has been received.

Detailed Description

This module includes the platform abstraction for BLE Host communication.

The platform needs to implement Bluetooth LE 4.2 or higher.

Typedef Documentation

◆ otPlatBleCccdFlags

This enumeration defines the characterstic properties flags for a Client Characteristic Configuration Descriptor (CCCD).

See v4.2 [Vol 3, Part G] 3.3.1.1 Characteristic Properties - Table 3.5

◆ otPlatBleL2capError

The enum indicates the outcome of the L2CAP connection request procedure.

See Bluetooth v5.0 | Vol 3, Part A, 4.23, Table 4.20.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
OT_BLE_ADDRESS_LENGTH 

The size of the Bluetooth Device Address [bytes].

OT_BLE_TIMESLOT_UNIT 

Time slot duration on PHY layer in microseconds (0.625ms).

OT_BLE_CONN_INTERVAL_UNIT 

Unit used to calculate connection interval (1.25ms)

OT_BLE_CONN_INTERVAL_MIN 

Minimum allowed connection interval in OT_BLE_CONN_INTERVAL_UNIT units (7.5ms).

See v4.2 [Vol 2, Part E] page 946

OT_BLE_CONN_INTERVAL_MAX 

Maximum allowed connection interval in OT_BLE_CONN_INTERVAL_UNIT units (4s).

See v4.2 [Vol 2, Part E] page 946

OT_BLE_CONN_SLAVE_LATENCY_MAX 

Maximum allowed slave latency in units of connection events.

See v4.2 [Vol 2, Part E] page 946

OT_BLE_CONN_SUPERVISOR_TIMEOUT_MIN 

Minimum allowed connection timeout in units of 10ms (100ms).

See v4.2 [Vol 2, Part E] page 946

OT_BLE_CONN_SUPERVISOR_TIMEOUT_MAX 

Maximum allowed connection timeout (32s).

See v4.2 [Vol 2, Part E] page 946

OT_BLE_CONN_SUPERVISOR_UNIT 

Unit used to calculate connection supervisor timeout (10ms).

OT_BLE_DEV_NAME_MAX_LENGTH 

Maximum length of the device name characteristic [bytes].

OT_BLE_ADV_DATA_MAX_LENGTH 

Maximum length of advertising data [bytes].

OT_BLE_SCAN_RESPONSE_MAX_LENGTH 

Maximum length of scan response data [bytes].

OT_BLE_ADV_INTERVAL_MIN 

Minimum allowed interval for advertising packet in OT_BLE_ADV_INTERVAL_UNIT units (20ms).

OT_BLE_ADV_INTERVAL_MAX 

Maximum allowed interval for advertising packet in OT_BLE_ADV_INTERVAL_UNIT units (10.24s).

OT_BLE_ADV_INTERVAL_UNIT 

Unit used to calculate interval duration (0.625ms).

OT_BLE_SCAN_INTERVAL_MIN 

Minimum allowed scan interval (2.5ms).

OT_BLE_SCAN_INTERVAL_MAX 

Maximum allowed scan interval (10.24s).

OT_BLE_SCAN_INTERVAL_UNIT 

Unit used to calculate scan interval duration (0.625ms).

OT_BLE_SCAN_WINDOW_MIN 

Minimum allowed scan window in OT_BLE_TIMESLOT_UNIT units (2.5ms).

OT_BLE_SCAN_WINDOW_MAX 

Maximum allowed scan window in OT_BLE_TIMESLOT_UNIT units (10.24s).

OT_BLE_SCAN_WINDOW_UNIT 

Unit used to calculate scan window duration (0.625ms).

OT_BLE_HCI_REMOTE_USER_TERMINATED 

BLE HCI code for remote user terminated connection.

OT_BLE_INVALID_HANDLE 

Value of invalid/unknown handle.

OT_BLE_CHARACTERISTIC_MAX_LENGTH 

Maximum size of BLE Characteristic [bytes].

OT_BLE_ATT_MTU_MAX 

Maximum value of ATT_MTU [bytes].

OT_BLE_UUID_LENGTH 

Length of full BLE UUID in bytes.

OT_BLE_UUID_CCCD 

Uuid of Client Configuration Characteristic Descriptor.

◆ otPlatBleAddressType

This enum represents BLE Device Address types.

Enumerator
OT_BLE_ADDRESS_TYPE_PUBLIC 

Bluetooth public device address.

OT_BLE_ADDRESS_TYPE_RANDOM_STATIC 

Bluetooth random static address.

OT_BLE_ADDRESS_TYPE_RANDOM_PRIVATE_RESOLVABLE 

Bluetooth random private resolvable address.

OT_BLE_ADDRESS_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE 

Bluetooth random private non-resolvable address.

◆ otPlatBleAdvMode

This enumeration defines flags for BLE advertisement mode.

Enumerator
OT_BLE_ADV_MODE_CONNECTABLE 

If set, advertising device will allow connections to be initiated.

OT_BLE_ADV_MODE_SCANNABLE 

If set, advertising device will respond to scan requests.

◆ otPlatBleCccdFlags

This enumeration defines the characterstic properties flags for a Client Characteristic Configuration Descriptor (CCCD).

See v4.2 [Vol 3, Part G] 3.3.1.1 Characteristic Properties - Table 3.5

Enumerator
OT_BLE_CHAR_PROP_BROADCAST 

If set, permits broadcasts of the Characteristic Value using Characteristic Configuration Descriptor.

OT_BLE_CHAR_PROP_READ 

If set, permits reads of the Characteristic Value.

OT_BLE_CHAR_PROP_WRITE_NO_RESPONSE 

If set, permit writes of the Characteristic Value without response.

OT_BLE_CHAR_PROP_WRITE 

If set, permits writes of the Characteristic Value with response.

OT_BLE_CHAR_PROP_NOTIFY 

If set, permits notifications of a Characteristic Value without acknowledgement.

OT_BLE_CHAR_PROP_INDICATE 

If set, permits indications of a Characteristic Value with acknowledgement.

OT_BLE_CHAR_PROP_AUTH_SIGNED_WRITE 

If set, permits signed writes to the Characteristic Value.

OT_BLE_CHAR_PROP_EXTENDED 

If set, additional characteristic properties are defined in the Characteristic Extended Properties Descriptor.

◆ otPlatBleL2capError

The enum indicates the outcome of the L2CAP connection request procedure.

See Bluetooth v5.0 | Vol 3, Part A, 4.23, Table 4.20.

Enumerator
OT_BLE_L2C_ERROR_NONE 

Connection successful.

OT_BLE_L2C_ERROR_INVALID_PSM 

Connection refused – LE_PSM not supported.

OT_BLE_L2C_ERROR_NO_MEM 

Connection refused – no resources available.

OT_BLE_L2C_ERROR_INVALID_PARAMS 

Connection refused – unacceptable parameters.

◆ otPlatBleUuidType

This enumeration represents BLE UUID value.

Enumerator
OT_BLE_UUID_TYPE_NONE 

UUID uninitialized value.

OT_BLE_UUID_TYPE_16 

UUID represented by 16-bit value.

OT_BLE_UUID_TYPE_32 

UUID represented by 32-bit value.

OT_BLE_UUID_TYPE_128 

UUID represented by 128-bit value.

Function Documentation

◆ otPlatBleDisable()

otError otPlatBleDisable ( otInstance aInstance)

Disable the Bluetooth Low Energy radio.

When disabled, the BLE stack will flush event queues and not generate new events. The BLE peripheral is turned off or put into a low power sleep state. Any dynamic memory used by the stack should be released, but static memory may remain reserved.

Parameters
[in]aInstanceThe OpenThread instance structure.
Return values
OT_ERROR_NONESuccessfully transitioned to disabled.
OT_ERROR_FAILEDThe BLE radio could not be disabled.

◆ otPlatBleEnable()

otError otPlatBleEnable ( otInstance aInstance)

Enable the Bluetooth Low Energy radio.

Note
BLE Device should use the highest ATT_MTU supported that does not exceed OT_BLE_ATT_MTU_MAX octets.
Parameters
[in]aInstanceThe OpenThread instance structure.
Return values
OT_ERROR_NONESuccessfully enabled.
OT_ERROR_FAILEDThe BLE radio could not be enabled.

◆ otPlatBleGapAddressGet()

otError otPlatBleGapAddressGet ( otInstance aInstance,
otPlatBleDeviceAddr aAddress 
)

Gets Bluetooth Device Address.

Parameters
[in]aInstanceThe OpenThread instance structure.
[out]aAddressThe pointer to Bluetooth Device Address.
Return values
OT_ERROR_NONERequest has been successfully done.
OT_ERROR_INVALID_ARGSInvalid parameters has been supplied.

◆ otPlatBleGapAddressSet()

otError otPlatBleGapAddressSet ( otInstance aInstance,
const otPlatBleDeviceAddr aAddress 
)

Sets Bluetooth Device Address.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aAddressThe pointer to Bluetooth Device Address.
Return values
OT_ERROR_NONERequest has been successfully done.
OT_ERROR_INVALID_ARGSInvalid parameters has been supplied.

◆ otPlatBleGapAdvDataSet()

otError otPlatBleGapAdvDataSet ( otInstance aInstance,
const uint8_t *  aAdvData,
uint8_t  aAdvDataLength 
)

Sets BLE Advertising packet content.

Note
This function shall be used only for BLE Peripheral role.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aAdvDataA pointer to advertising data content in raw format.
[in]aAdvDataLengthThe size of advertising data. Shall not exceed OT_BLE_ADV_DATA_MAX_LENGTH.
Return values
OT_ERROR_NONEAdvertising data has been successfully set.
OT_ERROR_INVALID_ARGSInvalid advertising data has been supplied.

◆ otPlatBleGapAdvStart()

otError otPlatBleGapAdvStart ( otInstance aInstance,
uint16_t  aInterval,
uint8_t  aType 
)

Starts BLE Advertising procedure.

The BLE device shall use undirected advertising with no filter applied. A single BLE Advertising packet must be sent on all advertising channels (37, 38 and 39).

Note
This function shall be used only for BLE Peripheral role.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aIntervalThe interval between subsequent advertising packets in OT_BLE_ADV_INTERVAL_UNIT units. Shall be within OT_BLE_ADV_INTERVAL_MIN and OT_BLE_ADV_INTERVAL_MAX range.
[in]aTypeThe advertisement properties as a bitmask: whether it is connectable | scannable.
Return values
OT_ERROR_NONEAdvertising procedure has been started.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid interval value has been supplied.

◆ otPlatBleGapAdvStop()

otError otPlatBleGapAdvStop ( otInstance aInstance)

Stops BLE Advertising procedure.

Note
This function shall be used only for BLE Peripheral role.
Parameters
[in]aInstanceThe OpenThread instance structure.
Return values
OT_ERROR_NONEAdvertising procedure has been stopped.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.

◆ otPlatBleGapConnect()

otError otPlatBleGapConnect ( otInstance aInstance,
otPlatBleDeviceAddr aAddress,
uint16_t  aInterval,
uint16_t  aWindow 
)

Starts BLE Connection procedure.

Note
This function shall be used only for BLE Central role.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aAddressAn address of the advertising device.
[in]aIntervalThe scanning interval in OT_BLE_SCAN_INTERVAL_UNIT units. Shall be in OT_BLE_SCAN_INTERVAL_MIN and OT_BLE_SCAN_INTERVAL_MAX range.
[in]aWindowThe scanning window in OT_BLE_SCAN_WINDOW_UNIT units. Shall be in OT_BLE_SCAN_WINDOW_MIN and OT_BLE_SCAN_WINDOW_MAX range.
Return values
OT_ERROR_NONEConnection procedure has been started.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid address, interval or window value has been supplied.

◆ otPlatBleGapConnParamsSet()

otError otPlatBleGapConnParamsSet ( otInstance aInstance,
const otPlatBleGapConnParams aConnParams 
)

Sets desired BLE Connection Parameters.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aConnParamsA pointer to connection parameters structure.
Return values
OT_ERROR_NONEConnection parameters have been successfully set.
OT_ERROR_INVALID_ARGSInvalid connection parameters have been supplied.

◆ otPlatBleGapDisconnect()

otError otPlatBleGapDisconnect ( otInstance aInstance)

Disconnects BLE connection.

The BLE device shall indicate the OT_BLE_HCI_REMOTE_USER_TERMINATED HCI code reason.

Parameters
[in]aInstanceThe OpenThread instance structure.
Return values
OT_ERROR_NONEDisconnection procedure has been started.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.

◆ otPlatBleGapOnAdvReceived()

void otPlatBleGapOnAdvReceived ( otInstance aInstance,
otPlatBleDeviceAddr aAddress,
otBleRadioPacket aPacket 
)

The BLE driver calls this method to notify OpenThread that an advertisement packet has been received.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aAddressAn address of the advertising device.
[in]aPacketA pointer to the received packet.

◆ otPlatBleGapOnConnected()

void otPlatBleGapOnConnected ( otInstance aInstance,
uint16_t  aConnectionId 
)

The BLE driver calls this method to notify OpenThread that BLE Device has been connected.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aConnectionIdThe identifier of the open connection.

◆ otPlatBleGapOnDisconnected()

void otPlatBleGapOnDisconnected ( otInstance aInstance,
uint16_t  aConnectionId 
)

The BLE driver calls this method to notify OpenThread that the BLE Device has been disconnected.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aConnectionIdThe identifier of the closed connection.

◆ otPlatBleGapOnScanRespReceived()

void otPlatBleGapOnScanRespReceived ( otInstance aInstance,
otPlatBleDeviceAddr aAddress,
otBleRadioPacket aPacket 
)

The BLE driver calls this method to notify OpenThread that a scan response packet has been received.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aAddressAn address of the advertising device.
[in]aPacketA pointer to the received packet.

◆ otPlatBleGapScanResponseSet()

otError otPlatBleGapScanResponseSet ( otInstance aInstance,
const uint8_t *  aScanResponse,
uint8_t  aScanResponseLength 
)

Sets BLE Scan Response packet content.

Note
This function shall be used only for BLE Peripheral role.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aScanResponseA pointer to scan response data in raw format.
[in]aScanResponseLengthThe size of scan response data. Shall not exceed OT_BLE_SCAN_RESPONSE_MAX_LENGTH.
Return values
OT_ERROR_NONEScan response data has been successfully set.
OT_ERROR_INVALID_ARGSInvalid scan response data has been supplied.

◆ otPlatBleGapScanStart()

otError otPlatBleGapScanStart ( otInstance aInstance,
uint16_t  aInterval,
uint16_t  aWindow 
)

Starts BLE Scanning procedure.

Note
This function shall be used only for BLE Central role.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aIntervalThe scanning interval in OT_BLE_SCAN_INTERVAL_UNIT units. Shall be in OT_BLE_SCAN_INTERVAL_MIN and OT_BLE_SCAN_INTERVAL_MAX range.
[in]aWindowThe scanning window in OT_BLE_SCAN_WINDOW_UNIT units. Shall be in OT_BLE_SCAN_WINDOW_MIN and OT_BLE_SCAN_WINDOW_MAX range.
Return values
OT_ERROR_NONEScanning procedure has been started.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid interval or window value has been supplied.

◆ otPlatBleGapScanStop()

otError otPlatBleGapScanStop ( otInstance aInstance)

Stops BLE Scanning procedure.

Note
This function shall be used only for BLE Central role.
Parameters
[in]aInstanceThe OpenThread instance structure.
Return values
OT_ERROR_NONEScanning procedure has been stopped.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.

◆ otPlatBleGapServiceSet()

otError otPlatBleGapServiceSet ( otInstance aInstance,
const char *  aDeviceName,
uint16_t  aAppearance 
)

Sets BLE device name and appearance that is visible as GATT Based service.

The BLE Host stack should set the security mode 1, level 1 (no security) for those characteristics.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aDeviceNameA pointer to device name string (null terminated). Shall not exceed OT_BLE_DEV_NAME_MAX_LENGTH.
[in]aAppearanceThe value of appearance characteristic.
Return values
OT_ERROR_NONEConnection parameters have been successfully set.
OT_ERROR_INVALID_ARGSInvalid parameters has been supplied.

◆ otPlatBleGattClientCharacteristicsDiscover()

otError otPlatBleGattClientCharacteristicsDiscover ( otInstance aInstance,
uint16_t  aStartHandle,
uint16_t  aEndHandle 
)

Performs GATT Characteristic Discovery of a service.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aStartHandleThe start handle of a service.
[in]aEndHandleThe end handle of a service.
Return values
OT_ERROR_NONECharacteristic Discovery procedure has been started.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid start or end handle has been provided.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleGattClientDescriptorsDiscover()

otError otPlatBleGattClientDescriptorsDiscover ( otInstance aInstance,
uint16_t  aStartHandle,
uint16_t  aEndHandle 
)

Performs GATT Descriptor Discovery.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aStartHandleThe start handle.
[in]aEndHandleThe end handle.
Return values
OT_ERROR_NONEDescriptor Discovery procedure has been started.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid start or end handle has been provided.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleGattClientMtuExchangeRequest()

otError otPlatBleGattClientMtuExchangeRequest ( otInstance aInstance,
uint16_t  aMtu 
)

Sends Exchange MTU Request.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aMtuA value of GATT Client receive MTU size.
Return values
OT_ERROR_NONEExchange MTU Request has been sent.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid aMtu has been provided.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleGattClientOnCharacteristicsDiscoverDone()

void otPlatBleGattClientOnCharacteristicsDiscoverDone ( otInstance aInstance,
otPlatBleGattCharacteristic aChars,
uint16_t  aCount,
otError  aError 
)

The BLE driver calls this method to notify OpenThread that GATT Characteristic Discovery of a service has been done.

In case of success, all elements inside aChars should have a valid mHandleValue value.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aCharsA pointer to discovered characteristic list.
[in]aCountNumber of characteristics in aChar list.
[in]aErrorThe value of OT_ERROR_NONE indicates that at least one characteristic has been found and the total number of them is stored in aCount. OT_ERROR_NOT_FOUND error should be set if no charactertistics are found. Otherwise error indicates the reason of failure is used.

◆ otPlatBleGattClientOnDescriptorsDiscoverDone()

void otPlatBleGattClientOnDescriptorsDiscoverDone ( otInstance aInstance,
otPlatBleGattDescriptor aDescs,
uint16_t  aCount,
otError  aError 
)

The BLE driver calls this method to notify OpenThread that GATT Descriptor Discovery has been done.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aDescsA pointer to discovered descriptor list.
[in]aCountNumber of descriptors in aDescs list.
[in]aErrorThe value of OT_ERROR_NONE indicates that at least one descriptor has been found and the total number of them is stored in aCount. OT_ERROR_NOT_FOUND error should be set if no descriptors are found. Otherwise error indicates the reason of failure is used.

◆ otPlatBleGattClientOnIndication()

void otPlatBleGattClientOnIndication ( otInstance aInstance,
uint16_t  aHandle,
otBleRadioPacket aPacket 
)

The BLE driver calls this method to notify OpenThread that an ATT Handle Value Indication has been received.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aHandleThe handle on which ATT Handle Value Indication has been sent.
[in]aPacketA pointer to the packet contains indicated value.

◆ otPlatBleGattClientOnMtuExchangeResponse()

void otPlatBleGattClientOnMtuExchangeResponse ( otInstance aInstance,
uint16_t  aMtu,
otError  aError 
)

The BLE driver calls this method to notify OpenThread that Exchange MTU Response has been received.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aMtuAttribute server receive MTU size.
[in]aErrorThe value of OT_ERROR_NONE indicates that valid Exchange MTU Response has been received. Otherwise error indicates the reason of failure is used.

◆ otPlatBleGattClientOnReadResponse()

void otPlatBleGattClientOnReadResponse ( otInstance aInstance,
otBleRadioPacket aPacket 
)

The BLE driver calls this method to notify OpenThread that ATT Read Response packet has been received.

This method is called only if otPlatBleGattClientRead was previously requested.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aPacketA pointer to the packet contains read value.

◆ otPlatBleGattClientOnServiceDiscovered()

void otPlatBleGattClientOnServiceDiscovered ( otInstance aInstance,
uint16_t  aStartHandle,
uint16_t  aEndHandle,
uint16_t  aServiceUuid,
otError  aError 
)

The BLE driver calls this method to notify OpenThread that the next entry from GATT Primary Service Discovery has been found.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aStartHandleThe start handle of a service.
[in]aEndHandleThe end handle of a service.
[in]aServiceUuidThe Uuid16 for the service entry.
[in]aErrorThe value of OT_ERROR_NONE indicates that service has been found and structure aStartHandle and aEndHandle contain valid handles. OT_ERROR_NOT_FOUND error should be set if service has not been found. Otherwise error indicates the reason of failure is used.

◆ otPlatBleGattClientOnSubscribeResponse()

void otPlatBleGattClientOnSubscribeResponse ( otInstance aInstance,
uint16_t  aHandle 
)

The BLE driver calls this method to notify OpenThread that subscribe response has been received.

This method is called only if otPlatBleGattClienSubscribe was previously requested.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aHandleThe handle on which ATT Write Response has been sent.

◆ otPlatBleGattClientOnWriteResponse()

void otPlatBleGattClientOnWriteResponse ( otInstance aInstance,
uint16_t  aHandle 
)

The BLE driver calls this method to notify OpenThread that ATT Write Response packet has been received.

This method is called only if otPlatBleGattClientWrite was previously requested.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aHandleThe handle on which ATT Write Response has been sent.

◆ otPlatBleGattClientRead()

otError otPlatBleGattClientRead ( otInstance aInstance,
uint16_t  aHandle 
)

Sends ATT Read Request.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aHandleThe handle of the attribute to be read.
Return values
OT_ERROR_NONEATT Write Request has been sent.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid handle value has been supplied.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleGattClientServiceDiscover()

otError otPlatBleGattClientServiceDiscover ( otInstance aInstance,
const otPlatBleUuid aUuid 
)

Performs GATT Primary Service Discovery by UUID procedure of specific service.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aUuidThe UUID of a service to be registered.
Return values
OT_ERROR_NONEService Discovery procedure has been started.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid service UUID has been provided.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleGattClientServicesDiscover()

otError otPlatBleGattClientServicesDiscover ( otInstance aInstance)

Performs GATT Primary Service Discovery of all services available.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
Return values
OT_ERROR_NONEService Discovery procedure has been started.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid service UUID has been provided.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleGattClientSubscribeRequest()

otError otPlatBleGattClientSubscribeRequest ( otInstance aInstance,
uint16_t  aHandle,
bool  aSubscribing 
)

Subscribes for characteristic indications.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aHandleThe handle of the attribute to be written.
[in]aSubscribingTrue if subscribing, otherwise unsubscribing.
Return values
OT_ERROR_NONESubscription has been sent.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid handle value, data or data length has been supplied.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleGattClientWrite()

otError otPlatBleGattClientWrite ( otInstance aInstance,
uint16_t  aHandle,
otBleRadioPacket aPacket 
)

Sends ATT Write Request.

Note
This function shall be used only for GATT Client.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aHandleThe handle of the attribute to be written.
[in]aPacketA pointer to the packet contains value to be written to the attribute.
Return values
OT_ERROR_NONEATT Write Request has been sent.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid handle value, data or data length has been supplied.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleGattMtuGet()

otError otPlatBleGattMtuGet ( otInstance aInstance,
uint16_t *  aMtu 
)

Reads currently use value of ATT_MTU.

Parameters
[in]aInstanceThe OpenThread instance structure.
[out]aMtuA pointer contains current ATT_MTU value.
Return values
OT_ERROR_NONEATT_MTU value has been placed in aMtu.
OT_ERROR_FAILEDBLE Device cannot determine its ATT_MTU.

◆ otPlatBleGattServerIndicate()

otError otPlatBleGattServerIndicate ( otInstance aInstance,
uint16_t  aHandle,
otBleRadioPacket aPacket 
)

Sends ATT Handle Value Indication.

Note
This function shall be used only for GATT Server.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aHandleThe handle of the attribute to be indicated.
[in]aPacketA pointer to the packet contains value to be indicated.
Return values
OT_ERROR_NONEATT Handle Value Indication has been sent.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid handle value, data or data length has been supplied.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleGattServerOnIndicationConfirmation()

void otPlatBleGattServerOnIndicationConfirmation ( otInstance aInstance,
uint16_t  aHandle 
)

The BLE driver calls this method to notify OpenThread that an ATT Handle Value Confirmation has been received.

This method is called only if otPlatBleGattServerIndicate was previously requested.

Note
This function shall be used only for GATT Server.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aHandleThe handle on which ATT Handle Value Confirmation has been sent.

◆ otPlatBleGattServerOnReadRequest()

void otPlatBleGattServerOnReadRequest ( otInstance aInstance,
uint16_t  aHandle,
otBleRadioPacket aPacket 
)

The BLE driver calls this method to notify OpenThread that an ATT Read Request packet has been received.

Note
This function shall be used only for GATT Server.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aHandleThe handle of the attribute to be read.
[out]aPacketA pointer to the packet to be filled with pointers to attribute data to be read.

◆ otPlatBleGattServerOnSubscribeRequest()

void otPlatBleGattServerOnSubscribeRequest ( otInstance aInstance,
uint16_t  aHandle,
bool  aSubscribing 
)

The BLE driver calls this method to notify OpenThread that an ATT Subscription Request packet has been received.

Note
This function shall be used only for GATT Server.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aHandleThe handle of the attribute to be written.
[in]aSubscribingTrue if subscribing, otherwise unsubscribing.

◆ otPlatBleGattServerOnWriteRequest()

void otPlatBleGattServerOnWriteRequest ( otInstance aInstance,
uint16_t  aHandle,
otBleRadioPacket aPacket 
)

The BLE driver calls this method to notify OpenThread that an ATT Write Request packet has been received.

Note
This function shall be used only for GATT Server.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aHandleThe handle of the attribute to be written.
[in]aPacketA pointer to the packet contains value to be written to the attribute.

◆ otPlatBleGattServerServicesRegister()

otError otPlatBleGattServerServicesRegister ( otInstance aInstance,
otPlatBleGattService aServices 
)

Registers a list of GATT Services and their enclosed Characteristics.

The generated handles will be written back into this structure when the BLE stack is enabled.

Note
This function shall be used only for GATT Server.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aServicesNull terminated array of service structures to register.
Return values
OT_ERROR_NONEService has been successfully registered.
OT_ERROR_INVALID_STATEBLE Device is in invalid state.
OT_ERROR_INVALID_ARGSInvalid service UUID has been provided.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleGattVendorUuidRegister()

otError otPlatBleGattVendorUuidRegister ( otInstance aInstance,
const otPlatBleUuid aUuid 
)

Registers vendor specific UUID Base.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aUuidA pointer to vendor specific 128-bit UUID Base.

◆ otPlatBleIsEnabled()

bool otPlatBleIsEnabled ( otInstance aInstance)

Check whether Bluetooth Low Energy radio is enabled or not.

Parameters
[in]aInstanceThe OpenThread instance structure.
Return values
::trueBluetooth Low Energy radio is enabled.
::falseBluetooth Low Energy radio is disabled.

◆ otPlatBleL2capConnectionRequest()

otError otPlatBleL2capConnectionRequest ( otInstance aInstance,
uint16_t  aPsm,
uint16_t  aMtu,
uint16_t *  aCid 
)

Sends LE Credit Based Connection Request.

Note
Platform layer is responsible for credits management and segmentation (MPS).
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aPsmThe value of LE Protocol/Service Multiplexer.
[in]aMtuThe value specifies the maximum SDU size (in octets) that the L2CAP layer entity sending the LE Credit Based Connection Request can receive on this channel.
[out]aCidThe source CID represents a channel endpoint on the device.
Return values
OT_ERROR_NONELE Credit Based Connection Request has been sent.
OT_ERROR_INVALID_STATEBLE Device is in invalid state e.g. not in the GAP connection.
OT_ERROR_INVALID_ARGSInvalid parameters has been supplied.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleL2capConnectionResponse()

otError otPlatBleL2capConnectionResponse ( otInstance aInstance,
otPlatBleL2capError  aError,
uint16_t  aMtu,
uint16_t *  aCid 
)

Sends LE Credit Based Connection Response.

Note
Platform layer is responsible for credits management and segmentation (MPS).
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aErrorThe error value indicates the outcome of the connection request.
[in]aMtuThe value specifies the maximum SDU size (in octets) that the L2CAP layer entity sending the LE Credit Based Connection Response can receive on this channel.
[out]aCidThe source CID represents a channel endpoint on the device. If aResult value is different from OT_BLE_L2C_ERROR_NONE, this variable is unused and should be set to NULL.
Return values
OT_ERROR_NONELE Credit Based Connection Response has been sent.
OT_ERROR_INVALID_STATEBLE Device is in invalid state e.g. not in the GAP connection.
OT_ERROR_INVALID_ARGSInvalid parameters has been supplied.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleL2capDisconnect()

otError otPlatBleL2capDisconnect ( otInstance aInstance,
uint16_t  aLocalCid,
uint16_t  aPeerCid 
)

Sends an L2CAP Disconnection Request.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aLocalCidThe local channel endpoint ID value.
[in]aPeerCidThe peer channel endpoint ID value.
Return values
OT_ERROR_NONEL2CAP Disconnection Request has been sent.
OT_ERROR_INVALID_STATEBLE Device is in invalid state e.g. not in the GAP connection.
OT_ERROR_INVALID_ARGSInvalid parameters has been supplied.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleL2capOnConnectionRequest()

void otPlatBleL2capOnConnectionRequest ( otInstance aInstance,
uint16_t  aPsm,
uint16_t  aMtu,
uint16_t  aPeerCid 
)

The BLE driver calls this method to notify OpenThread that an LE Credit Based Connection Request packet has been received.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aPsmThe value of LE Protocol/Service Multiplexer.
[in]aMtuThe value specifies the maximum SDU size (in octets) that the L2CAP layer entity sending the LE Credit Based Connection Request can receive on this channel.
[in]aPeerCidThe CID represents a channel endpoint on the peer device.

◆ otPlatBleL2capOnConnectionResponse()

void otPlatBleL2capOnConnectionResponse ( otInstance aInstance,
otPlatBleL2capError  aError,
uint16_t  aMtu,
uint16_t  aPeerCid 
)

The BLE driver calls this method to notify OpenThread that an LE Credit Based Connection Response packet has been received.

Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aErrorThe error value indicates the outcome of the connection request.
[in]aMtuThe value specifies the maximum SDU size (in octets) that the L2CAP layer entity sending the LE Credit Based Connection Response can receive on this channel.
[in]aPeerCidThe CID represents a channel endpoint on the peer device.

◆ otPlatBleL2capOnDisconnect()

void otPlatBleL2capOnDisconnect ( otInstance aInstance,
uint16_t  aLocalCid,
uint16_t  aPeerCid 
)

The BLE driver calls this method to notify OpenThread that an L2CAP Disconnection Request has been received.

Note
Platform layer is responsible to response with L2CAP Disconnection Response internally.
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aLocalCidThe local channel endpoint ID value.
[in]aPeerCidThe peer channel endpoint ID value.

◆ otPlatBleL2capOnSduReceived()

void otPlatBleL2capOnSduReceived ( otInstance aInstance,
uint16_t  aLocalCid,
uint16_t  aPeerCid,
otBleRadioPacket aPacket 
)

The BLE driver calls this method to notify OpenThread that an L2CAP SDU has been received.

Note
Platform layer is responsible for credits management and segmentation (MPS).
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aLocalCidThe local channel endpoint ID value.
[in]aPeerCidThe peer channel endpoint ID value.
[in]aPacketA pointer to the packet containing SDU.

◆ otPlatBleL2capOnSduSent()

void otPlatBleL2capOnSduSent ( otInstance aInstance)

The BLE driver calls this method to notify OpenThread that an L2CAP SDU has been sent.

Parameters
[in]aInstanceThe OpenThread instance structure.

◆ otPlatBleL2capSduSend()

otError otPlatBleL2capSduSend ( otInstance aInstance,
uint16_t  aLocalCid,
uint16_t  aPeerCid,
otBleRadioPacket aPacket 
)

Sends an SDU on an L2CAP channel.

Note
Platform layer is responsible for credits management and segmentation (MPS).
Parameters
[in]aInstanceThe OpenThread instance structure.
[in]aLocalCidThe local channel endpoint ID value.
[in]aPeerCidThe peer channel endpoint ID value.
[in]aPacketA pointer to the packet containing SDU.
Return values
OT_ERROR_NONELE Credit Based Connection Request has been sent.
OT_ERROR_INVALID_STATEBLE Device is in invalid state e.g. not in the GAP connection.
OT_ERROR_INVALID_ARGSInvalid parameters has been supplied.
OT_ERROR_NO_BUFSNo available internal buffer found.

◆ otPlatBleOnEnabled()

void otPlatBleOnEnabled ( otInstance aInstance)

Callback sent when Bluetooth Low Energy is ready after being enabled.

Parameters
[in]aInstanceThe OpenThread instance structure.

◆ otPlatBleReset()

otError otPlatBleReset ( otInstance aInstance)

Reset the Bluetooth Low Energy subsystem.

Parameters
[in]aInstanceThe OpenThread instance structure.
Return values
OT_ERROR_NONESuccessfully reset.
OT_ERROR_FAILEDThe BLE stack could not be reset.