ble 取消下载及血氧bug修复 547/target/5 554/1 554/head
authorhcj <1224667075@qq.com>
Fri, 19 Jul 2024 08:37:44 +0000 (16:37 +0800)
committerhcj <1224667075@qq.com>
Fri, 19 Jul 2024 08:37:44 +0000 (16:37 +0800)
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h
code/sdk/drivers/peripheral/config/include/ConfigModel.h

index 45f840c..e04eaa6 100644 (file)
@@ -1482,7 +1482,9 @@ void Set_heart_cmd(msg_get_heart_set_param_info_t *data)
     p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_REMIND,data->remind_on);
     if(data->remind_on)
     {
-        p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN,data->max_min);
+        printf("set_condigData_Int data->max_min %d\r\n",data->max_min);
+
+        p_ConfigModel->set_condigData_Bool(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN,data->max_min);
         p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE,data->heart);
     }
    
@@ -1495,7 +1497,8 @@ void Get_heart_cmd(msg_get_heart_set_param_info_t *data)
     
     data->frequence = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_DETECTED);
     data->remind_on = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_REMIND);
-    data->max_min= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN);
+    data->max_min= p_ConfigModel->get_configData_bool(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN);
+    printf("Get_heart_cmd data->max_min %d\r\n",data->max_min);
     data->heart = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE);
   
 }
index 660da7c..8a11c87 100644 (file)
@@ -575,8 +575,7 @@ void comfirmPaire(uint8_t flag)
         first_bond = 1;\r
         // printf("gap_ble_pair_remote_device 333333333 %x-%x-%x-%x-%x-%x\r\n",phone_addr.addr[0],phone_addr.addr[1],phone_addr.addr[2],phone_addr.addr[3],phone_addr.addr[4],phone_addr.addr[5]);\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
+        \r
         \r
         errcode_t code = gap_ble_pair_remote_device(&phone_addr);\r
         if(code!=ERRCODE_SUCC)\r
@@ -880,6 +879,16 @@ void cleanUnbindInfor(uint8_t flag)//和旧手机解绑清除配对信息
         uapi_reboot_device();\r
     }\r
 }\r
