优化心率血氧存储
authorCaisking <3449750381@qq.com>
Fri, 28 Jun 2024 03:38:33 +0000 (11:38 +0800)
committerCaisking <3449750381@qq.com>
Fri, 28 Jun 2024 03:38:33 +0000 (11:38 +0800)
code/sdk/application/wearable/fd230app/nativeui/heart_blood/health_service/health_service.cpp

index 8e12861..4f739bb 100644 (file)
@@ -101,6 +101,7 @@ namespace OHOS
         {
             return false;
         }
+
         std::string jsonFilePath = GetJsonFilePath(type);
         printf("GetJsonFilePath:%s\r\n", jsonFilePath.c_str());
 
@@ -108,18 +109,16 @@ namespace OHOS
         if (!inFile.is_open())
         {
             printf("Failed to open JSON file.\r\n");
-            FILE *fp = fopen(jsonFilePath.c_str(), "wb");
-            fclose(fp);
             return false;
         }
 
         std::string jsonDataString((std::istreambuf_iterator<char>(inFile)), std::istreambuf_iterator<char>());
         const char *jsonData = jsonDataString.c_str();
         printf("jsonData:%s\r\n", jsonData);
+
         if (jsonDataString.empty())
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " jsonDataString is error");
-            // printf("JSON file is empty.\r\n");
             return false;
         }
 
@@ -227,17 +226,9 @@ namespace OHOS
         }
 
         cJSON *SPO2 = cJSON_GetObjectItemCaseSensitive(latestData, "value");
-        if (SPO2 == nullptr && !cJSON_IsNumber(SPO2))
-        {
-            // Add spo2_latest_data
-            cJSON_AddItemToObject(latestData, "value", cJSON_CreateNumber(data.SPO2));
-            cJSON_AddItemToObject(latestData, "timestamp", cJSON_CreateNumber(data.timestamp));
-        }
-        else
-        {
-            cJSON_ReplaceItemInObject(latestData, "value", cJSON_CreateNumber(data.SPO2));
-            cJSON_ReplaceItemInObject(latestData, "timestamp", cJSON_CreateNumber(data.timestamp));
-        }
+
+        cJSON_ReplaceItemInObject(latestData, "value", cJSON_CreateNumber(data.SPO2));
+        cJSON_ReplaceItemInObject(latestData, "timestamp", cJSON_CreateNumber(data.timestamp));
 
         // Update or add to spo2_data_list
         cJSON *dataList = cJSON_GetObjectItem(oxygen_root, "spo2_data_list");
@@ -308,17 +299,9 @@ namespace OHOS
         }
 
         cJSON *Heart = cJSON_GetObjectItemCaseSensitive(latestData, "value");
-        if (Heart == nullptr && !cJSON_IsNumber(Heart))
-        {
-            // Add heart_latest_data
-            cJSON_AddItemToObject(latestData, "value", cJSON_CreateNumber(data.Heart));
-            cJSON_AddItemToObject(latestData, "timestamp", cJSON_CreateNumber(data.timestamp));
-        }
-        else
-        {
-            cJSON_ReplaceItemInObject(latestData, "value", cJSON_CreateNumber(data.Heart));
-            cJSON_ReplaceItemInObject(latestData, "timestamp", cJSON_CreateNumber(data.timestamp));
-        }
+
+        cJSON_ReplaceItemInObject(latestData, "value", cJSON_CreateNumber(data.Heart));
+        cJSON_ReplaceItemInObject(latestData, "timestamp", cJSON_CreateNumber(data.timestamp));
 
         // // 更新heart_latest_data中的value和timestamp值
         // cJSON_AddItemToObject(latestData, "value", cJSON_CreateNumber(data.Heart));
@@ -361,10 +344,17 @@ namespace OHOS
     {
         std::string jsonFilePath = GetJsonFilePath(type);
         std::ofstream outFile(jsonFilePath);
+
         if (!outFile.is_open())
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to open file %s", jsonFilePath.c_str());
-            return false;
+            // 创建新文件
+            outFile.open(jsonFilePath);
+            if (!outFile.is_open())
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to create file %s", jsonFilePath.c_str());
+                return false;
+            }
         }
 
         char *jsonData = NULL;