mcu_ab568x/userboot240328/app/platform/bsp/bsp_bt/bt.c
2025-05-30 18:03:10 +08:00

90 lines
3.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "include.h"
#include "api.h"
#define BT_PROFILE (PROF_A2DP*BT_A2DP_EN) | (PROF_HFP*BT_HFP_EN) | (PROF_SPP*BT_SPP_EN) | (PROF_HID*BT_HID_EN) | (PROF_HSP*BT_HSP_EN)
#define BT_CODEC (CODEC_SBC) | (CODEC_MSBC * BT_HFP_MSBC_EN) | (CODEC_PLC * BT_PLC_EN)
#define HFP_FEATURE (HFP_BAT_REPORT*BT_HFP_BAT_REPORT_EN) | (HFP_INBAND_RING_RONE*BT_HFP_INBAND_RING_EN) | (HFP_CALL_PRIVATE*BT_HFP_CALL_PRIVATE_FORCE_EN) | (HFP_RING_NUMBER_EN*BT_HFP_RING_NUMBER_EN)
#define A2DP_FEATURE (A2DP_VOL_CTRL*BT_A2DP_VOL_CTRL_EN) | (A2DP_RESTORE_PLAYING) | (A2DP_AVDTP_DELAY_REPORT*BT_AVDTP_DELAY_REPORT_EN)
///baseband
uint8_t cfg_bt_rf_def_txpwr = 0; //降低预置参数RF发射功率单位1dbm
uint8_t cfg_bt_page_inq_txpwr = 0; //降低回连和搜索RF发射功率单位2dbm
uint8_t cfg_bt_sniff_clk_sel = 2; //2:31.25KHz 晶振, 3:31.25KHz RC
///stack
uint8_t cfg_bt_work_mode = WORK_MODE;
uint8_t cfg_bt_max_acl_link = BT_2ACL_EN+1;
bool cfg_bt_dual_mode = BT_DUAL_MODE_EN;
bool cfg_bt_scan_ctrl_mode = BT_DISCOVER_CTRL_EN;
bool cfg_bt_simple_pair_mode = BT_SIMPLE_PAIR_EN;
uint16_t cfg_bt_support_profile = BT_PROFILE;
uint16_t cfg_bt_support_codec = BT_CODEC;
uint8_t cfg_bt_a2dp_feature = A2DP_FEATURE;
uint8_t cfg_bt_hfp_feature = HFP_FEATURE;
uint8_t cfg_bt_hid_type = BT_HID_TYPE;
uint16_t cfg_bt_def_connect_times = BT_POWER_UP_RECONNECT_TIMES; //默认回连重试次数
uint16_t cfg_bt_sup_to_connect_times = BT_TIME_OUT_RECONNECT_TIMES; //超时断线回连重试次数
bool cfg_bt_voip_reject_en = BT_VOIP_REJECT_EN;
const char *bt_get_local_name(void)
{
return xcfg_cb.bt_name;
}
void bt_get_local_bd_addr(u8 *addr)
{
#if LE_SM_SC_EN
memcpy(addr, xcfg_cb.bt_addr, 6);
if (!app_phone_type_get()) {
addr[5] ^= 0x55;
}
#elif BT_LOCAL_ADDR
param_random_key_read(&addr[2]);
addr[0] = 0x41;
addr[1] = 0x42;
#else
memcpy(addr, xcfg_cb.bt_addr, 6);
#endif
}
//void bt_get_link_info(void *buf, u16 addr, u16 size)
//{
// //printf("bt_read: %04x,%04x, %08lx\n", addr, size, BT_CM_PAGE(addr));
// cm_read(buf, BT_CM_PAGE(addr), size);
// //print_r(buf, size);
//}
//
//void bt_put_link_info(void *buf, u16 addr, u16 size)
//{
// //printf("bt_write: %04x,%04x, %08lx\n", addr, size, BT_CM_PAGE(addr));
// //print_r(buf, size);
// cm_write(buf, BT_CM_PAGE(addr), size);
//}
//
//void bt_get_ext_link_info(void *buf, u16 addr, u16 size)
//{
// //printf("bt_read: %04x,%04x, %08lx\n", addr, size, BT_CM_PAGE(addr));
// cm_read(buf, EXT_CM_PAGE(addr), size);
// //print_r(buf, size);
//}
//
//void bt_put_ext_link_info(void *buf, u16 addr, u16 size)
//{
// //printf("bt_write: %04x,%04x, %08lx\n", addr, size, BT_CM_PAGE(addr));
// //print_r(buf, size);
// cm_write(buf, EXT_CM_PAGE(addr), size);
//}
//void bt_sync_link_info(void)
//{
// cm_sync();
//}