+static bool ctkd_flag_ble=false;\r
+\r
+void set_ctkd_flag(bool flag)\r
+{\r
+    ctkd_flag_ble=flag;\r
+}\r
+bool get_ctkd_flag(void)\r
+{\r
+    return true;//ctkd_flag_ble;\r
+}\r
 void sendBindInfor(uint8_t *data)\r
 {\r
     uint8_t value[19];\r
@@ -914,6 +923,13 @@ void sendBindInfor(uint8_t *data)
     if(save_mac[0] == 0 && save_mac[1] == 0 && save_mac[2] == 0 && save_mac[3] == 0 && save_mac[4] == 0 && save_mac[5] == 0)//只要手表本地存储没有mac地址就走连接流程重新绑定\r
     {\r
         bond = 0x01;//手表未和任何手机绑定过\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
+\r
         value[17] = bond;//\r
         value[18] = Calculate_CRC(value,18);\r
         sendBleData(value,19);\r
@@ -967,11 +983,14 @@ 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
                 printf("phone_addr:%02x-%02x-%02x-%02x-%02x-%02x type:%d ",phone_addr.addr[0],phone_addr.addr[1],phone_addr.addr[2],\r
                 phone_addr.addr[3],phone_addr.addr[4],phone_addr.addr[5],phone_addr.type);\r
 \r
-                ret = gap_ble_set_ctkd_enable(true);\r
-                printf("gap_ble_set_ctkd_enable ret = %x ", ret);\r
 \r
                 ret = gap_ble_pair_remote_device(&phone_addr);\r
                 printf("gap_ble_pair_remote_device ret:%x ",ret);\r
@@ -1687,10 +1706,12 @@ void GetHrSetParamCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData
        if(Check_CRC(data,len,crcvalue))\r
        {\r
         msg_get_heart_set_param_info_t set_data;\r
+\r
         set_data.frequence = data[0];\r
         set_data.remind_on=data[1];\r
         set_data.max_min=data[2];\r
         set_data.heart=data[3];\r
+\r
         Set_heart_cmd(&set_data);\r
         sendBuf[17] = 1;\r
         sendBuf[18] = Calculate_CRC(sendBuf,18);\r
@@ -2930,8 +2951,8 @@ static void RemoveFileCmd(ble_read_data *buffer_handle,uint16_t cmd,uint8_t *dat
     {\r
         uint8_t file_type= data[0];//1 ota 2 MP3\r
 \r
-        TRANSMIT_DATA=TRANS_FREE;\r
-        CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
+        // TRANSMIT_DATA=TRANS_FREE;\r
+        // CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
 \r
         value[17] = 1; //\r
         value[18] = Calculate_CRC(value,18);\r
@@ -3516,6 +3537,9 @@ static void GetHrGetParamCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *to
         value[18] = heart_param.remind_on;//\r
         value[19] = heart_param.max_min;//\r
         value[20] = heart_param.heart;// \r
+        \r
+        printf("%d %d %d %d ",value[17],value[18],value[19],value[20]);\r
+\r
         value[21] = Calculate_CRC(value,21);\r
         sendBleData(value,22);\r
     }else\r
@@ -4942,7 +4966,7 @@ void Read_BIN_file_buf_send_bin_Data(uint8_t day,uint32_t pack_size,uint16_t id)
     if(data==NULL)\r
     {\r
         send_big_data(1,NULL,0,0,1,1,id,1);\r
-        sendbigDataBufState = false;//分包同步数据不允许打断\r
+        printf("Read_BIN_file_buf_send_bin_Data is NULL");\r
         return;\r
     }\r
 \r
@@ -6127,6 +6151,10 @@ errcode_t check_header(msg_header_t *header )
         return ERRCODE_FAIL;\r
     }\r
 }\r
+static uint8_t timer_flie_type=0;\r
+static uint32_t timer_flie_flag=0;\r
+ble_read_data* ble_read_timer_p=NULL;\r
+\r
 errcode_t cancel_recv_file(ble_read_data *buffer_handle)\r
 {\r
 \r
@@ -6147,14 +6175,17 @@ errcode_t cancel_recv_file(ble_read_data *buffer_handle)
         }\r
         buffer_handle->file_recv_stat.recv_file_stat = -1;\r
 \r
+        if(BR_TRANSFER_timer)\r
+        {\r
+           timer_flie_flag=1;\r
+        }\r
+\r
         ble_reply_cmd(FILE_RECV_REPLY_STAT_CMD,0);//接收失败\r
     }\r
     return ERRCODE_SUCC;\r
 }\r
 \r
-static uint8_t timer_flie_type=0;\r
-static uint32_t timer_flie_flag=0;\r
-ble_read_data* ble_read_timer_p=NULL;\r
+\r
 static void  ble_transfer_Timer_CallBack(int data)\r
 {\r
     timer_flie_flag--;\r
@@ -6173,6 +6204,9 @@ static void  ble_transfer_Timer_CallBack(int data)
         {\r
             TRANSMIT_DATA=TRANS_FREE;\r
         }\r
+        \r
+        ble_read_timer_p->receive_file_flag = 0;\r
+\r
         if (ble_read_timer_p->file_recv_stat.recv_file_stat != 2) //已经下载完毕的文件,没有必要cancel了。\r
         {\r
 \r
@@ -6188,9 +6222,12 @@ static void  ble_transfer_Timer_CallBack(int data)
             }\r
             ble_read_timer_p->file_recv_stat.recv_file_stat = -1;\r
 \r
+            ble_read_timer_p=NULL;\r
+\r
             ble_reply_cmd(FILE_RECV_REPLY_STAT_CMD,0);//接收失败\r
         }\r
         CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
+\r
         if(BR_TRANSFER_timer)\r
         {\r
             osTimerStop(BR_TRANSFER_timer);\r
index 8b9097e..c97a4a6 100644 (file)
@@ -784,6 +784,8 @@ void send_AI_is_ready(uint8_t type);
 
 void GetCurDataCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldata,uint8_t crcvalue);
 
+bool get_ctkd_flag(void);
+
 #ifdef __cplusplus
 }
 #endif
index 48c2c02..7d71a52 100644 (file)
@@ -83,8 +83,8 @@ namespace OHOS
             //心率相关
             CONFIGMODEL_ITEM_HEARTRATE_DETECTED,//心率周期频率  0(关闭) 1 5 10
             CONFIGMODEL_ITEM_HEARTRATE_REMIND,//提醒开关
-            CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN,//高于低于
             CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE,//阈值
+            CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN,//高于低于
             //血氧相关
             CONFIGMODEL_ITEM_OXYGEN_DETECTED,//频率
             CONFIGMODEL_ITEM_OXYGEN_REMIND,//开关
@@ -318,13 +318,18 @@ namespace OHOS
             {ConfigDataType::DATATYPE_INT,     "traningfreq",              "10"     },// CONFIGMODEL_ITEM_TRANING_FREQ //训练实时数据上传频率//单位秒
             {ConfigDataType::DATATYPE_INT,    "traningauto",              "0"      },//CONFIGMODEL_ITEM_TRANING_AUTO,//开启关闭自动获取实时数据
             {ConfigDataType::DATATYPE_INT,     "traningheart",             "190"  },//CONFIGMODEL_ITEM_TRAINING_HEART_MAX//训练最高心率
+             //心率相关
             {ConfigDataType::DATATYPE_INT,     "heartrate_freq",        "0"     },// CONFIGMODEL_ITEM_HEARTRATE_DETECTED//心率周期检测频率
-            {ConfigDataType::DATATYPE_INT,     "heartrate_remind",             "0"     },// CONFIGMODEL_ITEM_HEARTRATE_REMIND//提醒开关
-            {ConfigDataType::DATATYPE_INT,     "MAX_MIN",               "0"     },// CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN//最大值还是最小值
-            {ConfigDataType::DATATYPE_INT,     "heartrate_threshold_value",             "0"     },// CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE//
+            {ConfigDataType::DATATYPE_INT,     "heartrate_remind",             "0"},// CONFIGMODEL_ITEM_HEARTRATE_REMIND//提醒开关
+
+            {ConfigDataType::DATATYPE_INT,     "heartrate_threshold_value",  "0"},// CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE//
+            {ConfigDataType::DATATYPE_BOOL,     "heart_max_min",               "0"},// CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN//最大值还是最小值
+  
+
             {ConfigDataType::DATATYPE_INT,     "oxygen_freq",        "0"     },// CONFIGMODEL_ITEM_OXYGEN_DETECTED,//频率
             {ConfigDataType::DATATYPE_INT,     "oxygen_remind",        "0"     },//CONFIGMODEL_ITEM_OXYGEN_REMIND,//开关
             {ConfigDataType::DATATYPE_INT,     "oxygen_threshold_value",        "0"     },//CONFIGMODEL_ITEM_OXYGEN_THRESHOLD_VALUE,//阈值
+
             {ConfigDataType::DATATYPE_INT,    "notify",                   "0"     },// CONFIGMODEL_ITEM_NOTIFY//消息通知开关
             {ConfigDataType::DATATYPE_INT,     "quick_auxil_parameter",      "0"     },// CONFIGMODEL_ITEM_QUICK_AUXILIARY_PARAMETERS//快捷辅助功能参数
             {ConfigDataType::DATATYPE_INT,     "drink",                    "0" },// CONFIGMODEL_ITEM_DRINK,//开关 0 关闭 1开始 2间隔提醒