#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};
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);
if ((dir = opendir(dir_path)) != NULL)
{
-
while ((ent = readdir(dir)) != NULL)
{
std::string fileName = ent->d_name;
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
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
\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
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
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)
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)
{
CYWEE_SAVE_DATA_STEP,
CYWEE_SAVE_DATA_DISTANCE,
CYWEE_SAVE_DATA_CALORIES,
+ CYWEE_SAVE_DATA_FAT,
} CYWEE_SAVE_DATA_TYPE;
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*************************/
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);
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_set_sedentary_interval(int time);
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);
}
+
+
#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>
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;
}
-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);
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};
void cywee_save_data(void)
{
- CWM_OS_saveData(&stepcount,sizeof(int));
+ 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_restoreData(void)
+{
+ 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)
int get_calories_data(void)
{
- return new_calories;
+ return new_calories+history_calories;
}
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;
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));
.free = CWM_OS_free,
.malloc = CWM_OS_malloc,
.i2cTransfer = custom_i2c_transfer,
- .restoreData = CWM_OS_restoreData,
- .saveData = CWM_OS_saveData,
+ .restoreData = NULL,
+ .saveData = NULL,
.spiRead = NULL,
.spiWrite = NULL,
.securityCodeWrite = NULL,
// 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;
+ cywee_restoreData();
+
+
cywee_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL);