修复切换表盘BUG 修改GOAL数据位置 292/2 292/head 293/target/1 294/target/1 295/target/1
authorhcj <1224667075@qq.com>
Sat, 15 Jun 2024 07:31:59 +0000 (15:31 +0800)
committerhcj <1224667075@qq.com>
Sat, 15 Jun 2024 07:31:59 +0000 (15:31 +0800)
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.h
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/drivers/peripheral/cywee/src/board_yh601s.c

index a4be6ce..681e6f2 100644 (file)
@@ -30,6 +30,7 @@
 
 #include "SetDialModel.h"
 
+
 //#include "AlarmClockModel.h"
 #ifdef __cplusplus
 #if __cplusplus
@@ -103,19 +104,19 @@ void install_Register_dial( char * name,uint16_t id)
 
 
 
-#define CWM_HISTORY_DATA_PATH "/user/userdata/step_"
+#define CWM_HISTORY_DATA_PATH "/user/userdata/goal/step_"
 
-#define CWM_HISTORY_DATA_CALORIES_PATH "/user/userdata/calories_"
+#define CWM_HISTORY_DATA_CALORIES_PATH "/user/userdata/goal/calories_"
 
-#define CWM_HISTORY_DATA_DISTANCE_PATH "/user/userdata/distance_"
+#define CWM_HISTORY_DATA_DISTANCE_PATH "/user/userdata/goal/distance_"
 
-#define CWM_HISTORY_STAND_DATA_PATH "/user/userdata/stand_"
+#define CWM_HISTORY_STAND_DATA_PATH "/user/userdata/goal/stand_"
 
 char * ble_sywee_history(uint8_t day,uint16_t *len ,uint8_t type)
 {
     char path_[64]={0};
     char timeday[12] = {0};
-    uapi_get_YYMMDD_Time(timeday, '_');
+    uapi_get_YYMMDD_Time_extend(timeday, '_',day);
 
     switch (type)
     {
@@ -400,7 +401,7 @@ char * struct_to_json_buf_malloc_Alarm(void)
 
 }
 
-char *  struct_to_json_buf_malloc_(void)
+char *  struct_to_json_buf_malloc_(uint8_t day)
 {
 #ifdef FD230
     cJSON *dataJSON = cJSON_CreateObject();
@@ -409,7 +410,7 @@ char *  struct_to_json_buf_malloc_(void)
     int i=0;
     //char file_path[128] = {0};
     char timeday[12] = {0};
-    uapi_get_YYMMDD_Time(timeday, '_');
+    uapi_get_YYMMDD_Time_extend(timeday, '_',day);
     printf("%s\r\n",timeday);
     //sprintf(file_path, "%s%s.bin", TRAINING_PATH_BLE, timeday);
 
@@ -776,15 +777,16 @@ void set_ble_falg(bool falg)
 }
 static char* JSON_F_buf=NULL;
 #define PATH_MAX_LEN 124
-const char *get_health_data_path(void)
+const char *get_health_HEART_data_path( uint8_t day)
 {
     #ifdef FD230
-    time_t now = time(0);
-    tm *ltm = localtime(&now);
-    char day[20];
-    strftime(day, sizeof(day), "%Y%m%d", ltm);
+ 
+    char timeday[12] = {0};
+    uapi_get_YYMMDD_Time_extend(timeday, '\0',day);
+    printf("%s\r\n",timeday);
+
     char buf[PATH_MAX_LEN]={0};
-    sprintf_s(buf,PATH_MAX_LEN-1,"%s%s.json",OHOS::GET_HEALTH_JSON_PATH_C_STR_HEART(),day);
+    sprintf_s(buf,PATH_MAX_LEN-1,"%s%s.json",OHOS::GET_HEALTH_JSON_PATH_C_STR_HEART(),timeday);
     if(JSON_F_buf != NULL)
     {
         free(JSON_F_buf);
@@ -805,15 +807,17 @@ const char *get_health_data_path(void)
 }
 
 
-const char *get_health_OXYGEN_data_path(void)
+const char *get_health_OXYGEN_data_path(uint8_t day)
 {
     #ifdef FD230
-    time_t now = time(0);
-    tm *ltm = localtime(&now);
-    char day[20];
-    strftime(day, sizeof(day), "%Y%m%d", ltm);
+
+    char timeday[12] = {0};
+    uapi_get_YYMMDD_Time_extend(timeday, '\0',day);
+    printf("%s\r\n",timeday);
+
+
     char buf[PATH_MAX_LEN]={0};
-    sprintf_s(buf,PATH_MAX_LEN-1,"%s%s.json",OHOS::GET_HEALTH_JSON_PATH_C_STR_OXYGEN(),day);
+    sprintf_s(buf,PATH_MAX_LEN-1,"%s%s.json",OHOS::GET_HEALTH_JSON_PATH_C_STR_OXYGEN(),timeday);
     if(JSON_F_buf != NULL)
     {
         free(JSON_F_buf);
@@ -835,6 +839,7 @@ const char *get_health_OXYGEN_data_path(void)
 
 void set_weather_now_data(int humidity, char* windScale, char* textNight,int uvIndex,int temp,int iconNight)
 {
+    //UpdateWeatherViewData();
     #ifdef FD230
     return OHOS::UI_set_weather_now_data(humidity, windScale, textNight,uvIndex,temp,iconNight);
     #endif
@@ -856,7 +861,7 @@ void set_weather_address_data(int lat, char* atm, char* city,char* subLocality,i
 // };
 #ifdef FD230
 
-void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char *textDay,int x) 
+void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char *textDay,int count) 
 {
     OHOS::ONE_DAY_DATA data_t;
 
@@ -866,8 +871,8 @@ void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char
     data_t.tempMax=tempMax;
     memset((void*)data_t.textDay,0,16);
     strcpy(data_t.textDay,textDay);
-    
-    return UI_set_weather_seven_day_data(data_t ,x);
+    printf("set_weather_one_data  %d\n",count);
+    return UI_set_weather_seven_day_data(data_t ,count);
 }
 #else
 void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char *textDay,int x) 
index 4d71ad9..a3c54dd 100644 (file)
@@ -108,7 +108,7 @@ struct message_infor_t *get_message_info(void);
 void set_weather_now_data(int humidity, char* windScale, char* textNight,int uvIndex,int temp,int iconNight);
 
 void set_weather_address_data(int lat, char* atm, char* city,char* subLocality,int lon);
-void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char *textDay,int x);
+void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char *textDay,int count);
 
 uint8_t ble_is_ready(void);
 void set_ble_falg(bool falg);
@@ -117,8 +117,8 @@ char *addressbook(void);
 void addressbookToRead(char*);
 void  addressbookTowrite(void);
 
-const char *get_health_data_path(void);
-const char *get_health_OXYGEN_data_path(void);
+const char *get_health_HEART_data_path(uint8_t day);
+const char *get_health_OXYGEN_data_path(uint8_t day);
 
 void add_addressbookToRead(char *data);
 
@@ -175,7 +175,7 @@ int get_goal_durationcount(void);//获取目标燃脂时间
 void set_goal_standupcount(uint32_t time);//设置目标战立次数
 int get_goal_standupcount(void);//获取目标站立次数
 
-char* struct_to_json_buf_malloc_(void);
+char* struct_to_json_buf_malloc_(uint8_t day);
 
 char * struct_to_json_buf_malloc_Alarm(void);
 
index 5f43e35..b060ea2 100644 (file)
@@ -1945,7 +1945,6 @@ uint8_t jsonCheck_weather(uint8_t *buf,uint8_t *check)//json 格式解析 天气
         set_weather_one_data(tempMin,iconDay,fxDate,tempMax,textDay,i);\r
 \r
     }\r
-    \r
     cJSON_Delete(root);\r
     *check = 1;\r
     return 1;\r
@@ -2174,18 +2173,6 @@ void getAPPaddressbook(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalDat
     \r
     if(Check_CRC(data,len,crcvalue))\r
     {\r
-        //解析,传来的二进制数据\r
-        // char *address_path = addressbook();\r
-        // FILE *file = fopen(address_path, "wb+");\r
-        // if (file)\r
-        // {\r
-        //     size_t len_t = fwrite((void *)data,1,len,file);\r
-        //     fclose(file); \r
-        //     if(len_t == len){\r
-        //         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fwrite:%d",len_t);\r
-                \r
-        //     }\r
-        // }\r
         addressbookToRead((char*)data);\r
         value[17] = 0x01;\r
         value[18] = Calculate_CRC(value,18);\r
@@ -2290,8 +2277,8 @@ static void switchDialCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *total
     if(Check_CRC(data,len,crcvalue))\r
     {\r
         uint16_t daila_type = 0;\r
-        memcpy(&daila_type,&data[17],2);\r
-        printf("switchDialCmd %d !!!!!!!!!!\r\n",daila_type);\r
+        memcpy(&daila_type,&data[0],2);\r
+        printf("switchDialCmd %d  %s %d !!!!!!!!!!\r\n",daila_type,data,len);\r
 \r
         ble_set_dial_by_id(daila_type);\r
         value[17] = 1;//校验成功\r
@@ -3806,7 +3793,7 @@ static void disDataCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldat
     }\r
 }\r
 //同步基础训练历史数据 training history data\r
-static void Send_json_Data_Cmd(uint16_t pack_size,uint8_t id)\r
+static void Send_json_Data_Cmd(uint8_t day,uint16_t pack_size,uint8_t id)\r
 {\r
 \r
     \r
@@ -3814,7 +3801,7 @@ static void Send_json_Data_Cmd(uint16_t pack_size,uint8_t id)
         switch (id)\r
         {\r
             case 0x49:\r
-                json_format=struct_to_json_buf_malloc_();\r
+                json_format=struct_to_json_buf_malloc_(day);\r
                 break;\r
             case 0x01:\r
                 json_format=struct_to_json_buf_malloc_Alarm();\r
@@ -4302,7 +4289,7 @@ uint32_t EACH_DATA_LEN=0;//每种数据类型的的长度
 \r
 \r
 \r
-void Read_JSON_file_buf_send_bin_Data(uint8_t num,uint16_t id,char *data_item)\r
+void Read_JSON_file_buf_send_bin_Data(uint8_t day, uint8_t num,uint16_t id,char *data_item)\r
 {\r
     sendbigDataBufState = true;//分包同步数据不允许打断\r
     char *buf=NULL;\r
@@ -4312,11 +4299,11 @@ void Read_JSON_file_buf_send_bin_Data(uint8_t num,uint16_t id,char *data_item)
     switch (id)\r
     {\r
         case 0x40://同步心率历史数据\r
-            path=get_health_data_path();\r
+            path=get_health_HEART_data_path(day);\r
             dataBit = 1;//心率数据字节1个字节 uint8_t\r
             break;\r
         case 0x41://同步血氧历史数据\r
-            path=get_health_OXYGEN_data_path();\r
+            path=get_health_OXYGEN_data_path(day);\r
             dataBit = 1;//血氧数据字节1个字节 uint8_t\r
             break;\r
         case 0x4b://睡眠历史数据\r
@@ -4434,7 +4421,7 @@ void Read_JSON_file_buf_send_bin_Data(uint8_t num,uint16_t id,char *data_item)
     \r
 }\r
 \r
-void Read_BIN_file_buf_send_bin_Data(uint32_t pack_size,uint16_t id)\r
+void Read_BIN_file_buf_send_bin_Data(uint8_t day,uint32_t pack_size,uint16_t id)\r
 {\r
     sendbigDataBufState = true;//分包同步数据不允许打断\r
     char *buf=NULL;\r
@@ -4443,7 +4430,7 @@ void Read_BIN_file_buf_send_bin_Data(uint32_t pack_size,uint16_t id)
     uint8_t dataBit = 1;//默认是1个字节的数据\r
     uint32_t data_len = 0;\r
    \r
-    data=ble_sywee_history(0,&data_len,id);\r
+    data=ble_sywee_history(day,&data_len,id);\r
 \r
     if(data==NULL)\r
     {\r
@@ -4522,14 +4509,14 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u
                 {\r
                     num=96;\r
                 }\r
-                printf("同步心率数据,每包最多:%d 条数据 data:%d\r\n",num,data[0]);\r
-                Read_JSON_file_buf_send_bin_Data(num,0x40,"heart_data_list");\r
+                printf("同步心率数据,每包最多:%d 条数据 data:%d %d\r\n",num,data[0],len);\r
+                Read_JSON_file_buf_send_bin_Data(data[0],num,0x40,"heart_data_list");\r
                 break;\r
             case 0x41://同步血氧历史数据\r
                 printf("同步血氧数据\r\n");\r
                 EACH_DATA_LEN = SPO2_DATA_LEN;\r
                 num=(ble_nus_max_data_len-18)/EACH_DATA_LEN;\r
-                Read_JSON_file_buf_send_bin_Data(num,0x41,"spo2_data_list");\r
+                Read_JSON_file_buf_send_bin_Data(data[0],num,0x41,"spo2_data_list");\r
                 break;\r
             case 0x43: //同步步数历史数据\r
             \r
@@ -4538,13 +4525,13 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u
                 {\r
                     num=482;\r
                 }\r
-                 Read_BIN_file_buf_send_bin_Data(num,0x43);\r
+                 Read_BIN_file_buf_send_bin_Data(data[0],num,0x43);\r
 \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(num,0x44,"heart_data_list");\r
+                Read_JSON_file_buf_send_bin_Data(data[0],num,0x44,"heart_data_list");\r
                 break;\r
             case 0x45://同步站立历史数据\r
 \r
@@ -4553,7 +4540,7 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u
                 {\r
                     num=482;\r
                 }\r
-                 Read_BIN_file_buf_send_bin_Data(num,0x45);\r
+                 Read_BIN_file_buf_send_bin_Data(data[0],num,0x45);\r
 \r
                 break;\r
             case 0x46://同步卡路里历史数据\r
@@ -4562,7 +4549,7 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u
                 {\r
                     num=482;\r
                 }\r
-                Read_BIN_file_buf_send_bin_Data(num,0x46);\r
+                Read_BIN_file_buf_send_bin_Data(data[0],num,0x46);\r
                 break;\r
             case 0x47://同步距离历史数据\r
                  num=(ble_nus_max_data_len-18);\r
@@ -4570,7 +4557,7 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u
                 {\r
                     num=482;\r
                 }\r
-                Read_BIN_file_buf_send_bin_Data(num,0x47);\r
+                Read_BIN_file_buf_send_bin_Data(data[0],num,0x47);\r
                 break;\r
             case 0x49://同步基础训练历史数据\r
                 EACH_DATA_LEN = DIS_DATA_LEN;\r
@@ -4579,7 +4566,7 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u
                 {\r
                     num=482;\r
                 }\r
-                Send_json_Data_Cmd(num,0x49);\r
+                Send_json_Data_Cmd(data[0],num,0x49);\r
                 break;\r
             case 0x01://同步闹钟\r
                 EACH_DATA_LEN = DIS_DATA_LEN;\r
@@ -4588,12 +4575,12 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u
                 {\r
                     num=482;\r
                 }\r
-                Send_json_Data_Cmd(num,0x01);\r
+                Send_json_Data_Cmd(data[0],num,0x01);\r
                 break;\r
             case 0x4b://睡眠历史数据\r
                 EACH_DATA_LEN = DIS_DATA_LEN;\r
                 num=(ble_nus_max_data_len-18)/EACH_DATA_LEN;\r
-                Read_JSON_file_buf_send_bin_Data(num,0x4b,"heart_data_list");\r
+                Read_JSON_file_buf_send_bin_Data(data[0],num,0x4b,"heart_data_list");\r
 \r
                 break;\r
             default:\r
index e57ec0c..76a6b50 100644 (file)
@@ -280,20 +280,32 @@ void CWM_OS_saveData(int* data, uint32_t len){
 }
 
 
-#define CWM_HISTORY_DATA_PATH "/user/userdata/step_"
+#define CWM_HISTORY_DATA_PATH "/user/userdata/goal/step_"
 
-#define CWM_HISTORY_DATA_CALORIES_PATH "/user/userdata/calories_"
+#define CWM_HISTORY_DATA_CALORIES_PATH "/user/userdata/goal/calories_"
 
-#define CWM_HISTORY_DATA_DISTANCE_PATH "/user/userdata/distance_"
+#define CWM_HISTORY_DATA_DISTANCE_PATH "/user/userdata/goal/distance_"
 
+#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>
 
 void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t type){
+
+    struct stat info;
+
+    if (stat(GOAL_DATA_CONFIG_DIR, &info) != 0)
+    {
+        if (mkdir(GOAL_DATA_CONFIG_DIR, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) != 0)
+        {
+            return ; // Failed to create folder
+        }
+    }
     char path_[64]={0};
     char timeday[12] = {0};
     uapi_get_YYMMDD_Time(timeday, '_');
@@ -354,15 +366,27 @@ void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t ty
 
     fclose(fp);
 }
-#define CWM_HISTORY_STAND_DATA_PATH "/user/userdata/stand_"
+#define CWM_HISTORY_STAND_DATA_PATH "/user/userdata/goal/stand_"
 
 void CWM_OS_saveData_STAND_history(uint8_t *falg,uint32_t len){
     if(*falg)
     {
+        struct stat info;
+
+        if (stat(GOAL_DATA_CONFIG_DIR, &info) != 0)
+        {
+            if (mkdir(GOAL_DATA_CONFIG_DIR, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) != 0)
+            {
+                return ; // Failed to create folder
+            }
+        }
+
+
         char path_[64]={0};
         char timeday[12] = {0};
         uapi_get_YYMMDD_Time(timeday, '_');
 
+
         sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_STAND_DATA_PATH,timeday);
         CWM_OS_dbgPrintf(" save path %s \n",path_);