目标历史数据修改 342/1
authorhcj <1224667075@qq.com>
Fri, 21 Jun 2024 03:22:05 +0000 (11:22 +0800)
committerhcj <1224667075@qq.com>
Fri, 21 Jun 2024 03:22:05 +0000 (11:22 +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/msg_center/src/msg_center_customer.cpp
code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h
code/sdk/drivers/peripheral/cywee/service/cywee_service.c
code/sdk/drivers/peripheral/cywee/src/board_yh601s.c
code/sdk/drivers/peripheral/cywee/src/main_dml.c

index cdeb65a..c554bae 100644 (file)
@@ -174,6 +174,8 @@ void install_Register_dial( char * name,uint16_t id)
 
 #define CWM_HISTORY_STAND_DATA_PATH "/user/userdata/goal/stand_"
 
+#define CWM_HISTORY_DATA_FAT_PATH "/user/userdata/goal/fat_"
+
 char * ble_sywee_history(uint8_t day,uint16_t *len ,uint8_t type)
 {
     char path_[64]={0};
@@ -186,7 +188,7 @@ char * ble_sywee_history(uint8_t day,uint16_t *len ,uint8_t type)
         sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_PATH,timeday);
             break;
         case 0x44://同步燃脂时间数据
-          sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_PATH,timeday);
+          sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_FAT_PATH,timeday);
             break;
         case 0x45://同步站立历史数据
         sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_STAND_DATA_PATH,timeday);
