ble增加广播检测,3s检测一次广播状态是否正常
authorhcj <1224667075@qq.com>
Thu, 17 Oct 2024 07:47:40 +0000 (15:47 +0800)
committerhcj <1224667075@qq.com>
Thu, 17 Oct 2024 07:47:40 +0000 (15:47 +0800)
code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c
code/sdk/application/wearable/service/ble_service/bleservice/bleService.h
code/sdk/drivers/peripheral/utils/custom_cmd_service.c
code/sdk/drivers/peripheral/utils/custom_utils.h

index 9b582e7..8e9adfc 100644 (file)
@@ -348,6 +348,9 @@ extern "C"
 \r
     void AlarmScan(void *arg)\r
     {\r
+\r
+        \r
+\r
         struct tm curTime;\r
         int32_t ret = AlarmGetCurrentTimeInfo(&curTime);\r
         if (ret != ERRCODE_SUCC)\r
@@ -355,6 +358,8 @@ extern "C"
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get current time info, error code: %d", ret);\r
             return;\r
         }\r
+        if(curTime.tm_sec%3==0)\r
+        do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BLE_ADV_CHECK, nullptr, 0);\r
 \r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Scanning alarms - Current time: %02d:%02d:%02d",\r
                       curTime.tm_hour, curTime.tm_min, curTime.tm_sec);\r
index 6db203f..ddf86af 100644 (file)
@@ -801,9 +801,9 @@ void BtGapPairStatusChangedCallback(const bd_addr_t *bdAddr, int status)
         if(cm_custom_ble_service_on_flag() && !get_ble_pair()&& (status == GAP_PAIR_PAIRED))\r
         {\r
             send_pair_succ((bd_addr_t*)bdAddr);\r
+            \r
             hand_watch_first_time_Paired();\r
-            //svr_ble_adv_stop();\r
-            //uapi_reconnect();\r
+\r
             set_br_pair(1);\r
           \r
         }\r
@@ -1101,17 +1101,6 @@ void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state,
 \r
             uapi_set_ACL_br_address(bdAddr);\r
 \r
-            if(GAP_PAIR_PAIRED==gap_get_pair_state(bdAddr))\r
-            {\r
-                if(!get_br_is_pair())\r
-                {\r
-                        send_pair_succ((bd_addr_t*)bdAddr);\r
-                        hand_watch_first_time_Paired();\r
-                        set_br_pair(1);\r
-                }\r
-\r
-            }\r
-\r
             gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 0);\r
 \r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_SCAN_MODE_NONE");\r
index 755dadd..5ba9920 100644 (file)
@@ -100,7 +100,7 @@ bool sendbigDataBufState = false;//发送大数据表示不要被其他指令打
 bool recvBigDataBufState = false;//接收大数据标志\r
 static bool muiltFlag = 0;//多包数据flag\r
 static bool ANCSBigBufFlag = 0;//ANCS多包数据flag\r
-static uint16_t data_len = 0;\r
+// static uint16_t data_len = 0;\r
 ble_recv_data_info_t ble_recv_data;\r
 static uint8_t TRANSMIT_DATA;\r
 static osTimerId_t BR_TRANSFER_timer=NULL;\r
@@ -1108,6 +1108,7 @@ void sendBindInfor(uint8_t *data)
                 bool  gap_get_paired =gap_get_paired_devices_num(&paired_devices_num);\r
                 if(gap_get_paired!=true ||paired_devices_num!=0 )\r
                 {\r
+                    printf("sendBindInfor!!!!!!!!!:gap_remove_all_pairs \r\n");\r
                     gap_remove_all_pairs();\r
                 }\r
             }\r
