This module includes the platform abstraction for BLE Host communication. The platform needs to implement Bluetooth LE 4.2 or higher. More...
Data Structures | |
| struct | otPlatBleDeviceAddr |
| struct | otPlatBleGapConnParams |
| union | otPlatBleUuidValue |
| struct | otPlatBleUuid |
| struct | otPlatBleGattCharacteristic |
| struct | otPlatBleGattDescriptor |
| struct | otPlatBleGattService |
| struct | otBleRadioPacket |
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 |
| typedef enum otPlatBleCccdFlags | otPlatBleCccdFlags |
| typedef struct otPlatBleDeviceAddr | otPlatBleDeviceAddr |
| typedef enum otPlatBleAdvMode | otPlatBleAdvMode |
| typedef struct otPlatBleGapConnParams | otPlatBleGapConnParams |
| typedef enum otPlatBleUuidType | otPlatBleUuidType |
| typedef union otPlatBleUuidValue | otPlatBleUuidValue |
| typedef struct otPlatBleUuid | otPlatBleUuid |
| typedef struct otPlatBleGattCharacteristic | otPlatBleGattCharacteristic |
| typedef struct otPlatBleGattDescriptor | otPlatBleGattDescriptor |
| typedef struct otPlatBleGattService | otPlatBleGattService |
| typedef struct otBleRadioPacket | otBleRadioPacket |
| typedef enum otPlatBleL2capError | otPlatBleL2capError |
Functions | |
| otError | otPlatBleEnable (otInstance *aInstance) |
| otError | otPlatBleDisable (otInstance *aInstance) |
| otError | otPlatBleReset (otInstance *aInstance) |
| bool | otPlatBleIsEnabled (otInstance *aInstance) |
| void | otPlatBleOnEnabled (otInstance *aInstance) |
| otError | otPlatBleGapAddressGet (otInstance *aInstance, otPlatBleDeviceAddr *aAddress) |
| otError | otPlatBleGapAddressSet (otInstance *aInstance, const otPlatBleDeviceAddr *aAddress) |
| otError | otPlatBleGapServiceSet (otInstance *aInstance, const char *aDeviceName, uint16_t aAppearance) |
| otError | otPlatBleGapConnParamsSet (otInstance *aInstance, const otPlatBleGapConnParams *aConnParams) |
| otError | otPlatBleGapAdvDataSet (otInstance *aInstance, const uint8_t *aAdvData, uint8_t aAdvDataLength) |
| otError | otPlatBleGapScanResponseSet (otInstance *aInstance, const uint8_t *aScanResponse, uint8_t aScanResponseLength) |
| otError | otPlatBleGapAdvStart (otInstance *aInstance, uint16_t aInterval, uint8_t aType) |
| otError | otPlatBleGapAdvStop (otInstance *aInstance) |
| void | otPlatBleGapOnConnected (otInstance *aInstance, uint16_t aConnectionId) |
| void | otPlatBleGapOnDisconnected (otInstance *aInstance, uint16_t aConnectionId) |
| otError | otPlatBleGapScanStart (otInstance *aInstance, uint16_t aInterval, uint16_t aWindow) |
| otError | otPlatBleGapScanStop (otInstance *aInstance) |
| void | otPlatBleGapOnAdvReceived (otInstance *aInstance, otPlatBleDeviceAddr *aAddress, otBleRadioPacket *aPacket) |
| void | otPlatBleGapOnScanRespReceived (otInstance *aInstance, otPlatBleDeviceAddr *aAddress, otBleRadioPacket *aPacket) |
| otError | otPlatBleGapConnect (otInstance *aInstance, otPlatBleDeviceAddr *aAddress, uint16_t aInterval, uint16_t aWindow) |
| otError | otPlatBleGapDisconnect (otInstance *aInstance) |
| otError | otPlatBleGattVendorUuidRegister (otInstance *aInstance, const otPlatBleUuid *aUuid) |
| otError | otPlatBleGattMtuGet (otInstance *aInstance, uint16_t *aMtu) |
| otError | otPlatBleGattClientRead (otInstance *aInstance, uint16_t aHandle) |
| void | otPlatBleGattClientOnReadResponse (otInstance *aInstance, otBleRadioPacket *aPacket) |
| otError | otPlatBleGattClientWrite (otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket) |
| void | otPlatBleGattClientOnWriteResponse (otInstance *aInstance, uint16_t aHandle) |
| otError | otPlatBleGattClientSubscribeRequest (otInstance *aInstance, uint16_t aHandle, bool aSubscribing) |
| void | otPlatBleGattClientOnSubscribeResponse (otInstance *aInstance, uint16_t aHandle) |
| void | otPlatBleGattClientOnIndication (otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket) |
| otError | otPlatBleGattClientServicesDiscover (otInstance *aInstance) |
| otError | otPlatBleGattClientServiceDiscover (otInstance *aInstance, const otPlatBleUuid *aUuid) |
| void | otPlatBleGattClientOnServiceDiscovered (otInstance *aInstance, uint16_t aStartHandle, uint16_t aEndHandle, uint16_t aServiceUuid, otError aError) |
| otError | otPlatBleGattClientCharacteristicsDiscover (otInstance *aInstance, uint16_t aStartHandle, uint16_t aEndHandle) |
| void | otPlatBleGattClientOnCharacteristicsDiscoverDone (otInstance *aInstance, otPlatBleGattCharacteristic *aChars, uint16_t aCount, otError aError) |
| otError | otPlatBleGattClientDescriptorsDiscover (otInstance *aInstance, uint16_t aStartHandle, uint16_t aEndHandle) |
| void | otPlatBleGattClientOnDescriptorsDiscoverDone (otInstance *aInstance, otPlatBleGattDescriptor *aDescs, uint16_t aCount, otError aError) |
| otError | otPlatBleGattClientMtuExchangeRequest (otInstance *aInstance, uint16_t aMtu) |
| void | otPlatBleGattClientOnMtuExchangeResponse (otInstance *aInstance, uint16_t aMtu, otError aError) |
| otError | otPlatBleGattServerServicesRegister (otInstance *aInstance, otPlatBleGattService *aServices) |
| otError | otPlatBleGattServerIndicate (otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket) |
| void | otPlatBleGattServerOnIndicationConfirmation (otInstance *aInstance, uint16_t aHandle) |
| void | otPlatBleGattServerOnWriteRequest (otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket) |
| void | otPlatBleGattServerOnReadRequest (otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket) |
| void | otPlatBleGattServerOnSubscribeRequest (otInstance *aInstance, uint16_t aHandle, bool aSubscribing) |
| otError | otPlatBleL2capConnectionRequest (otInstance *aInstance, uint16_t aPsm, uint16_t aMtu, uint16_t *aCid) |
| void | otPlatBleL2capOnConnectionRequest (otInstance *aInstance, uint16_t aPsm, uint16_t aMtu, uint16_t aPeerCid) |
| otError | otPlatBleL2capConnectionResponse (otInstance *aInstance, otPlatBleL2capError aError, uint16_t aMtu, uint16_t *aCid) |
| void | otPlatBleL2capOnConnectionResponse (otInstance *aInstance, otPlatBleL2capError aError, uint16_t aMtu, uint16_t aPeerCid) |
| otError | otPlatBleL2capSduSend (otInstance *aInstance, uint16_t aLocalCid, uint16_t aPeerCid, otBleRadioPacket *aPacket) |
| void | otPlatBleL2capOnSduReceived (otInstance *aInstance, uint16_t aLocalCid, uint16_t aPeerCid, otBleRadioPacket *aPacket) |
| void | otPlatBleL2capOnSduSent (otInstance *aInstance) |
| otError | otPlatBleL2capDisconnect (otInstance *aInstance, uint16_t aLocalCid, uint16_t aPeerCid) |
| void | otPlatBleL2capOnDisconnect (otInstance *aInstance, uint16_t aLocalCid, uint16_t aPeerCid) |
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
◆ otBleRadioPacket
| typedef struct otBleRadioPacket otBleRadioPacket |
This structure represents an BLE packet.
◆ otPlatBleAddressType
| typedef enum otPlatBleAddressType otPlatBleAddressType |
This enum represents BLE Device Address types.
◆ otPlatBleAdvMode
| typedef enum otPlatBleAdvMode otPlatBleAdvMode |
This enumeration defines flags for BLE advertisement mode.
◆ otPlatBleCccdFlags
| typedef enum otPlatBleCccdFlags 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
◆ otPlatBleDeviceAddr
| typedef struct otPlatBleDeviceAddr otPlatBleDeviceAddr |
This structure represents BLE Device Address.
◆ otPlatBleGapConnParams
| typedef struct otPlatBleGapConnParams otPlatBleGapConnParams |
This structure represents BLE connection parameters.
◆ otPlatBleGattCharacteristic
| typedef struct otPlatBleGattCharacteristic otPlatBleGattCharacteristic |
This structure represents GATT Characteristic.
◆ otPlatBleGattDescriptor
| typedef struct otPlatBleGattDescriptor otPlatBleGattDescriptor |
This structure represents GATT Descriptor.
◆ otPlatBleGattService
| typedef struct otPlatBleGattService otPlatBleGattService |
Registration descriptor for a GATT service.
◆ otPlatBleL2capError
| typedef enum otPlatBleL2capError 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.
◆ otPlatBleUuid
| typedef struct otPlatBleUuid otPlatBleUuid |
This structure represents BLE UUID.
◆ otPlatBleUuidType
| typedef enum otPlatBleUuidType otPlatBleUuidType |
This enumeration represents BLE UUID value.
◆ otPlatBleUuidValue
| typedef union otPlatBleUuidValue otPlatBleUuidValue |
This structure represents BLE UUID value.
Enumeration Type Documentation
◆ anonymous enum
| anonymous enum |
◆ otPlatBleAddressType
| enum otPlatBleAddressType |
This enum represents BLE Device Address types.
◆ otPlatBleAdvMode
| enum otPlatBleAdvMode |
◆ otPlatBleCccdFlags
| enum 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
| enum 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.
◆ otPlatBleUuidType
| enum otPlatBleUuidType |
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] aInstance The OpenThread instance structure.
- Return values
-
OT_ERROR_NONE Successfully transitioned to disabled. OT_ERROR_FAILED The 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] aInstance The OpenThread instance structure.
- Return values
-
OT_ERROR_NONE Successfully enabled. OT_ERROR_FAILED The BLE radio could not be enabled.
◆ otPlatBleGapAddressGet()
| otError otPlatBleGapAddressGet | ( | otInstance * | aInstance, |
| otPlatBleDeviceAddr * | aAddress | ||
| ) |
Gets Bluetooth Device Address.
- Parameters
-
[in] aInstance The OpenThread instance structure. [out] aAddress The pointer to Bluetooth Device Address.
- Return values
-
OT_ERROR_NONE Request has been successfully done. OT_ERROR_INVALID_ARGS Invalid parameters has been supplied.
◆ otPlatBleGapAddressSet()
| otError otPlatBleGapAddressSet | ( | otInstance * | aInstance, |
| const otPlatBleDeviceAddr * | aAddress | ||
| ) |
Sets Bluetooth Device Address.
- Parameters
-
[in] aInstance The OpenThread instance structure. [in] aAddress The pointer to Bluetooth Device Address.
- Return values
-
OT_ERROR_NONE Request has been successfully done. OT_ERROR_INVALID_ARGS Invalid 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] aInstance The OpenThread instance structure. [in] aAdvData A pointer to advertising data content in raw format. [in] aAdvDataLength The size of advertising data. Shall not exceed OT_BLE_ADV_DATA_MAX_LENGTH.
- Return values
-
OT_ERROR_NONE Advertising data has been successfully set. OT_ERROR_INVALID_ARGS Invalid 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] aInstance The OpenThread instance structure. [in] aInterval The 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] aType The advertisement properties as a bitmask: whether it is connectable | scannable.
- Return values
-
OT_ERROR_NONE Advertising procedure has been started. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid 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] aInstance The OpenThread instance structure.
- Return values
-
OT_ERROR_NONE Advertising procedure has been stopped. OT_ERROR_INVALID_STATE BLE 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] aInstance The OpenThread instance structure. [in] aAddress An address of the advertising device. [in] aInterval The 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] aWindow The 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_NONE Connection procedure has been started. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid address, interval or window value has been supplied.
◆ otPlatBleGapConnParamsSet()
| otError otPlatBleGapConnParamsSet | ( | otInstance * | aInstance, |
| const otPlatBleGapConnParams * | aConnParams | ||
| ) |
Sets desired BLE Connection Parameters.
- Parameters
-
[in] aInstance The OpenThread instance structure. [in] aConnParams A pointer to connection parameters structure.
- Return values
-
OT_ERROR_NONE Connection parameters have been successfully set. OT_ERROR_INVALID_ARGS Invalid 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] aInstance The OpenThread instance structure.
- Return values
-
OT_ERROR_NONE Disconnection procedure has been started. OT_ERROR_INVALID_STATE BLE 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] aInstance The OpenThread instance structure. [in] aAddress An address of the advertising device. [in] aPacket A 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] aInstance The OpenThread instance structure. [in] aConnectionId The 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] aInstance The OpenThread instance structure. [in] aConnectionId The 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] aInstance The OpenThread instance structure. [in] aAddress An address of the advertising device. [in] aPacket A 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] aInstance The OpenThread instance structure. [in] aScanResponse A pointer to scan response data in raw format. [in] aScanResponseLength The size of scan response data. Shall not exceed OT_BLE_SCAN_RESPONSE_MAX_LENGTH.
- Return values
-
OT_ERROR_NONE Scan response data has been successfully set. OT_ERROR_INVALID_ARGS Invalid 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] aInstance The OpenThread instance structure. [in] aInterval The 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] aWindow The 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_NONE Scanning procedure has been started. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid 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] aInstance The OpenThread instance structure.
- Return values
-
OT_ERROR_NONE Scanning procedure has been stopped. OT_ERROR_INVALID_STATE BLE 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] aInstance The OpenThread instance structure. [in] aDeviceName A pointer to device name string (null terminated). Shall not exceed OT_BLE_DEV_NAME_MAX_LENGTH. [in] aAppearance The value of appearance characteristic.
- Return values
-
OT_ERROR_NONE Connection parameters have been successfully set. OT_ERROR_INVALID_ARGS Invalid 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] aInstance The OpenThread instance structure. [in] aStartHandle The start handle of a service. [in] aEndHandle The end handle of a service.
- Return values
-
OT_ERROR_NONE Characteristic Discovery procedure has been started. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid start or end handle has been provided. OT_ERROR_NO_BUFS No 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] aInstance The OpenThread instance structure. [in] aStartHandle The start handle. [in] aEndHandle The end handle.
- Return values
-
OT_ERROR_NONE Descriptor Discovery procedure has been started. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid start or end handle has been provided. OT_ERROR_NO_BUFS No 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] aInstance The OpenThread instance structure. [in] aMtu A value of GATT Client receive MTU size.
- Return values
-
OT_ERROR_NONE Exchange MTU Request has been sent. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid aMtu has been provided. OT_ERROR_NO_BUFS No 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] aInstance The OpenThread instance structure. [in] aChars A pointer to discovered characteristic list. [in] aCount Number of characteristics in aCharlist.[in] aError The 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] aInstance The OpenThread instance structure. [in] aDescs A pointer to discovered descriptor list. [in] aCount Number of descriptors in aDescslist.[in] aError The 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] aInstance The OpenThread instance structure. [in] aHandle The handle on which ATT Handle Value Indication has been sent. [in] aPacket A 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] aInstance The OpenThread instance structure. [in] aMtu Attribute server receive MTU size. [in] aError The 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] aInstance The OpenThread instance structure. [in] aPacket A 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] aInstance The OpenThread instance structure. [in] aStartHandle The start handle of a service. [in] aEndHandle The end handle of a service. [in] aServiceUuid The Uuid16 for the service entry. [in] aError The value of OT_ERROR_NONE indicates that service has been found and structure aStartHandleandaEndHandlecontain 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] aInstance The OpenThread instance structure. [in] aHandle The 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] aInstance The OpenThread instance structure. [in] aHandle The 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] aInstance The OpenThread instance structure. [in] aHandle The handle of the attribute to be read.
- Return values
-
OT_ERROR_NONE ATT Write Request has been sent. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid handle value has been supplied. OT_ERROR_NO_BUFS No 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] aInstance The OpenThread instance structure. [in] aUuid The UUID of a service to be registered.
- Return values
-
OT_ERROR_NONE Service Discovery procedure has been started. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid service UUID has been provided. OT_ERROR_NO_BUFS No 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] aInstance The OpenThread instance structure.
- Return values
-
OT_ERROR_NONE Service Discovery procedure has been started. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid service UUID has been provided. OT_ERROR_NO_BUFS No 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] aInstance The OpenThread instance structure. [in] aHandle The handle of the attribute to be written. [in] aSubscribing True if subscribing, otherwise unsubscribing.
- Return values
-
OT_ERROR_NONE Subscription has been sent. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid handle value, data or data length has been supplied. OT_ERROR_NO_BUFS No 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] aInstance The OpenThread instance structure. [in] aHandle The handle of the attribute to be written. [in] aPacket A pointer to the packet contains value to be written to the attribute.
- Return values
-
OT_ERROR_NONE ATT Write Request has been sent. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid handle value, data or data length has been supplied. OT_ERROR_NO_BUFS No available internal buffer found.
◆ otPlatBleGattMtuGet()
| otError otPlatBleGattMtuGet | ( | otInstance * | aInstance, |
| uint16_t * | aMtu | ||
| ) |
Reads currently use value of ATT_MTU.
- Parameters
-
[in] aInstance The OpenThread instance structure. [out] aMtu A pointer contains current ATT_MTU value.
- Return values
-
OT_ERROR_NONE ATT_MTU value has been placed in aMtu.OT_ERROR_FAILED BLE 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] aInstance The OpenThread instance structure. [in] aHandle The handle of the attribute to be indicated. [in] aPacket A pointer to the packet contains value to be indicated.
- Return values
-
OT_ERROR_NONE ATT Handle Value Indication has been sent. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid handle value, data or data length has been supplied. OT_ERROR_NO_BUFS No 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] aInstance The OpenThread instance structure. [in] aHandle The 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] aInstance The OpenThread instance structure. [in] aHandle The handle of the attribute to be read. [out] aPacket A 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] aInstance The OpenThread instance structure. [in] aHandle The handle of the attribute to be written. [in] aSubscribing True 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] aInstance The OpenThread instance structure. [in] aHandle The handle of the attribute to be written. [in] aPacket A 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] aInstance The OpenThread instance structure. [in] aServices Null terminated array of service structures to register.
- Return values
-
OT_ERROR_NONE Service has been successfully registered. OT_ERROR_INVALID_STATE BLE Device is in invalid state. OT_ERROR_INVALID_ARGS Invalid service UUID has been provided. OT_ERROR_NO_BUFS No available internal buffer found.
◆ otPlatBleGattVendorUuidRegister()
| otError otPlatBleGattVendorUuidRegister | ( | otInstance * | aInstance, |
| const otPlatBleUuid * | aUuid | ||
| ) |
Registers vendor specific UUID Base.
- Parameters
-
[in] aInstance The OpenThread instance structure. [in] aUuid A 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] aInstance The OpenThread instance structure.
- Return values
-
::true Bluetooth Low Energy radio is enabled. ::false Bluetooth 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] aInstance The OpenThread instance structure. [in] aPsm The value of LE Protocol/Service Multiplexer. [in] aMtu The 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] aCid The source CID represents a channel endpoint on the device.
- Return values
-
OT_ERROR_NONE LE Credit Based Connection Request has been sent. OT_ERROR_INVALID_STATE BLE Device is in invalid state e.g. not in the GAP connection. OT_ERROR_INVALID_ARGS Invalid parameters has been supplied. OT_ERROR_NO_BUFS No 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] aInstance The OpenThread instance structure. [in] aError The error value indicates the outcome of the connection request. [in] aMtu The 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] aCid The source CID represents a channel endpoint on the device. If aResultvalue is different fromOT_BLE_L2C_ERROR_NONE, this variable is unused and should be set to NULL.
- Return values
-
OT_ERROR_NONE LE Credit Based Connection Response has been sent. OT_ERROR_INVALID_STATE BLE Device is in invalid state e.g. not in the GAP connection. OT_ERROR_INVALID_ARGS Invalid parameters has been supplied. OT_ERROR_NO_BUFS No available internal buffer found.
◆ otPlatBleL2capDisconnect()
| otError otPlatBleL2capDisconnect | ( | otInstance * | aInstance, |
| uint16_t | aLocalCid, | ||
| uint16_t | aPeerCid | ||
| ) |
Sends an L2CAP Disconnection Request.
- Parameters
-
[in] aInstance The OpenThread instance structure. [in] aLocalCid The local channel endpoint ID value. [in] aPeerCid The peer channel endpoint ID value.
- Return values
-
OT_ERROR_NONE L2CAP Disconnection Request has been sent. OT_ERROR_INVALID_STATE BLE Device is in invalid state e.g. not in the GAP connection. OT_ERROR_INVALID_ARGS Invalid parameters has been supplied. OT_ERROR_NO_BUFS No 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] aInstance The OpenThread instance structure. [in] aPsm The value of LE Protocol/Service Multiplexer. [in] aMtu The 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] aPeerCid The 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] aInstance The OpenThread instance structure. [in] aError The error value indicates the outcome of the connection request. [in] aMtu The 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] aPeerCid The 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] aInstance The OpenThread instance structure. [in] aLocalCid The local channel endpoint ID value. [in] aPeerCid The 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] aInstance The OpenThread instance structure. [in] aLocalCid The local channel endpoint ID value. [in] aPeerCid The peer channel endpoint ID value. [in] aPacket A 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] aInstance The 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] aInstance The OpenThread instance structure. [in] aLocalCid The local channel endpoint ID value. [in] aPeerCid The peer channel endpoint ID value. [in] aPacket A pointer to the packet containing SDU.
- Return values
-
OT_ERROR_NONE LE Credit Based Connection Request has been sent. OT_ERROR_INVALID_STATE BLE Device is in invalid state e.g. not in the GAP connection. OT_ERROR_INVALID_ARGS Invalid parameters has been supplied. OT_ERROR_NO_BUFS No available internal buffer found.
◆ otPlatBleOnEnabled()
| void otPlatBleOnEnabled | ( | otInstance * | aInstance | ) |
Callback sent when Bluetooth Low Energy is ready after being enabled.
- Parameters
-
[in] aInstance The OpenThread instance structure.
◆ otPlatBleReset()
| otError otPlatBleReset | ( | otInstance * | aInstance | ) |
Reset the Bluetooth Low Energy subsystem.
- Parameters
-
[in] aInstance The OpenThread instance structure.
- Return values
-
OT_ERROR_NONE Successfully reset. OT_ERROR_FAILED The BLE stack could not be reset.