Files
zTC1/mico-os/libraries/daemons/bt_smart/mico_bt_smartbridge_cfg.c
2025-03-11 15:54:45 +08:00

139 lines
12 KiB
C

/**
* UNPUBLISHED PROPRIETARY SOURCE CODE
* Copyright (c) 2016 MXCHIP Inc.
*
* The contents of this file may not be disclosed to third parties, copied or
* duplicated in any form, in whole or in part, without the prior written
* permission of MXCHIP Corporation.
*
*/
/** @file
*
* Runtime Bluetooth stack configuration parameters
*
*/
#include "mico_bt_cfg.h"
/*****************************************************************************
* BTE stack configuration
****************************************************************************/
mico_bt_cfg_settings_t mico_bt_cfg_settings =
{
.device_name = (uint8_t*)"MiCO BT Gateway", /**< Local device name (NULL terminated) */
.device_class = { 0x00, 0x00, 0x00 }, /**< Local device class */
.security_requirement_mask = BTM_SEC_NONE, /**< Security requirements mask (BTM_SEC_NONE, or combination of BTM_SEC_IN_AUTHENTICATE, BTM_SEC_OUT_AUTHENTICATE, BTM_SEC_ENCRYPT (see #mico_bt_sec_level_e)) */
.max_simultaneous_links = 3, /**< Maximum number simultaneous links to different devices */
/* Scan and advertisement configuration */
.br_edr_scan_cfg = /**< BR/EDR scan settings */
{
.inquiry_scan_type = BTM_SCAN_TYPE_STANDARD, /**< Inquiry scan type (BTM_SCAN_TYPE_STANDARD or BTM_SCAN_TYPE_INTERLACED) */
.inquiry_scan_interval = MICO_BT_CFG_DEFAULT_INQUIRY_SCAN_INTERVAL, /**< Inquiry scan interval (default: MICO_BT_CFG_DEFAULT_INQUIRY_SCAN_INTERVAL) */
.inquiry_scan_window = MICO_BT_CFG_DEFAULT_INQUIRY_SCAN_WINDOW, /**< Inquiry scan window (default: MICO_BT_CFG_DEFAULT_INQUIRY_SCAN_WINDOW) */
.page_scan_type = BTM_SCAN_TYPE_STANDARD, /**< Page scan type (BTM_SCAN_TYPE_STANDARD or BTM_SCAN_TYPE_INTERLACED) */
.page_scan_interval = MICO_BT_CFG_DEFAULT_PAGE_SCAN_INTERVAL, /**< Page scan interval (default: MICO_BT_CFG_DEFAULT_PAGE_SCAN_INTERVAL) */
.page_scan_window = MICO_BT_CFG_DEFAULT_PAGE_SCAN_WINDOW, /**< Page scan window (default: MICO_BT_CFG_DEFAULT_PAGE_SCAN_WINDOW) */
},
.ble_scan_cfg = /**< BLE scan settings */
{
.scan_mode = BTM_BLE_SCAN_MODE_PASSIVE, /**< BLE scan mode (BTM_BLE_SCAN_MODE_PASSIVE, BTM_BLE_SCAN_MODE_ACTIVE) */
.scan_filter_policy = BTM_BLE_SCAN_FILTER_POLICY_NONE,
.high_duty_scan_interval = MICO_BT_CFG_DEFAULT_HIGH_DUTY_SCAN_INTERVAL, /**< High duty scan interval (default: MICO_BT_CFG_DEFAULT_HIGH_DUTY_SCAN_INTERVAL) */
.high_duty_scan_window = MICO_BT_CFG_DEFAULT_HIGH_DUTY_SCAN_WINDOW, /**< High duty scan window (default: MICO_BT_CFG_DEFAULT_HIGH_DUTY_SCAN_WINDOW) */
.high_duty_scan_duration = 3, /**< High duty scan duration in seconds (0 for infinite) */
.low_duty_scan_interval = MICO_BT_CFG_DEFAULT_LOW_DUTY_SCAN_INTERVAL, /**< Low duty scan interval (default: MICO_BT_CFG_DEFAULT_LOW_DUTY_SCAN_INTERVAL) */
.low_duty_scan_window = MICO_BT_CFG_DEFAULT_LOW_DUTY_SCAN_WINDOW, /**< Low duty scan window (default: MICO_BT_CFG_DEFAULT_LOW_DUTY_SCAN_WINDOW) */
.low_duty_scan_duration = 3, /**< Low duty scan duration in seconds (0 for infinite) */
.high_duty_conn_scan_interval = MICO_BT_CFG_DEFAULT_HIGH_DUTY_CONN_SCAN_INTERVAL, /**< High duty cycle connection scan interval (default: MICO_BT_CFG_DEFAULT_HIGH_DUTY_CONN_SCAN_INTERVAL) */
.high_duty_conn_scan_window = MICO_BT_CFG_DEFAULT_HIGH_DUTY_CONN_SCAN_WINDOW, /**< High duty cycle connection scan window (default: MICO_BT_CFG_DEFAULT_HIGH_DUTY_CONN_SCAN_WINDOW) */
.high_duty_conn_duration = 0, /**< High duty cycle connection duration in seconds (0 for infinite) */
.low_duty_conn_scan_interval = MICO_BT_CFG_DEFAULT_LOW_DUTY_CONN_SCAN_INTERVAL, /**< Low duty cycle connection scan interval (default: MICO_BT_CFG_DEFAULT_LOW_DUTY_CONN_SCAN_INTERVAL) */
.low_duty_conn_scan_window = MICO_BT_CFG_DEFAULT_LOW_DUTY_CONN_SCAN_WINDOW, /**< Low duty cycle connection scan window (default: MICO_BT_CFG_DEFAULT_LOW_DUTY_CONN_SCAN_WINDOW) */
.low_duty_conn_duration = 0, /**< Low duty cycle connection duration in seconds (0 for infinite) */
.conn_min_interval = MICO_BT_CFG_DEFAULT_CONN_MIN_INTERVAL, /**< Minimum connection interval (default: MICO_BT_CFG_DEFAULT_CONN_MIN_INTERVAL) */
.conn_max_interval = MICO_BT_CFG_DEFAULT_CONN_MAX_INTERVAL, /**< Maximum connection interval (default: MICO_BT_CFG_DEFAULT_CONN_MAX_INTERVAL) */
.conn_latency = MICO_BT_CFG_DEFAULT_CONN_LATENCY, /**< Connection latency (default: MICO_BT_CFG_DEFAULT_CONN_LATENCY) */
.conn_supervision_timeout = MICO_BT_CFG_DEFAULT_CONN_SUPERVISION_TIMEOUT, /**< Connection link supervision timeout (default: MICO_BT_CFG_DEFAULT_ CONN_SUPERVISION_TIMEOUT) */
},
.ble_advert_cfg = /**< BLE advertisement settings */
{
.channel_map = ( BTM_BLE_ADVERT_CHNL_37 | BTM_BLE_ADVERT_CHNL_38 | BTM_BLE_ADVERT_CHNL_39 ), /**< Advertising channel map (mask of BTM_BLE_ADVERT_CHNL_37, BTM_BLE_ADVERT_CHNL_38, BTM_BLE_ADVERT_CHNL_39) */
.high_duty_min_interval = MICO_BT_CFG_DEFAULT_HIGH_DUTY_ADV_MIN_INTERVAL, /**< High duty undirected connectable advert minimum advertising interval (default: MICO_BT_CFG_DEFAULT_HIGH_DUTY_ADV_MIN_INTERVAL) */
.high_duty_max_interval = MICO_BT_CFG_DEFAULT_HIGH_DUTY_ADV_MAX_INTERVAL, /**< High duty undirected connectable advert maximum advertising interval (default: MICO_BT_CFG_DEFAULT_HIGH_DUTY_ADV_MAX_INTERVAL) */
.high_duty_duration = 30, /**< High duty advertising duration in seconds (0 for infinite) */
.low_duty_min_interval = MICO_BT_CFG_DEFAULT_LOW_DUTY_ADV_MIN_INTERVAL, /**< Low duty undirected connectable advert minimum advertising interval (default: MICO_BT_CFG_DEFAULT_LOW_DUTY_ADV_MIN_INTERVAL) */
.low_duty_max_interval = MICO_BT_CFG_DEFAULT_LOW_DUTY_ADV_MAX_INTERVAL, /**< Low duty undirected connectable advert maximum advertising interval (default: MICO_BT_CFG_DEFAULT_LOW_DUTY_ADV_MAX_INTERVAL) */
.low_duty_duration = 30, /**< Low duty advertising duration in seconds (0 for infinite) */
.high_duty_directed_min_interval = MICO_BT_CFG_DEFAULT_HIGH_DUTY_DIRECTED_ADV_MIN_INTERVAL, /**< high duty directed adv minimum advertising interval (default: MICO_BT_CFG_DEFAULT_HIGH_DUTY_DIRECTED_ADV_MIN_INTERVAL) */
.high_duty_directed_max_interval = MICO_BT_CFG_DEFAULT_HIGH_DUTY_DIRECTED_ADV_MAX_INTERVAL, /**< high duty directed adv maximum advertising interval (default: MICO_BT_CFG_DEFAULT_HIGH_DUTY_DIRECTED_ADV_MAX_INTERVAL) */
.low_duty_directed_min_interval = MICO_BT_CFG_DEFAULT_LOW_DUTY_DIRECTED_ADV_MIN_INTERVAL, /**< Low duty directed adv minimum advertising interval (default: MICO_BT_CFG_DEFAULT_LOW_DUTY_DIRECTED_ADV_MIN_INTERVAL) */
.low_duty_directed_max_interval = MICO_BT_CFG_DEFAULT_LOW_DUTY_DIRECTED_ADV_MAX_INTERVAL, /**< Low duty directed adv maximum advertising interval (default: MICO_BT_CFG_DEFAULT_LOW_DUTY_DIRECTED_ADV_MAX_INTERVAL) */
.low_duty_directed_duration = 30, /**< Low duty directed advertising duration in seconds (0 for infinite) */
.high_duty_nonconn_min_interval = MICO_BT_CFG_DEFAULT_HIGH_DUTY_NONCONN_ADV_MIN_INTERVAL, /**< High duty non-connectable adv minimum advertising interval (default: MICO_BT_CFG_DEFAULT_HIGH_DUTY_NONCONN_ADV_MIN_INTERVAL) */
.high_duty_nonconn_max_interval = MICO_BT_CFG_DEFAULT_HIGH_DUTY_NONCONN_ADV_MAX_INTERVAL, /**< High duty non-connectable adv maximum advertising interval (default: MICO_BT_CFG_DEFAULT_HIGH_DUTY_NONCONN_ADV_MAX_INTERVAL) */
.high_duty_nonconn_duration = 30, /**< High duty non-connectable advertising duration in seconds (0 for infinite) */
.low_duty_nonconn_min_interval = MICO_BT_CFG_DEFAULT_LOW_DUTY_NONCONN_ADV_MIN_INTERVAL, /**< Low duty non-connectable adv minimum advertising interval (default: MICO_BT_CFG_DEFAULT_LOW_DUTY_NONCONN_ADV_MIN_INTERVAL) */
.low_duty_nonconn_max_interval = MICO_BT_CFG_DEFAULT_LOW_DUTY_NONCONN_ADV_MAX_INTERVAL, /**< Low duty non-connectable adv maximum advertising interval (default: MICO_BT_CFG_DEFAULT_LOW_DUTY_NONCONN_ADV_MAX_INTERVAL) */
.low_duty_nonconn_duration = 30, /**< Low duty non-connectable advertising duration in seconds (0 for infinite) */
},
/* GATT configuration */
.gatt_cfg = /**< GATT settings */
{
.appearance = APPEARANCE_GENERIC_TAG, /**< GATT appearance (see #gatt_appearance_e) */
.client_max_links = 3, /**< Client config: maximum number of servers that local client can connect to */
.server_max_links = 0, /**< Server config: maximum number of remote clients connections allowed by the local */
.max_attr_len = 360, /**< Maximum attribute length; gki_cfg must have a corresponding buffer pool that can hold this length */
},
/* Application managed l2cap protocol configuration */
.rfcomm_cfg =
{
.max_links = 0, /**< Maximum number of simultaneous connected remote devices*/
.max_ports = 0 /**< Maximum number of simultaneous RFCOMM ports */
},
.l2cap_application =
{
.max_links = 0, /**< Maximum number of application-managed l2cap links (BR/EDR and LE) */
/* BR EDR l2cap configuration */
.max_psm = 0, /**< Maximum number of application-managed BR/EDR PSMs */
.max_channels = 0, /**< Maximum number of application-managed BR/EDR channels */
/* LE L2cap connection-oriented channels configuration */
.max_le_psm = 3, /**< Maximum number of application-managed LE PSMs */
.max_le_channels = 3, /**< Maximum number of application-managed LE channels */
},
/* Audio/Video Distribution configuration */
.avdt_cfg =
{
.max_links = 0, /**< Maximum simultaneous audio/video links */
},
/* Audio/Video Remote Control configuration */
.avrc_cfg =
{
.roles = 0, /**< Mask of local roles supported (AVRC_CONN_INITIATOR|AVRC_CONN_ACCEPTOR) */
.max_links = 0 /**< Maximum simultaneous remote control links */
},
.addr_resolution_db_size = 20,
};
/*****************************************************************************
* mico_bt_stack buffer pool configuration
*
* Configure buffer pools used by the stack
*
* Pools must be ordered in increasing buf_size.
* If a pool runs out of buffers, the next pool will be used
*****************************************************************************/
const mico_bt_cfg_buf_pool_t mico_bt_cfg_buf_pools[MICO_BT_CFG_NUM_BUF_POOLS] =
{
/* { buf_size, buf_count } */
{ 64, 4 }, /* Small Buffer Pool */
{ 360, 4 }, /* Medium Buffer Pool (used for HCI & RFCOMM control messages, min recommended size is 360) */
{ 360, 12 }, /* Large Buffer Pool (used for HCI ACL messages) */
{ 600, 1 }, /* Extra Large Buffer Pool - Used for avdt media packets and miscellaneous (if not needed, set buf_count to 0) */
};