#define LOG_CLI_ENABLE
#include "debug.h"
#include "key_event_deal.h"
+#include "btstack/avctp_user.h"
static char AI_start_flag = 0;
#if(USR_KWS_ALG == KWS_BK)
#include "imsl_vad.h"
{
bk_app_send_smg(AI_VC_1S_EVENT,NULL,0);
}
+u8 check_bt_active = 5;
+extern u8 bt_connect;
void AI_VC_1S_event(void)
{
int cat1_io = gpio_read(IO_PORTA_10) ;
- printf("AI_VC_1S_cb:%d %d %d",cat1_io,BT_state,esco_flag);
- if(BT_state)
+ int call_state = get_call_status();
+
+ printf("AI_VC_1S_cb:%d %d %d call_state:%d",cat1_io,BT_state,esco_flag,call_state);
+ if(BT_state && bt_connect == 2) // 打开了蓝牙麦并且蓝牙耳机已经连上了
{
- if(esco_flag ==0 ){
+ check_bt_active--; //通话建立连接没有连上的情况等待5s重新连接
+ if(esco_flag ==0 && check_bt_active==0){
+ printf("check_bt_active:%d",check_bt_active);
+ check_bt_active=5;
bk_app_send_smg(OPEN_CALL,NULL,0);//会关闭定时器 open_bt_audio(0)
}
-
}
}
}
- os_taskq_post_msg("bk_app_task", 3, event,(int)data_tmp, data_len);
+ int ret = os_taskq_post_msg("bk_app_task", 3, event,(int)data_tmp, data_len);
+ printf("event:%d ret:%d--------------------1",event,ret);
+ if(ret)
+ {
+ u8 count=20;
+ while (count--)
+ {
+ int ret = os_taskq_post_msg("bk_app_task", 3, event,(int)data_tmp, data_len);
+ if(!ret){
+ printf("event:%d ret:%d--------------------2",event,ret);
+ break;
+ }
+ printf("event:%d ret:%d--------------------3",event,ret);
+ os_time_dly(1);
+ }
+ }
}
void bk_app_task(void *p)
{
log_info("%s:RUN BK_VERSIONS:%s!!!!!!\n",__FUNCTION__,BK_VERSIONS);
log_info("%s:RUN BK_VERSIONS:%s!!!!!!\n",__FUNCTION__,BK_VERSIONS);
get_ble_switch_imei_timer_init();
+ os_time_dly(10);
// log_info("%s:这是ota升级测试程序 !!!!!!\n",__FUNCTION__);
// log_info("%s:这是ota升级测试程序 !!!!!!\n",__FUNCTION__);
// log_info("%s:这是ota升级测试程序 !!!!!!\n",__FUNCTION__);
//蓝牙耳机切换事件回调
void BT_State_Change_cb(void)
{
+
os_time_dly(100);
- if(esco_flag == 1){
+ printf("BT_State_Change_cb:%d",get_call_status());
+ if(get_call_status() == BT_CALL_ACTIVE)
+ {
bk_app_send_smg(CLOSE_BT_AUDIO_EVENT,NULL,0);
}
-
bk_app_send_smg(AI_CLOSE,NULL,0);
bk_app_send_smg(AI_OPEN,NULL,0);
// bk_app_send_smg(AI_KEY_PRESS,NULL,0);
}
void key_bt_hangup_CB(void){
os_time_dly(30);
- printf("esco_flag end:%d %d",esco_flag,bt_connect);
+ printf("esco_flag end:%d %d get_call_status:%d",esco_flag,bt_connect,get_call_status());
if(bt_connect ==0) //蓝牙耳机已断开
return;
+ bk_app_send_smg(AI_CLOSE,NULL,0);
+ bk_app_send_smg(AI_OPEN,NULL,0);
bk_app_send_smg(AI_KEY_PRESS,NULL,0);
}
//蓝牙耳机所有按键触发AI对话
void all_key_bt_ai(void) //蓝牙耳机已连接不在通话中
{
- printf("all_key_bt_ai end:%d %d",esco_flag,AI_start_flag);
- if(esco_flag){
- return;
+ printf("all_key_bt_ai end:%d %d get_call_status:%d",esco_flag,AI_start_flag,get_call_status());
+ // if(esco_flag){
+ // return;
+ // }
+ if(get_call_status() != BT_CALL_ACTIVE)
+ {
+ bk_app_send_smg(AI_CLOSE,NULL,0);
}
+
+ bk_app_send_smg(AI_OPEN,NULL,0);
bk_app_send_smg(AI_KEY_PRESS,NULL,0);
}
//#include "rtc.h"
#if(USR_KWS_ALG != 0)
err = task_create(bk_ALG_task, NULL, "bk_ALG_task");
#endif
- err = os_task_create(bk_app_task, NULL, 31, 512, 255, "bk_app_task");
+ err = os_task_create(bk_app_task, NULL, 3, 512, 512, "bk_app_task");
//int err = task_create(bk_app_task, NULL, "bk_app_task");
if (err != OS_ERR_NONE) {
r_printf("creat fail %x\n", err);