#ifndef RWBLE_HL_CONFIG_H_ #define RWBLE_HL_CONFIG_H_ #include "rwprf_config.h" #include "rwapp_config.h" #define CFG_PRF #define CFG_NB_PRF (BLE_APP_OTA + BLE_APP_GFPS + BLE_VOICEPATH + BLE_BMS + \ BLE_ANC_CLIENT + BLE_AMS_CLIENT + (ANCS_PROXY_ENABLE ? 2 : 0) + \ BLE_APP_DATAPATH_SERVER + BLE_AI_VOICE + BLE_APP_TOTA + BLE_APP_TILE) /** **************************************************************************************** * @addtogroup ROOT * @{ * @name BLE stack configuration * @{ **************************************************************************************** */ #include "rwble_hl_error.h" /******************************************************************************************/ /* ------------------------- BLE PARTITIONING -------------------------------------*/ /******************************************************************************************/ /******************************************************************************************/ /* -------------------------- INTERFACES ----------------------------------------*/ /******************************************************************************************/ #if BLE_APP_PRESENT #define APP_MAIN_TASK TASK_APP #else // BLE_APP_PRESENT #define APP_MAIN_TASK TASK_AHI #endif // BLE_APP_PRESENT // Host Controller Interface (Host side) #define BLEHL_HCIH_ITF HCIH_ITF /******************************************************************************************/ /* -------------------------- COEX SETUP ----------------------------------------*/ /******************************************************************************************/ ///WLAN coex #define BLEHL_WLAN_COEX RW_WLAN_COEX ///WLAN test mode #define BLEHL_WLAN_COEX_TEST RW_WLAN_COEX_TEST /******************************************************************************************/ /* -------------------------- HOST MODULES ----------------------------------------*/ /******************************************************************************************/ #define BLE_GAPM 1 #if (BLE_CENTRAL || BLE_PERIPHERAL) #define BLE_GAPC 1 #define BLE_GAPC_HEAP_ENV_SIZE (sizeof(struct gapc_env_tag) + KE_HEAP_MEM_RESERVED) #else //(BLE_CENTRAL || BLE_PERIPHERAL) #define BLE_GAPC 0 #define BLE_GAPC_HEAP_ENV_SIZE 0 #endif //(BLE_CENTRAL || BLE_PERIPHERAL) #if (BLE_CENTRAL || BLE_PERIPHERAL) #define BLE_L2CM 1 #define BLE_L2CC 1 #define BLE_ATTM 1 #define BLE_GATTM 1 #define BLE_GATTC 1 #define BLE_GATTC_HEAP_ENV_SIZE (sizeof(struct gattc_env_tag) + KE_HEAP_MEM_RESERVED) #define BLE_L2CC_HEAP_ENV_SIZE (sizeof(struct l2cc_env_tag) + KE_HEAP_MEM_RESERVED) #else //(BLE_CENTRAL || BLE_PERIPHERAL) #define BLE_L2CM 0 #define BLE_L2CC 0 #define BLE_ATTC 0 #define BLE_ATTS 0 #define BLE_ATTM 0 #define BLE_GATTM 0 #define BLE_GATTC 0 #define BLE_GATTC_HEAP_ENV_SIZE 0 #define BLE_L2CC_HEAP_ENV_SIZE 0 #endif //(BLE_CENTRAL || BLE_PERIPHERAL) #define BLE_SMPM 1 #if (BLE_CENTRAL || BLE_PERIPHERAL) #define BLE_SMPC 1 #else //(BLE_CENTRAL || BLE_PERIPHERAL) #define BLE_SMPC 0 #endif //(BLE_CENTRAL || BLE_PERIPHERAL) /******************************************************************************************/ /* -------------------------- ATT DB ----------------------------------------*/ /******************************************************************************************/ //ATT DB,Testing and Qualification related flags #if (BLE_CENTRAL || BLE_PERIPHERAL) /// Support of External DB Management #if defined(CFG_EXT_DB) #define BLE_EXT_ATT_DB 1 #else #define BLE_EXT_ATT_DB 0 #endif // defined(CFG_EXT_DB) #else #define BLE_EXT_ATT_DB 0 #endif // (BLE_CENTRAL || BLE_PERIPHERAL) /******************************************************************************************/ /* -------------------------- PROFILES ----------------------------------------*/ /******************************************************************************************/ #ifdef CFG_PRF #define BLE_PROFILES (1) /// Number of Profile tasks managed by GAP manager. #define BLE_NB_PROFILES (CFG_NB_PRF) #include "rwprf_config.h" #else #define BLE_PROFILES (0) #define BLE_NB_PROFILES (0) #endif // CFG_PRF #ifndef BLE_ATTS #if (BLE_CENTRAL || BLE_PERIPHERAL || defined(CFG_ATTS)) #define BLE_ATTS 1 #else #define BLE_ATTS 0 #endif // (BLE_CENTRAL || BLE_PERIPHERAL || defined(CFG_ATTS)) #endif // BLE_ATTS #ifndef BLE_ATTC #if (BLE_CENTRAL || defined(CFG_ATTC)) #define BLE_ATTC 1 #else #define BLE_ATTC 0 #endif // (BLE_CENTRAL || defined(CFG_ATTC)) #endif // BLE_ATTC #ifndef BLE_LECB #if (BLE_CENTRAL || BLE_PERIPHERAL) #define BLE_LECB 1 #else #define BLE_LECB 0 #endif // (BLE_CENTRAL || defined(CFG_ATTC)) #endif // BLE_ATTC /// Attribute Server #if (BLE_ATTS) #define BLE_ATTS 1 #else #define BLE_ATTS 0 #endif //(BLE_ATTS) /// Size of the heap #if (BLE_CENTRAL || BLE_PERIPHERAL) /// some heap must be reserved for attribute database #if (BLE_ATTS || BLE_ATTC) #define BLEHL_HEAP_DB_SIZE (1024) #else #define BLEHL_HEAP_DB_SIZE (0) #endif /* (BLE_ATTS || BLE_ATTC) */ #define BLEHL_HEAP_MSG_SIZE (2048 + 256 * BLE_CONNECTION_MAX) #else #define BLEHL_HEAP_MSG_SIZE (256) #define BLEHL_HEAP_DB_SIZE (0) #endif /* #if (BLE_CENTRAL || BLE_PERIPHERAL) */ /// Number of BLE HL tasks #define BLEHL_TASK_SIZE BLE_HOST_TASK_SIZE + BLE_PRF_TASK_SIZE /// Size of environment variable needed on BLE Host Stack for one link #define BLEHL_HEAP_ENV_SIZE ( BLE_GAPC_HEAP_ENV_SIZE + \ BLE_GATTC_HEAP_ENV_SIZE + \ BLE_L2CC_HEAP_ENV_SIZE) /* * DEFINES - Mandatory for BLE Host Layers **************************************************************************************** */ /// Maximum time to remain advertising when in the Limited /// Discover able mode: TGAP(lim_adv_timeout) /// required value: 180s: (18000 for ke timer) #define GAP_TMR_LIM_ADV_TIMEOUT 0x4650 /// Minimum time to perform scanning when performing /// the General Discovery procedure: TGAP(gen_disc_scan_min) /// recommended value: 10.24s: (1024 for ke timer) #define GAP_TMR_GEN_DISC_SCAN 0x0300 /// Minimum time to perform scanning when performing the /// Limited Discovery procedure: TGAP(lim_disc_scan_min) /// recommended value: 10.24s: (1024 for ke timer) #define GAP_TMR_LIM_DISC_SCAN 0x0300 /// Minimum time interval between private address change /// TGAP(private_addr_int) /// recommended value: 15 minutes; 0x01F4 for PTS /// 0x3A98 is 150 seconds; 0xEA60 is 10 minutes #define GAP_TMR_PRIV_ADDR_INT 0x3A98 /// Timer used in connection parameter update procedure /// TGAP(conn_param_timeout) /// recommended value: 30 s: (3000 for ke timer) #define GAP_TMR_CONN_PARAM_TIMEOUT 0x0BB8 /// Timer used in LE credit based connection procedure /// TGAP(lecb_conn_timeout) /// recommended value: 30 s: (3000 for ke timer) #define GAP_TMR_LECB_CONN_TIMEOUT 0x0BB8 /// Timer used in LE credit based disconnection procedure /// TGAP(lecb_disconn_timeout) /// recommended value: 30 s: (3000 for ke timer) #define GAP_TMR_LECB_DISCONN_TIMEOUT 0x0BB8 /// Maximal authorized MTU value #define GAP_MAX_LE_MTU (2048) /// Maximum GAP device name size #define GAP_MAX_NAME_SIZE (0x20) /// Maximum Transmission Unit #define ATT_DEFAULT_MTU (23) /// 30 seconds transaction timer #define ATT_TRANS_RTX (0x0BB8) /// Acceptable encryption key size - strict access #define ATT_SEC_ENC_KEY_SIZE (0x10) /// Maximum attribute value length #define ATT_MAX_VALUE (GAP_MAX_LE_MTU) /// @} BLE stack configuration /// @} ROOT #endif // RWBLE_HL_CONFIG_H_