@@ -1178,17 +1179,7 @@ void sendBindInfor(uint8_t *data)
             int result = memcmp(copare_mac,save_mac,6);\r
             if(result == 0)\r
             {\r
-                //已经配对就关闭一键双连\r
-                // errcode_t ret = gap_ble_set_ctkd_enable(true);\r
-                // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "gap_ble_set_ctkd_enable ret = %x", ret);\r
-                // set_ctkd_flag(false);\r
-                \r
-                //  if(strcmp("iPhone",devname)==0)\r
-                // {\r
-                //     errcode_t ret = gap_ble_set_ctkd_enable(true);\r
-                //     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "gap_ble_set_ctkd_enable ret = %x", ret);\r
-                //     set_ctkd_flag(true);\r
-                // }\r
+               \r
                 if(get_ble_pair())\r
                 {\r
                     set_ctkd_flag(true);\r
@@ -2336,9 +2327,9 @@ void SYN_train_heart_datatCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *t
                 uint32_t pack=1;\r
 \r
                 if(file_size%num==0)\r
-                pack=data_len/num;\r
+                pack=file_size/num;\r
                 else\r
-                pack=data_len/num+1;\r
+                pack=file_size/num+1;\r
 \r
                 uint32_t pack_id=1;\r
                 uint32_t read_size=0;\r
@@ -2412,9 +2403,9 @@ void SYN_train_speed_datatCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *t
 \r
                 uint32_t pack=1;\r
                 if(file_size%num==0)\r
-                pack=data_len/num;\r
+                pack=file_size/num;\r
                 else\r
-                pack=data_len/num+1;\r
+                pack=file_size/num+1;\r
                 uint32_t pack_id=1;\r
                 uint32_t read_size=0;\r
                 do\r
@@ -6032,9 +6023,9 @@ bool Read_Health_BIN_file_buf_send_bin_Data(uint8_t day, uint16_t num,uint16_t i
 \r
     uint32_t pack=1;\r
     if(file_size%num==0)\r
-    pack=data_len/num;\r
+    pack=file_size/num;\r
     else\r
-    pack=data_len/num+1;\r
+    pack=file_size/num+1;\r
     uint32_t pack_id=1;\r
     uint32_t read_size=0;\r
     do\r
@@ -6782,71 +6773,149 @@ uint8_t OTA_FILE_value=0;
 \r
 errcode_t decode_ota_data(ble_read_data *buffer_handle,uint8_t *data,uint16_t datalen,uint8_t crcvalue)\r
 {\r
-    uint32_t package_id=0;\r
-    memcpy_s(&package_id,4,&data[11],4);\r
-    printf("package_id: %d \r\n",package_id);\r
+    if(datalen<sizeof(msg_header_t))\r
+    {\r
+        return ERRCODE_FAIL;\r
+    }\r
 \r
-    // for(int i=0 ;i<17;i++)\r
-    // {\r
-    //     printf(" 0x%02X",data[i]);\r
-    // }\r
-    // printf("\r\n");\r
+    msg_header_t *header =  (msg_header_t*)data; \r
 \r
-    data=data+sizeof(msg_header_t);\r
-    datalen-=18;\r
-    if(Check_CRC(data,datalen,crcvalue))\r
+    if(header->cmdtype!=0x06)\r
     {\r
-      \r
-        if(package_id==0)\r
+        return ERRCODE_FAIL;\r
+    }\r
+\r
+    uint8_t* data_=data+sizeof(msg_header_t);\r
+        //datalen-=18;\r
+    datalen=header->package_len;\r
+\r
+    if(header->cmdid==0x0B)\r
+    {   \r
+        //取消文件传输\r
+        if(Check_CRC(data_,datalen,crcvalue))\r
         {\r
-        last_package_id=package_id;\r
-        if((buffer_handle->file_recv_stat.recv_file_stat <= 0) && buffer_handle->file_recv_stat.file == NULL )\r
+            cancel_recv_file();\r
+            uint8_t replydata= 1;\r
+            ble_reply_msgarr(6,0x0B,&replydata,1);\r
+        }\r
+        else\r
         {\r
-            buffer_handle->file_recv_stat.lrcvalue = 0;\r
-            if (buffer_handle->file_recv_stat.file_type == 1)\r
-            {\r
-                buffer_handle->file_recv_stat.file = fopen("/update/update.fwpkg","w+");\r
-                printf("create file /update/update.fwpkg %X\n",buffer_handle->file_recv_stat.file);\r
+             cancel_recv_file();\r
+            uint8_t replydata= 0;\r
+            ble_reply_msgarr(6,0x0B,&replydata,1);\r
+        }\r
 \r
-            }\r
-            else if (buffer_handle->file_recv_stat.file_type == 2)\r
-            {\r
-                char musicpath[64]={0};\r
-                get_music_path(musicpath,64);\r
-                //"/user/userdata/music"\r
-                char filepath[256]={0};\r
-                create_mp3_name(filepath,musicpath,buffer_handle->file_recv_stat.file_name);\r
+    }\r
+    else if(header->cmdid==0x02)\r
+    {\r
 \r
-                buffer_handle->file_recv_stat.file = fopen(filepath,"w+");\r
-                printf("filepath %s\r\n",filepath);\r
-            }\r
-            else\r
+        uint32_t package_id=header->package_index;\r
+        printf("package_id: %d \r\n",package_id);\r
+        if(Check_CRC(data_,datalen,crcvalue))\r
+        {\r
+        \r
+            if(package_id==0)\r
+            {\r
+            last_package_id=package_id;\r
+            if((buffer_handle->file_recv_stat.recv_file_stat <= 0) && buffer_handle->file_recv_stat.file == NULL )\r
             {\r
-                char filepath[128]={0};\r
-                if (get_file_recv_file_path(buffer_handle->file_recv_stat.file_name,strlen(buffer_handle->file_recv_stat.file_name),filepath,sizeof(filepath)) == ERRCODE_SUCC)\r
+                buffer_handle->file_recv_stat.lrcvalue = 0;\r
+                if (buffer_handle->file_recv_stat.file_type == 1)\r
                 {\r
+                    buffer_handle->file_recv_stat.file = fopen("/update/update.fwpkg","w+");\r
+                    printf("create file /update/update.fwpkg %X\n",buffer_handle->file_recv_stat.file);\r
+\r
+                }\r
+                else if (buffer_handle->file_recv_stat.file_type == 2)\r
+                {\r
+                    char musicpath[64]={0};\r
+                    get_music_path(musicpath,64);\r
+                    //"/user/userdata/music"\r
+                    char filepath[256]={0};\r
+                    create_mp3_name(filepath,musicpath,buffer_handle->file_recv_stat.file_name);\r
+\r
                     buffer_handle->file_recv_stat.file = fopen(filepath,"w+");\r
-                    printf("create file %s %X\n",filepath,buffer_handle->file_recv_stat.file);\r
+                    printf("filepath %s\r\n",filepath);\r
+                }\r
+                else\r
+                {\r
+                    char filepath[128]={0};\r
+                    if (get_file_recv_file_path(buffer_handle->file_recv_stat.file_name,strlen(buffer_handle->file_recv_stat.file_name),filepath,sizeof(filepath)) == ERRCODE_SUCC)\r
+                    {\r
+                        buffer_handle->file_recv_stat.file = fopen(filepath,"w+");\r
+                        printf("create file %s %X\n",filepath,buffer_handle->file_recv_stat.file);\r
+                    }else{\r
+                        printf("create file %s error %X\n",buffer_handle->file_recv_stat.file_name,buffer_handle->file_recv_stat.file);\r
+                    }            \r
+                }\r
+\r
+\r
+\r
+                if (buffer_handle->file_recv_stat.file == NULL)\r
+                {\r
+                    printf("6185 buffer_handle->file_recv_stat.file  \n");\r
+                    return ERRCODE_FAIL;\r
+                }\r
+                size_t writtensize = fwrite(data_,1,datalen,buffer_handle->file_recv_stat.file);\r
+                if(writtensize == datalen)\r
+                {\r
+                    timer_flie_flag=10;\r
+\r
+                    buffer_handle->file_recv_stat.lrcvalue = calculate_lrc(data_,datalen,buffer_handle->file_recv_stat.lrcvalue);\r
+                            buffer_handle->file_recv_stat.received_size += datalen;\r
+                    printf("handle_recv_file received_size %d\n",buffer_handle->file_recv_stat.received_size);\r
+                    OTA_FILE_value= ((float) buffer_handle->file_recv_stat.received_size / (float)buffer_handle->file_recv_stat.file_size) *100;\r
+\r
+\r
                 }else{\r
-                    printf("create file %s error %X\n",buffer_handle->file_recv_stat.file_name,buffer_handle->file_recv_stat.file);\r
-                }            \r
-            }\r
+                    printf("handle_recv_file write file failed! ret %d != %d\n",writtensize,datalen);\r
+                    return ERRCODE_FAIL;\r
+                }\r
 \r
 \r
+                buffer_handle->file_recv_stat.recv_file_stat = 1;\r
+                ////////////////创建文件传输超时定时器//////////////////\r
+                uint32_t tick;\r
+                osStatus_t retTimer;\r
+                if(BR_TRANSFER_timer!=NULL)\r
+                {\r
+                    osTimerDelete(BR_TRANSFER_timer);\r
+                    BR_TRANSFER_timer = NULL;\r
+                }\r
+                timer_flie_type=buffer_handle->file_recv_stat.file_type;\r
+                ble_read_timer_p=buffer_handle;\r
+                timer_flie_flag=10;\r
 \r
+                BR_TRANSFER_timer = osTimerNew((osTimerFunc_t)ble_transfer_Timer_CallBack, osTimerPeriodic, NULL, NULL);\r
+                tick =1000;// osMs2Tick(1000);\r
+                retTimer = osTimerStart(BR_TRANSFER_timer, tick);\r
+                if (retTimer != osOK && BR_TRANSFER_timer != NULL) {\r
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);\r
+                    osTimerDelete(BR_TRANSFER_timer);\r
+                    BR_TRANSFER_timer = NULL;\r
+                    return ERRCODE_FAIL;\r
+                }\r
+            }\r
+            ///////////////////////////////////////////////////////////\r
+        }\r
+        else if ((last_package_id+1)==package_id)\r
+        {\r
+            last_package_id=package_id;\r
             if (buffer_handle->file_recv_stat.file == NULL)\r
             {\r
-                printf("6185 buffer_handle->file_recv_stat.file  \n");\r
+                printf("6194 buffer_handle->file_recv_stat.file  \n");\r
                 return ERRCODE_FAIL;\r
             }\r
-            size_t writtensize = fwrite(data,1,datalen,buffer_handle->file_recv_stat.file);\r
+            //写入文件\r
+            size_t writtensize = fwrite(data_,1,datalen,buffer_handle->file_recv_stat.file);\r
             if(writtensize == datalen)\r
             {\r
                 timer_flie_flag=10;\r
 \r
-                buffer_handle->file_recv_stat.lrcvalue = calculate_lrc(data,datalen,buffer_handle->file_recv_stat.lrcvalue);\r
+                buffer_handle->file_recv_stat.lrcvalue = calculate_lrc(data_,datalen,buffer_handle->file_recv_stat.lrcvalue);\r
                         buffer_handle->file_recv_stat.received_size += datalen;\r
                 printf("handle_recv_file received_size %d\n",buffer_handle->file_recv_stat.received_size);\r
+\r
                 OTA_FILE_value= ((float) buffer_handle->file_recv_stat.received_size / (float)buffer_handle->file_recv_stat.file_size) *100;\r
 \r
 \r
@@ -6855,102 +6924,53 @@ errcode_t decode_ota_data(ble_read_data *buffer_handle,uint8_t *data,uint16_t da
                 return ERRCODE_FAIL;\r
             }\r
 \r
-\r
-            buffer_handle->file_recv_stat.recv_file_stat = 1;\r
-            ////////////////创建文件传输超时定时器//////////////////\r
-            uint32_t tick;\r
-            osStatus_t retTimer;\r
-            if(BR_TRANSFER_timer!=NULL)\r
+        //检查文件是否写完\r
+            if(buffer_handle->file_recv_stat.file_size == buffer_handle->file_recv_stat.received_size)\r
             {\r
-                osTimerDelete(BR_TRANSFER_timer);\r
-                BR_TRANSFER_timer = NULL;\r
-            }\r
-            timer_flie_type=buffer_handle->file_recv_stat.file_type;\r
-            ble_read_timer_p=buffer_handle;\r
-            timer_flie_flag=10;\r
-\r
-            BR_TRANSFER_timer = osTimerNew((osTimerFunc_t)ble_transfer_Timer_CallBack, osTimerPeriodic, NULL, NULL);\r
-            tick =1000;// osMs2Tick(1000);\r
-            retTimer = osTimerStart(BR_TRANSFER_timer, tick);\r
-            if (retTimer != osOK && BR_TRANSFER_timer != NULL) {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);\r
-                osTimerDelete(BR_TRANSFER_timer);\r
-                BR_TRANSFER_timer = NULL;\r
-                return ERRCODE_FAIL;\r
-            }\r
-        }\r
-        ///////////////////////////////////////////////////////////\r
-    }\r
-    else if ((last_package_id+1)==package_id)\r
-    {\r
-        last_package_id=package_id;\r
-        if (buffer_handle->file_recv_stat.file == NULL)\r
-        {\r
-            printf("6194 buffer_handle->file_recv_stat.file  \n");\r
-            return ERRCODE_FAIL;\r
-        }\r
-        //写入文件\r
-        size_t writtensize = fwrite(data,1,datalen,buffer_handle->file_recv_stat.file);\r
-        if(writtensize == datalen)\r
-        {\r
-            timer_flie_flag=10;\r
-\r
-            buffer_handle->file_recv_stat.lrcvalue = calculate_lrc(data,datalen,buffer_handle->file_recv_stat.lrcvalue);\r
-                    buffer_handle->file_recv_stat.received_size += datalen;\r
-            printf("handle_recv_file received_size %d\n",buffer_handle->file_recv_stat.received_size);\r
-            OTA_FILE_value= ((float) buffer_handle->file_recv_stat.received_size / (float)buffer_handle->file_recv_stat.file_size) *100;\r
+                if (buffer_handle->file_recv_stat.file!=NULL)\r
+                {\r
+                    fclose(buffer_handle->file_recv_stat.file);\r
+                    buffer_handle->file_recv_stat.file = NULL;\r
+                }\r
+                if (buffer_handle->file_recv_stat.file_name != NULL)\r
+                {\r
+                    free(buffer_handle->file_recv_stat.file_name);\r
+                    buffer_handle->file_recv_stat.file_name=NULL;\r
+                }\r
+                buffer_handle->file_recv_stat.recv_file_stat = 2;\r
+                buffer_handle->receive_file_flag = 0;\r
+                printf("handle_recv_file received success \n");\r
 \r
+                if(BR_TRANSFER_timer)\r
+                {\r
+                    osTimerStop(BR_TRANSFER_timer);\r
+                    osTimerDelete(BR_TRANSFER_timer);\r
+                    BR_TRANSFER_timer = NULL;\r
+                }\r
 \r
-        }else{\r
-            printf("handle_recv_file write file failed! ret %d != %d\n",writtensize,datalen);\r
-            return ERRCODE_FAIL;\r
-        }\r
+                ble_reply_cmd(OTA_FILE_SUCC_CMD,1);//接收成功\r
+                }\r
 \r
-    //检查文件是否写完\r
-        if(buffer_handle->file_recv_stat.file_size == buffer_handle->file_recv_stat.received_size)\r
-        {\r
-            if (buffer_handle->file_recv_stat.file!=NULL)\r
-            {\r
-                fclose(buffer_handle->file_recv_stat.file);\r
-                buffer_handle->file_recv_stat.file = NULL;\r
             }\r
-            if (buffer_handle->file_recv_stat.file_name != NULL)\r
+            else if (last_package_id==package_id)\r
             {\r
-                free(buffer_handle->file_recv_stat.file_name);\r
-                buffer_handle->file_recv_stat.file_name=NULL;\r
+                uint32_t replydata=0xffffffff;\r
+                printf("包重复\r\n");\r
+                //ble_reply_msgarr(6,4,&replydata,4);\r
             }\r
-            buffer_handle->file_recv_stat.recv_file_stat = 2;\r
-            buffer_handle->receive_file_flag = 0;\r
-            printf("handle_recv_file received success \n");\r
-\r
-            if(BR_TRANSFER_timer)\r
+            else if (last_package_id!=package_id)\r
             {\r
-                osTimerStop(BR_TRANSFER_timer);\r
-                osTimerDelete(BR_TRANSFER_timer);\r
-                BR_TRANSFER_timer = NULL;\r
+                uint32_t replydata= last_package_id+1;\r
+                ble_reply_msgarr(6,4,&replydata,4);\r
             }\r
-\r
-            ble_reply_cmd(OTA_FILE_SUCC_CMD,1);//接收成功\r
-            }\r
-\r
-        }\r
-        else if (last_package_id==package_id)\r
-        {\r
-            uint32_t replydata=0xffffffff;\r
-            printf("包重复\r\n");\r
-            //ble_reply_msgarr(6,4,&replydata,4);\r
+            return ERRCODE_SUCC;\r
         }\r
-        else if (last_package_id!=package_id)\r
+        else\r
         {\r
-            uint32_t replydata= last_package_id+1;\r
-            ble_reply_msgarr(6,4,&replydata,4);\r
+            return ERRCODE_FAIL;\r
         }\r
-        return ERRCODE_SUCC;\r
-    }\r
-    else\r
-    {\r
-         return ERRCODE_FAIL;\r
     }\r
