#include "ConfigModel.h"
#include "cywee_hal.h"
#include "goal_notification.h"
+#include "custom_utils.h"
+#include "cywee_ble_Service.h"
namespace OHOS
{
stand=ConfigModel::GetInstance()->get_configData_int(ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES);
standdata_now=get_now_stand_count();
+
+ show_step=goal_parse_step_data();
+ show_calories=goal_parse_calories_data();
+ show_distance=goal_parse_distance_data();
+ show_fat=goal_parse_fat_data();
+
}
uint8_t GoalModel::getstepvalue()
{
int stepgoal = step;
- int stepdata = get_step_data();//OHOS::ActivityModel::GetInstance()->GetStepCounter();
+ int stepdata = show_data_step_refresh();//get_step_data();//OHOS::ActivityModel::GetInstance()->GetStepCounter();
// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d %d %f ",stepdata,stepgoal,((float)stepdata/(float)stepgoal) * 100);
uint8_t value = ((float)stepdata / (float)stepgoal) * 100;
char stepnewstr[20];
char *GoalModel::getstepnew()
{
- int stepdata = get_step_data();
+ int stepdata = show_data_step_refresh();
memset((void *)stepnewstr, 0, 20);
sprintf_s(stepnewstr, 20, "%d", stepdata);
return stepnewstr;
char caloriesnewstr[20];
char *GoalModel::getcaloriespnew()
{
- int caloriesdata = get_calories_data();
+ int caloriesdata = show_data_calories_refresh();
memset((void *)caloriesnewstr, 0, 20);
sprintf_s(caloriesnewstr, 20, "%d", caloriesdata);
char distancenewstr[20];
char *GoalModel::getdistancenew()
{
- float distancedata = (float)get_distance_data() / 1000.0;
+ float distancedata = show_data_distance_refresh();
memset((void *)distancenewstr, 0, 20);
sprintf_s(distancenewstr, 20, "%0.1f", distancedata);
bool GoalModel::is_goal_DISTANCE_done()
{
- float distancedata_now = (float)get_distance_data() / 1000.0;
+ float distancedata_now = show_data_distance_refresh();
int distancedata_goal = distance;
if(distancedata_now>=distancedata_goal)
bool GoalModel::is_goal_fatburning_done()
{
- int fatburningdata_now = get_fat_time_data()/60;
+ int fatburningdata_now =show_data_fat_refresh();
int fatburningdata_goal = fat;
bool GoalModel::is_goal_calories_done()
{
- int calories_now = get_calories_data();
+ int calories_now = show_data_calories_refresh();
int calories_goal = calories;
char *GoalModel::getfatburningnew()
{
- int fatburningdata = get_fat_time_data()/60;
+ int fatburningdata = show_data_fat_refresh();
memset((void *)fatburningnewstr, 0, 20);
sprintf_s(fatburningnewstr, 20, "%d", fatburningdata);
}
}
+ uint32_t GoalModel::goal_parse_step_data(void)
+ {
+ char path_[64]={0};
+ char timeday[12] = {0};
+ uapi_get_YYMMDD_Time_extend(timeday, '_',0);
+ sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_PATH,timeday);
+ FILE * fp = fopen(path_,"rb+");
+ uint32_t size=0;
+ uint32_t toal_data=0;
+
+ if (fp != NULL)
+ {
+ fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
+ size = ftell(fp); // 获取当前文件指针位置,即文件大小
+ fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
+ }
+ else
+ {
+ return 0;
+ }
+ uint8_t *date=(uint8_t *)malloc(size);
+ if(date==NULL) return 0;
+
+ fread(date,sizeof(uint8_t),size,fp);
+ fclose(fp);
+ int32_t sing_date=0;
+ int32_t timetemp=0;
+
+ for(int i=0;i<size/8;i++ )
+ {
+ // uint8_t
+ memcpy(&timetemp,date+i*8,4);
+ memcpy(&sing_date,date+i*8+4,4);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time: %d", timetemp);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "data: %d", sing_date);
+ if(sing_date>0)
+ toal_data+=sing_date;
+ }
+ return toal_data;
+ }
+
+ float GoalModel::goal_parse_calories_data(void)
+ {
+ char path_[64]={0};
+ char timeday[12] = {0};
+ uapi_get_YYMMDD_Time_extend(timeday, '_',0);
+ sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_CALORIES_PATH,timeday);
+ FILE * fp = fopen(path_,"rb+");
+ uint32_t size=0;
+ float toal_data=0;
+
+ if (fp != NULL)
+ {
+ fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
+ size = ftell(fp); // 获取当前文件指针位置,即文件大小
+ fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
+ }
+ else
+ {
+ return 0;
+ }
+ uint8_t *date=(uint8_t *)malloc(size);
+ if(date==NULL) return 0;
+
+ fread(date,sizeof(uint8_t),size,fp);
+ fclose(fp);
+ float sing_date=0;
+ int32_t timetemp=0;
+
+ for(int i=0;i<size/8;i++ )
+ {
+ // uint8_t
+ memcpy(&timetemp,date+i*8,4);
+ memcpy(&sing_date,date+i*8+4,4);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time: %d", timetemp);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "data: %d", sing_date);
+ if(sing_date>0)
+ toal_data+=sing_date;
+ }
+ return toal_data;
+ }
+
+ float GoalModel::goal_parse_distance_data(void)
+ {
+ char path_[64]={0};
+ char timeday[12] = {0};
+ uapi_get_YYMMDD_Time_extend(timeday, '_',0);
+ sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_DISTANCE_PATH,timeday);
+ FILE * fp = fopen(path_,"rb+");
+ uint32_t size=0;
+ float toal_data=0;
+
+ if (fp != NULL)
+ {
+ fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
+ size = ftell(fp); // 获取当前文件指针位置,即文件大小
+ fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
+ }
+ else
+ {
+ return 0;
+ }
+ uint8_t *date=(uint8_t *)malloc(size);
+ if(date==NULL) return 0;
+
+ fread(date,sizeof(uint8_t),size,fp);
+ fclose(fp);
+ float sing_date=0;
+ int32_t timetemp=0;
+
+ for(int i=0;i<size/8;i++ )
+ {
+ // uint8_t
+ memcpy(&timetemp,date+i*8,4);
+ memcpy(&sing_date,date+i*8+4,4);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time: %d", timetemp);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "data: %d", sing_date);
+
+ if(sing_date>0)
+ toal_data+=sing_date;
+ }
+ return toal_data;
+ }
+
+
+ uint32_t GoalModel::goal_parse_fat_data(void)
+ {
+ char path_[64]={0};
+ char timeday[12] = {0};
+ uapi_get_YYMMDD_Time_extend(timeday, '_',0);
+ sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_FAT_PATH,timeday);
+ FILE * fp = fopen(path_,"rb+");
+ uint32_t size=0;
+ float toal_data=0;
+
+ if (fp != NULL)
+ {
+ fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
+ size = ftell(fp); // 获取当前文件指针位置,即文件大小
+ fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
+ }
+ else
+ {
+ return 0;
+ }
+ uint8_t *date=(uint8_t *)malloc(size);
+ if(date==NULL) return 0;
+
+ fread(date,sizeof(uint8_t),size,fp);
+ fclose(fp);
+ uint16 sing_date=0;
+ int32_t timetemp=0;
+
+ for(int i=0;i<size/6;i++ )
+ {
+ // uint8_t
+ memcpy(&timetemp,date+i*6,4);
+ memcpy(&sing_date,date+i*6+4,2);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time: %d", timetemp);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "data: %d", sing_date);
+ if(sing_date>0)
+ toal_data+=sing_date;
+ }
+ return toal_data;
+ }
+
+
+
+
+ uint32_t GoalModel::show_data_step_refresh(void)
+ {
+ int32_t value=0;
+ uint32_t toal_date;
+
+ toal_date=show_step;
+ get_now_hour_data(&value,CYWEE_SAVE_DATA_STEP);
+ if(value>0)
+ toal_date+=value;
+ return toal_date;
+ }
+
+ float GoalModel::show_data_calories_refresh(void)
+ {
+
+ float _f_value=0;
+ float toal_date;
+ toal_date=show_calories;
+ get_now_hour_data(&_f_value,CYWEE_SAVE_DATA_CALORIES);
+ if(_f_value>0)
+ toal_date+=_f_value;
+
+ return toal_date;
+ }
+
+ float GoalModel::show_data_distance_refresh(void)
+ {
+
+ float _f_value=0;
+ float toal_date;
+ toal_date=show_distance;
+ get_now_hour_data(&_f_value,CYWEE_SAVE_DATA_DISTANCE);
+ if(_f_value>0)
+ toal_date+=_f_value;
+
+ return toal_date;
+ }
+
+ uint32_t GoalModel::show_data_fat_refresh(void)
+ {
+
+ uint16_t _16_value=0;
+ uint32_t toal_date;
+ toal_date=show_fat;
+ get_now_hour_data(&_16_value,CYWEE_SAVE_DATA_FAT);
+ if(_16_value>0)
+ toal_date+=_16_value;
+
+ return toal_date;
+ }
+
+
}
\ No newline at end of file
// The alarm notification is not displayed if the incoming call notification is already being processed
cywee_save_data();
-// do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SAVE_DATA,NULL);
-
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时步数");
step_history_save();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时站立数据");
if(get_stand_falg())
- {
- stand_history_save();
- SendMsgToUIService(UI_UPDATE_GOAL, 0, nullptr, 0);
- }
-
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时卡路里数据");
+ stand_history_save();
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时卡路里数据");
calories_history_save();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时距离数据");
distances_history_save();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存每小时燃脂数据");
fat_history_save();
+//保存完增加一次读取数据
+ SendMsgToUIService(UI_UPDATE_GOAL, 0, nullptr, 0);
}
0; // OHOS::ActivityModel::GetInstance()->GetStepCounter();
counter = *(uint32_t *)req->data;
set_step_data(counter);
- counter=get_step_data();
+ counter=OHOS::GoalModel::GetInstance().show_data_step_refresh();
+ uint32_t calories= OHOS::GoalModel::GetInstance().show_data_calories_refresh();
+ float distance= OHOS::GoalModel::GetInstance().show_data_distance_refresh();
OHOS::DialModelSteps::GetInstance() ->UpdateSteps(counter);//更新表盘步数
OHOS::DialModelStepgoal::GetInstance() ->UpdateStepgoal(counter);//更新表盘目标
- OHOS::DialModelDistance::GetInstance() ->UpdateDistance(get_distance_data());//更新表盘距离
- OHOS::DialModelCalorie::GetInstance() ->UpdateCalorie(get_calories_data());//更新表盘卡路里
+ OHOS::DialModelDistance::GetInstance() ->UpdateDistance(distance);//更新表盘距离
+ OHOS::DialModelCalorie::GetInstance() ->UpdateCalorie(calories);//更新表盘卡路里
if(OHOS::GoalView::GetInstance())
{
set_calories_data(c_activity_result_t->calories);
#if DIALDATASET
- DialModelCalorie::GetInstance()->UpdateCalorie(get_calories_data());
+ uint32_t calories= OHOS::GoalModel::GetInstance().show_data_calories_refresh();
+
+ DialModelCalorie::GetInstance()->UpdateCalorie(calories);
#endif
}
/*更新距离数据*/
{
set_distance_data(c_activity_result_t->distance);
#if DIALDATASET
- DialModelDistance::GetInstance()->UpdateDistance(get_distance_data());
+ float distance= OHOS::GoalModel::GetInstance().show_data_distance_refresh();
+ DialModelDistance::GetInstance()->UpdateDistance(distance);
#endif
}
}