248 lines
9 KiB
C
248 lines
9 KiB
C
/**
|
|
@headerfile: bcomdef.h
|
|
|
|
<!--
|
|
Revised:
|
|
Revision:
|
|
|
|
Description: Type definitions and macros for BLE stack.
|
|
|
|
|
|
-->
|
|
SDK_LICENSE
|
|
**************************************************************************************************/
|
|
|
|
#ifndef BCOMDEF_H
|
|
#define BCOMDEF_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
|
|
/*********************************************************************
|
|
INCLUDES
|
|
*/
|
|
#include "rom_sym_def.h"
|
|
|
|
#include "comdef.h"
|
|
#include "log.h"
|
|
|
|
//#define LOG_DEBUG(...)
|
|
//#define LOG(...)
|
|
//#define OM_LOG(...)
|
|
/*********************************************************************
|
|
CONSTANTS
|
|
*/
|
|
|
|
#define CTRL_CONFIG ( ADV_NCONN_CFG | ADV_CONN_CFG | SCAN_CFG | INIT_CFG )
|
|
|
|
//#if defined ( HOST_CONFIG )
|
|
// // Set the Controller Configuration
|
|
|
|
/*
|
|
// #if ( HOST_CONFIG == ( CENTRAL_CFG | PERIPHERAL_CFG ) )
|
|
// #define CTRL_CONFIG ( ADV_NCONN_CFG | ADV_CONN_CFG | SCAN_CFG | INIT_CFG )
|
|
// #elif ( HOST_CONFIG == ( CENTRAL_CFG | BROADCASTER_CFG ) )
|
|
// #define CTRL_CONFIG ( ADV_NCONN_CFG | SCAN_CFG | INIT_CFG )
|
|
// #elif ( HOST_CONFIG == ( PERIPHERAL_CFG | OBSERVER_CFG ) )
|
|
// #define CTRL_CONFIG ( ADV_NCONN_CFG | ADV_CONN_CFG | SCAN_CFG )
|
|
// #elif ( HOST_CONFIG == ( BROADCASTER_CFG | OBSERVER_CFG ) )
|
|
// #define CTRL_CONFIG ( ADV_NCONN_CFG | SCAN_CFG )
|
|
// #elif ( HOST_CONFIG == CENTRAL_CFG )
|
|
// #define CTRL_CONFIG ( SCAN_CFG | INIT_CFG )
|
|
// #elif ( HOST_CONFIG == PERIPHERAL_CFG )
|
|
// #define CTRL_CONFIG ( ADV_NCONN_CFG | ADV_CONN_CFG )
|
|
// #elif ( HOST_CONFIG == OBSERVER_CFG )
|
|
// #define CTRL_CONFIG SCAN_CFG
|
|
// #elif ( HOST_CONFIG == BROADCASTER_CFG )
|
|
// #define CTRL_CONFIG ADV_NCONN_CFG
|
|
// #else
|
|
// #error "Build Configuration Error: Invalid Host Role!"
|
|
// #endif
|
|
|
|
//#else
|
|
// // Controller Sanity Check: Stop build when no configuration is defined.
|
|
// #if !defined( CTRL_CONFIG ) || !( CTRL_CONFIG & ( ADV_NCONN_CFG | \
|
|
// ADV_CONN_CFG | \
|
|
// SCAN_CFG | \
|
|
// INIT_CFG ) )
|
|
// #error "Build Configuration Error: At least one Controller build component required!"
|
|
// #endif // no Controller build components defined
|
|
//#endif
|
|
*/
|
|
|
|
#if !defined ( MAX_NUM_LL_CONN )
|
|
#if ( CTRL_CONFIG & INIT_CFG )
|
|
#define MAX_NUM_LL_CONN 8
|
|
#elif ( !( CTRL_CONFIG & INIT_CFG ) && ( CTRL_CONFIG & ADV_CONN_CFG ) )
|
|
#define MAX_NUM_LL_CONN 1
|
|
#else // no connection needed
|
|
#define MAX_NUM_LL_CONN 0
|
|
#endif // CTRL_CONFIG=INIT_CFG
|
|
#endif // !MAX_NUM_LL_CONN
|
|
|
|
#define MAX_NUM_LL_CONN_ROM_LIMT 16 //hard code for BBB ROM define
|
|
|
|
#if (MAX_NUM_LL_CONN_ROM_LIMT<MAX_NUM_LL_CONN)
|
|
#warning "MAX_NUM_LL_CONN > MAX_NUM_LL_CONN_ROM"
|
|
#endif
|
|
|
|
/** @defgroup BLE_COMMON_DEFINES BLE Common Defines
|
|
@{
|
|
*/
|
|
//! Default Public and Random Address Length
|
|
#define B_ADDR_LEN 6
|
|
|
|
//! Default key length
|
|
#define KEYLEN 16
|
|
|
|
//! BLE Channel Map length
|
|
#define B_CHANNEL_MAP_LEN 5
|
|
|
|
//! BLE Event mask length
|
|
#define B_EVENT_MASK_LEN 8
|
|
|
|
//! BLE Local Name length
|
|
#define B_LOCAL_NAME_LEN 248
|
|
|
|
//! BLE Maximum Advertising Packet Length
|
|
#define B_MAX_ADV_LEN 31
|
|
|
|
#define B_MAX_EXT_ADV_LEN 229
|
|
#define B_MAX_PERIOD_ADV_LEN 247
|
|
|
|
// 2020-01-14 AOA/AOD IQ Sample LEN
|
|
#define B_MAX_IQ_LEN 0x52
|
|
|
|
//! BLE Random Number Size
|
|
#define B_RANDOM_NUM_SIZE 8
|
|
|
|
//! BLE Feature Supported length
|
|
#define B_FEATURE_SUPPORT_LENGTH 8
|
|
|
|
/** @defgroup BLE_STATUS_VALUES BLE Default BLE Status Values
|
|
returned as bStatus_t
|
|
@{
|
|
*/
|
|
#define bleInvalidTaskID INVALID_TASK //!< Task ID isn't setup properly
|
|
#define bleNotReady 0x10 //!< Not ready to perform task
|
|
#define bleAlreadyInRequestedMode 0x11 //!< Already performing that task
|
|
#define bleIncorrectMode 0x12 //!< Not setup properly to perform that task
|
|
#define bleMemAllocError 0x13 //!< Memory allocation error occurred
|
|
#define bleNotConnected 0x14 //!< Can't perform function when not in a connection
|
|
#define bleNoResources 0x15 //!< There are no resource available
|
|
#define blePending 0x16 //!< Waiting
|
|
#define bleTimeout 0x17 //!< Timed out performing function
|
|
#define bleInvalidRange 0x18 //!< A parameter is out of range
|
|
#define bleLinkEncrypted 0x19 //!< The link is already encrypted
|
|
#define bleProcedureComplete 0x1A //!< The Procedure is completed
|
|
|
|
// GAP Status Return Values - returned as bStatus_t
|
|
#define bleGAPUserCanceled 0x30 //!< The user canceled the task
|
|
#define bleGAPConnNotAcceptable 0x31 //!< The connection was not accepted
|
|
#define bleGAPBondRejected 0x32 //!< The bound information was rejected.
|
|
|
|
// ATT Status Return Values - returned as bStatus_t
|
|
#define bleInvalidPDU 0x40 //!< The attribute PDU is invalid
|
|
#define bleInsufficientAuthen 0x41 //!< The attribute has insufficient authentication
|
|
#define bleInsufficientEncrypt 0x42 //!< The attribute has insufficient encryption
|
|
#define bleInsufficientKeySize 0x43 //!< The attribute has insufficient encryption key size
|
|
|
|
// L2CAP Status Return Values - returned as bStatus_t
|
|
|
|
#define INVALID_TASK_ID 0xFF //!< Task ID isn't setup properly
|
|
/** @} End BLE_STATUS_VALUES */
|
|
|
|
/** @defgroup BLE_NV_IDS BLE Non-volatile IDs
|
|
@{
|
|
*/
|
|
// Device NV Items - Range 0 - 0x1F
|
|
#define BLE_NVID_IRK 0x02 //!< The Device's IRK
|
|
#define BLE_NVID_CSRK 0x03 //!< The Device's CSRK
|
|
#define BLE_NVID_SIGNCOUNTER 0x04 //!< The Device's Sign Counter
|
|
|
|
// Bonding NV Items - Range 0x20 - 0x5F - This allows for 10 bondings
|
|
#define BLE_NVID_GAP_BOND_START 0x20 //!< Start of the GAP Bond Manager's NV IDs
|
|
#define BLE_NVID_GAP_BOND_END 0x5f //!< End of the GAP Bond Manager's NV IDs Range
|
|
|
|
// GATT Configuration NV Items - Range 0x70 - 0x79 - This must match the number of Bonding entries
|
|
#define BLE_NVID_GATT_CFG_START 0x70 //!< Start of the GATT Configuration NV IDs
|
|
#define BLE_NVID_GATT_CFG_END 0x79 //!< End of the GATT Configuration NV IDs
|
|
/** @} End BLE_NV_IDS */
|
|
|
|
/*********************************************************************
|
|
BLE OSAL GAP GLOBAL Events
|
|
*/
|
|
#define GAP_EVENT_SIGN_COUNTER_CHANGED 0x4000 //!< The device level sign counter changed
|
|
|
|
|
|
/** @defgroup BLE_MSG_IDS BLE OSAL Message ID Events
|
|
Reserved Message ID Event Values:<BR>
|
|
0xC0 - Key Presses<BR>
|
|
0xE0 to 0xFC - App<BR>
|
|
@{
|
|
*/
|
|
// GAP - Messages IDs (0xD0 - 0xDF)
|
|
#define GAP_MSG_EVENT 0xD0 //!< Incoming GAP message
|
|
|
|
// SM - Messages IDs (0xC1 - 0xCF)
|
|
#define SM_NEW_RAND_KEY_EVENT 0xC1 //!< New Rand Key Event message
|
|
|
|
// GATT - Messages IDs (0xB0 - 0xBF)
|
|
#define GATT_MSG_EVENT 0xB0 //!< Incoming GATT message
|
|
#define GATT_SERV_MSG_EVENT 0xB1 //!< Incoming GATT Serv App message
|
|
|
|
// L2CAP - Messages IDs (0xA0 - 0xAF)
|
|
#define L2CAP_DATA_EVENT 0xA0 //!< Incoming data on a channel
|
|
#define L2CAP_SIGNAL_EVENT 0xA2 //!< Incoming Signaling message
|
|
|
|
// HCI - Messages IDs (0x90 - 0x9F)
|
|
#define HCI_DATA_EVENT 0x90 //!< HCI Data Event message
|
|
#define HCI_GAP_EVENT_EVENT 0x91 //!< GAP Event message
|
|
#define HCI_SMP_EVENT_EVENT 0x92 //!< SMP Event message
|
|
#define HCI_EXT_CMD_EVENT 0x93 //!< HCI Extended Command Event message
|
|
/** @} End BLE_MSG_IDS */
|
|
|
|
/*********************************************************************
|
|
TYPEDEFS
|
|
*/
|
|
|
|
//! BLE Generic Status return: @ref BLE_STATUS_VALUES
|
|
typedef Status_t bStatus_t;
|
|
|
|
/** @} End GAP_MSG_EVENT_DEFINES */
|
|
|
|
|
|
/*********************************************************************
|
|
System Events
|
|
*/
|
|
|
|
/*********************************************************************
|
|
Global System Messages
|
|
*/
|
|
|
|
/*********************************************************************
|
|
MACROS
|
|
*/
|
|
|
|
#define TI_BASE_UUID_128( uuid ) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, \
|
|
0x00, 0x40, 0x51, 0x04, LO_UINT16( uuid ), HI_UINT16( uuid ), 0x00, 0xF0
|
|
|
|
/*********************************************************************
|
|
GLOBAL VARIABLES
|
|
*/
|
|
|
|
/*********************************************************************
|
|
FUNCTIONS
|
|
*/
|
|
|
|
/*********************************************************************
|
|
*********************************************************************/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* BCOMDEF_H */
|