+    return ERRCODE_FAIL;\r
 }\r
 \r
 \r
@@ -7466,7 +7486,9 @@ void decode_file_checksum_2AE6(ble_read_data *buffer_handle)
             {\r
                 case 1: //ota\r
                     do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_STARTOTA,NULL,0);\r
-                   \r
+\r
+                    ble_reply_cmd(FILE_SUCC_TRANSFER,1);\r
+\r
                     TRANSMIT_DATA=TRANS_OTA_SUCC;\r
                     CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
                     \r
@@ -7476,7 +7498,7 @@ void decode_file_checksum_2AE6(ble_read_data *buffer_handle)
                     TRANSMIT_DATA=TRANS_MP3_SUCC;\r
                     CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
                     \r
-                    ble_reply_cmd(DIAL_INSTALL_REPY_CMD,1);\r
+                    ble_reply_cmd(FILE_SUCC_TRANSFER,1);\r
                     ble_mp3_list_update();\r
 \r
                     break;\r
@@ -7491,7 +7513,7 @@ void decode_file_checksum_2AE6(ble_read_data *buffer_handle)
                             TRANSMIT_DATA= TRANS_DIAL_SUCC;\r
                             CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
                         //0504\r
-                            ble_reply_cmd(DIAL_INSTALL_REPY_CMD,1);\r
+                            ble_reply_cmd(DIAL_SUCC_INSTALL,1);\r
                         }\r
                         \r
 \r