@@ -588,7 +590,6 @@ char * tar_dir_to_json_buf_malloc_(char* file_name,uint32_t *file_size)
 
     if ((dir = opendir(dir_path)) != NULL)
     {
-        
         while ((ent = readdir(dir)) != NULL)
         {
             std::string fileName = ent->d_name;
index aa62ccf..57f9247 100644 (file)
@@ -90,6 +90,7 @@ static const char* getHandlname(uint16_t handle)
     if (data2ae3Cmd == handle) return "data2ae3Cmd";\r
     if (data2ae4Cmd == handle) return "data2ae4Cmd";\r
     if (data2ae5Cmd == handle) return "data2ae5Cmd";\r
+    //if (data2ae2Cmd == handle) return "data2ae2Cmd";\r
     \r
     return "unknown handle";\r
 \r
@@ -2690,6 +2691,7 @@ static void GetBatteryLevelCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *
         power = battery_get_voltage(&voltage);\r
         value[17] = power;\r
         value[18] = Calculate_CRC(value,18);\r
+        printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n");\r
         sendBleData(value,19);\r
     }else\r
     {\r
@@ -4725,9 +4727,12 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u
 \r
                 break;\r
             case 0x44://同步燃脂时间数据\r
-                EACH_DATA_LEN = FATTIME_DATA_LEN;\r
-                num=(ble_nus_max_data_len-18)/EACH_DATA_LEN;\r
-                Read_JSON_file_buf_send_bin_Data(data[0],num,0x44,"heart_data_list");\r
+                 num=(ble_nus_max_data_len-18);\r
+                if(num>482)\r
+                {\r
+                    num=482;\r
+                }\r
+                 Read_BIN_file_buf_send_bin_Data(data[0],num,0x44);\r
                 break;\r
             case 0x45://同步站立历史数据\r
 \r
@@ -5771,7 +5776,7 @@ void type2AE0Data(ble_read_data *buffer_handle)
                 decode_file_checksum(buffer_handle);\r
                 break;\r
             case SINGLE_DIAL_FILE_RECV_CMD:\r
-                if (decode_single_dial_info( buffer_handle) == ERRCODE_SUCC)\r
+                if (decode_single_dial_info(buffer_handle) == ERRCODE_SUCC)\r
                 {\r
                     ble_reply_cmd(SINGLE_DIAL_FILE_RECV_CMD,1);\r
 \r
index 10d7600..6e09357 100644 (file)
@@ -290,6 +290,8 @@ void MsgCenterNotifyONtimeProc(const Topic topic, Request* req)
    calories_history_save();
    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时距离数据");
    distances_history_save();
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时燃脂数据");
+   fat_history_save();
 }
 
 void MsgCenterNotifystepProc(const Topic topic, Request* req)
@@ -950,6 +952,11 @@ void MsgCenterNotifyActivityProc(const Topic topic, Request* req)
     if(c_activity_result_t->distance!=0)
     set_distance_data(c_activity_result_t->distance);
 
+    if(c_activity_result_t->MHR>=2)
+    set_fat_time_data();
+
+
+
 }
 void MsgCenterNotifyInactivityProc(const Topic topic, Request *req)
 {
index 89e489e..f793932 100644 (file)
@@ -22,6 +22,7 @@ typedef enum {
     CYWEE_SAVE_DATA_STEP,
     CYWEE_SAVE_DATA_DISTANCE,
     CYWEE_SAVE_DATA_CALORIES,
+    CYWEE_SAVE_DATA_FAT,
 } CYWEE_SAVE_DATA_TYPE;
 
 
@@ -36,10 +37,10 @@ extern int CWM_OS_i2cWrite(uint16_t slaveAddr, uint16_t reg, int regLength, uint
 extern int CWM_OS_i2cTransfer(uint16_t slaveAddr, uint16_t reg, int regLength, uint8_t *writeData, int writeDataSize, uint8_t *readData, int readDataSize, int busIndex);
 extern void* CWM_OS_malloc(int size);
 extern void CWM_OS_free(void *ptr);
-extern void CWM_OS_saveData(int* data, uint32_t len);
+extern void CWM_OS_saveData(int* data, uint32_t len,uint8_t type);
 extern void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t type);
 extern void CWM_OS_saveData_STAND_history(uint8_t *falg,uint32_t len);
-extern void CWM_OS_restoreData(int* data, uint32_t len);
+extern void CWM_OS_restoreData(int* data, uint32_t len,uint8_t type);
 
 /********************CYWEE LIB*************************/
 
@@ -519,6 +520,10 @@ void step_history_save(void);
 void stand_history_save(void);
 void calories_history_save(void);
 void distances_history_save(void);
+void fat_history_save(void);
+
+void cywee_goal_history_save(void);
+
 
 void set_stand_falg(void);
 void set_calories_data(uint32_t data);
@@ -527,6 +532,8 @@ int get_calories_data(void);
 void set_distance_data(uint32_t data);
 int get_distance_data(void );
 
+void set_fat_time_data(void);
+
 void cywee_get_chipinfo(char *databuf,uint8_t len);
 void cywee_get_acc_switch(uint8_t cmd);
 void cywee_set_sedentary_interval(int time);
index 32af17b..a91890b 100644 (file)
@@ -377,7 +377,7 @@ static void cywee_service_check_task(void const *arg)
             break;
 
             case CYWEE_SERVICE_CMD_SAVE_DATA:
-                cywee_save_data();
+                cywee_save_data(NULL, 0);
             break;
 
             case CYWEE_SERVICE_CMD_START_GET_ACC:
index fd33fb2..36df202 100644 (file)
@@ -262,13 +262,45 @@ int CWM_OS_dbgPrintf(const char * format,...)
     CWM_OS_dbgOutput(InputBuff);
     return 0;
 }
-#define CWM_DATA_PATH "/user/userdata/sport/stepcount.bin"
-void CWM_OS_saveData(int* data, uint32_t len){
+typedef enum {
+    CYWEE_SAVE_DATA_STEP,
+    CYWEE_SAVE_DATA_DISTANCE,
+    CYWEE_SAVE_DATA_CALORIES,
+    CYWEE_SAVE_DATA_FAT,
+} CYWEE_SAVE_DATA_TYPE;
+
+#define CWM_STEP_DATA_PATH "/user/userdata/sport/stepcount.bin"
+#define CWM_CALORIES_DATA_PATH "/user/userdata/sport/caloriescount.bin"
+#define CWM_DISTANCE_DATA_PATH "/user/userdata/sport/distancecount.bin"
+#define CWM_FAT_DATA_PATH "/user/userdata/sport/fatcount.bin"
+
+void CWM_OS_saveData(int* data, uint32_t len,uint8_t type){
     
-    FILE * fp = fopen(CWM_DATA_PATH,"wb");
+    FILE * fp=NULL;
+    switch (type)
+    {
+    case CYWEE_SAVE_DATA_CALORIES:
+        fp  = fopen(CWM_CALORIES_DATA_PATH,"wb");
+        break;
+    case CYWEE_SAVE_DATA_STEP:
+        fp  = fopen(CWM_STEP_DATA_PATH,"wb");
+        break;
+    case CYWEE_SAVE_DATA_DISTANCE:
+        fp  = fopen(CWM_DISTANCE_DATA_PATH,"wb");
+        break;
+    case CYWEE_SAVE_DATA_FAT:
+        fp  = fopen(CWM_FAT_DATA_PATH,"wb");
+        break;
+
+    default:
+        break;
+    }
+    
+  
+
     if(fp==NULL)
     {
-        CWM_OS_dbgPrintf("%s open fail\n",CWM_DATA_PATH);
+        CWM_OS_dbgPrintf("%s open fail\n",CWM_STEP_DATA_PATH);
         return;
     }
     int ret =fwrite(data,1,len,fp);
@@ -280,18 +312,18 @@ void CWM_OS_saveData(int* data, uint32_t len){
 }
 
 
+
+
 #define CWM_HISTORY_DATA_PATH "/user/userdata/goal/step_"
 
 #define CWM_HISTORY_DATA_CALORIES_PATH "/user/userdata/goal/calories_"
 
 #define CWM_HISTORY_DATA_DISTANCE_PATH "/user/userdata/goal/distance_"
 
+#define CWM_HISTORY_DATA_FAT_PATH "/user/userdata/goal/fat_"
+
 #define GOAL_DATA_CONFIG_DIR "/user/userdata/goal"
-typedef enum {
-    CYWEE_SAVE_DATA_STEP,
-    CYWEE_SAVE_DATA_DISTANCE,
-    CYWEE_SAVE_DATA_CALORIES,
-} CYWEE_SAVE_DATA_TYPE;
+
 
 #include <sys/stat.h>
 
@@ -318,9 +350,13 @@ void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t ty
     case CYWEE_SAVE_DATA_STEP:
        sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_PATH,timeday);
         break;
-     case CYWEE_SAVE_DATA_DISTANCE:
+    case CYWEE_SAVE_DATA_DISTANCE:
        sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_DISTANCE_PATH,timeday);
         break;
+    case CYWEE_SAVE_DATA_FAT:
+       sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_FAT_PATH,timeday);
+        break;
+
     default:
         break;
     }
@@ -424,11 +460,31 @@ void CWM_OS_saveData_STAND_history(uint8_t *falg,uint32_t len){
 
 
 
-void CWM_OS_restoreData(int* data, uint32_t len){
-    FILE * fp = fopen(CWM_DATA_PATH,"rb");
+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");
+        break;
+    case CYWEE_SAVE_DATA_STEP:
+        fp  = fopen(CWM_STEP_DATA_PATH,"wb");
+        break;
+    case CYWEE_SAVE_DATA_DISTANCE:
+        fp  = fopen(CWM_DISTANCE_DATA_PATH,"wb");
+        break;
+    case CYWEE_SAVE_DATA_FAT:
+        fp  = fopen(CWM_FAT_DATA_PATH,"wb");
+        break;
+    default:
+        break;
+    }
+
+
     if(fp==NULL)
     {
-        CWM_OS_dbgPrintf("%s open fail\n",CWM_DATA_PATH);;
+        CWM_OS_dbgPrintf("%s open fail\n",CWM_HISTORY_DATA_PATH);;
         return;
     }
     int ret =fread(data,1,len,fp);
index 5ae371e..c43b506 100644 (file)
@@ -43,19 +43,22 @@ uint8_t hrs_mode_state = 0;
 
 static int history_step = 0;
 static int stepcount = 0;
-
-int history_step_=0;//存一个小时前的步数数据,每次保存步数时会更新改数据
+static int history_step_=0;//存一个小时前的步数数据,每次保存步数时会更新改数据
 
 uint8_t stand_falg=0;//站立falg,如果发生站立,一个小时内会被置1;
 
 int new_calories=0; //存卡路里数据 
-
 int history_calories=0; //一小时前卡路里数据
+int history_calories_=0;
 
 int new_distance=0; //存距离数据 
+int history_distances=0; //历史数据
+int history_distances_=0; //一小时前距离数据
 
-int history_distances=0; //一小时前距离数据
 
+int new_fat=0; //存燃脂数据 
+int history_fat=0; //历史数据
+int history_fat_=0; //一小时前燃脂数据
 
 static char chipInfo[64] = {0};
 
@@ -84,9 +87,36 @@ void cywee_get_chipinfo(char *databuf,uint8_t len)
     memcpy_s(databuf,len,chipInfo,strlen(chipInfo));
 }
 
-void cywee_save_data(void)
+void cywee_save_data(int* data, uint32_t len)
+{
+    CWM_OS_saveData(&stepcount,sizeof(int),CYWEE_SAVE_DATA_STEP);
+    new_calories+=history_calories;
+    CWM_OS_saveData(&(new_calories),sizeof(int),CYWEE_SAVE_DATA_CALORIES);
+    new_distance+=history_distances;
+    CWM_OS_saveData(&(new_distance),sizeof(int),CYWEE_SAVE_DATA_DISTANCE);
+    CWM_OS_saveData(&new_fat,sizeof(int),CYWEE_SAVE_DATA_FAT);
+
+}
+
+void cywee_OS_data_save_(int* data, uint32_t len)
+{
+    cywee_save_data(data,len);
+}
+
+
+
+void CWM_OS_restoreData_(int* data, uint32_t len)
 {
-    CWM_OS_saveData(&stepcount,sizeof(int));
+    CWM_OS_restoreData(&history_step,sizeof(int),CYWEE_SAVE_DATA_STEP);
+    history_step_=history_step;
+    CWM_OS_restoreData(&history_calories,sizeof(int),CYWEE_SAVE_DATA_CALORIES);
+    history_calories_=history_calories;
+    CWM_OS_restoreData(&history_distances,sizeof(int),CYWEE_SAVE_DATA_DISTANCE);
+    history_distances_=history_distances;
+    CWM_OS_restoreData(&history_fat,sizeof(int),CYWEE_SAVE_DATA_FAT);
+    history_fat_=history_fat;
+
+    //WM_OS_restoreData(int* data, uint32_t len,uint8_t type)(int* data, uint32_t len,uint8_t type);
 }
 
 void step_history_save(void)
@@ -96,7 +126,7 @@ void step_history_save(void)
 
 int get_calories_data(void)
 {
-    return new_calories;
+    return new_calories+history_calories;
 }
 void set_calories_data(uint32_t data)
 {
@@ -106,14 +136,21 @@ void set_calories_data(uint32_t data)
 
 void set_distance_data(uint32_t data)
 {
-    new_distance=data;
+    new_fat++;
 }
 
 int get_distance_data(void )
 {
-    return new_distance;
+    return new_distance+history_distances;
+}
+
+void set_fat_time_data(void)
+{
+    new_calories++;
 }
 
+
+
 void set_stand_falg(void)
 {
     stand_falg=1;
@@ -125,14 +162,30 @@ void stand_history_save(void)
 
 void calories_history_save(void)
 {
-    CWM_OS_saveData_history(&new_calories,&history_calories,sizeof(int),CYWEE_SAVE_DATA_CALORIES);
+    CWM_OS_saveData_history(&new_calories,&history_calories_,sizeof(int),CYWEE_SAVE_DATA_CALORIES);
 }
 
 void distances_history_save(void)
 {
-    CWM_OS_saveData_history(&new_calories,&history_calories,sizeof(int),CYWEE_SAVE_DATA_DISTANCE);
+    CWM_OS_saveData_history(&new_distance,&history_calories_,sizeof(int),CYWEE_SAVE_DATA_DISTANCE);
+}
+
+void fat_history_save(void)
+{
+    CWM_OS_saveData_history(&new_fat,&history_fat_,sizeof(int),CYWEE_SAVE_DATA_FAT);
+}
+
+void cywee_goal_history_save(void)
+{
+    stand_history_save();
+    calories_history_save();
+    fat_history_save();
+    distances_history_save();
+    step_history_save();
 }
 
+
+
 void cywee_ar_alert_switch(int cmd)
 {
     memset(&scl, 0, sizeof(scl));
@@ -808,8 +861,8 @@ int cywee_main_dml(void)
         .free         = CWM_OS_free,
         .malloc       = CWM_OS_malloc,
         .i2cTransfer  = custom_i2c_transfer,
-        .restoreData  = CWM_OS_restoreData,
-        .saveData     = CWM_OS_saveData,
+        .restoreData  = CWM_OS_restoreData_,
+        .saveData     = cywee_OS_data_save_,
         .spiRead      = NULL,
         .spiWrite     = NULL,
         .securityCodeWrite      = NULL,
@@ -1008,8 +1061,9 @@ int cywee_main_dml(void)
     // CWM_Sensor_Enable(IDX_ALGO_ANY_MOTIOIN);
     //CWM_Sensor_Enable(IDX_ALGO_ABSOLUTE_STATIC);
     //CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
-    CWM_OS_restoreData(&history_step,sizeof(int));
-    history_step_=history_step;
+    CWM_OS_restoreData_(&history_step,sizeof(int));
+
+    
 
     cywee_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL);