Merge #1079 into sdk602patch0626 from refs/changes/1079/head 1080/target/1 1081/target/1
author袁清梦 <3449750381@qq.com>
Wed, 2 Oct 2024 09:09:17 +0000 (09:09 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Wed, 2 Oct 2024 09:09:17 +0000 (09:09 +0000)
Code review from 袁清梦

* refs/changes/1079/head: (7 commits squashed)

  - 语言助手:增加subview的右滑退出

  - 心率血氧:关机存储修改为测量完存储

  - 心率血氧:同步关闭函数修改

  - 系统:增加读写锁状态(由各模块存储决定状态)

  - 系统:修改Slice栈;保证里面保留默认SliceId

  - 血氧:增加读写锁状态

  - 心率:增加读写锁状态

Signed-off-by: Caisking <3449750381@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1079
code/sdk/application/wearable/fd230app/nativeui/assistant/src/AssistantBleView.cpp
code/sdk/application/wearable/fd230app/nativeui/assistant/src/AssistantHfpView.cpp
code/sdk/application/wearable/fd230app/nativeui/assistant/src/AssistantPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/assistant/src/AssistantStartFailedView.cpp
code/sdk/application/wearable/fd230app/nativeui/heart_blood/health_service/health_service.cpp
code/sdk/application/wearable/nativeabilityfwk/include/Ability.h
code/sdk/drivers/peripheral/utils/custom_runtime.c
code/sdk/drivers/peripheral/utils/custom_runtime.h
code/sdk/drivers/peripheral/utils/custom_utils.c

index 7deda15..c901584 100644 (file)
@@ -225,6 +225,15 @@ UIScrollView *AssistantBleView::CreateAssistantBleView(void) {
   scrollView->SetThrowDrag(true);
   scrollView->SetMaxScrollDistance(1000);
   scrollView->SetDirection(UIScrollView::VERTICAL);
+  // 设置拖拽监听器
+  UIView::OnDragListener *dragListener =
+      static_cast<UIView::OnDragListener *>(AssistantPresenter::GetInstance());
+  if (!dragListener) {
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,
+                  "AssistantPresenter::获取实例失败!");
+    return nullptr; // 获取失败,返回空指针
+  }
+  scrollView->SetOnDragListener(dragListener);
 
   /* --------------------------------- 获取蓝牙名称*
    * --------------------------------- */
index ec8558a..0973f07 100644 (file)
@@ -225,6 +225,7 @@ UIScrollView *AssistantHfpView::CreateAssistantHfpView(void) {
   scrollView->SetViewId(ASSISTANT_HFP_BLE);
   scrollView->SetReboundSize(35);
   scrollView->SetDirection(UIScrollView::VERTICAL);
+  //设置页面点击监听器
   UIView::OnClickListener *buttonClick =
       static_cast<UIView::OnClickListener *>(AssistantPresenter::GetInstance());
   if (buttonClick == nullptr) {
@@ -232,6 +233,15 @@ UIScrollView *AssistantHfpView::CreateAssistantHfpView(void) {
     return nullptr;
   }
   scrollView->SetOnClickListener(buttonClick);
+  // 设置拖拽监听器
+  UIView::OnDragListener *dragListener =
+      static_cast<UIView::OnDragListener *>(AssistantPresenter::GetInstance());
+  if (!dragListener) {
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,
+                  "AssistantPresenter::获取实例失败!");
+    return nullptr; // 获取失败,返回空指针
+  }
+  scrollView->SetOnDragListener(dragListener);
 
   if (!CreateAssistantHfpViewLabel() || !CreateAssistantHfpViewImage() ||
       !CreateAssistantHfpViewButton()) {
index 00cc441..7860d80 100644 (file)
@@ -53,11 +53,25 @@ bool AssistantPresenter::OnDrag(UIView &view, const DragEvent &event) {
     if (&view == p_AssistantView->GetAssistantScrollView(ASSISTANT_MAIN_VIEW)) {
       NativeAbility::GetInstance().Back();
     }
+    /*在其他界面返回主界面*/
     if (&view ==
         p_AssistantView->GetAssistantScrollView(ASSISTANT_ANSWER_VIEW)) {
       p_AssistantView->ChangeView(ASSISTANT_ANSWER_VIEW, ASSISTANT_MAIN_VIEW);
     }
-    /*在其他界面返回主界面*/
+    if (&view ==
+        p_AssistantView->GetAssistantScrollView(ASSISTANT_HFP_FAIL_VIEW)) {
+      p_AssistantView->ChangeView(ASSISTANT_HFP_FAIL_VIEW, ASSISTANT_MAIN_VIEW);
+    }
+    if (&view ==
+        p_AssistantView->GetAssistantScrollView(ASSISTANT_BLE_NOTE_VIEW)) {
+      p_AssistantView->ChangeView(ASSISTANT_BLE_NOTE_VIEW,
+                                  ASSISTANT_HFP_FAIL_VIEW);
+    }
+    if (&view ==
+        p_AssistantView->GetAssistantScrollView(ASSISTANT_START_FAILED_VIEW)) {
+      p_AssistantView->ChangeView(ASSISTANT_START_FAILED_VIEW,
+                                  ASSISTANT_MAIN_VIEW);
+    }
   }
   return true;
 }
index 0c57528..bf2b3ce 100644 (file)
@@ -52,6 +52,16 @@ UIScrollView *AssistantStartFailedView::CreateAssistantStartFailedView(void) {
     scrollView->SetScrollBlankSize(50);
     scrollView->SetReboundSize(35);
     scrollView->SetDirection(UIScrollView::VERTICAL);
+    // 设置拖拽监听器
+    UIView::OnDragListener *dragListener =
+        static_cast<UIView::OnDragListener *>(
+            AssistantPresenter::GetInstance());
+    if (!dragListener) {
+      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,
+                    "AssistantPresenter::获取实例失败!");
+      return nullptr; // 获取失败,返回空指针
+    }
+    scrollView->SetOnDragListener(dragListener);
     /* ----------------------- ImageView ---------------------- */
     ImageView = new UIImageView();
     if (ImageView == nullptr) {
index 4067f52..3024db3 100644 (file)
@@ -6,16 +6,21 @@
 #include <ctime>
 #include "kv_store.h"
 #include "custom_utils.h"
+#include "custom_runtime.h"
 #include <fstream>
 #include <sstream>
 #include <string>
 #include <cstdint>
 #include "heartrate/include/HeartModel.h"
 #include "bloodoxygen/include/BloodOxygenModel.h"
+
 namespace OHOS
 {
     extern "C"
     {
+        void uapi_dev_runtime_set_bloodoxygen_storage_status(uint8_t status);
+        void uapi_dev_runtime_set_heartrate_storage_status(uint8_t status);
+
         void save_heart_data()
         {
             printf("save_heart_data\r\n");
@@ -275,134 +280,180 @@ namespace OHOS
         cJSON_Delete(heart_root);  
         return data;  
     }
+
     // 保存血氧数据
-    bool HealthService::UpdateHealthData(const BloodOxygenData &data)
-    {
-        // 判断文件夹是否存在
-        if (!CreateHealthFolder())
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreateHealthFolder file");
-            return false;
-        }
+    bool HealthService::UpdateHealthData(const BloodOxygenData &data)  
+    {  
+        // 配置血氧存储状态  
+        uapi_dev_runtime_set_bloodoxygen_storage_status(1);  
 
-        // 判断文件是否存在 不存在即创建 并打开以输出模式
-        std::ofstream outFile(BLOOD_JSON_PATH, std::ios::trunc);
-        if (!outFile.is_open())
-        {
-            // 文件创建失败
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to create or open JSON file for writing");
-            return false;
-        }
+        // 判断文件夹是否存在  
+        if (!CreateHealthFolder())  
+        {  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreateHealthFolder file");  
+            uapi_dev_runtime_set_bloodoxygen_storage_status(0); // 恢复状态  
+            return false;  
+        }  
 
-        // 创建一个 JSON 对象
-        cJSON *oxygen_root = cJSON_CreateObject();
-        if (oxygen_root == NULL)
-        {
-            outFile.close();
-            return false;
-        }
+        // 判断文件是否存在,不存在即创建并打开以输出模式  
+        std::ofstream outFile(BLOOD_JSON_PATH, std::ios::trunc);  
+        if (!outFile.is_open())  
+        {  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to create or open JSON file for writing");  
+            uapi_dev_runtime_set_bloodoxygen_storage_status(0); // 恢复状态  
+            return false;  
+        }  
 
-        cJSON_AddItemToObject(oxygen_root, "value", cJSON_CreateNumber(data.SPO2));
-        cJSON_AddItemToObject(oxygen_root, "timestamp", cJSON_CreateNumber(data.timestamp));
+        // 创建一个 JSON 对象  
+        cJSON *oxygen_root = cJSON_CreateObject();  
+        if (oxygen_root == NULL)  
+        {  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to create JSON object");  
+            outFile.close();  
+            uapi_dev_runtime_set_bloodoxygen_storage_status(0); // 恢复状态  
+            return false;  
+        }  
 
-        char *jsonData = cJSON_Print(oxygen_root);
-        if (jsonData == NULL)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to generate JSON data");
-            cJSON_free(oxygen_root);
-            outFile.close();
-            return false;
-        }
+        cJSON_AddItemToObject(oxygen_root, "value", cJSON_CreateNumber(data.SPO2));  
+        cJSON_AddItemToObject(oxygen_root, "timestamp", cJSON_CreateNumber(data.timestamp));  
 
-        // 写入 JSON 数据到文件
-        outFile << jsonData;
+        char *jsonData = cJSON_Print(oxygen_root);  
+        if (jsonData == NULL)  
+        {  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to generate JSON data");  
+            cJSON_Delete(oxygen_root); // 释放内存  
+            outFile.close();  
+            uapi_dev_runtime_set_bloodoxygen_storage_status(0); // 恢复状态  
+            return false;  
+        }  
 
-        cJSON_free(oxygen_root);
-        free(jsonData);
-        outFile.close();
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateHealthData SPO2 JSON is ok");
+        // 写入 JSON 数据到文件  
+        outFile << jsonData;  
 
-        /* 存储bin文件[协议使用] */
-        std::string binFilePath = GetBinFilePath(HEALTH_TYPE_OXYGEN);
-        FILE *fp = fopen(binFilePath.c_str(), "ab+");
-        if (fp == NULL)
-        {
-            return false;
-        }
+        // 释放资源  
+        cJSON_Delete(oxygen_root);  
+        free(jsonData);  
+        outFile.close();  
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateHealthData SPO2 JSON is ok");  
+
+        /* 存储bin文件[协议使用] */  
+        std::string binFilePath = GetBinFilePath(HEALTH_TYPE_OXYGEN);  
+        FILE *fp = fopen(binFilePath.c_str(), "ab+");  
+        if (fp == NULL)  
+        {  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to open binary file for writing");  
+            uapi_dev_runtime_set_bloodoxygen_storage_status(0); // 恢复状态  
+            return false;  
+        }  
 
-        fwrite(&data.timestamp, 4, 1, fp);
-        fwrite(&data.SPO2, 1, 1, fp);
+        // 写入数据  
+        if (fwrite(&data.timestamp, sizeof(data.timestamp), 1, fp) != 1 ||  
+            fwrite(&data.SPO2, sizeof(data.SPO2), 1, fp) != 1)  
+        {  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to write data to binary file");  
+            fclose(fp);  
+            uapi_dev_runtime_set_bloodoxygen_storage_status(0); // 恢复状态  
+            return false;  
+        }  
 
-        fclose(fp);
+        fclose(fp);  
 
-        return true;
+
+        uapi_dev_runtime_set_bloodoxygen_storage_status(0); // 恢复状态  
+        return true;  
     }
 
-    // 存储心率
-    bool HealthService::UpdateHealthData(const HeartRateData &data)
-    {
-        // 判断文件夹是否存在
-        if (!CreateHealthFolder())
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreateHealthFolder file");
-            return false;
-        }
+    //存储心率
+    bool HealthService::UpdateHealthData(const HeartRateData &data)  
+    {  
+        // 配置心率存储状态  
+        uapi_dev_runtime_set_heartrate_storage_status(1);  
 
-        // 判断文件是否存在 不存在即创建 并打开以输出模式
-        std::ofstream outFile(HEART_JSON_PATH, std::ios::trunc);
-        if (!outFile.is_open())
-        {
-            // 文件创建失败
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to create or open JSON file for writing");
-            return false;
-        }
+        // 判断文件夹是否存在  
+        if (!CreateHealthFolder())  
+        {  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreateHealthFolder file");  
+            uapi_dev_runtime_set_heartrate_storage_status(0); // 恢复状态  
+            return false;  
+        }  
 
-        // 创建一个 JSON 对象
-        cJSON *heart_root = cJSON_CreateObject();
-        if (heart_root == NULL)
-        {
-            outFile.close();
-            return false;
-        }
+        // 判断文件是否存在,不存在即创建并打开以输出模式  
+        std::ofstream outFile(HEART_JSON_PATH, std::ios::trunc);  
+        if (!outFile.is_open())  
+        {  
+            // 文件创建失败  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to create or open JSON file for writing");  
+            uapi_dev_runtime_set_heartrate_storage_status(0); // 恢复状态  
+            return false;  
+        }  
+
+        // 创建一个 JSON 对象  
+        cJSON *heart_root = cJSON_CreateObject();  
+        if (heart_root == NULL)  
+        {  
+            outFile.close();  
+            uapi_dev_runtime_set_heartrate_storage_status(0); // 恢复状态  
+            return false;  
+        }  
 
-        cJSON_AddItemToObject(heart_root, "value", cJSON_CreateNumber(data.Heart));
-        cJSON_AddItemToObject(heart_root, "timestamp", cJSON_CreateNumber(data.timestamp));
+        cJSON_AddItemToObject(heart_root, "value", cJSON_CreateNumber(data.Heart));  
+        cJSON_AddItemToObject(heart_root, "timestamp", cJSON_CreateNumber(data.timestamp));  
 
-        char *jsonData = cJSON_Print(heart_root);
-        if (jsonData == NULL)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to generate JSON data");
-            cJSON_free(heart_root);
-            outFile.close();
-            return false;
-        }
+        char *jsonData = cJSON_Print(heart_root);  
+        if (jsonData == NULL)  
+        {  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to generate JSON data");  
+            cJSON_Delete(heart_root); // 使用 cJSON_Delete 释放内存  
+            outFile.close();  
+            uapi_dev_runtime_set_heartrate_storage_status(0); // 恢复状态  
+        return false;  
+        }  
 
-        // 写入 JSON 数据到文件
-        outFile << jsonData;
+        // 写入 JSON 数据到文件  
+        outFile << jsonData;  
 
-        cJSON_free(heart_root);
-        free(jsonData);
-        outFile.close();
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateHealthData Heart JSON is ok");
+        // 释放资源  
+        cJSON_Delete(heart_root);  
+        free(jsonData);  
+        outFile.close();  
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateHealthData Heart JSON is ok");  
 
-        // 写入文件到当天历史数据
+        // 写入文件到当天历史数据  
         UpdateHourlyHeartRate(data.timestamp, data.Heart);
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateHourlyHeartRate is ok");
 
-        /* 存储bin文件[协议使用] */
-        std::string binFilePath = GetBinFilePath(HEALTH_TYPE_HEART);
-        FILE *fp = fopen(binFilePath.c_str(), "ab+");
-        if (fp == NULL)
-        {
-            return false;
-        }
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateHourlyHeartRate is ok");  
 
-        fwrite(&data.timestamp, 4, 1, fp);
-        fwrite(&data.Heart, 1, 1, fp);
+        if (!SaveDailyHeartRate()) // 进行心率历史数据文件存储  
+        {  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveDailyHeartRate failed");  
+            uapi_dev_runtime_set_heartrate_storage_status(0); // 恢复状态  
+            return false;  
+        }  
 
-        fclose(fp);
+        /* 存储 bin 文件 [协议使用] */  
+        std::string binFilePath = GetBinFilePath(HEALTH_TYPE_HEART);  
+        FILE *fp = fopen(binFilePath.c_str(), "ab+");  
+        if (fp == NULL)  
+        {  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to open binary file for writing");  
+            uapi_dev_runtime_set_heartrate_storage_status(0); // 恢复状态  
+            return false;  
+        }  
 
-        return true;
+        // 写入数据  
+        if (fwrite(&data.timestamp, sizeof(data.timestamp), 1, fp) != 1 ||  
+        fwrite(&data.Heart, sizeof(data.Heart), 1, fp) != 1)  
+        {  
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to write data to binary file");  
+        fclose(fp);  
+        uapi_dev_runtime_set_heartrate_storage_status(0); // 恢复状态  
+        return false;  
+        }  
+
+        fclose(fp);  
+
+        uapi_dev_runtime_set_heartrate_storage_status(0); // 恢复状态  
+        return true;  
     }
     // 清空健康数据
     bool HealthService::CleanHealthData()
index 56cea10..5db5bcd 100755 (executable)
@@ -92,11 +92,7 @@ public:
     /// @param priority 切换优先级
     bool Back(const TransitionType transitionId = TransitionType::TRANSITION_INVALID,
         const uint16_t priority = gSliceDefaultPriority) { 
-        /*
-        if (backStack_.empty()) {
-        backStack_.push(defaultSliceId_); // 将默认主界面的 ID 推入栈中
-        }
-        */
+         
         if (!backStack_.empty()) {
             uint16_t preSlice = backStack_.top();
             backStack_.pop();
@@ -105,7 +101,8 @@ public:
         }
         else
         {
-            // 当backStack为空时,退回到defaultSliceId_
+            backStack_.push(defaultSliceId_); // 将默认主界面的 ID 推入栈中
+            // 退回到defaultSliceId_
             ChangeSlice(defaultSliceId_, transitionId, priority);
             return false; // 返回false表示无前一个slice,退回到默认slice
         }
@@ -182,6 +179,9 @@ public:
         {
             backStack_.pop();
         }
+        if (backStack_.empty()) {
+        backStack_.push(defaultSliceId_); // 将默认主界面的 ID 推入栈中
+        }
     }
 
     /*打印栈中元素*/
index 914c784..b59b374 100644 (file)
@@ -1,5 +1,6 @@
 #include "custom_runtime.h"
 #include "chip_system_time.h"
+#include <stdint.h>
 
 
 
@@ -86,6 +87,12 @@ typedef struct
     uint8_t repair_download_status;//升级下载状态
     uint8_t hrs_passivity_status;//获取被动心率检测状态
     uint8_t mmc_status; //是否为指南针页面
+    //读写锁
+    uint8_t rwlock_status;//手表状态(存储)
+    uint8_t lock_flag_training;//训练
+    uint8_t lock_flag_heartrate;//心率
+    uint8_t lock_flag_blood;//血氧
+
 } runtime_status_t;
 
 
@@ -440,6 +447,62 @@ uint8_t uapi_dev_runtime_get_safemode_flag(void)
     return g_runtime.enter_safemode;
 }
 
+//读写锁状态
+void uapi_dev_runtime_set_rwlock_status(uint8_t status)
+{
+    // 不能有set
+    // g_runtime.rwlock_status = status;
+}
+uint8_t uapi_dev_runtime_get_rwlock_status(void)
+{
+    //读写状态取决与所有的模块存储状态
+    g_runtime.rwlock_status = 0;
+    if(g_runtime.lock_flag_training)
+    {
+        //运动存储
+        g_runtime.rwlock_status = 1;
+    }
+    if(g_runtime.lock_flag_heartrate)
+    {
+        //心率存储
+        g_runtime.rwlock_status = 1;
+    }
+    if(g_runtime.lock_flag_blood)
+    {
+        //血氧存储
+        g_runtime.rwlock_status = 1;
+    }
+    return g_runtime.rwlock_status;
+}
+//设置运动存储
+void uapi_dev_runtime_set_train_storage_status(uint8_t status)
+{
+    g_runtime.lock_flag_training = status;
+}
+uint8_t uapi_dev_runtime_get_train_storage_status(void)
+{
+    return g_runtime.lock_flag_training;
+}
+//设置心率存储
+void uapi_dev_runtime_set_heartrate_storage_status(uint8_t status)
+{
+    g_runtime.lock_flag_heartrate = status;
+}
+uint8_t uapi_dev_runtime_get_heartrate_storage_status(void)
+{
+    return g_runtime.lock_flag_heartrate;
+}
+//设置血氧存储
+void uapi_dev_runtime_set_bloodoxygen_storage_status(uint8_t status)
+{
+    g_runtime.lock_flag_blood = status;
+}
+uint8_t uapi_dev_runtime_get_bloodoxygen_storage_status(void)
+{
+    return g_runtime.lock_flag_blood;
+}
+//后续还需要补充。。。
+
 // 设置被动心率检测状态
 void uapi_dev_runtime_set_hrs_passivity(uint8_t status)
 {
index 763edd6..358c2d3 100644 (file)
@@ -109,6 +109,39 @@ uint8_t uapi_dev_runtime_get_checkres_status(void);
 void uapi_dev_runtime_set_repair_download_status(uint8_t status);
 uint8_t uapi_dev_runtime_get_repair_download_status(void);
 
+/*
+    读写锁状态
+    0 未锁定
+    1 锁定
+*/
+void uapi_dev_runtime_set_rwlock_status(uint8_t status);
+uint8_t uapi_dev_runtime_get_rwlock_status(void);
+
+/*
+    训练存储
+    0 未存储
+    1 正在存储
+*/
+void uapi_dev_runtime_set_train_storage_status(uint8_t status);
+uint8_t uapi_dev_runtime_get_train_storage_status(void);
+
+/*
+    心率存储
+    0 未存储
+    1 正在存储
+*/
+void uapi_dev_runtime_set_heartrate_storage_status(uint8_t status);
+uint8_t uapi_dev_runtime_get_heartrate_storage_status(void);
+
+/*
+    血氧存储
+    0 未存储
+    1 正在存储
+*/
+void uapi_dev_runtime_set_bloodoxygen_storage_status(uint8_t status);
+uint8_t uapi_dev_runtime_get_bloodoxygen_storage_status(void);
+
+
 /*运动识别*/
 void uapi_dev_runtime_set_motion_recognition_status(uint8_t status);
 uint8_t uapi_dev_runtime_get_motion_recognition_status(void);
index 9f51453..5c54289 100644 (file)
@@ -200,9 +200,9 @@ void shutdown_reboot_prejobs_task(void)
     //ble_sos_data_save();//同步数据存储
 
     //保存信息文件
-    saveancsdata(); //接收到信息进行保存
+    saveancsdata(); //接收到信息进行保存 暂时不修改
     //保存当天心率数据
-    save_heart_data();//测量完成保存
+    // save_heart_data();//测量完成保存
 
     //表盘配置
     // dial_file_save();