From eb7c66b7841c99cbf62ceb782a7c15b1ffa9d1e1 Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Wed, 8 Jan 2025 11:55:13 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0cat1=E4=BD=BF=E7=94=A8?= =?utf8?q?=E8=93=9D=E7=89=99=E8=80=B3=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- bin/bt.bin | 4 +- .../phoneservice/include/PhoneAGService.h | 2 + .../phoneservice/src/PhoneAGService.cpp | 35 +++++++---- .../phoneservice/src/PhoneService.cpp | 22 ++++--- .../service/ble_service/bleservice/bleEvent.c | 60 ++++++++++++++----- .../config/target_config/brandy/config.py | 1 + code/sdk/tools/pkg/bin/brandy/bt.bin | 4 +- 7 files changed, 89 insertions(+), 39 deletions(-) diff --git a/bin/bt.bin b/bin/bt.bin index 0bfb6d9a1..5564865ed 100644 --- a/bin/bt.bin +++ b/bin/bt.bin @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:305a4bc884af94627fc343d17304e44534b0c7b8b6ed917a4c1c2c3b9a69e628 -size 424360 +oid sha256:c6faa308a3591ba1d1743e2fd4ebe9334778acf2fa7fdd7eb8ac434e252ad25f +size 424848 diff --git a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/include/PhoneAGService.h b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/include/PhoneAGService.h index 12f0b3ca5..8bb3cc168 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/include/PhoneAGService.h +++ b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/include/PhoneAGService.h @@ -15,6 +15,8 @@ #define SAMPLE_HFP_PROF_VOL_LEVEL 15 #define SAMPLE_HFP_MEDIA_VOL_LEVEL 100 +#define SUPPORT_CAT1_HFP_AG_SERV + #ifdef SUPPORT_CAT1_HFP_AG_SERV void hfp_ag_reg_callback(void); diff --git a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneAGService.cpp b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneAGService.cpp index 442f1a88b..ebf31e7c7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneAGService.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneAGService.cpp @@ -115,12 +115,11 @@ static int32_t audio_stream_init(void) audio_manager_set_device_connection_state(IN_MODEM_HEADSET, AUDIO_DEVICE_CONNECTED); audio_manager_set_device_connection_state(OUT_MODEM_HEADSET, AUDIO_DEVICE_CONNECTED); - g_hdl_up_sco = audio_stream_in_init(AUDIO_UP_LINK, PCM); - g_hdl_up_modem = audio_stream_out_init(AUDIO_UP_LINK, PCM); - - g_hdl_dn_sco = audio_stream_out_init(AUDIO_DOWN_LINK, mSBC); - g_hdl_dn_modem = audio_stream_in_init(AUDIO_DOWN_LINK, mSBC); - + g_hdl_up_sco = audio_stream_in_init(AUDIO_UP_LINK, g_hfp_codec); + g_hdl_up_modem = audio_stream_out_init(AUDIO_UP_LINK, g_hfp_codec); + g_hdl_dn_sco = audio_stream_out_init(AUDIO_DOWN_LINK, g_hfp_codec); + g_hdl_dn_modem = audio_stream_in_init(AUDIO_DOWN_LINK, g_hfp_codec); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"%d",g_hfp_codec); return 0; } @@ -169,9 +168,6 @@ static int32_t abrogation_audio_stream_pipeline(void) static int32_t sample_audio_init_start_task_body(const void *data) { - // Sample_audio_init(); - - // return 0; unused(data); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"sample_audio_init_start enter\n"); @@ -265,6 +261,9 @@ void cat1_start_SCO_audio_(void) uapi_cat1_start_SCO_volte_voice(); } + + + static void sample_hfp_ag_sco_conn_state_changed_callback(const bd_addr_t *bd_addr, hfp_sco_connect_state_t state) { sample_hfp_ag_print_addr(bd_addr); @@ -281,9 +280,9 @@ static void sample_hfp_ag_sco_conn_state_changed_callback(const bd_addr_t *bd_ad } else { - do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_CAT1_AUDIO_STOP, nullptr, 0); + do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_CAT1_AUDIO_STOP, nullptr, 0); - do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_CAT_HFP_SCO_AUDIO_START, nullptr, 0); + do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_CAT_HFP_SCO_AUDIO_START, nullptr, 0); } Call_headset_state_updata(1); @@ -293,7 +292,7 @@ static void sample_hfp_ag_sco_conn_state_changed_callback(const bd_addr_t *bd_ad case HFP_SCO_STATE_DISCONNECTING: break; case HFP_SCO_STATE_DISCONNECTED: - + if(OHOS::CallerLogModel::GetInstance()->GetCallSource() == OHOS::CallerLogModel::CallSourceCat1 && OHOS::NotificationManager::GetInstance()->GetWatchCallStatus()) { @@ -314,12 +313,22 @@ static void sample_hfp_ag_sco_conn_state_changed_callback(const bd_addr_t *bd_ad break; } } -} + } static void sample_hfp_ag_codec_changed_callback(const bd_addr_t *bd_addr, hfp_ag_codec_id_t codec) { sample_hfp_ag_print_addr(bd_addr); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"codec : %d\n", codec); + if (codec == HFP_AG_CODEC_ID_CVSD) { + + g_hfp_codec = PCM; + + } else if (codec == HFP_AG_CODEC_ID_MSBC) { + + g_hfp_codec = mSBC; + } + + } diff --git a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp index 2949853b0..a4fbe862f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp @@ -669,7 +669,7 @@ static void ConnStateChanged(const bd_addr_t *bdAddr, profile_connect_state_t st return; } #endif - uapi_pbap_cmd_start_client(); + // uapi_pbap_cmd_start_client(); break; case PROFILE_STATE_CONNECTED: // 蓝牙连接成功 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnStateChanged] BT connected"); @@ -689,7 +689,7 @@ static void ConnStateChanged(const bd_addr_t *bdAddr, profile_connect_state_t st BtConnectedPro(bdAddr); SendMsgToUIService(BT_CONNECTED_TO_UI, 0, nullptr, 0); - uapi_pbap_cmd_start_client(); + // uapi_pbap_cmd_start_client(); uapi_save_runtime_log(RUNTIME_LOG_BR_CONNECT_HFP); //SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0); break; @@ -1583,9 +1583,15 @@ static void stop_ring(void) } +static uint8_t find_phone_count=0; - - +static void find_address_book(std::string number,uint8_t len) +{ + find_phone_count++; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "find_address_book %d", find_phone_count); + // uapi_pbap_cmd_pull_vcard_listing((unsigned char *)number.c_str(),len); + +} // 通话状态变化上报回调 static void CallStateChanged(const bd_addr_t *bdAddr, const hfp_hf_calls_info_t *call) @@ -1595,7 +1601,7 @@ static void CallStateChanged(const bd_addr_t *bdAddr, const hfp_hf_calls_info_t WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "call is null or BT disconnected connStatus: 0x%X", g_btConnState); return; } - + if(OHOS::CallerLogModel::GetInstance()->GetCallDial() == OHOS::CallerLogModel::HFP_PHONE_DIAL) { if(call->state==HFP_HF_CALL_STATE_DIALING||call->state==HFP_HF_CALL_STATE_ALERTING) @@ -1630,8 +1636,10 @@ static void CallStateChanged(const bd_addr_t *bdAddr, const hfp_hf_calls_info_t if(call->state==HFP_HF_CALL_STATE_INCOMING || call->state==HFP_HF_CALL_STATE_DIALING || call->state==HFP_HF_CALL_STATE_ALERTING) - uapi_pbap_cmd_pull_vcard_listing((unsigned char *)call->number,(uint8_t )call->number_len); - + { + GraphicService::GetInstance()->PostGraphicEvent(std::bind(find_address_book,call->number,call->number_len)); + } + if(HFP_HF_CALL_STATE_INCOMING!=call->state) { PostGraphicEvent(stop_ring); diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c index 9ef0c5b50..11028679a 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c @@ -2886,7 +2886,7 @@ uint8_t parse_jsonCheck_weather(uint8_t *buf,uint8_t *check)//json 格式解析 } if( uapi_dev_runtime_get_bt_powerstat() && cm_get_HFP_switch()) - uapi_pbap_cmd_start_client(); + // uapi_pbap_cmd_start_client(); bd_addr_t bdaddr={0}; uapi_get_br_address(&bdaddr); @@ -6935,7 +6935,7 @@ errcode_t decode_ota_data(ble_read_data *buffer_handle,uint8_t *data,uint16_t da create_mp3_name(filepath,musicpath,buffer_handle->file_recv_stat.file_name); buffer_handle->file_recv_stat.file = fopen(filepath,"w+"); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"filepath %s\r\n",filepath); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"filepath %s\r\n",filepath); } else { @@ -6995,6 +6995,19 @@ errcode_t decode_ota_data(ble_read_data *buffer_handle,uint8_t *data,uint16_t da BR_TRANSFER_timer = NULL; return ERRCODE_FAIL; } + + { + if(buffer_handle->file_recv_stat.file_type==3) + TRANSMIT_DATA=TRANS_DIAL_TRANSMITTING; + + if(buffer_handle->file_recv_stat.file_type==1) + TRANSMIT_DATA=TRANS_OTA_TRANSMITTING; + + if(buffer_handle->file_recv_stat.file_type==2) + TRANSMIT_DATA=TRANS_MP3_TRANSMITTING; + + CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); + } } /////////////////////////////////////////////////////////// } @@ -7014,10 +7027,9 @@ errcode_t decode_ota_data(ble_read_data *buffer_handle,uint8_t *data,uint16_t da buffer_handle->file_recv_stat.lrcvalue = calculate_lrc(data_,datalen,buffer_handle->file_recv_stat.lrcvalue); buffer_handle->file_recv_stat.received_size += datalen; - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"handle_recv_file received_size %d\n",buffer_handle->file_recv_stat.received_size); - OTA_FILE_value= ((float) buffer_handle->file_recv_stat.received_size / (float)buffer_handle->file_recv_stat.file_size) *100; - + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"handle_recv_file received_size %d %0.3lf\n",buffer_handle->file_recv_stat.received_size + ,(float) buffer_handle->file_recv_stat.received_size / (float)buffer_handle->file_recv_stat.file_size); }else{ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"handle_recv_file write file failed! ret %d != %d\n",writtensize,datalen); @@ -7064,10 +7076,13 @@ errcode_t decode_ota_data(ble_read_data *buffer_handle,uint8_t *data,uint16_t da WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"0xffffffff 包重复\r\n"); //ble_reply_msgarr(6,4,&replydata,4); } - else if (last_package_id!=package_id) + else if (last_package_id!=package_id ) { uint32_t replydata= last_package_id+1; - ble_reply_msgarr(6,4,&replydata,4); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"包错漏\r\n"); + + + ble_reply_msgarr(0x06,0x04,&replydata,4); } return ERRCODE_SUCC; } @@ -7165,8 +7180,8 @@ errcode_t decode_ota_json(ble_read_data *buffer_handle) { buffer_handle->receive_file_flag = 1; uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_HIGH); //进入特殊UI - TRANSMIT_DATA=TRANS_OTA_TRANSMITTING; - CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); + // TRANSMIT_DATA=TRANS_OTA_TRANSMITTING; + // CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); return ERRCODE_SUCC; }else{ @@ -7227,7 +7242,7 @@ errcode_t decode_mp3_json(ble_read_data *buffer_handle) } cJSON_Delete(root); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," MP3_type= %d, MP3_name=%s, MP3_size=%d \n", + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP," MP3_type= %d, MP3_name=%s, MP3_size=%d \n", buffer_handle->file_recv_stat.file_type, buffer_handle->file_recv_stat.file_name, buffer_handle->file_recv_stat.file_size @@ -7252,8 +7267,8 @@ errcode_t decode_mp3_json(ble_read_data *buffer_handle) buffer_handle->file_recv_stat.lrcvalue = 0; buffer_handle->receive_file_flag = 1; uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_HIGH); - TRANSMIT_DATA=TRANS_MP3_TRANSMITTING; - CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); + // TRANSMIT_DATA=TRANS_MP3_TRANSMITTING; + // CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); return ERRCODE_SUCC; } @@ -7434,8 +7449,8 @@ errcode_t decode_single_dial_info(ble_read_data *buffer_handle) buffer_handle->receive_file_flag = 1; uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_HIGH); - TRANSMIT_DATA=TRANS_DIAL_TRANSMITTING; - CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); + // TRANSMIT_DATA=TRANS_DIAL_TRANSMITTING; + // CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); return ERRCODE_SUCC; @@ -7955,7 +7970,7 @@ void type2AE6Data(ble_read_data *buffer_handle,uint8_t *cmd_buf ,uint8_t *data,u #ifdef BLE_LOG #endif - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"typeHexOneData:0x%04X\r\n",cmd); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"typeHexOneData:0x%04X\r\n",cmd); // uint8_t typeID = cmd_buf[2]; switch (cmd) { @@ -8301,8 +8316,23 @@ errcode_t handle_recv_file(ble_read_data *buffer_handle,uint8_t *data, uint16_t BR_TRANSFER_timer = NULL; return ERRCODE_FAIL; } + // if(buffer_handle->file_recv_stat.received_size==0) + { + if(buffer_handle->file_recv_stat.file_type==3) + TRANSMIT_DATA=TRANS_DIAL_TRANSMITTING; + + if(buffer_handle->file_recv_stat.file_type==1) + TRANSMIT_DATA=TRANS_OTA_TRANSMITTING; + + if(buffer_handle->file_recv_stat.file_type==2) + TRANSMIT_DATA=TRANS_MP3_TRANSMITTING; + + CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); + } + /////////////////////////////////////////////////////////// } + if (buffer_handle->file_recv_stat.file == NULL) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"6194 buffer_handle->file_recv_stat.file \n"); diff --git a/code/sdk/build/config/target_config/brandy/config.py b/code/sdk/build/config/target_config/brandy/config.py index a9a2dfa02..c3867744c 100755 --- a/code/sdk/build/config/target_config/brandy/config.py +++ b/code/sdk/build/config/target_config/brandy/config.py @@ -140,6 +140,7 @@ target = { 'SUPPORT_AT_CUSTOMUTILS', 'SUPPORT_BLE_SERVICE', 'FD230', + 'SUPPORT_CAT1_HFP_AG_SERV' 'SUPPORT_AUTO_OTA_SERVER', 'CONFIG_DFX_SUPPORT_DIAG_UP_MACHINE=1', #"MEM_CHECK", diff --git a/code/sdk/tools/pkg/bin/brandy/bt.bin b/code/sdk/tools/pkg/bin/brandy/bt.bin index 6f450c10e..5564865ed 100755 --- a/code/sdk/tools/pkg/bin/brandy/bt.bin +++ b/code/sdk/tools/pkg/bin/brandy/bt.bin @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8e8536a8ef09062636e9523134560b0975a8b82600fdaaf7692c15ebfee2379a -size 424976 +oid sha256:c6faa308a3591ba1d1743e2fd4ebe9334778acf2fa7fdd7eb8ac434e252ad25f +size 424848 -- 2.17.1