mirror of
https://github.com/oopuuu/zTC1.git
synced 2025-12-16 23:18:24 +08:00
139 lines
12 KiB
C
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) */
|
|
};
|