From d8cda7e61093de6d7210a5e1c1692ccfd9fa0906 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Wed, 16 Sep 2020 22:15:55 -0700 Subject: [PATCH] [platform] remove unused header file (#5538) --- include/Makefile.am | 1 - include/openthread/BUILD.gn | 1 - include/openthread/platform/ble.h | 1250 ----------------------------- 3 files changed, 1252 deletions(-) delete mode 100644 include/openthread/platform/ble.h diff --git a/include/Makefile.am b/include/Makefile.am index 920e506bf..ebba9a7f1 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -83,7 +83,6 @@ dist_openthread_HEADERS = $(openthread_headers) ot_platform_headers = \ openthread/platform/alarm-micro.h \ openthread/platform/alarm-milli.h \ - openthread/platform/ble.h \ openthread/platform/diag.h \ openthread/platform/flash.h \ openthread/platform/entropy.h \ diff --git a/include/openthread/BUILD.gn b/include/openthread/BUILD.gn index 0c0aa00e3..014dac654 100644 --- a/include/openthread/BUILD.gn +++ b/include/openthread/BUILD.gn @@ -90,7 +90,6 @@ source_set("openthread") { "network_time.h", "platform/alarm-micro.h", "platform/alarm-milli.h", - "platform/ble.h", "platform/debug_uart.h", "platform/diag.h", "platform/entropy.h", diff --git a/include/openthread/platform/ble.h b/include/openthread/platform/ble.h deleted file mode 100644 index 0a66beaa9..000000000 --- a/include/openthread/platform/ble.h +++ /dev/null @@ -1,1250 +0,0 @@ -/* - * Copyright (c) 2018, The OpenThread Authors. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the copyright holder nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -/** - * @file - * @brief - * This file defines a generic OpenThread BLE driver HOST interface. - * - */ - -#ifndef OT_PLATFORM_BLE_H_ -#define OT_PLATFORM_BLE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#include -#include - -/** - * @addtogroup plat-ble - * - * @brief - * This module includes the platform abstraction for BLE Host communication. - * The platform needs to implement Bluetooth LE 4.2 or higher. - * - * @{ - * - */ - -enum -{ - /** - * The size of the Bluetooth Device Address [bytes]. - */ - OT_BLE_ADDRESS_LENGTH = 6, - - /** - * Time slot duration on PHY layer in microseconds (0.625ms). - */ - OT_BLE_TIMESLOT_UNIT = 625, - - /** - * Unit used to calculate connection interval (1.25ms) - */ - OT_BLE_CONN_INTERVAL_UNIT = 2 * OT_BLE_TIMESLOT_UNIT, - - /** - * 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_MIN = 0x0006, - - /** - * Maximum allowed connection interval in OT_BLE_CONN_INTERVAL_UNIT units (4s). - * See v4.2 [Vol 2, Part E] page 946 - */ - OT_BLE_CONN_INTERVAL_MAX = 0x0C80, - - /** - * Maximum allowed slave latency in units of connection events. - * See v4.2 [Vol 2, Part E] page 946 - */ - OT_BLE_CONN_SLAVE_LATENCY_MAX = 0x01F3, - - /** - * Minimum allowed connection timeout in units of 10ms (100ms). - * See v4.2 [Vol 2, Part E] page 946 - */ - OT_BLE_CONN_SUPERVISOR_TIMEOUT_MIN = 0x000A, - - /** - * Maximum allowed connection timeout (32s). - * See v4.2 [Vol 2, Part E] page 946 - */ - OT_BLE_CONN_SUPERVISOR_TIMEOUT_MAX = 0x0C80, - - /** - * Unit used to calculate connection supervisor timeout (10ms). - */ - OT_BLE_CONN_SUPERVISOR_UNIT = 16 * OT_BLE_TIMESLOT_UNIT, - - /** - * Maximum length of the device name characteristic [bytes]. - */ - OT_BLE_DEV_NAME_MAX_LENGTH = 248, - - /** - * Maximum length of advertising data [bytes]. - */ - OT_BLE_ADV_DATA_MAX_LENGTH = 31, - - /** - * Maximum length of scan response data [bytes]. - */ - OT_BLE_SCAN_RESPONSE_MAX_LENGTH = 31, - - /** - * Minimum allowed interval for advertising packet in OT_BLE_ADV_INTERVAL_UNIT units (20ms). - */ - OT_BLE_ADV_INTERVAL_MIN = 0x0020, - - /** - * Maximum allowed interval for advertising packet in OT_BLE_ADV_INTERVAL_UNIT units (10.24s). - */ - OT_BLE_ADV_INTERVAL_MAX = 0x4000, - - /** - * Unit used to calculate interval duration (0.625ms). - */ - OT_BLE_ADV_INTERVAL_UNIT = OT_BLE_TIMESLOT_UNIT, - - /** - * Minimum allowed scan interval (2.5ms). - */ - OT_BLE_SCAN_INTERVAL_MIN = 0x0004, - - /** - * Maximum allowed scan interval (10.24s). - */ - OT_BLE_SCAN_INTERVAL_MAX = 0x4000, - - /** - * Unit used to calculate scan interval duration (0.625ms). - */ - OT_BLE_SCAN_INTERVAL_UNIT = OT_BLE_TIMESLOT_UNIT, - - /** - * Minimum allowed scan window in OT_BLE_TIMESLOT_UNIT units (2.5ms). - */ - OT_BLE_SCAN_WINDOW_MIN = 0x0004, - - /** - * Maximum allowed scan window in OT_BLE_TIMESLOT_UNIT units (10.24s). - */ - OT_BLE_SCAN_WINDOW_MAX = 0x4000, - - /** - * Unit used to calculate scan window duration (0.625ms). - */ - OT_BLE_SCAN_WINDOW_UNIT = OT_BLE_TIMESLOT_UNIT, - - /** - * BLE HCI code for remote user terminated connection. - */ - OT_BLE_HCI_REMOTE_USER_TERMINATED = 0x13, - - /** - * Value of invalid/unknown handle. - */ - OT_BLE_INVALID_HANDLE = 0x0000, - - /** - * Maximum size of BLE Characteristic [bytes]. - */ - OT_BLE_CHARACTERISTIC_MAX_LENGTH = 512, - - /** - * Maximum value of ATT_MTU [bytes]. - */ - OT_BLE_ATT_MTU_MAX = 511, - - /** - * Length of full BLE UUID in bytes. - */ - OT_BLE_UUID_LENGTH = 16, - - /** - * Uuid of Client Configuration Characteristic Descriptor. - */ - OT_BLE_UUID_CCCD = 0x2902, - -}; - -/// Convert the advertising interval from [ms] to [ble symbol times]. -#define OT_BLE_MS_TO_TICKS(x) (((x)*1000) / OT_BLE_ADV_INTERVAL_UNIT) - -/** - * This enum represents BLE Device Address types. - * - */ -typedef enum otPlatBleAddressType -{ - OT_BLE_ADDRESS_TYPE_PUBLIC = 0, ///< Bluetooth public device address. - OT_BLE_ADDRESS_TYPE_RANDOM_STATIC = 1, ///< Bluetooth random static address. - OT_BLE_ADDRESS_TYPE_RANDOM_PRIVATE_RESOLVABLE = 2, ///< Bluetooth random private resolvable address. - OT_BLE_ADDRESS_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE = 3, ///< Bluetooth random private non-resolvable address. -} otPlatBleAddressType; - -/** - * 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 - */ -typedef enum otPlatBleCccdFlags -{ - /** - * If set, permits broadcasts of the Characteristic Value using Characteristic Configuration Descriptor. - */ - OT_BLE_CHAR_PROP_BROADCAST = (1 << 0), - - /** - * If set, permits reads of the Characteristic Value. - */ - OT_BLE_CHAR_PROP_READ = (1 << 1), - - /** - * If set, permit writes of the Characteristic Value without response. - */ - OT_BLE_CHAR_PROP_WRITE_NO_RESPONSE = (1 << 2), - - /** - * If set, permits writes of the Characteristic Value with response. - */ - OT_BLE_CHAR_PROP_WRITE = (1 << 3), - - /** - * If set, permits notifications of a Characteristic Value without acknowledgement. - */ - OT_BLE_CHAR_PROP_NOTIFY = (1 << 4), - - /** - * If set, permits indications of a Characteristic Value with acknowledgement. - */ - OT_BLE_CHAR_PROP_INDICATE = (1 << 5), - - /** - * If set, permits signed writes to the Characteristic Value. - */ - OT_BLE_CHAR_PROP_AUTH_SIGNED_WRITE = (1 << 6), - - /** - * If set, additional characteristic properties are defined in the Characteristic Extended Properties Descriptor. - */ - OT_BLE_CHAR_PROP_EXTENDED = (1 << 7), - -} otPlatBleCccdFlags; - -/** - * This structure represents BLE Device Address. - * - */ -typedef struct otPlatBleDeviceAddr -{ - uint8_t mAddrType; ///< Bluetooth device address type. - uint8_t mAddr[OT_BLE_ADDRESS_LENGTH]; ///< An 48-bit address of Bluetooth device in LSB format. -} otPlatBleDeviceAddr; - -/** - * This enumeration defines flags for BLE advertisement mode. - * - */ -typedef enum otPlatBleAdvMode -{ - /** - * If set, advertising device will allow connections to be initiated. - */ - OT_BLE_ADV_MODE_CONNECTABLE = (1 << 0), - - /** - * If set, advertising device will respond to scan requests. - */ - OT_BLE_ADV_MODE_SCANNABLE = (1 << 1), -} otPlatBleAdvMode; - -/** - * This structure represents BLE connection parameters. - * - */ -typedef struct otPlatBleGapConnParams -{ - /** - * Preferred minimum connection interval in OT_BLE_TIMESLOT_UNIT units. - * Shall be in OT_BLE_CONN_INTERVAL_MIN and OT_BLE_CONN_INTERVAL_MAX range. - */ - uint16_t mConnMinInterval; - - /** - * Preferred maximum connection interval in OT_BLE_TIMESLOT_UNIT units. - * Shall be in OT_BLE_CONN_INTERVAL_MIN and OT_BLE_CONN_INTERVAL_MAX range. - */ - uint16_t mConnMaxInterval; - - /** - * Slave Latency in number of connection events. - * Shall not exceed OT_BLE_CONN_SLAVE_LATENCY_MAX value. - */ - uint16_t mConnSlaveLatency; - - /** - * Defines connection timeout parameter in OT_BLE_CONN_SUPERVISOR_UNIT units. Shall be in - * OT_BLE_CONN_SUPERVISOR_TIMEOUT_MIN and OT_BLE_CONN_SUPERVISOR_TIMEOUT_MIN range. - */ - uint16_t mConnSupervisionTimeout; - -} otPlatBleGapConnParams; - -/** - * This enumeration represents BLE UUID value. - * - */ -typedef enum otPlatBleUuidType -{ - OT_BLE_UUID_TYPE_NONE = 0, ///< UUID uninitialized value. - OT_BLE_UUID_TYPE_16 = 1, ///< UUID represented by 16-bit value. - OT_BLE_UUID_TYPE_32 = 2, ///< UUID represented by 32-bit value. - OT_BLE_UUID_TYPE_128 = 3, ///< UUID represented by 128-bit value. -} otPlatBleUuidType; - -/** - * This structure represents BLE UUID value. - * - */ -typedef union otPlatBleUuidValue -{ - uint8_t *mUuid128; ///< A pointer to 128-bit UUID value. - uint32_t mUuid32; ///< A 32-bit UUID value. - uint16_t mUuid16; ///< A 16-bit UUID value. -} otPlatBleUuidValue; - -/** - * This structure represents BLE UUID. - * - */ -typedef struct otPlatBleUuid -{ - otPlatBleUuidType mType; ///< A type of UUID in @p mValue. - otPlatBleUuidValue mValue; ///< A value of UUID. -} otPlatBleUuid; - -/** - * This structure represents GATT Characteristic. - * - */ -typedef struct otPlatBleGattCharacteristic -{ - otPlatBleUuid mUuid; ///< [in] A UUID value of a characteristic. - uint16_t mHandleValue; ///< [out] Characteristic value handle. - uint16_t mHandleCccd; ///< [out] CCCD handle or OT_BLE_INVALID_HANDLE if CCCD is not present. - uint8_t mProperties; ///< [in] Characteristic properties. -} otPlatBleGattCharacteristic; - -/** - * This structure represents GATT Descriptor. - * - */ -typedef struct otPlatBleGattDescriptor -{ - otPlatBleUuid mUuid; ///< A UUID value of descriptor. - uint16_t mHandle; ///< Descriptor handle. -} otPlatBleGattDescriptor; - -/** - * Registration descriptor for a GATT service. - * - */ -typedef struct otPlatBleGattService -{ - /** - * Pointer to service UUID; use BLE_UUIDxx_DECLARE macros to declare - * proper UUID; NULL if there are no more characteristics in the service. - */ - const otPlatBleUuid mUuid; - - /** - * Handle of service; written to by stack after call to - * otPlatBleGattServerServicesRegister. - */ - uint16_t mHandle; - - /** - * Array of characteristic definitions corresponding to characteristics - * belonging to this service. - */ - otPlatBleGattCharacteristic *mCharacteristics; -} otPlatBleGattService; - -/** - * This structure represents an BLE packet. - * - */ -typedef struct otBleRadioPacket -{ - uint8_t *mValue; ///< The value of an attribute - uint16_t mLength; ///< Length of the @p mValue. - int8_t mPower; ///< Transmit/receive power in dBm. -} otBleRadioPacket; - -/** - * The enum indicates the outcome of the L2CAP connection request procedure. - * See Bluetooth v5.0 | Vol 3, Part A, 4.23, Table 4.20. - */ -typedef enum otPlatBleL2capError -{ - OT_BLE_L2C_ERROR_NONE = 0x00, ///< Connection successful. - OT_BLE_L2C_ERROR_INVALID_PSM = 0x02, ///< Connection refused – LE_PSM not supported. - OT_BLE_L2C_ERROR_NO_MEM = 0x04, ///< Connection refused – no resources available. - OT_BLE_L2C_ERROR_INVALID_PARAMS = 0x0b, ///< Connection refused – unacceptable parameters. -} otPlatBleL2capError; - -/******************************************************************************* - * @section Bluetooth Low Energy management. - ******************************************************************************/ - -/** - * 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. - * - * @param[in] aInstance The OpenThread instance structure. - * - * @retval ::OT_ERROR_NONE Successfully enabled. - * @retval ::OT_ERROR_FAILED The BLE radio could not be enabled. - */ -otError otPlatBleEnable(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. - * - * @param[in] aInstance The OpenThread instance structure. - * - * @retval ::OT_ERROR_NONE Successfully transitioned to disabled. - * @retval ::OT_ERROR_FAILED The BLE radio could not be disabled. - */ -otError otPlatBleDisable(otInstance *aInstance); - -/** - * Reset the Bluetooth Low Energy subsystem. - * - * @param[in] aInstance The OpenThread instance structure. - * - * @retval ::OT_ERROR_NONE Successfully reset. - * @retval ::OT_ERROR_FAILED The BLE stack could not be reset. - */ -otError otPlatBleReset(otInstance *aInstance); - -/** - * Check whether Bluetooth Low Energy radio is enabled or not. - * - * @param[in] aInstance The OpenThread instance structure. - * - * @retval ::true Bluetooth Low Energy radio is enabled. - * @retval ::false Bluetooth Low Energy radio is disabled. - */ -bool otPlatBleIsEnabled(otInstance *aInstance); - -/** - * Callback sent when Bluetooth Low Energy is ready after being enabled. - * - * @param[in] aInstance The OpenThread instance structure. - */ -extern void otPlatBleOnEnabled(otInstance *aInstance); - -/**************************************************************************** - * @section Bluetooth Low Energy GAP. - ***************************************************************************/ - -/** - * Gets Bluetooth Device Address. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[out] aAddress The pointer to Bluetooth Device Address. - * - * @retval ::OT_ERROR_NONE Request has been successfully done. - * @retval ::OT_ERROR_INVALID_ARGS Invalid parameters has been supplied. - */ -otError otPlatBleGapAddressGet(otInstance *aInstance, otPlatBleDeviceAddr *aAddress); - -/** - * Sets Bluetooth Device Address. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aAddress The pointer to Bluetooth Device Address. - * - * @retval ::OT_ERROR_NONE Request has been successfully done. - * @retval ::OT_ERROR_INVALID_ARGS Invalid parameters has been supplied. - */ -otError otPlatBleGapAddressSet(otInstance *aInstance, const otPlatBleDeviceAddr *aAddress); - -/** - * 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. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aDeviceName A pointer to device name string (null terminated). - * Shall not exceed OT_BLE_DEV_NAME_MAX_LENGTH. - * @param[in] aAppearance The value of appearance characteristic. - * - * @retval ::OT_ERROR_NONE Connection parameters have been - * successfully set. - * @retval ::OT_ERROR_INVALID_ARGS Invalid parameters has been supplied. - */ -otError otPlatBleGapServiceSet(otInstance *aInstance, const char *aDeviceName, uint16_t aAppearance); - -/** - * Sets desired BLE Connection Parameters. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aConnParams A pointer to connection parameters structure. - * - * @retval ::OT_ERROR_NONE Connection parameters have been - * successfully set. - * @retval ::OT_ERROR_INVALID_ARGS Invalid connection parameters have been - * supplied. - */ -otError otPlatBleGapConnParamsSet(otInstance *aInstance, const otPlatBleGapConnParams *aConnParams); - -/** - * Sets BLE Advertising packet content. - * - * @note This function shall be used only for BLE Peripheral role. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aAdvData A pointer to advertising data content in raw format. - * @param[in] aAdvDataLength The size of advertising data. - * Shall not exceed OT_BLE_ADV_DATA_MAX_LENGTH. - * - * @retval ::OT_ERROR_NONE Advertising data has been successfully set. - * @retval ::OT_ERROR_INVALID_ARGS Invalid advertising data has been supplied. - */ -otError otPlatBleGapAdvDataSet(otInstance *aInstance, const uint8_t *aAdvData, uint8_t aAdvDataLength); - -/** - * Sets BLE Scan Response packet content. - * - * @note This function shall be used only for BLE Peripheral role. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aScanResponse A pointer to scan response data in raw format. - * @param[in] aScanResponseLength The size of scan response data. - * Shall not exceed OT_BLE_SCAN_RESPONSE_MAX_LENGTH. - * - * @retval ::OT_ERROR_NONE Scan response data has been successfully set. - * @retval ::OT_ERROR_INVALID_ARGS Invalid scan response data has been supplied. - */ -otError otPlatBleGapScanResponseSet(otInstance *aInstance, const uint8_t *aScanResponse, uint8_t aScanResponseLength); - -/** - * 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. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[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. - * @param[in] aType The advertisement properties as a bitmask: - * whether it is connectable | scannable. - * - * @retval ::OT_ERROR_NONE Advertising procedure has been started. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid interval value has been supplied. - */ -otError otPlatBleGapAdvStart(otInstance *aInstance, uint16_t aInterval, uint8_t aType); - -/** - * Stops BLE Advertising procedure. - * - * @note This function shall be used only for BLE Peripheral role. - * - * @param[in] aInstance The OpenThread instance structure. - * - * @retval ::OT_ERROR_NONE Advertising procedure has been stopped. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - */ -otError otPlatBleGapAdvStop(otInstance *aInstance); - -/** - * The BLE driver calls this method to notify OpenThread that BLE Device has - * been connected. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aConnectionId The identifier of the open connection. - * - */ -extern void otPlatBleGapOnConnected(otInstance *aInstance, uint16_t aConnectionId); - -/** - * The BLE driver calls this method to notify OpenThread that the BLE Device - * has been disconnected. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aConnectionId The identifier of the closed connection. - * - */ -extern void otPlatBleGapOnDisconnected(otInstance *aInstance, uint16_t aConnectionId); - -/** - * Starts BLE Scanning procedure. - * - * @note This function shall be used only for BLE Central role. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[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. - * @param[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. - * - * @retval ::OT_ERROR_NONE Scanning procedure has been started. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid interval or window value has been - * supplied. - */ -otError otPlatBleGapScanStart(otInstance *aInstance, uint16_t aInterval, uint16_t aWindow); - -/** - * Stops BLE Scanning procedure. - * - * @note This function shall be used only for BLE Central role. - * - * @param[in] aInstance The OpenThread instance structure. - * - * @retval ::OT_ERROR_NONE Scanning procedure has been stopped. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - */ -otError otPlatBleGapScanStop(otInstance *aInstance); - -/** - * The BLE driver calls this method to notify OpenThread that an advertisement - * packet has been received. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aAddress An address of the advertising device. - * @param[in] aPacket A pointer to the received packet. - * - */ -extern void otPlatBleGapOnAdvReceived(otInstance *aInstance, otPlatBleDeviceAddr *aAddress, otBleRadioPacket *aPacket); - -/** - * The BLE driver calls this method to notify OpenThread that a scan response packet has been received. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aAddress An address of the advertising device. - * @param[in] aPacket A pointer to the received packet. - * - */ -extern void otPlatBleGapOnScanRespReceived(otInstance * aInstance, - otPlatBleDeviceAddr *aAddress, - otBleRadioPacket * aPacket); - -/** - * Starts BLE Connection procedure. - * - * @note This function shall be used only for BLE Central role. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aAddress An address of the advertising device. - * @param[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. - * @param[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. - * - * @retval ::OT_ERROR_NONE Connection procedure has been started. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid address, interval or window value has been supplied. - */ -otError otPlatBleGapConnect(otInstance *aInstance, otPlatBleDeviceAddr *aAddress, uint16_t aInterval, uint16_t aWindow); - -/** - * Disconnects BLE connection. - * - * The BLE device shall indicate the OT_BLE_HCI_REMOTE_USER_TERMINATED HCI code reason. - * - * @param[in] aInstance The OpenThread instance structure. - * - * @retval ::OT_ERROR_NONE Disconnection procedure has been started. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - */ -otError otPlatBleGapDisconnect(otInstance *aInstance); - -/******************************************************************************* - * @section Bluetooth Low Energy GATT Common. - *******************************************************************************/ - -/** - * Registers vendor specific UUID Base. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aUuid A pointer to vendor specific 128-bit UUID Base. - * - */ -otError otPlatBleGattVendorUuidRegister(otInstance *aInstance, const otPlatBleUuid *aUuid); - -/** - * Reads currently use value of ATT_MTU. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[out] aMtu A pointer contains current ATT_MTU value. - * - * @retval ::OT_ERROR_NONE ATT_MTU value has been placed in @p aMtu. - * @retval ::OT_ERROR_FAILED BLE Device cannot determine its ATT_MTU. - */ -otError otPlatBleGattMtuGet(otInstance *aInstance, uint16_t *aMtu); - -/******************************************************************************* - * @section Bluetooth Low Energy GATT Client. - ******************************************************************************/ - -/** - * Sends ATT Read Request. - * - * @note This function shall be used only for GATT Client. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aHandle The handle of the attribute to be read. - * - * @retval ::OT_ERROR_NONE ATT Write Request has been sent. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid handle value has been supplied. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - */ -otError otPlatBleGattClientRead(otInstance *aInstance, uint16_t aHandle); - -/** - * The BLE driver calls this method to notify OpenThread that ATT Read Response - * packet has been received. - * - * This method is called only if @p otPlatBleGattClientRead was previously requested. - * - * @note This function shall be used only for GATT Client. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aPacket A pointer to the packet contains read value. - * - */ -extern void otPlatBleGattClientOnReadResponse(otInstance *aInstance, otBleRadioPacket *aPacket); - -/** - * Sends ATT Write Request. - * - * @note This function shall be used only for GATT Client. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aHandle The handle of the attribute to be written. - * @param[in] aPacket A pointer to the packet contains value to be - * written to the attribute. - * - * @retval ::OT_ERROR_NONE ATT Write Request has been sent. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid handle value, data or data length has been supplied. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - */ -otError otPlatBleGattClientWrite(otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket); - -/** - * The BLE driver calls this method to notify OpenThread that ATT Write Response - * packet has been received. - * - * This method is called only if @p otPlatBleGattClientWrite was previously requested. - * - * @note This function shall be used only for GATT Client. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aHandle The handle on which ATT Write Response has been sent. - * - */ - -extern void otPlatBleGattClientOnWriteResponse(otInstance *aInstance, uint16_t aHandle); -/** - * Subscribes for characteristic indications. - * - * @note This function shall be used only for GATT Client. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aHandle The handle of the attribute to be written. - * @param[in] aSubscribing True if subscribing, otherwise unsubscribing. - * - * @retval ::OT_ERROR_NONE Subscription has been sent. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid handle value, data or data length has been supplied. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - */ -otError otPlatBleGattClientSubscribeRequest(otInstance *aInstance, uint16_t aHandle, bool aSubscribing); - -/** - * The BLE driver calls this method to notify OpenThread that subscribe response - * has been received. - * - * This method is called only if @p otPlatBleGattClienSubscribe was previously requested. - * - * @note This function shall be used only for GATT Client. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aHandle The handle on which ATT Write Response has been sent. - * - */ -extern void otPlatBleGattClientOnSubscribeResponse(otInstance *aInstance, uint16_t aHandle); - -/** - * 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. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aHandle The handle on which ATT Handle Value Indication has been sent. - * @param[in] aPacket A pointer to the packet contains indicated value. - * - */ -extern void otPlatBleGattClientOnIndication(otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket); - -/** - * Performs GATT Primary Service Discovery of all services available. - * - * @note This function shall be used only for GATT Client. - * - * @param[in] aInstance The OpenThread instance structure. - * - * @retval ::OT_ERROR_NONE Service Discovery procedure has been started. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid service UUID has been provided. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - */ -otError otPlatBleGattClientServicesDiscover(otInstance *aInstance); - -/** - * Performs GATT Primary Service Discovery by UUID procedure of specific service. - * - * @note This function shall be used only for GATT Client. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aUuid The UUID of a service to be registered. - * - * @retval ::OT_ERROR_NONE Service Discovery procedure has been started. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid service UUID has been provided. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - */ -otError otPlatBleGattClientServiceDiscover(otInstance *aInstance, const otPlatBleUuid *aUuid); - -/** - * 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. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aStartHandle The start handle of a service. - * @param[in] aEndHandle The end handle of a service. - * @param[in] aServiceUuid The Uuid16 for the service entry. - * @param[in] aError The value of OT_ERROR_NONE indicates that service has been found - * and structure @p aStartHandle and @p 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. - * - */ -extern void otPlatBleGattClientOnServiceDiscovered(otInstance *aInstance, - uint16_t aStartHandle, - uint16_t aEndHandle, - uint16_t aServiceUuid, - otError aError); - -/** - * Performs GATT Characteristic Discovery of a service. - * - * @note This function shall be used only for GATT Client. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aStartHandle The start handle of a service. - * @param[in] aEndHandle The end handle of a service. - * - * @retval ::OT_ERROR_NONE Characteristic Discovery procedure has been started. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid start or end handle has been provided. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - */ -otError otPlatBleGattClientCharacteristicsDiscover(otInstance *aInstance, uint16_t aStartHandle, uint16_t aEndHandle); - -/** - * 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 @p aChars should have a valid mHandleValue value. - * - * @note This function shall be used only for GATT Client. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aChars A pointer to discovered characteristic list. - * @param[in] aCount Number of characteristics in @p aChar list. - * @param[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 @p aCount. - * OT_ERROR_NOT_FOUND error should be set if no charactertistics are found. - * Otherwise error indicates the reason of failure is used. - * - */ -extern void otPlatBleGattClientOnCharacteristicsDiscoverDone(otInstance * aInstance, - otPlatBleGattCharacteristic *aChars, - uint16_t aCount, - otError aError); - -/** - * Performs GATT Descriptor Discovery. - * - * @note This function shall be used only for GATT Client. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aStartHandle The start handle. - * @param[in] aEndHandle The end handle. - * - * @retval ::OT_ERROR_NONE Descriptor Discovery procedure has been started. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid start or end handle has been provided. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - */ -otError otPlatBleGattClientDescriptorsDiscover(otInstance *aInstance, uint16_t aStartHandle, uint16_t aEndHandle); - -/** - * 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. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aDescs A pointer to discovered descriptor list. - * @param[in] aCount Number of descriptors in @p aDescs list. - * @param[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 @p aCount. - * OT_ERROR_NOT_FOUND error should be set if no descriptors are found. - * Otherwise error indicates the reason of failure is used. - * - */ -extern void otPlatBleGattClientOnDescriptorsDiscoverDone(otInstance * aInstance, - otPlatBleGattDescriptor *aDescs, - uint16_t aCount, - otError aError); - -/** - * Sends Exchange MTU Request. - * - * @note This function shall be used only for GATT Client. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aMtu A value of GATT Client receive MTU size. - * - * @retval ::OT_ERROR_NONE Exchange MTU Request has been sent. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid aMtu has been provided. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - */ -otError otPlatBleGattClientMtuExchangeRequest(otInstance *aInstance, uint16_t aMtu); - -/** - * 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. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aMtu Attribute server receive MTU size. - * @param[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. - * - */ -extern void otPlatBleGattClientOnMtuExchangeResponse(otInstance *aInstance, uint16_t aMtu, otError aError); - -/******************************************************************************* - * @section Bluetooth Low Energy GATT Server. - ******************************************************************************/ - -/** - * 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. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aServices Null terminated array of service structures to register. - * - * @retval ::OT_ERROR_NONE Service has been successfully registered. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid service UUID has been provided. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - */ -otError otPlatBleGattServerServicesRegister(otInstance *aInstance, otPlatBleGattService *aServices); - -/** - * Sends ATT Handle Value Indication. - * - * @note This function shall be used only for GATT Server. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aHandle The handle of the attribute to be indicated. - * @param[in] aPacket A pointer to the packet contains value to be indicated. - * - * @retval ::OT_ERROR_NONE ATT Handle Value Indication has been sent. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state. - * @retval ::OT_ERROR_INVALID_ARGS Invalid handle value, data or data length has been supplied. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - */ -otError otPlatBleGattServerIndicate(otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket); - -/** - * The BLE driver calls this method to notify OpenThread that an ATT Handle - * Value Confirmation has been received. - * - * This method is called only if @p otPlatBleGattServerIndicate was previously requested. - * - * @note This function shall be used only for GATT Server. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aHandle The handle on which ATT Handle Value Confirmation has been sent. - * - */ -extern void otPlatBleGattServerOnIndicationConfirmation(otInstance *aInstance, uint16_t aHandle); - -/** - * 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. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aHandle The handle of the attribute to be written. - * @param[in] aPacket A pointer to the packet contains value to be written to the attribute. - * - */ -extern void otPlatBleGattServerOnWriteRequest(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. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aHandle The handle of the attribute to be read. - * @param[out] aPacket A pointer to the packet to be filled with pointers to attribute data to be read. - * - */ -extern void otPlatBleGattServerOnReadRequest(otInstance *aInstance, uint16_t aHandle, otBleRadioPacket *aPacket); - -/** - * 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. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aHandle The handle of the attribute to be written. - * @param[in] aSubscribing True if subscribing, otherwise unsubscribing. - * - */ -extern void otPlatBleGattServerOnSubscribeRequest(otInstance *aInstance, uint16_t aHandle, bool aSubscribing); - -/**************************************************************************** - * @section Bluetooth Low Energy L2CAP Connection Oriented Channels. - ***************************************************************************/ - -/** - * Sends LE Credit Based Connection Request. - * - * @note Platform layer is responsible for credits management and segmentation (MPS). - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aPsm The value of LE Protocol/Service Multiplexer. - * @param[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. - * @param[out] aCid The source CID represents a channel endpoint on the device. - * - * @retval ::OT_ERROR_NONE LE Credit Based Connection Request has been sent. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state e.g. not in the GAP connection. - * @retval ::OT_ERROR_INVALID_ARGS Invalid parameters has been supplied. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - * - */ -otError otPlatBleL2capConnectionRequest(otInstance *aInstance, uint16_t aPsm, uint16_t aMtu, uint16_t *aCid); - -/** - * The BLE driver calls this method to notify OpenThread that an LE Credit Based Connection - * Request packet has been received. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aPsm The value of LE Protocol/Service Multiplexer. - * @param[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. - * @param[in] aPeerCid The CID represents a channel endpoint on the peer device. - * - */ -extern void otPlatBleL2capOnConnectionRequest(otInstance *aInstance, uint16_t aPsm, uint16_t aMtu, uint16_t aPeerCid); - -/** - * Sends LE Credit Based Connection Response. - * - * @note Platform layer is responsible for credits management and segmentation (MPS). - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aError The error value indicates the outcome of the connection request. - * @param[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. - * @param[out] aCid The source CID represents a channel endpoint on the device. If @p aResult - * value is different from @p OT_BLE_L2C_ERROR_NONE, this variable is - * unused and should be set to NULL. - * - * @retval ::OT_ERROR_NONE LE Credit Based Connection Response has been sent. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state e.g. not in the GAP connection. - * @retval ::OT_ERROR_INVALID_ARGS Invalid parameters has been supplied. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - * - */ -otError otPlatBleL2capConnectionResponse(otInstance * aInstance, - otPlatBleL2capError aError, - uint16_t aMtu, - uint16_t * aCid); - -/** - * The BLE driver calls this method to notify OpenThread that an LE Credit Based Connection - * Response packet has been received. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aError The error value indicates the outcome of the connection request. - * @param[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. - * @param[in] aPeerCid The CID represents a channel endpoint on the peer device. - * - */ -extern void otPlatBleL2capOnConnectionResponse(otInstance * aInstance, - otPlatBleL2capError aError, - uint16_t aMtu, - uint16_t aPeerCid); - -/** - * Sends an SDU on an L2CAP channel. - * - * @note Platform layer is responsible for credits management and segmentation (MPS). - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aLocalCid The local channel endpoint ID value. - * @param[in] aPeerCid The peer channel endpoint ID value. - * @param[in] aPacket A pointer to the packet containing SDU. - * - * @retval ::OT_ERROR_NONE LE Credit Based Connection Request has been sent. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state e.g. not in the GAP connection. - * @retval ::OT_ERROR_INVALID_ARGS Invalid parameters has been supplied. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - * - */ -otError otPlatBleL2capSduSend(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). - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aLocalCid The local channel endpoint ID value. - * @param[in] aPeerCid The peer channel endpoint ID value. - * @param[in] aPacket A pointer to the packet containing SDU. - * - */ -extern 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 sent. - * - * @param[in] aInstance The OpenThread instance structure. - * - */ -extern void otPlatBleL2capOnSduSent(otInstance *aInstance); - -/** - * Sends an L2CAP Disconnection Request. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aLocalCid The local channel endpoint ID value. - * @param[in] aPeerCid The peer channel endpoint ID value. - * - * @retval ::OT_ERROR_NONE L2CAP Disconnection Request has been sent. - * @retval ::OT_ERROR_INVALID_STATE BLE Device is in invalid state e.g. not in the GAP connection. - * @retval ::OT_ERROR_INVALID_ARGS Invalid parameters has been supplied. - * @retval ::OT_ERROR_NO_BUFS No available internal buffer found. - * - */ -otError otPlatBleL2capDisconnect(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. - * - * @param[in] aInstance The OpenThread instance structure. - * @param[in] aLocalCid The local channel endpoint ID value. - * @param[in] aPeerCid The peer channel endpoint ID value. - * - */ -extern void otPlatBleL2capOnDisconnect(otInstance *aInstance, uint16_t aLocalCid, uint16_t aPeerCid); - -/** - * @} - * - */ - -#ifdef __cplusplus -} // end of extern "C" -#endif - -#endif // OT_PLATFORM_BLE_H_