修改数据保存BUG 387/1
authorhcj <1224667075@qq.com>
Thu, 27 Jun 2024 01:47:19 +0000 (09:47 +0800)
committerhcj <1224667075@qq.com>
Thu, 27 Jun 2024 01:47:19 +0000 (09:47 +0800)
code/sdk/drivers/peripheral/cywee/src/board_yh601s.c

index 36df202..5acf5a5 100644 (file)
@@ -274,8 +274,19 @@ typedef enum {
 #define CWM_DISTANCE_DATA_PATH "/user/userdata/sport/distancecount.bin"
 #define CWM_FAT_DATA_PATH "/user/userdata/sport/fatcount.bin"
 
+#define CWM_DATA_DIR_PATH "/user/userdata/sport"
+#include <sys/stat.h>
 void CWM_OS_saveData(int* data, uint32_t len,uint8_t type){
     
+     struct stat info;
+
+    if (stat(CWM_DATA_DIR_PATH, &info) != 0)
+    {
+        if (mkdir(CWM_DATA_DIR_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) != 0)
+        {
+            return ; // Failed to create folder
+        }
+    }
     FILE * fp=NULL;
     switch (type)
     {
@@ -304,10 +315,9 @@ void CWM_OS_saveData(int* data, uint32_t len,uint8_t type){
         return;
     }
     int ret =fwrite(data,1,len,fp);
-    if(ret==0)
-    {
-        CWM_OS_dbgPrintf("fwrite failed %d\n",ret);
-    }
+   
+    CWM_OS_dbgPrintf("CWM_OS_saveData fwrite failed %d %d\n",ret,*data);
+    
     fclose(fp);
 }
 
@@ -325,7 +335,7 @@ void CWM_OS_saveData(int* data, uint32_t len,uint8_t type){
 #define GOAL_DATA_CONFIG_DIR "/user/userdata/goal"
 
 
-#include <sys/stat.h>
+
 
 void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t type){
 
@@ -462,20 +472,21 @@ void CWM_OS_saveData_STAND_history(uint8_t *falg,uint32_t len){
 
 void CWM_OS_restoreData(int* data, uint32_t len,uint8_t type){
 
+
     FILE * fp=NULL;
     switch (type)
     {
     case CYWEE_SAVE_DATA_CALORIES:
-        fp  = fopen(CWM_CALORIES_DATA_PATH,"wb");
+        fp  = fopen(CWM_CALORIES_DATA_PATH,"rb");
         break;
     case CYWEE_SAVE_DATA_STEP:
-        fp  = fopen(CWM_STEP_DATA_PATH,"wb");
+        fp  = fopen(CWM_STEP_DATA_PATH,"rb");
         break;
     case CYWEE_SAVE_DATA_DISTANCE:
-        fp  = fopen(CWM_DISTANCE_DATA_PATH,"wb");
+        fp  = fopen(CWM_DISTANCE_DATA_PATH,"rb");
         break;
     case CYWEE_SAVE_DATA_FAT:
-        fp  = fopen(CWM_FAT_DATA_PATH,"wb");
+        fp  = fopen(CWM_FAT_DATA_PATH,"rb");
         break;
     default:
         break;
@@ -488,9 +499,8 @@ void CWM_OS_restoreData(int* data, uint32_t len,uint8_t type){
         return;
     }
     int ret =fread(data,1,len,fp);
-    if(ret==0)
-    {
-        CWM_OS_dbgPrintf("fread failed %d\n",ret);
-    }
+   
+    CWM_OS_dbgPrintf("CWM_OS_restoreData fread failed %d %d\n",ret,*data);
+    
     fclose(fp);
 }
\ No newline at end of file