mcu_hi3321_watch/tjd/ui/app/daily_data/TjdUiAppDailyDataModel.cpp
2025-05-26 20:15:20 +08:00

110 lines
2.9 KiB
C++

#include "TjdUiAppDailyDataModel.h"
#include <cstring>
#include <iostream>
#include <stdio.h>
#include "rtc_api.h"
#include "cwm_data_deal.h"
namespace TJD {
TjdUiAppDailyDataModel &TjdUiAppDailyDataModel::GetInstance(void)
{
static TjdUiAppDailyDataModel instance;
return instance;
}
void TjdUiAppDailyDataModel::LoadChartData(void)
{
uint32_t *stepArray;
uint16_t *KCALArray, *timeArray, *distanceArray;
sql_fit_get_step_daydata(&stepArray);
sql_fit_get_calorie_daydata(&KCALArray);
sql_fit_get_exertime_daydata(&timeArray);
sql_fit_get_distance_daydata(&distanceArray);
struct rtc_time localTime;
tjd_driver_rtc_get_ops()->get_rtc_time(&localTime);
totalStepValue = sql_fit_get_day_step(localTime.tm_wday);
totalKCALValue = sql_fit_get_day_calorie(localTime.tm_wday);
totalTimeValue = sql_fit_get_day_exercise_time(localTime.tm_wday);
totalDistanceValue = sql_fit_get_day_distance(localTime.tm_wday);
for (int i=0; i<DAILYDATA_DAY_MAX_NUM; i++) {
// printf("%d %d %d %d \n",stepArray[i],KCALArray[i],timeArray[i],distanceArray[i]);
stepDayArray[i] = stepArray[i];
KCALDayArray[i] = KCALArray[i];
timeDayArray[i] = timeArray[i];
distanceDayArray[i] = distanceArray[i];
// printf("step %d |CAL %d |time %d |distance %d | \n",stepDayArray[i],KCALDayArray[i],timeDayArray[i],distanceDayArray[i]);
}
SetDefaultDailyData();
}
uint8_t TjdUiAppDailyDataModel::GetStepPersent(void)
{
uint32_t present;
if (defaultStepValue != 0) {
present = (totalStepValue/(float)defaultStepValue)*100;
if(present > 100)
return 100;
return present;
}
return 0;
}
uint8_t TjdUiAppDailyDataModel::GetKCALPersent(void)
{
uint32_t present;
if (defaultKCALValue != 0) {
present = (totalKCALValue/(float)defaultKCALValue)*100;
if(present > 100)
return 100;
return present;
}
return 0;
}
uint8_t TjdUiAppDailyDataModel::GetTimePersent(void)
{
uint32_t present;
if (defaultTimeValue != 0) {
present = (totalTimeValue/(float)defaultTimeValue)*100;
if(present > 100)
return 100;
return present;
}
return 0;
}
uint8_t TjdUiAppDailyDataModel::GetDistancePersent(void)
{
uint32_t present;
if (defaultDistanceValue != 0) {
present = (totalDistanceValue/defaultDistanceValue)*100;
if(present > 100)
return 100;
return present;
}
return 0;
}
void TjdUiAppDailyDataModel::SetDefaultDailyData(void)
{
defaultStepValue = 6000;
defaultKCALValue = 300;
defaultTimeValue = 30;
defaultDistanceValue = 3000;
}
uint8_t TjdUiAppDailyDataModel::RequestDaliyData(void)
{
queuset_cwm_curdata();
return 0;
}
} // namespace TJD