Commit dab91354 authored by 薛小虎's avatar 薛小虎

🐞 fix:修改BT自动重连时,指示灯会闪一下问题

parent b9f7aea8
......@@ -13,12 +13,18 @@ BT_User_Control_Struct BT_User;
#define BT_ReConn_T 300
#define IPHNOE_ACTIVE_CONNENT 0X113
void BT_User_Init(void )
{
BT_User.BT_Sts = BT_Idle;
BT_User.Call_Sts = Call_Idle;
BT_User.ReconnTime = BT_ReConn_T - 50;
BT_User.HF_Ctrl = HF_Idle;
BT_User.BT_DisConnReason = 0xffff;
BT_User.Get_Call_Num = 0;
BT_User.Call_Fitter_sts = Call_Idle;
BT_User.HfClient_Req_Cnt = 0;
}
......@@ -29,6 +35,11 @@ void BT_Connect_Event_Pro(void )
BT_User.ReconnTime = BT_ReConn_T - 50;
BT_User.HF_Ctrl = HF_Idle;
// printf("TB CONN\r\n");
BT_User.BT_DisConnReason = 0xffff;
BT_User.Get_Call_Num = 0;
BT_User.Call_Fitter_sts = Call_Idle;
BT_User.HfClient_Req_Cnt = 0;
}
......@@ -39,6 +50,10 @@ void BT_DisConnect_Event_Pro(void )
BT_User.ReconnTime = BT_ReConn_T - 50;
BT_User.HF_Ctrl = HF_Idle;
// printf("TB DISCONN\r\n");
BT_User.Get_Call_Num = 0;
BT_User.Call_Fitter_sts = Call_Idle;
BT_User.HfClient_Req_Cnt = 0;
}
void BT_User_Process(void )
......@@ -98,7 +113,8 @@ void BT_User_Process(void )
BT_User.HF_Ctrl = HF_Idle;
// if(BT_User.BT_DisConnReason != IPHNOE_ACTIVE_CONNENT)
{
if(BT_User.BT_Sts == BT_Idle)
{
BT_User.ReconnTime++;
......@@ -115,8 +131,6 @@ void BT_User_Process(void )
BT_User.ReconnTime = 0;
}
}
else
{
}
}
......
......@@ -31,6 +31,7 @@ typedef enum
typedef struct
{
uint8_t BT_Sts;
uint32_t BT_DisConnReason;
uint8_t Call_Sts;
uint16_t ReconnTime;
uint8_t HF_Ctrl;
......@@ -38,6 +39,7 @@ typedef struct
// char CCLC[11];
char Get_Call_Num;
char Call_Fitter_sts;
uint8_t HfClient_Req_Cnt;
}BT_User_Control_Struct;
extern BT_User_Control_Struct BT_User;
......
......@@ -669,7 +669,6 @@ void Ble_User_Task_Event(void *pvParameter)
vTaskDelete(NULL);
}
uint8_t BT_User_HfClient_Req_Cnt;
void Ble_User_Task_Cyc(void *pvParameter)
{
while (1)
......@@ -690,15 +689,15 @@ void Ble_User_Task_Cyc(void *pvParameter)
if(BT_User.Call_Sts != Call_Idle)
{
if(BT_User_HfClient_Req_Cnt ++ >= 15)
if(BT_User.HfClient_Req_Cnt ++ >= 15)
{
BT_User_HfClient_Req_Cnt = 0;
BT_User.HfClient_Req_Cnt = 0;
esp_hf_client_query_current_calls();
}
}
else
{
BT_User_HfClient_Req_Cnt = 0;
BT_User.HfClient_Req_Cnt = 0;
}
BT_User_Process();
......
......@@ -252,11 +252,9 @@ void bt_app_hf_client_cb(esp_hf_client_cb_event_t event, esp_hf_client_cb_param_
if(param->conn_stat.state == 0)
{
BT_DisConnect_Event_Pro();
}
else if(param->conn_stat.state == 2)
{
BT_Connect_Event_Pro();
}
break;
}
......
......@@ -184,6 +184,21 @@ void esp_bt_gap_cb(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *param)
// printf("event state %d\n", event);
break;
case ESP_BT_GAP_ACL_CONN_CMPL_STAT_EVT:
if (param->acl_conn_cmpl_stat.stat == ESP_BT_STATUS_SUCCESS)
{
BT_Connect_Event_Pro();
ESP_LOGI(BT_HF_TAG, "BT CONN");
}
break;
/* when ACL disconnection completed, this event comes */
case ESP_BT_GAP_ACL_DISCONN_CMPL_STAT_EVT:
ESP_LOGW(BT_HF_TAG, "BT DISCONN REASON %x", param->acl_disconn_cmpl_stat.reason);
BT_DisConnect_Event_Pro();
BT_User.BT_DisConnReason = param->acl_disconn_cmpl_stat.reason;
break;
default: {
ESP_LOGI(BT_HF_TAG, "event: %d", event);
// printf("event state %d\n", event);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment