From c9e0f75bd1faea46cffb3a6fc5c94dc257d7f2ed Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Sat, 15 Jun 2024 15:31:59 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8D=E5=88=87=E6=8D=A2=E8=A1=A8?= =?utf8?q?=E7=9B=98BUG=20=E4=BF=AE=E6=94=B9GOAL=E6=95=B0=E6=8D=AE=E4=BD=8D?= =?utf8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../service/ble_service/blemoder/bletest.cpp | 49 +++++++++-------- .../service/ble_service/blemoder/bletest.h | 8 +-- .../service/ble_service/bleservice/bleEvent.c | 53 +++++++------------ .../peripheral/cywee/src/board_yh601s.c | 32 +++++++++-- 4 files changed, 79 insertions(+), 63 deletions(-) diff --git a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp index a4be6ce10..681e6f26a 100644 --- a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp +++ b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp @@ -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) diff --git a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h index 4d71ad9eb..a3c54dd9b 100644 --- a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h +++ b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h @@ -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); diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c index 5f43e3577..b060ea29e 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c @@ -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); } - cJSON_Delete(root); *check = 1; return 1; @@ -2174,18 +2173,6 @@ void getAPPaddressbook(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalDat if(Check_CRC(data,len,crcvalue)) { - //解析,传来的二进制数据 - // char *address_path = addressbook(); - // FILE *file = fopen(address_path, "wb+"); - // if (file) - // { - // size_t len_t = fwrite((void *)data,1,len,file); - // fclose(file); - // if(len_t == len){ - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fwrite:%d",len_t); - - // } - // } addressbookToRead((char*)data); value[17] = 0x01; value[18] = Calculate_CRC(value,18); @@ -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)) { uint16_t daila_type = 0; - memcpy(&daila_type,&data[17],2); - printf("switchDialCmd %d !!!!!!!!!!\r\n",daila_type); + memcpy(&daila_type,&data[0],2); + printf("switchDialCmd %d %s %d !!!!!!!!!!\r\n",daila_type,data,len); ble_set_dial_by_id(daila_type); value[17] = 1;//校验成功 @@ -3806,7 +3793,7 @@ static void disDataCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totaldat } } //同步基础训练历史数据 training history data -static void Send_json_Data_Cmd(uint16_t pack_size,uint8_t id) +static void Send_json_Data_Cmd(uint8_t day,uint16_t pack_size,uint8_t id) { @@ -3814,7 +3801,7 @@ static void Send_json_Data_Cmd(uint16_t pack_size,uint8_t id) switch (id) { case 0x49: - json_format=struct_to_json_buf_malloc_(); + json_format=struct_to_json_buf_malloc_(day); break; case 0x01: json_format=struct_to_json_buf_malloc_Alarm(); @@ -4302,7 +4289,7 @@ uint32_t EACH_DATA_LEN=0;//每种数据类型的的长度 -void Read_JSON_file_buf_send_bin_Data(uint8_t num,uint16_t id,char *data_item) +void Read_JSON_file_buf_send_bin_Data(uint8_t day, uint8_t num,uint16_t id,char *data_item) { sendbigDataBufState = true;//分包同步数据不允许打断 char *buf=NULL; @@ -4312,11 +4299,11 @@ void Read_JSON_file_buf_send_bin_Data(uint8_t num,uint16_t id,char *data_item) switch (id) { case 0x40://同步心率历史数据 - path=get_health_data_path(); + path=get_health_HEART_data_path(day); dataBit = 1;//心率数据字节1个字节 uint8_t break; case 0x41://同步血氧历史数据 - path=get_health_OXYGEN_data_path(); + path=get_health_OXYGEN_data_path(day); dataBit = 1;//血氧数据字节1个字节 uint8_t break; case 0x4b://睡眠历史数据 @@ -4434,7 +4421,7 @@ void Read_JSON_file_buf_send_bin_Data(uint8_t num,uint16_t id,char *data_item) } -void Read_BIN_file_buf_send_bin_Data(uint32_t pack_size,uint16_t id) +void Read_BIN_file_buf_send_bin_Data(uint8_t day,uint32_t pack_size,uint16_t id) { sendbigDataBufState = true;//分包同步数据不允许打断 char *buf=NULL; @@ -4443,7 +4430,7 @@ void Read_BIN_file_buf_send_bin_Data(uint32_t pack_size,uint16_t id) uint8_t dataBit = 1;//默认是1个字节的数据 uint32_t data_len = 0; - data=ble_sywee_history(0,&data_len,id); + data=ble_sywee_history(day,&data_len,id); if(data==NULL) { @@ -4522,14 +4509,14 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u { num=96; } - printf("同步心率数据,每包最多:%d 条数据 data:%d\r\n",num,data[0]); - Read_JSON_file_buf_send_bin_Data(num,0x40,"heart_data_list"); + printf("同步心率数据,每包最多:%d 条数据 data:%d %d\r\n",num,data[0],len); + Read_JSON_file_buf_send_bin_Data(data[0],num,0x40,"heart_data_list"); break; case 0x41://同步血氧历史数据 printf("同步血氧数据\r\n"); EACH_DATA_LEN = SPO2_DATA_LEN; num=(ble_nus_max_data_len-18)/EACH_DATA_LEN; - Read_JSON_file_buf_send_bin_Data(num,0x41,"spo2_data_list"); + Read_JSON_file_buf_send_bin_Data(data[0],num,0x41,"spo2_data_list"); break; case 0x43: //同步步数历史数据 @@ -4538,13 +4525,13 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u { num=482; } - Read_BIN_file_buf_send_bin_Data(num,0x43); + Read_BIN_file_buf_send_bin_Data(data[0],num,0x43); break; case 0x44://同步燃脂时间数据 EACH_DATA_LEN = FATTIME_DATA_LEN; num=(ble_nus_max_data_len-18)/EACH_DATA_LEN; - Read_JSON_file_buf_send_bin_Data(num,0x44,"heart_data_list"); + Read_JSON_file_buf_send_bin_Data(data[0],num,0x44,"heart_data_list"); break; case 0x45://同步站立历史数据 @@ -4553,7 +4540,7 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u { num=482; } - Read_BIN_file_buf_send_bin_Data(num,0x45); + Read_BIN_file_buf_send_bin_Data(data[0],num,0x45); break; case 0x46://同步卡路里历史数据 @@ -4562,7 +4549,7 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u { num=482; } - Read_BIN_file_buf_send_bin_Data(num,0x46); + Read_BIN_file_buf_send_bin_Data(data[0],num,0x46); break; case 0x47://同步距离历史数据 num=(ble_nus_max_data_len-18); @@ -4570,7 +4557,7 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u { num=482; } - Read_BIN_file_buf_send_bin_Data(num,0x47); + Read_BIN_file_buf_send_bin_Data(data[0],num,0x47); break; case 0x49://同步基础训练历史数据 EACH_DATA_LEN = DIS_DATA_LEN; @@ -4579,7 +4566,7 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u { num=482; } - Send_json_Data_Cmd(num,0x49); + Send_json_Data_Cmd(data[0],num,0x49); break; case 0x01://同步闹钟 EACH_DATA_LEN = DIS_DATA_LEN; @@ -4588,12 +4575,12 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u { num=482; } - Send_json_Data_Cmd(num,0x01); + Send_json_Data_Cmd(data[0],num,0x01); break; case 0x4b://睡眠历史数据 EACH_DATA_LEN = DIS_DATA_LEN; num=(ble_nus_max_data_len-18)/EACH_DATA_LEN; - Read_JSON_file_buf_send_bin_Data(num,0x4b,"heart_data_list"); + Read_JSON_file_buf_send_bin_Data(data[0],num,0x4b,"heart_data_list"); break; default: diff --git a/code/sdk/drivers/peripheral/cywee/src/board_yh601s.c b/code/sdk/drivers/peripheral/cywee/src/board_yh601s.c index e57ec0c4b..76a6b50f8 100644 --- a/code/sdk/drivers/peripheral/cywee/src/board_yh601s.c +++ b/code/sdk/drivers/peripheral/cywee/src/board_yh601s.c @@ -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 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_); -- 2.17.1