@@ -7504,7 +7526,7 @@ void decode_file_checksum_2AE6(ble_read_data *buffer_handle)
                         TRANSMIT_DATA= TRANS_DIAL_FAIL;\r
                         CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
 \r
-                        ble_reply_cmd(DIAL_INSTALL_REPY_CMD,0);\r
+                        ble_reply_cmd(DIAL_SUCC_INSTALL,0);\r
 \r
                     }\r
                     break;\r
@@ -7907,16 +7929,6 @@ errcode_t cancel_recv_file(void)
         osTimerDelete(BR_TRANSFER_timer);\r
         BR_TRANSFER_timer = NULL;\r
     }\r
-\r
-    // if(timer_flie_type==1)\r
-    // {\r
-    //     TRANSMIT_DATA=TRANS_OTA_FAIL;\r
-    // }\r
-    // else if (timer_flie_type==3)\r
-    // {\r
-    //     TRANSMIT_DATA=TRANS_DIAL_FAIL;\r
-    // }\r
-    // else\r
     {\r
         TRANSMIT_DATA=TRANS_FREE;\r
     }\r
@@ -8504,8 +8516,8 @@ void cancel_AI_cur_chat_(void)
     {\r
         printf("取消当前AI对话\r\n");\r
         uint8_t data=1;\r
-        ble_data_type type_={0x05,0x07,data_len,1,1};\r
-        send_big_data(type_,(char *)&data,data_len);\r
+        ble_data_type type_={0x05,0x07,1,1,1};\r
+        send_big_data(type_,(char *)&data,1);\r
         AI_is_end_state=0;\r
         \r
     }\r
index 941a103..12066d9 100644 (file)
@@ -846,10 +846,14 @@ void reply_APP_OpenSportModeCmd(bool falg);
 
 #define OTA_FILE_FAIL_CMD 0x0604
 ///////////// 
-#define DIAL_COLLECT_FILE_CMD 0x0605
-#define DIAL_SINGEL_FILE_CMD 0x0606 
-#define MP3_FILE_CMD 0x0607
+#define DIAL_COLLECT_FILE_CMD   0x0605
+#define DIAL_SINGEL_FILE_CMD    0x0606 
+#define MP3_FILE_CMD                  0x0607
 #define FILE_CHECKSUM_RECV_CMD_ZHIHUI 0x0608
+#define DIAL_SUCC_INSTALL       0x0609
+#define FILE_SUCC_TRANSFER      0x060A
+#define FILE_CANCEL_TRANSFER    0x060B
+
 #ifdef __cplusplus
 }
 #endif
index ac462e6..40369d3 100644 (file)
@@ -113,8 +113,8 @@ static uint8_t scan_data[BLE_SCAN_DATA_LENTH] = {0};
 uint8_t phone_mac_data[6]={0};\r
 \r
 #define ble_add_max_num 10\r
-static bd_addr_t phone_addr[ble_add_max_num];\r
-static uint16_t ble_conn_id[ble_add_max_num];\r
+static bd_addr_t phone_addr[ble_add_max_num]={0};\r
+static uint16_t ble_conn_id[ble_add_max_num]={0};\r
 \r
 \r
 bd_addr_t disconect_addr;//断开连接地址不需要反序\r
@@ -393,10 +393,6 @@ void svr_ble_adv_start_param(void)
     gap_ble_adv_params_t adv_para;\r
     memset_s(&adv_para, sizeof(gap_ble_adv_params_t), 0, sizeof(gap_ble_adv_params_t));\r
 \r
-    // adv_para.min_interval = 0x30;\r
-    // adv_para.max_interval = 0x60;\r
-    // adv_para.min_interval = 140 * 32;\r
-    // adv_para.max_interval = 160 * 32;\r
     adv_para.min_interval = 0x640;\r
     adv_para.max_interval = 0x640;\r
     adv_para.adv_type = GAP_BLE_ADV_CONN_SCAN_UNDIR;\r
@@ -428,7 +424,10 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
 \r
         clean_phone_info(conn_id);\r
 \r
-        if(conn_id==g_ble_conn_id)\r
+        //如果ble连接全部断连,则需要重新开启广播\r
+        //可能因ble连接不够稳定,快速断开ble连接,无法将连接判定为app连接导致断连的时候没有正确重新开启广播\r
+        \r
+        if(conn_id==g_ble_conn_id || !get_ble_connect())\r
         {\r
             free_ble_data(); \r
                 \r
@@ -444,25 +443,9 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
                 ble_ancs_client_clear(conn_id);\r
             }\r
 \r
-        }\r
-       \r
-        //如果ble连接全部断连,则需要重新开启广播\r
-        //可能因ble连接不够稳定,快速断开ble连接,无法将连接判定为app连接导致断连的时候没有正确重新开启广播\r
-        if(!get_ble_connect())\r
-        {\r
             svr_ble_adv_start();\r
-            Bleconnect = GAP_BLE_STATE_DISCONNECTED;//蓝牙已断开\r
-            ble_disconnect_ok();\r
-\r
-            free_ble_data(); \r
-\r
-            if(get_ble_pair())\r
-            {\r
-                ble_ancs_client_clear(conn_id);\r
-            }\r
         }\r
-\r
-        if(ble_is_Alipay_bind()==true)\r
+        else if (ble_is_Alipay_bind()==true)\r
         {\r
             //如果当前页面处于支付宝界面,则重新开广播\r
             svr_ble_adv_start();\r
@@ -510,10 +493,10 @@ void uapi_ble_connect_param_update(uint16_t data)
 {\r
     gap_conn_param_update_t conn_param = { 0 };\r
     conn_param.conn_handle = g_ble_conn_id;    /* param 0: conn_handle */\r
-    conn_param.interval_min =data;    /* param 1: interval_min 10ms */\r
+    conn_param.interval_min =data;    /* param 1: interval_min 1.25ms */\r
     conn_param.interval_max = data;    /* param 2: interval_max */\r
     conn_param.slave_latency = 6;    /* param 3: slave_latency */\r
-    conn_param.timeout_multiplier = 700;    /* param 4: timeout_multiplier */\r
+    conn_param.timeout_multiplier = 700;    /* param 4: timeout_multiplier 10ms */\r
     int ret = gap_ble_connect_param_update(&conn_param);\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"gap ble update connection parameters %d ret: %X\n",data,ret);   \r
 }\r
