mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-17 20:08:54 +00:00
1347 lines
33 KiB
C
1347 lines
33 KiB
C
|
||
#include "bt_config.h"
|
||
#include "bt_os.h"
|
||
#include "bt_api.h"
|
||
#include "bt_core.h"
|
||
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
u8 phone_macaddr_buf[12]={'\0'};//手机蓝牙MAC ADDR
|
||
u8 phone_name_buf[24]={'\0'};//手机蓝牙名字
|
||
u8 bt_hostname_buf[24]={'\0'};//车机蓝牙名字
|
||
u8 bt_pincard_buf[4]={'\0'};//蓝牙配对码
|
||
u8 bt_macaddr_buf[12]={'\0'};//车机蓝牙MAC ADDR
|
||
u8 bt_callin_buf[64];//手机来电号码
|
||
|
||
bt_phone_state_t bt_phone_state; //手机通话状态
|
||
bt_phone_type_t bt_phone_type; //手机连接类型
|
||
bt_connect_flag_t bt_connect_flag = BT_STATE_INIT;
|
||
bt_spp_connect_flag_t bt_spp_connect_flag = BT_SPP_STATE_INIT;
|
||
bt_ble_connect_flag_t bt_ble_connect_flag = BT_BLE_STATE_INIT;
|
||
bt_hid_connect_flag_t bt_hid_connect_flag = BT_HID_STATE_INIT;
|
||
bt_time_t bt_time;//蓝牙时间
|
||
|
||
bt_phonebook_state *bt_phonebook_para = NULL;
|
||
bt_ID3_info_t *bt_ID3_info = NULL;
|
||
|
||
|
||
//fmrx
|
||
u16 ChtoFreq = 0;//返回节目号对应的频点
|
||
bt_fmrx_info_t bt_fmrx_info;//某个节目的信息包括总节目数,当前节目号,以及对应的频点
|
||
bt_fmrx_list_t bt_fmrx_list;//节目的频点列表
|
||
|
||
|
||
|
||
//蓝牙时间需要蓝牙外挂32.768K晶振
|
||
__s32 sys_bt_set_time(u8* time)
|
||
{
|
||
#if 0
|
||
__u8 i;
|
||
__msg("date time:");
|
||
for(i=0;i<10;i++)
|
||
{
|
||
printf("%d ",time[i]);
|
||
}
|
||
printf("\n");
|
||
#endif
|
||
bt_time.year=time[0];
|
||
bt_time.month=time[1];
|
||
bt_time.day=time[2];
|
||
bt_time.hour=time[3];
|
||
bt_time.minute=time[4];
|
||
|
||
sys_bt_get_time_to_app(&bt_time);
|
||
|
||
return EPDK_OK;
|
||
}
|
||
|
||
__s32 sys_bt_get_time_to_app(bt_time_t *time)
|
||
{
|
||
#if RTOS
|
||
//以下是把BT获取的时间设置给GUI指示时间
|
||
{
|
||
tui_time_t tui_time;
|
||
tui_time.year = bt_time.year+2000;
|
||
tui_time.mon = bt_time.month;
|
||
tui_time.mday = bt_time.day;
|
||
tui_time.hour = bt_time.hour;
|
||
tui_time.min= bt_time.minute;
|
||
tui_time.sec= 0;
|
||
//printf("set time: year =%d,mday =%d,mday =%d",tui_time.year,tui_time.mon,tui_time.mday);
|
||
tui_set_localtime(&tui_time);
|
||
}
|
||
#endif
|
||
return EPDK_OK;
|
||
}
|
||
//app注意year变换数据类型先减2000
|
||
__s32 sys_bt_set_time_to_bt(bt_time_t *time)
|
||
{
|
||
bt_time.year = time->year;
|
||
bt_time.month= time->month;
|
||
bt_time.day= time->day;
|
||
bt_time.hour= time->hour;
|
||
bt_time.minute= time->minute;
|
||
printf(" bt year =%d,mon=%d,day=%d,hour=%d,min=%d",bt_time.year,bt_time.month,bt_time.day,bt_time.hour,bt_time.minute);
|
||
bt_time_set();
|
||
return EPDK_OK;
|
||
}
|
||
|
||
|
||
void sys_bt_ctrl_lcd(u8 lcd_ctrl)
|
||
{
|
||
#if RTOS
|
||
if(lcd_ctrl == '0')//关机关屏
|
||
{
|
||
tui_sys_msg_send(TUI_DSK_MSG_SYS_POWER_OFF, NULL, NULL);
|
||
}
|
||
else if(lcd_ctrl =='1')//开机开屏
|
||
{
|
||
tui_sys_msg_send(TUI_DSK_MSG_SYS_POWER_ON, NULL, NULL);
|
||
}
|
||
#endif
|
||
return;
|
||
}
|
||
|
||
void sys_bt_ctrl_light(u8 light_ctrl)
|
||
{
|
||
#if RTOS
|
||
if(light_ctrl=='0')///大灯关
|
||
{
|
||
//printf("==========big led close=========\n");
|
||
|
||
system_set_ill_state(ILL_STAT_OFF);
|
||
/*
|
||
turn_off_red();
|
||
turn_off_green();
|
||
turn_off_blue();
|
||
*/
|
||
|
||
tui_sys_msg_send(TUI_DSK_MSG_SYS_BIG_LED, NULL, NULL);
|
||
}
|
||
else if(light_ctrl=='1')///大灯开
|
||
{
|
||
//printf("===========big led open=========\n");
|
||
system_set_ill_state(ILL_STAT_ON);
|
||
|
||
/*
|
||
show_light_state();
|
||
*/
|
||
|
||
//不能直接调用
|
||
//dsk_display_set_lcd_brightness(LION_BRIGHT_LEVEL3);
|
||
tui_sys_msg_send(TUI_DSK_MSG_SYS_BIG_LED, NULL, NULL);
|
||
}
|
||
#endif
|
||
return;
|
||
}
|
||
void sys_bt_ctrl_pev(u8 pev_ctrl)
|
||
{
|
||
#if RTOS
|
||
__msg("=====pev:%x====\n",pev_ctrl);
|
||
if(pev_ctrl=='1')///pev 1->0 2->1
|
||
{
|
||
__msg("=================prv enter==============\n");
|
||
if(system_get_cur_app()==ID_APP_PEV)
|
||
{
|
||
return ;
|
||
}
|
||
|
||
tui_sys_msg_send(TUI_DSK_MSG_CAR_PEV_ON, NULL, NULL);
|
||
}
|
||
else if(pev_ctrl=='0')///exit pev
|
||
{
|
||
__msg("=================prv exit==============\n");
|
||
tui_sys_msg_send(TUI_DSK_MSG_CAR_PEV_OFF, NULL, NULL);
|
||
}
|
||
#endif
|
||
return;
|
||
}
|
||
__s32 sys_bt_set_phonebook(u8 *phonebook)
|
||
{///bt_phonebook_para
|
||
__s32 namelen = 0;////名称长度
|
||
__s32 numlen = 0;////电话号码长度
|
||
__s32 datelen = 0;////日期长度
|
||
__u8 type=0;
|
||
|
||
__s32 numstart_index = 0;
|
||
__s32 i=0;
|
||
__s32 second_num_index=0;
|
||
__s32 second_num_cnt=0;
|
||
__s32 second_num_flag=0;
|
||
__u8 *ptr=0;
|
||
|
||
// __msg("phonebook:[%s]\n",system_do_msg);
|
||
///取名称长度
|
||
namelen=phonebook[1];
|
||
numlen=phonebook[2];
|
||
datelen=phonebook[3];
|
||
type=phonebook[4];
|
||
|
||
////指向NAME
|
||
ptr=&(phonebook[5]);
|
||
//__wrn("namelen =%d,numlen=%d,datelen =%d,type=%d",namelen,numlen,datelen,type);
|
||
__wrn("ptr =%s",ptr);
|
||
switch(type)
|
||
{
|
||
case 0x0://电话本
|
||
{
|
||
|
||
strncpy(bt_phonebook_para->phonebook_name[bt_phonebook_para->cur_phone_total], ptr, namelen+1);
|
||
bt_phonebook_para->phonebook_name[bt_phonebook_para->cur_phone_total][namelen]='\0';
|
||
strncpy(bt_phonebook_para->phonebook_number[bt_phonebook_para->cur_phone_total], ptr+namelen, numlen);
|
||
//在这里做限制只获取一个号码
|
||
// strncpy(bt_phonebook_para->phonebook_number[bt_phonebook_para->cur_phone_total], ptr+namelen, 11);
|
||
bt_phonebook_para->phonebook_number[bt_phonebook_para->cur_phone_total][numlen]='\0';
|
||
//__wrn("phonebook_name =%s",bt_phonebook_para->phonebook_name[bt_phonebook_para->cur_phone_total]);
|
||
//__wrn("phonebook_number =%s",bt_phonebook_para->phonebook_number[bt_phonebook_para->cur_phone_total]);
|
||
bt_phonebook_para->cur_phone_total++;
|
||
__wrn("cur_phone_total =%d",bt_phonebook_para->cur_phone_total);
|
||
if(bt_phonebook_para->cur_phone_total>=999)
|
||
bt_phonebook_para->cur_phone_total= 999;
|
||
|
||
break;
|
||
}
|
||
case 0x1://打出号码
|
||
{
|
||
|
||
strncpy(bt_phonebook_para->phoneout_name[bt_phonebook_para->cur_phoneout_total], ptr, namelen+1);
|
||
bt_phonebook_para->phoneout_name[bt_phonebook_para->cur_phoneout_total][namelen]='\0';
|
||
strncpy(bt_phonebook_para->phoneout_number[bt_phonebook_para->cur_phoneout_total], ptr+namelen, numlen);
|
||
bt_phonebook_para->phoneout_number[bt_phonebook_para->cur_phoneout_total][numlen]='\0';
|
||
//__wrn("phoneout_number =%s",bt_phonebook_para->phoneout_name[bt_phonebook_para->cur_phoneout_total]);
|
||
//__wrn("phoneout_number =%s",bt_phonebook_para->phoneout_number[bt_phonebook_para->cur_phoneout_total]);
|
||
bt_phonebook_para->cur_phoneout_total++;
|
||
break;
|
||
}
|
||
case 0x2://打进号码
|
||
{
|
||
strncpy(bt_phonebook_para->phonein_name[bt_phonebook_para->cur_phonein_total], ptr, namelen+1);
|
||
bt_phonebook_para->phonein_name[bt_phonebook_para->cur_phonein_total][namelen]='\0';
|
||
strncpy(bt_phonebook_para->phonein_number[bt_phonebook_para->cur_phonein_total], ptr+namelen, numlen);
|
||
bt_phonebook_para->phonein_number[bt_phonebook_para->cur_phonein_total][numlen]='\0';
|
||
//__wrn("phonein_number =%s",bt_phonebook_para->phonein_name[bt_phonebook_para->cur_phonein_total]);
|
||
//__wrn("phonein_number =%s",bt_phonebook_para->phonein_number[bt_phonebook_para->cur_phonein_total]);
|
||
bt_phonebook_para->cur_phonein_total++;
|
||
break;
|
||
}
|
||
case 0x3://未接号码
|
||
{
|
||
strncpy(bt_phonebook_para->phonemiss_name[bt_phonebook_para->cur_phonemiss_total], ptr, namelen+1);
|
||
bt_phonebook_para->phonemiss_name[bt_phonebook_para->cur_phonemiss_total][namelen]='\0';
|
||
strncpy(bt_phonebook_para->phonemiss_number[bt_phonebook_para->cur_phonemiss_total], ptr+namelen, numlen);
|
||
bt_phonebook_para->phonemiss_number[bt_phonebook_para->cur_phonemiss_total][numlen]='\0';
|
||
//__wrn("phonemiss_number =%s",bt_phonebook_para->phonemiss_name[bt_phonebook_para->cur_phonemiss_total]);
|
||
//__wrn("phonemiss_number =%s",bt_phonebook_para->phonemiss_number[bt_phonebook_para->cur_phonemiss_total]);
|
||
bt_phonebook_para->cur_phonemiss_total++;
|
||
break;
|
||
}
|
||
case 0xf0: //接收完毕,用户发送标记到GUI显示
|
||
{
|
||
#if RTOS
|
||
tui_sys_msg_send(TUI_USER_MSG_APP_GO_BT_BOOK_SHOW, NULL, NULL);
|
||
#endif
|
||
break;
|
||
}
|
||
default:
|
||
{
|
||
__wrn("not find cmd");
|
||
break;
|
||
}
|
||
}
|
||
return 0;
|
||
}
|
||
|
||
//获取来电指示电话号码
|
||
__s32 sys_bt_get_phonenum(char *btstring)
|
||
{
|
||
__s32 i=0;
|
||
char *p = &(btstring[2]);
|
||
|
||
if(system_do_msg[1]!='G')
|
||
{
|
||
__msg("=====Wrong phone number====\n");
|
||
return 0;
|
||
}
|
||
memset(bt_callin_buf, 0, 64);
|
||
|
||
for(i=0;i<60;i++,p++)
|
||
{
|
||
if(*p=='G')
|
||
{
|
||
__inf("\n==='G'over===\n");
|
||
break;
|
||
}
|
||
bt_callin_buf[i] = *p;////sys_docmd[i+2];
|
||
//__inf("=%x=",bt_callin_buf[i]);
|
||
}
|
||
//__inf("==i:%d==\n",i);
|
||
bt_callin_buf[i]='\0';
|
||
__msg("======phone number=%s=%d=====\n",bt_callin_buf,strlen(bt_callin_buf));
|
||
//__msg("=====Telephone number:%s======\n",bt_callin_buf);
|
||
return 0;
|
||
}
|
||
|
||
//清除电话本记录
|
||
void sys_bt_clear_phonebook(void)
|
||
{
|
||
#if 1//test bug died
|
||
if(bt_phonebook_para != NULL)
|
||
{
|
||
//bt_phonebook_para->cur_phone_total=0;
|
||
//bt_phonebook_para->cur_phoneout_total=0;
|
||
//bt_phonebook_para->cur_phonein_total=0;
|
||
//bt_phonebook_para->cur_phonemiss_total=0;
|
||
memset(bt_phonebook_para,0,sizeof(bt_phonebook_state));
|
||
}
|
||
#endif
|
||
}
|
||
__s32 sys_bt_fm_process(void)
|
||
{
|
||
switch(system_do_msg[1])
|
||
{
|
||
case 'A'://返回节目号对应的频点
|
||
{
|
||
ChtoFreq = (system_do_msg[3]<<8)+system_do_msg[2];
|
||
}
|
||
break;
|
||
case 'I':
|
||
{
|
||
bt_fmrx_info.ch_cnt = system_do_msg[2];
|
||
bt_fmrx_list.ch_cnt =bt_fmrx_info.ch_cnt;
|
||
bt_fmrx_info.ch_cur = system_do_msg[3];
|
||
bt_fmrx_info.freq = system_do_msg[5]<<8+system_do_msg[4];
|
||
|
||
}
|
||
break;
|
||
case 'L':
|
||
{
|
||
u8 i;
|
||
bt_fmrx_list.ch_cnt = system_do_msg[2]; //一般没有64个节目
|
||
bt_fmrx_info.ch_cnt = bt_fmrx_list.ch_cnt;
|
||
for(i = 0;i<bt_fmrx_list.ch_cnt;i++)
|
||
{
|
||
//第0个数组值就是第一个节目的频点
|
||
bt_fmrx_list.freq[i]=(system_do_msg[4+i*2]<<8)+system_do_msg[3+i*2];
|
||
}
|
||
}
|
||
break;
|
||
case 'T':
|
||
{
|
||
bt_fmrx_info.ch_cnt = system_do_msg[2];
|
||
bt_fmrx_list.ch_cnt = bt_fmrx_info.ch_cnt;
|
||
}
|
||
break;
|
||
default:
|
||
{
|
||
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
__s32 sys_bt_dosomething(void)
|
||
{
|
||
__s32 i = 0;
|
||
|
||
switch(system_do_msg[1])
|
||
{
|
||
case 'A'://HFP当前状态指示->没连上
|
||
{
|
||
__msg("=====================BT_STATE_NOTCONNECTE=====================\n");
|
||
///系统没连上不管,连上后更新图标
|
||
if(bt_connect_flag != BT_STATE_NOTCONNECTE)
|
||
{
|
||
if(bt_phonebook_para!= NULL)
|
||
{
|
||
sys_bt_clear_phonebook();
|
||
}
|
||
bt_connect_flag = BT_STATE_NOTCONNECTE;
|
||
bt_phone_state = BT_PHONE_INIT;
|
||
bt_audio_set_status(BT_STAT_IDLE);
|
||
memset(phone_name_buf,0,24);
|
||
#if RTOS
|
||
tui_obj_set_hidden(TUI_OBJ(GLOBAL_BAR_GLOBAL_VIEW_IMAGE_BTN_7), 1);
|
||
#endif
|
||
}
|
||
//蓝牙断开后需要退到上一个应用的
|
||
#if RTOS
|
||
if(system_get_bt_need_exit()==1)
|
||
{
|
||
system_set_bt_need_exit(0);
|
||
tui_sys_msg_send(TUI_DSK_MSG_RUN_PREV_AUDIO_APP, NULL, NULL);
|
||
}
|
||
#endif
|
||
}
|
||
break;
|
||
case 'B'://HFP当前状态指示->连上了。
|
||
{
|
||
__msg("=====================BT_STATE_CONNECTED=====================\n");
|
||
///系统连上不管,连上后更新图标
|
||
////draw not connect icon
|
||
bt_connect_flag = BT_STATE_CONNECTED;
|
||
bt_phone_state = BT_PHONE_INIT;
|
||
bt_audio_set_status(BT_STAT_IDLE);
|
||
#if RTOS
|
||
tui_obj_set_hidden(TUI_OBJ(GLOBAL_BAR_GLOBAL_VIEW_IMAGE_BTN_7), 0);
|
||
#endif
|
||
}
|
||
break;
|
||
case 'C'://蓝牙PIN码
|
||
{
|
||
__msg("======================bt PIN=====================\n");
|
||
for(i=0;i<24;i++)
|
||
{
|
||
if(system_do_msg[2+i]==0xff||system_do_msg[2+i]==0x0)
|
||
{
|
||
bt_pincard_buf[i]=0x0;
|
||
__inf("=====over=====");
|
||
break;
|
||
}
|
||
bt_pincard_buf[i]=system_do_msg[2+i];
|
||
//__inf("=%x=",bt_pincard_buf[i]);
|
||
|
||
}
|
||
#if RTOS
|
||
__msg("======================bt PIN :%s======================\n",bt_pincard_buf);
|
||
tui_sys_msg_send(TUI_USER_MSG_APP_GO_BT_SET_PIN, NULL, NULL);
|
||
#endif
|
||
|
||
}
|
||
break;
|
||
case 'D'://手机正在拔号
|
||
{
|
||
__msg("======================phone call out====================\n");
|
||
if(sys_bt_get_phone_state()==0)//////2016-01-15
|
||
{
|
||
if(bt_connect_flag!=BT_STATE_CONNECTED)
|
||
{
|
||
///__msg("=====there was no connection==============\n");
|
||
bt_connect_flag = BT_STATE_CONNECTED;
|
||
#if RTOS
|
||
tui_obj_set_hidden(TUI_OBJ(GLOBAL_BAR_GLOBAL_VIEW_IMAGE_BTN_7), 0);
|
||
#endif
|
||
}
|
||
bt_phone_state = BT_PHONE_OUTING;
|
||
#if RTOS
|
||
tui_sys_msg_send(TUI_DSK_MSG_PHONE_CALLING, NULL, NULL);
|
||
#endif
|
||
}
|
||
else
|
||
{
|
||
///__msg("===========已是通话状态===========\n");
|
||
}
|
||
}
|
||
break;
|
||
case 'E'://电话已挂断
|
||
{
|
||
__msg("==========The phone has been hung up==========\n");
|
||
if(bt_connect_flag!=BT_STATE_CONNECTED)
|
||
{
|
||
///__msg("=====there was no connection==============\n");
|
||
bt_connect_flag = BT_STATE_CONNECTED;
|
||
#if RTOS
|
||
tui_obj_set_hidden(TUI_OBJ(GLOBAL_BAR_GLOBAL_VIEW_IMAGE_BTN_7), 0);
|
||
#endif
|
||
}
|
||
bt_phone_state = BT_PHONE_INIT;
|
||
#if RTOS
|
||
tui_sys_msg_send(TUI_DSK_MSG_BREAK_CALLING, NULL, NULL);
|
||
#endif
|
||
}
|
||
break;
|
||
case 'F'://///////来电指示///无电话号码
|
||
{
|
||
#if RTOS
|
||
__msg("===================Incoming call===================\n");
|
||
if(bt_connect_flag!=BT_STATE_CONNECTED)
|
||
{
|
||
///__msg("=====there was no connection==============\n");
|
||
bt_connect_flag = BT_STATE_CONNECTED;
|
||
|
||
tui_obj_set_hidden(TUI_OBJ(GLOBAL_BAR_GLOBAL_VIEW_IMAGE_BTN_7), 0);
|
||
|
||
}
|
||
if(bt_phone_state != BT_PHONE_INING)
|
||
{
|
||
bt_phone_state = BT_PHONE_INING;
|
||
}
|
||
|
||
__msg("===================================================\n");
|
||
if(system_get_lcd_state()==LCD_STAT_OFF)//当前关屏状态
|
||
{
|
||
__msg("=========bt_audio_to_phone=========\n");
|
||
bt_audio_to_phone();
|
||
return 0;
|
||
}
|
||
else
|
||
{
|
||
|
||
if(system_get_cur_app()==ID_APP_PEV)
|
||
{
|
||
if(get_vol_mute_state() == 1)
|
||
{
|
||
///__msg("===========unMUTE==========\n");
|
||
tui_sys_msg_send(TUI_USER_MSG_APP_SPINNER_GO_VOL_MUTE, NULL, NULL);
|
||
dsk_aux_set_volume(dsk_aux_get_volume());
|
||
}
|
||
///切通道
|
||
///__msg("==============切通道============\n");
|
||
dsk_aux_select_channel(AUX_AUDIO_CHANNEL);
|
||
system_enter_denoise();
|
||
///__msg("================倒车来电==============\n");
|
||
return 0;
|
||
}
|
||
else
|
||
{
|
||
__u8 cur_app= system_get_cur_app();
|
||
if(cur_app != ID_APP_BT)
|
||
{
|
||
///__msg("=========================SYSTEM_MEDIA_SAVE_BREAKPOINT=====================\n");
|
||
//1,保存当前应用信息
|
||
//2,切换到蓝牙应用
|
||
tui_sys_msg_send(TUI_DSK_MSG_SYSTEM_SAVE_BREAKPOINT, 0, NULL);
|
||
system_set_bt_need_exit(1);
|
||
tui_sys_msg_send(TUI_USER_MSG_APP_GO_BT, 0, NULL);
|
||
///__msg("=========================ID_APP_BT CREAT FINISHED=====================\n");
|
||
}
|
||
else
|
||
{
|
||
if(bt_connect_flag!=BT_STATE_CONNECTED)
|
||
{
|
||
///__msg("=====there was no connection==============\n");
|
||
bt_connect_flag = BT_STATE_CONNECTED;
|
||
tui_obj_set_hidden(TUI_OBJ(GLOBAL_BAR_GLOBAL_VIEW_IMAGE_BTN_7), 0);
|
||
}
|
||
bt_phone_state = BT_PHONE_INING;
|
||
tui_sys_msg_send(TUI_DSK_MSG_PHONE_CALLING, NULL, NULL);
|
||
}
|
||
}
|
||
}
|
||
#endif
|
||
}
|
||
break;
|
||
case 'G'://{"ID", 4},///////来电指示///来电指示(电话打进)同时取出电话号码
|
||
{
|
||
#if RTOS
|
||
__msg("===================Incoming call indication=======================\n");
|
||
if(bt_connect_flag!=BT_STATE_CONNECTED)
|
||
{
|
||
///__msg("=====there was no connection==============\n");
|
||
bt_connect_flag = BT_STATE_CONNECTED;
|
||
tui_obj_set_hidden(TUI_OBJ(GLOBAL_BAR_GLOBAL_VIEW_IMAGE_BTN_7), 0);
|
||
}
|
||
if(sys_bt_get_phone_state()==0)
|
||
{
|
||
bt_phone_state = BT_PHONE_INING;
|
||
tui_sys_msg_send(TUI_DSK_MSG_PHONE_CALLING, NULL, NULL);
|
||
}
|
||
else
|
||
{
|
||
__msg("========Repeated calls========\n");
|
||
bt_phone_state = BT_PHONE_INING;
|
||
sys_bt_get_phonenum(system_do_msg);
|
||
///__msg("====当前是BT====\n");
|
||
tui_sys_msg_send(TUI_DSK_MSG_PHONE_CALLING, NULL, NULL);
|
||
}
|
||
#endif
|
||
}
|
||
break;
|
||
case 'I'://{"IG", 4},///////电话接起
|
||
{
|
||
#if RTOS
|
||
__msg("=============================The phone has been answered777777======================\n");
|
||
if(bt_connect_flag!=BT_STATE_CONNECTED)
|
||
{
|
||
///__msg("=====there was no connection==============\n");
|
||
bt_connect_flag = BT_STATE_CONNECTED;
|
||
tui_obj_set_hidden(TUI_OBJ(GLOBAL_BAR_GLOBAL_VIEW_IMAGE_BTN_7), 0);
|
||
}
|
||
bt_connect_flag = BT_STATE_CONNECTED;
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
|
||
if(bt_phone_state ==BT_PHONE_INING)
|
||
{
|
||
__msg("==================talking in===================\n");
|
||
///bt_phone_incoming();
|
||
bt_phone_state = BT_PHONE_TALKINING;
|
||
}
|
||
else if(bt_phone_state ==BT_PHONE_OUTING)
|
||
{
|
||
__msg("==================talking out===================\n");
|
||
bt_phone_state = BT_PHONE_TALKOUTING;
|
||
}
|
||
if(system_get_cur_app()== ID_APP_BT)
|
||
{
|
||
tui_sys_msg_send(TUI_USER_MSG_APP_GO_BT_PHONENUMBER_SHOW, NULL, NULL);
|
||
}
|
||
#endif
|
||
}
|
||
break;
|
||
case 'K'://正在连接的手机名
|
||
{
|
||
#if RTOS
|
||
__s32 i=0;
|
||
|
||
__msg("=============================phone bt name======================\n");
|
||
for(i=0;i<24;i++)
|
||
{
|
||
if(system_do_msg[2+i]==0xff||system_do_msg[2+i]==0x0)
|
||
{
|
||
phone_name_buf[i]=0x0;
|
||
__inf("=====over=====");
|
||
break;
|
||
}
|
||
phone_name_buf[i]=system_do_msg[2+i];
|
||
//__inf("=%x=",phone_name_buf[i]);
|
||
|
||
}
|
||
__msg("=============================phone bt name:%s======================\n",phone_name_buf);
|
||
tui_sys_msg_send(TUI_USER_MSG_APP_GO_BT_SET_BTNAME, NULL, NULL);
|
||
#endif
|
||
}
|
||
break;
|
||
case 'M'://{"mb", 4},///////播音乐
|
||
{
|
||
#if RTOS
|
||
__msg("============================play music======================\n");
|
||
//////////////////////////////解开机没有图标问题点/////////////////////////
|
||
bt_connect_flag = BT_STATE_CONNECTED;
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//bt_phone_music_state = 1;
|
||
bt_phone_state = BT_PHONE_INIT;
|
||
//bt_mute_flag=0; ///开声音
|
||
#endif
|
||
}
|
||
break;
|
||
case 'N'://蓝牙设备名
|
||
{
|
||
#if RTOS
|
||
__msg("=============================host bt name======================\n");
|
||
for(i=0;i<24;i++)
|
||
{
|
||
if(system_do_msg[2+i]==0xff||system_do_msg[2+i]==0x0)
|
||
{
|
||
bt_hostname_buf[i]=0x0;
|
||
__inf("=====over=====");
|
||
break;
|
||
}
|
||
bt_hostname_buf[i]=system_do_msg[2+i];
|
||
//__inf("=%x=",bt_hostname_buf[i]);
|
||
|
||
}
|
||
__msg("=============================host bt name:%s======================\n",bt_hostname_buf);
|
||
//bt_phone_music_state = 1;
|
||
tui_sys_msg_send(TUI_USER_MSG_APP_GO_BT_SET_HOSTNAME, NULL, NULL);
|
||
#endif
|
||
}
|
||
break;
|
||
case 'S'://取BT STATE
|
||
{
|
||
#if RTOS
|
||
// BT_STATUS_CONNECTING, /*已连接,没有电话和音乐在活动*///40
|
||
//BT_STATUS_TAKEING_PHONE, /*正在电话*/
|
||
//BT_STATUS_PLAYING_MUSIC, /*正在音乐*/
|
||
__msg("===============the bt state in current:%d===========\n",system_do_msg[2]);
|
||
if(system_do_msg[2]==40)//BT_STATUS_CONNECTING
|
||
{
|
||
if(bt_connect_flag!=BT_STATE_CONNECTED)
|
||
{
|
||
///__msg("======================之前为没有联上====================\n");
|
||
bt_connect_flag = BT_STATE_CONNECTED;
|
||
tui_obj_set_hidden(TUI_OBJ(GLOBAL_BAR_GLOBAL_VIEW_IMAGE_BTN_7), 0);
|
||
}
|
||
}
|
||
else if(system_do_msg[2]==41)//BT_STATUS_TAKEING_PHONE
|
||
{
|
||
///__msg("======================来电指示====================\n");
|
||
|
||
if(bt_phone_state != BT_PHONE_INING)
|
||
{
|
||
bt_phone_state=BT_PHONE_INING;
|
||
}
|
||
///__msg("=============================来电======================\n");
|
||
if(system_get_lcd_state()==LCD_STAT_OFF)//当前关屏状态
|
||
{
|
||
///__msg("==========切到手机上=========\n");
|
||
bt_audio_to_phone();
|
||
//bt_state=BT_PHONE_INING;
|
||
return 0;
|
||
}
|
||
else
|
||
{
|
||
if(system_get_cur_app()==ID_APP_PEV)//如果当前是倒车应用
|
||
{
|
||
if(get_vol_mute_state() == 1)
|
||
{
|
||
///__msg("============解MUTE==========\n");
|
||
tui_sys_msg_send(TUI_USER_MSG_APP_SPINNER_GO_VOL_MUTE, NULL, NULL);
|
||
dsk_aux_set_volume(dsk_aux_get_volume());
|
||
}
|
||
///切通道
|
||
///__msg("==============切通道============\n");
|
||
dsk_aux_select_channel(AUX_AUDIO_CHANNEL);
|
||
system_enter_denoise();
|
||
return 0;
|
||
}
|
||
else
|
||
{
|
||
|
||
__u8 cur_app= system_get_cur_app();
|
||
if(cur_app != ID_APP_BT)
|
||
{
|
||
__msg("=========================SYSTEM_MEDIA_SAVE_BREAKPOINT=====================\n");
|
||
//1,保存当前应用信息
|
||
//2,切换到蓝牙应用
|
||
tui_sys_msg_send(TUI_DSK_MSG_SYSTEM_SAVE_BREAKPOINT, NULL, NULL);
|
||
system_set_bt_need_exit(1);
|
||
tui_sys_msg_send(TUI_USER_MSG_APP_GO_BT, 0, NULL);
|
||
__msg("=========================ID_APP_BT CREAT FINISHED=====================\n");
|
||
}
|
||
else
|
||
{
|
||
|
||
///__msg("====当前是BT====\n");
|
||
bt_phone_state = BT_PHONE_INING;
|
||
__msg("=====show phone call in number:%s=====\n",bt_callin_buf);
|
||
tui_sys_msg_send(TUI_USER_MSG_APP_GO_BT_PHONENUMBER_SHOW, NULL, NULL);
|
||
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
else if(system_do_msg[2]==42)//BT_STATUS_PLAYING_MUSIC
|
||
{
|
||
|
||
bt_connect_flag = BT_STATE_CONNECTED;
|
||
bt_phone_state = BT_PHONE_INIT;
|
||
|
||
}
|
||
#endif
|
||
}
|
||
break;
|
||
case 'H'://蓝牙MAC ADDR
|
||
{
|
||
#if RTOS
|
||
__msg("=============================mac addr======================\n");
|
||
char addr_buf[12]={0};
|
||
char temp_buf[12]={0};
|
||
|
||
for(i=0;i<24;i++)
|
||
{
|
||
if(system_do_msg[2+i]==0xff||system_do_msg[2+i]==0x0)
|
||
{
|
||
addr_buf[i]=0x0;
|
||
__inf("=====over=====");
|
||
break;
|
||
}
|
||
addr_buf[i]=system_do_msg[2+i];
|
||
if(addr_buf[i]<=0xf)
|
||
{
|
||
sprintf(temp_buf, "0%x",addr_buf[i]);
|
||
strcat(bt_macaddr_buf, temp_buf);
|
||
}
|
||
else
|
||
{
|
||
sprintf(temp_buf,"%x",addr_buf[i]);
|
||
strcat(bt_macaddr_buf, temp_buf);
|
||
}
|
||
|
||
//__inf("=%x=",addr_buf[i]);
|
||
|
||
}
|
||
lowercase_2_uppercase(&bt_macaddr_buf); //将小写字母部分统一转换成大写
|
||
|
||
__msg("=============mac addr :%s=========\n",bt_macaddr_buf);
|
||
#endif
|
||
}
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
return 0;
|
||
}
|
||
|
||
__s32 sys_bt_set_music_info(void)
|
||
{
|
||
|
||
switch(system_do_msg[1])
|
||
{
|
||
case 'L'://歌词
|
||
{
|
||
__u8 *ptr=0;
|
||
__s32 datalen = 0;////数据长度
|
||
//__msg("id3 Title %d",system_do_msg[2]);
|
||
memset(bt_ID3_info->title_name, 0, 256);
|
||
datalen = system_do_msg[2];
|
||
ptr = &(system_do_msg[3]);
|
||
strncpy(bt_ID3_info->title_name, ptr, datalen+1);
|
||
__msg("title_name =%s",bt_ID3_info->title_name);
|
||
|
||
|
||
}
|
||
break;
|
||
case 'S'://歌曲Artist
|
||
{
|
||
__u8 *ptr=0;
|
||
__s32 datalen = 0;////数据长度
|
||
//__msg("id3 Artist %d",system_do_msg[2]);
|
||
memset(bt_ID3_info->artist_name, 0, 256);
|
||
datalen = system_do_msg[2];
|
||
ptr = &(system_do_msg[3]);
|
||
strncpy(bt_ID3_info->artist_name, ptr, datalen+1);
|
||
__msg("artist_name =%s",bt_ID3_info->artist_name);
|
||
}
|
||
break;
|
||
case 'A'://歌曲Album
|
||
{
|
||
__u8 *ptr=0;
|
||
__s32 datalen = 0;////数据长度
|
||
// __msg("id3 Album %d",system_do_msg[2]);
|
||
memset(bt_ID3_info->album_name, 0, 256);
|
||
datalen = system_do_msg[2];
|
||
ptr = &(system_do_msg[3]);
|
||
strncpy(bt_ID3_info->album_name, ptr, datalen+1);
|
||
__msg("album_name =%s",bt_ID3_info->album_name);
|
||
}
|
||
break;
|
||
case 'C'://当前播放时间
|
||
{
|
||
__u16 cur_time = 0;
|
||
__u8 tmp_time[16];
|
||
__u16 min,sec;
|
||
//__msg("id3 cur time [byte=%d][%d%d]",system_do_msg[2],system_do_msg[3],system_do_msg[4]);
|
||
memset(bt_ID3_info->cur_time, 0, 32);
|
||
cur_time = (system_do_msg[3] << 8) | system_do_msg[4];
|
||
//__msg("cur_time =%d",cur_time);
|
||
min = cur_time/60;
|
||
sec = cur_time%60;
|
||
__msg("cur_min = %d,cur_sec= %d",min,sec);
|
||
if(min > 9)
|
||
{
|
||
sprintf(bt_ID3_info->cur_time,"%d",min);
|
||
}
|
||
else
|
||
{
|
||
sprintf(bt_ID3_info->cur_time,"%d%d",0,min);
|
||
}
|
||
|
||
strcat(bt_ID3_info->cur_time,":");
|
||
if(sec > 9)
|
||
{
|
||
sprintf(tmp_time,"%d",sec);
|
||
}
|
||
else
|
||
{
|
||
sprintf(tmp_time,"%d%d",0,sec);
|
||
}
|
||
strcat(bt_ID3_info->cur_time,tmp_time);
|
||
|
||
// sprintf(bt_ID3_info->cur_time,"%d/%d",min,sec);
|
||
|
||
}
|
||
break;
|
||
case 'T'://总播放时间
|
||
{
|
||
__u16 total_time = 0;
|
||
__u8 tmp_time[16];
|
||
__u16 min,sec;
|
||
// __msg("id3 total time [byte=%d][%d%d]",system_do_msg[2],system_do_msg[3],system_do_msg[4]);
|
||
memset(bt_ID3_info->total_time, 0, 32);
|
||
total_time = (system_do_msg[3] << 8) | system_do_msg[4];
|
||
// __msg("total_time =%d",total_time);
|
||
min = total_time/60;
|
||
sec = total_time%60;
|
||
__msg("total_min =%d,total_sec =%d",min,sec);
|
||
if(min > 9)
|
||
{
|
||
sprintf(bt_ID3_info->total_time,"%d",min);
|
||
}
|
||
else
|
||
{
|
||
sprintf(bt_ID3_info->total_time,"%d%d",0,min);
|
||
}
|
||
|
||
strcat(bt_ID3_info->total_time,":");
|
||
if(sec > 9)
|
||
{
|
||
sprintf(tmp_time,"%d",sec);
|
||
}
|
||
else
|
||
{
|
||
sprintf(tmp_time,"%d%d",0,sec);
|
||
}
|
||
strcat(bt_ID3_info->total_time,tmp_time);
|
||
|
||
//sprintf(bt_ID3_info->total_time,"%d/%d",min,sec);
|
||
|
||
}
|
||
break;
|
||
default:
|
||
__msg("id3 info err!");
|
||
break;
|
||
|
||
}
|
||
return 0;
|
||
}
|
||
//蓝牙返回的音乐播放状态
|
||
void sys_bt_set_music_status(u8 music_status)
|
||
{
|
||
|
||
__msg("=====bt music status:%x====\n",music_status);
|
||
if(music_status=='A')///stop
|
||
{
|
||
__msg("=================bt music stop==============\n");
|
||
bt_audio_set_status(BT_STAT_PAUSE);
|
||
}
|
||
else if(music_status=='B')///play
|
||
{
|
||
__msg("=================bt music play==============\n");
|
||
bt_audio_set_status(BT_STAT_PLAY);
|
||
}
|
||
|
||
return;
|
||
}
|
||
|
||
__s32 sys_bt_get_phone_state(void)
|
||
{
|
||
if(bt_phone_state ==BT_PHONE_OUTING||bt_phone_state ==BT_PHONE_INING||
|
||
bt_phone_state ==BT_PHONE_TALKINING||bt_phone_state ==BT_PHONE_TALKOUTING)
|
||
{
|
||
__wrn("**********bt calling:%d************\n",bt_phone_state);
|
||
return 1;///有事正在进行
|
||
}
|
||
else
|
||
{
|
||
//__msg("===========bt free==========\n");
|
||
return 0;
|
||
}
|
||
}
|
||
__s32 sys_bt_set_phone_state(bt_phone_state_t phone_state)
|
||
{
|
||
bt_phone_state = phone_state;
|
||
return 0;
|
||
}
|
||
|
||
__s32 sys_bt_get_phone_type(void)
|
||
{
|
||
return bt_phone_type;
|
||
}
|
||
__s32 sys_bt_set_phone_type(bt_phone_type_t phone_type)
|
||
{
|
||
bt_phone_type = phone_type;
|
||
return 0;
|
||
}
|
||
|
||
__s32 sys_bt_is_connected(void)
|
||
{
|
||
return bt_is_connected();
|
||
}
|
||
|
||
__s32 sys_bt_spp_rfcomm_is_connected(void)
|
||
{
|
||
return bt_spp_rfcomm_is_connected();
|
||
}
|
||
|
||
|
||
//这里需要用户端实现处理SPP接收到的数据
|
||
__s32 bt_spp_rx_data(char *CmdStr,unsigned char len)
|
||
{
|
||
u8 oncecmd,seccmd;
|
||
oncecmd = CmdStr[0];
|
||
seccmd = CmdStr[1];
|
||
#if RTOS
|
||
phonelink_spp_rx(CmdStr,len);
|
||
#endif
|
||
switch(oncecmd)
|
||
{
|
||
case 'A'://auto UUID CmdStr[2]
|
||
{
|
||
if(seccmd == 'A')
|
||
{
|
||
bt_spp_rx_data_rfcomm(&CmdStr[2],len-2);
|
||
sys_bt_set_phone_type(PHONE_ANDROID_AUTO);
|
||
}
|
||
}
|
||
break;
|
||
case 'B'://wireless bt version CmdStr[2]
|
||
{
|
||
if(seccmd == 'V')
|
||
{
|
||
|
||
}
|
||
}
|
||
break;
|
||
case 'D'://废弃,可不要
|
||
{
|
||
if(seccmd == 'B')//bt mac addr CmdStr[2]
|
||
{
|
||
|
||
}
|
||
}
|
||
break;
|
||
case 'I'://废弃,可不要
|
||
{
|
||
if(seccmd == 'A') //disconnect bt return state
|
||
{
|
||
|
||
}
|
||
else if(seccmd == 'B')////reconnect bt return state
|
||
{
|
||
|
||
}
|
||
}
|
||
break;
|
||
case 'J':
|
||
{
|
||
u8 i ;
|
||
if(seccmd == 'H')//phone mac addr CmdStr[2]
|
||
{
|
||
for(i=0;i<12;i++)
|
||
{
|
||
__log("%x",CmdStr[2+i]);
|
||
}
|
||
__log("\n");
|
||
|
||
}
|
||
}
|
||
break;
|
||
case 'N'://废弃,可不要
|
||
{
|
||
if(seccmd == 'A')//bt name CmdStr[2],等于 hostname
|
||
{
|
||
|
||
}
|
||
}
|
||
break;
|
||
case 'P':
|
||
{
|
||
if(seccmd == 0)//配对开始
|
||
{
|
||
|
||
}
|
||
else if(seccmd == 1)//配对成功
|
||
{
|
||
|
||
}
|
||
else if(seccmd == 2)//配对失败
|
||
{
|
||
|
||
}
|
||
// else if(seccmd == 3)//配对结束
|
||
// {
|
||
|
||
// }
|
||
}
|
||
break;
|
||
case 'S':
|
||
{
|
||
if(seccmd == 'A')//phone name CmdStr[2]
|
||
{
|
||
|
||
}
|
||
else if(seccmd == 'I')//rfcomm data CmdStr[2]
|
||
{
|
||
bt_spp_rx_data_rfcomm(&CmdStr[2],len-2);
|
||
}
|
||
else if(seccmd == 'V')//rfcomm connected return state
|
||
{
|
||
bt_spp_connect_flag = BT_SPP_STATE_CONNECTED;
|
||
}
|
||
else if(seccmd == 'S')//rfcomm disconnected return state
|
||
{
|
||
bt_spp_connect_flag = BT_SPP_STATE_DISCONNECTED;
|
||
}
|
||
}
|
||
break;
|
||
case 'U':
|
||
{
|
||
if(seccmd == 'S')//UUID start
|
||
{
|
||
|
||
}
|
||
else if(seccmd == 'U')//carplay UUID data CmdStr[2]
|
||
{
|
||
bt_spp_rx_data_rfcomm(&CmdStr[2],len-2);
|
||
sys_bt_set_phone_type(PHONE_CARPLAY);
|
||
}
|
||
else if(seccmd == 'E')//UUID end
|
||
{
|
||
|
||
}
|
||
}
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
return EPDK_OK;
|
||
}
|
||
|
||
//这里需要用户端实现处理BLE接收到的数据
|
||
#if 0
|
||
__s32 bt_ble_rx_data(char *CmdStr,unsigned char len)
|
||
{
|
||
#if RTOS
|
||
// phonelink_ble_rx(CmdStr,len);
|
||
#endif
|
||
sys_bt_set_phone_type(PHONE_HARMONY);
|
||
switch(CmdStr[0])
|
||
{
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
return EPDK_OK;
|
||
}
|
||
#endif
|
||
|
||
static void (*connect_cb)(int status) = NULL;
|
||
|
||
void bt_hid_request_connect_cb(void *cb(int status))
|
||
{
|
||
connect_cb = cb;
|
||
}
|
||
|
||
//这里需要用户端实现处理HID接收到的数据
|
||
__s32 bt_hid_rx_data(char *CmdStr,unsigned char len)
|
||
{
|
||
u8 oncecmd,seccmd;
|
||
oncecmd = CmdStr[0];
|
||
seccmd = CmdStr[1];
|
||
#if RTOS
|
||
// phonelink_hid_rx(CmdStr,len);
|
||
#endif
|
||
switch(CmdStr[0])
|
||
{
|
||
case 'H':
|
||
{
|
||
if(seccmd == 'L')
|
||
{
|
||
|
||
}
|
||
else if(seccmd == 'B')
|
||
{
|
||
bt_hid_connect_flag = BT_HID_STATE_CONNECTED;
|
||
}
|
||
else if(seccmd == 'A')
|
||
{
|
||
bt_hid_connect_flag = BT_HID_STATE_DISCONNECTED;
|
||
}
|
||
|
||
if (connect_cb)
|
||
connect_cb(bt_hid_connect_flag);
|
||
}
|
||
break;
|
||
default:
|
||
break;
|
||
|
||
}
|
||
return EPDK_OK;
|
||
}
|
||
|
||
|
||
/**************************bt uart******************************
|
||
以下函数是系统层参考函数,需要用户端实现,
|
||
uart通讯默认波特率115200,8位数据位,1位停止位,无校验位
|
||
**************************bt uart******************************/
|
||
|
||
__s32 uart_init = 0;////1-init,0-uninit
|
||
__s32 com_uart_init(void)
|
||
{
|
||
if(0 == uart_init)
|
||
{
|
||
uart_init = 1;
|
||
#if RTOS
|
||
rtos_com_uart_init();
|
||
#endif
|
||
#if RTT
|
||
rtt_com_uart_init();
|
||
#endif
|
||
#if LINUX
|
||
linux_com_uart_init();
|
||
#endif
|
||
}
|
||
return EPDK_OK;
|
||
}
|
||
|
||
__s32 com_uart_deinit(void)
|
||
{
|
||
if(1 == uart_init)
|
||
{
|
||
#if RTOS
|
||
rtos_com_uart_deinit();
|
||
#endif
|
||
#if RTT
|
||
rtt_com_uart_deinit();
|
||
#endif
|
||
#if LINUX
|
||
linux_com_uart_deinit();
|
||
#endif
|
||
uart_init = 0;
|
||
}
|
||
return EPDK_OK;
|
||
}
|
||
|
||
__s32 com_uart_write(char* pbuf, __s32 size)
|
||
{
|
||
#if RTOS
|
||
rtos_com_uart_write(pbuf, size);
|
||
#endif
|
||
#if RTT
|
||
rtt_com_uart_write(pbuf, size);
|
||
#endif
|
||
#if LINUX
|
||
linux_com_uart_write(pbuf, size);
|
||
#endif
|
||
return EPDK_OK;
|
||
}
|
||
|
||
__s32 com_uart_read(char* pbuf, __s32 buf_size, __s32* size)
|
||
{
|
||
#if RTOS
|
||
rtos_com_uart_read(pbuf,buf_size,size);
|
||
#endif
|
||
#if RTT
|
||
rtt_com_uart_read(pbuf,buf_size,size);
|
||
#endif
|
||
#if LINUX
|
||
linux_com_uart_read(pbuf,buf_size,size);
|
||
#endif
|
||
return EPDK_OK;
|
||
}
|
||
|
||
__s32 com_uart_flush(void)
|
||
{
|
||
#if RTOS
|
||
rtos_com_uart_flush();
|
||
#endif
|
||
#if RTT
|
||
rtt_com_uart_flush();
|
||
#endif
|
||
#if LINUX
|
||
linux_com_uart_flush();
|
||
#endif
|
||
return EPDK_OK;
|
||
}
|
||
////1-init,0-uninit
|
||
__s32 com_uart_state(void)
|
||
{
|
||
return uart_init;
|
||
}
|
||
|
||
__s32 bt_para_init(void)
|
||
{
|
||
#if RTOS
|
||
bt_phonebook_para = (bt_phonebook_state *)esMEMS_Balloc(sizeof(bt_phonebook_state));
|
||
if(bt_phonebook_para == NULL)
|
||
{
|
||
printf("=============Request phone book fail=============\n");
|
||
goto para_exit;
|
||
}
|
||
|
||
bt_ID3_info = (bt_ID3_info_t *)esMEMS_Balloc(sizeof(bt_ID3_info_t));
|
||
if(bt_ID3_info == NULL)
|
||
{
|
||
printf("=============Request bt_ID3_info fail=============\n");
|
||
goto para_exit;
|
||
}
|
||
|
||
memset((void *)bt_phonebook_para, 0, sizeof(bt_phonebook_state));
|
||
memset((void *)bt_ID3_info, 0, sizeof(bt_ID3_info_t));
|
||
#endif
|
||
|
||
return EPDK_OK;
|
||
para_exit:
|
||
|
||
#if RTOS
|
||
printf("=============Request memory fail=============\n");
|
||
if(bt_ID3_info)
|
||
{
|
||
memset(bt_ID3_info, 0, sizeof(bt_ID3_info_t));
|
||
esMEMS_Bfree(bt_ID3_info,sizeof(bt_ID3_info_t));
|
||
}
|
||
if(bt_phonebook_para)
|
||
{
|
||
memset(bt_phonebook_para, 0, sizeof(bt_phonebook_state));
|
||
esMEMS_Bfree(bt_phonebook_para,sizeof(bt_phonebook_state));
|
||
}
|
||
#endif
|
||
return EPDK_FAIL;
|
||
|
||
}
|
||
|
||
__s32 bt_para_exit(void)
|
||
{
|
||
|
||
#if RTOS
|
||
if(bt_ID3_info)
|
||
{
|
||
memset(bt_ID3_info, 0, sizeof(bt_ID3_info_t));
|
||
esMEMS_Bfree(bt_ID3_info,sizeof(bt_ID3_info_t));
|
||
}
|
||
if(bt_phonebook_para)
|
||
{
|
||
memset(bt_phonebook_para, 0, sizeof(bt_phonebook_state));
|
||
esMEMS_Bfree(bt_phonebook_para,sizeof(bt_phonebook_state));
|
||
}
|
||
#endif
|
||
return EPDK_OK;
|
||
}
|
||
|
||
|
||
__s32 bt_task_start(void)
|
||
{
|
||
#if RTOS
|
||
rtos_bt_task_start();
|
||
#endif
|
||
#if RTT
|
||
rtt_bt_task_start();
|
||
#endif
|
||
#if LINUX
|
||
linux_bt_task_start();
|
||
#endif
|
||
return EPDK_OK;
|
||
|
||
}
|
||
|
||
__s32 bt_task_stop(void)
|
||
{
|
||
#if RTOS
|
||
rtos_bt_task_stop();
|
||
#endif
|
||
#if RTT
|
||
rtt_bt_task_stop();
|
||
#endif
|
||
#if LINUX
|
||
linux_bt_task_stop();
|
||
#endif
|
||
return EPDK_OK;
|
||
}
|
||
|
||
|
||
void bt_msleep(uint16_t ticks)
|
||
{
|
||
|
||
#if RTOS
|
||
rtos_msleep(ticks);
|
||
#endif
|
||
#if RTT
|
||
rtt_msleep(ticks);
|
||
#endif
|
||
#if LINUX
|
||
linux_msleep(ticks);
|
||
#endif
|
||
return;
|
||
}
|
||
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|