extern void* CWM_OS_malloc(int size);
extern void CWM_OS_free(void *ptr);
extern void CWM_OS_saveData(int* data, uint32_t len,uint8_t type);
+extern void CWM_OS_OneHourAgo_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,uint8_t type);
+extern void CWM_OS_OneHourAgo_restoreData(int* data, uint32_t len,uint8_t type);
/********************CYWEE LIB*************************/
#define CWM_DISTANCE_DATA_PATH "/user/userdata/sport/distancecount.bin"
#define CWM_FAT_DATA_PATH "/user/userdata/sport/fatcount.bin"
+#define CWM_STEP_DATA_PATH_AGO "/user/userdata/sport/stepcount_ago.bin"
+#define CWM_CALORIES_DATA_PATH_AGO "/user/userdata/sport/caloriescount_ago.bin"
+#define CWM_DISTANCE_DATA_PATH_AGO "/user/userdata/sport/distancecount_ago.bin"
+#define CWM_FAT_DATA_PATH_AGO "/user/userdata/sport/fatcount_ago.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){
}
+void CWM_OS_OneHourAgo_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)
+ {
+ case CYWEE_DATA_CALORIES:
+ fp = fopen(CWM_CALORIES_DATA_PATH_AGO ,"wb");
+ break;
+ case CYWEE_DATA_STEP:
+ fp = fopen(CWM_STEP_DATA_PATH_AGO ,"wb");
+ break;
+ case CYWEE_DATA_DISTANCE:
+ fp = fopen(CWM_DISTANCE_DATA_PATH_AGO ,"wb");
+ break;
+ case CYWEE_DATA_FAT:
+ fp = fopen(CWM_FAT_DATA_PATH_AGO ,"wb");
+ break;
+
+ default:
+ break;
+ }
+
+ if(fp==NULL)
+ {
+ CWM_OS_dbgPrintf("%s open fail\n",CWM_STEP_DATA_PATH_AGO );
+ return;
+ }
+ int ret =fwrite(data,1,len,fp);
+
+ CWM_OS_dbgPrintf("CWM_OS_saveData fwrite failed %d %d\n",ret,*data);
+
+ fclose(fp);
+}
+
+
#define CWM_HISTORY_DATA_PATH "/user/userdata/goal/step_"
{
data=0;
*history=0;
- //CWM_OS_dbgPrintf("异常 清除步数数据\n");
- //return;
-
}
FILE * fp = fopen(path_,"ab+");
CWM_OS_dbgPrintf("uapi_get_timestampe_ss %d %d\n",ret,creationTime);
+ creationTime=creationTime-60*60;//当前值计入上小时
ret =fwrite(&creationTime,1,4,fp);
if(ret==0)
uint32_t creationTime;
int ret =uapi_get_timestampe_ss(&creationTime);
- creationTime=creationTime-60*60;
+ creationTime=creationTime-60*60;//当前值计入上小时
CWM_OS_dbgPrintf("uapi_get_timestampe_ss %d\n",ret);
ret =fwrite(&creationTime,1,len,fp);
}
+ if(fp==NULL)
+ {
+ CWM_OS_dbgPrintf("%s open fail\n",CWM_HISTORY_DATA_PATH);;
+ return;
+ }
+ int ret =fread(data,1,len,fp);
+
+ CWM_OS_dbgPrintf("CWM_OS_restoreData fread failed %d %d\n",ret,*data);
+
+ fclose(fp);
+}
+
+void CWM_OS_OneHourAgo_restoreData(int* data, uint32_t len,uint8_t type){
+
+
+ FILE * fp=NULL;
+ switch (type)
+ {
+ case CYWEE_DATA_CALORIES:
+ fp = fopen(CWM_CALORIES_DATA_PATH_AGO,"rb");
+ break;
+ case CYWEE_DATA_STEP:
+ fp = fopen(CWM_STEP_DATA_PATH_AGO,"rb");
+ break;
+ case CYWEE_DATA_DISTANCE:
+ fp = fopen(CWM_DISTANCE_DATA_PATH_AGO,"rb");
+ break;
+ case CYWEE_DATA_FAT:
+ fp = fopen(CWM_FAT_DATA_PATH_AGO,"rb");
+ break;
+ default:
+ break;
+ }
+
+
if(fp==NULL)
{
CWM_OS_dbgPrintf("%s open fail\n",CWM_HISTORY_DATA_PATH);;
stepcount+=history_step;
CWM_OS_saveData(&stepcount,sizeof(int),CYWEE_SAVE_DATA_STEP);
+ CWM_OS_OneHourAgo_saveData(&history_step_,sizeof(int),CYWEE_SAVE_DATA_STEP);
+
+
new_calories+=history_calories;
CWM_OS_saveData(&(new_calories),sizeof(int),CYWEE_SAVE_DATA_CALORIES);
+ CWM_OS_OneHourAgo_saveData(&history_calories_,sizeof(int),CYWEE_SAVE_DATA_CALORIES);
+
new_distance+=history_distances;
CWM_OS_saveData(&(new_distance),sizeof(int),CYWEE_SAVE_DATA_DISTANCE);
+ CWM_OS_OneHourAgo_saveData(&history_distances_,sizeof(int),CYWEE_SAVE_DATA_DISTANCE);
new_fat+=history_fat;
CWM_OS_saveData(&new_fat,sizeof(int),CYWEE_SAVE_DATA_FAT);
+ CWM_OS_OneHourAgo_saveData(&history_fat_,sizeof(int),CYWEE_SAVE_DATA_FAT);
}
void cywee_restoreData(void)
{
CWM_OS_restoreData(&history_step,sizeof(int),CYWEE_SAVE_DATA_STEP);
- history_step_=history_step;
+ CWM_OS_OneHourAgo_restoreData(&history_step_,sizeof(int),CYWEE_SAVE_DATA_STEP);
CWM_OS_restoreData(&history_calories,sizeof(int),CYWEE_SAVE_DATA_CALORIES);
- history_calories_=history_calories;
+ CWM_OS_OneHourAgo_restoreData(&history_calories_,sizeof(int),CYWEE_SAVE_DATA_CALORIES);
CWM_OS_restoreData(&history_distances,sizeof(int),CYWEE_SAVE_DATA_DISTANCE);
- history_distances_=history_distances;
+ CWM_OS_OneHourAgo_restoreData(&history_distances_,sizeof(int),CYWEE_SAVE_DATA_DISTANCE);
+
CWM_OS_restoreData(&history_fat,sizeof(int),CYWEE_SAVE_DATA_FAT);
- history_fat_=history_fat;
+ CWM_OS_OneHourAgo_restoreData(&history_fat_,sizeof(int),CYWEE_SAVE_DATA_FAT);
+
//WM_OS_restoreData(int* data, uint32_t len,uint8_t type)(int* data, uint32_t len,uint8_t type);
}
uint32_t get_step_data(void)
{
+
return stepcount+history_step;
}