@@ -566,7 +549,7 @@ void svr_pair_result_cbt_cb(uint16_t conn_id, const bd_addr_t *addr, errcode_t s
     }\r
 }\r
     // uint16_t interval;          /*!< @if Eng interval\r
-    //                                  @else   链路调度间隔,单位slot @endif */\r
+    //                                  @else   链路调度间隔,单位slot 1.25ms@endif */\r
     // uint16_t latency;           /*!< @if Eng latency\r
     //                                  @else   延迟周期,单位slot @endif */\r
     // uint16_t timeout;           /*!< @if Eng timeout\r
@@ -577,7 +560,10 @@ static uint16_t ble_interval=50;
 \r
 uint16_t get_ble_interval(void)\r
 {\r
-    return ble_interval;\r
+    float temp_data =(float)ble_interval*1.25f;\r
+\r
+    return (uint16_t)temp_data;\r
+   \r
 }\r
 \r
 void srv_gap_ble_connect_param_update_callback(uint16_t conn_id, errcode_t status,\r
@@ -1937,12 +1923,35 @@ errcode_t uapi_blesrv_service_init(void)
     return ERRCODE_SUCC;\r
 }\r
 \r
+\r
 void send_pair_succ(bd_addr_t *addr)\r
 {\r
     sendParieSuccess(1,addr);\r
 }\r
 \r
 \r
+void Check_ble_adv_status(void)\r
+{\r
+\r
+    if(get_ble_connect())\r
+    {\r
+        return;\r
+    }\r
+    else\r
+    {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"get_ble_adv_status %s \n", get_ble_adv_status()?"true":"fales");\r
+        if(get_ble_adv_status()==0)\r
+        {\r
+            if(AdverFlag)\r
+            {\r
+                svr_ble_adv_start_param(); \r
+            }\r
+            \r
+        }\r
+    }\r
+    return;\r
+}\r
+\r
 \r
 #ifdef __cplusplus\r
 }\r
index 2b3705b..1a0f429 100644 (file)
@@ -91,6 +91,8 @@ errcode_t svr_ble_bt_gatts_noyify_zhihui(uint8_t *data, uint16_t data_len);
 uint16_t get_ble_interval(void);
 
 
+void Check_ble_adv_status(void);
+
 
 #ifdef __cplusplus
 }
index c312ca5..8282fde 100644 (file)
@@ -267,6 +267,8 @@ static void custom_cmd_service_check_task(void const *arg)
         case CUSTOM_CMD_MSG_DOWNLOAD_RES:
             repair_file_start();
             break;
+        case CUSTOM_CMD_MSG_BLE_ADV_CHECK:
+            Check_ble_adv_status();
         default:
             PRINT("Unknown CUSTOM_CMD_MSG cmd 0x%02X \r\n", mail.cmd);
             break;
index 67a51a2..5d24813 100644 (file)
@@ -219,6 +219,9 @@ uint32_t uapi_calendar_store_date(void);
 #define CUSTOM_CMD_MSG_DOWNLOAD_RES 0x0E
 
 #define CUSTOM_CMD_MSG_TYPE_TOUCH_RESUME 0x0F
+
+#define CUSTOM_CMD_MSG_BLE_ADV_CHECK 0x10
+
 typedef enum {
     BR_HFP_CONNECT=1,
     BR_HFP_DISCONNECT,