#include "TjdUiAppHrModel.h" #include "TjdUiAppHrView.h" #include "graphic_types.h" #include "power_display_service.h" #include "service_hrsensor.h" #include "sql_fit.h" #include "sql_setting.h" #include using namespace OHOS; namespace TJD { TjdUiAppHrModel &TJD::TjdUiAppHrModel::GetInstance(void) { static TjdUiAppHrModel instance; return instance; } //心率值转换为坐标值,HrValue 心率值;return 屏幕坐标y值 uint8_t HrValue2RodValue(uint8_t HrValue) { if (HrValue == 0 || HrValue == 255) { return 0; } return 145 + 0.8 * (200 - HrValue); } void TjdUiAppHrModel::HrPointArrayInit(void) { uint8_t *storeArray; int32_t num = sql_fit_get_hr_daydata(&storeArray); for (int i = 0; i < 288; ++i) { array[i].x = i; array[i].y = storeArray[i]; } } void TjdUiAppHrModel::InitWeekHrViewInfo(void) { uint8_t HrMaxArray[7] = {0}; uint8_t HrMinArray[7] = {0}; for (int i = 0; i < 7; i++) { HrMaxArray[i] = sql_fit_get_hr_max(i); HrMinArray[i] = sql_fit_get_hr_min(i); }; for (int i = 0; i < 7; i++) { WeekHrViewHigh[i] = HrValue2RodValue(HrMaxArray[i]); WeekHrViewLow[i] = HrValue2RodValue(HrMinArray[i]) - WeekHrViewHigh[i]; } } void TjdUiAppHrModel::UpdateWearStatus(void) { wearStatus = tjd_service_hrs_get_ops()->hrs_wear_status(); } void TjdUiAppHrModel::UpdateHrCurValue(void) { hrCurValue = tjd_service_hrsensor_get_cur_hrvalue(); } uint8_t TjdUiAppHrModel::HeartRateControlHandler(HeartRateAction action, void *param) { uint8_t ret = 0; hr_api_info_t hr_api_info = {HR_SERVICE_UI_HR, 0xffffffff}; service_hrs_api *hrsensorInfo = tjd_service_hrs_get_ops(); switch (action) { case HeartRateAction::Start: hrsensorInfo->open(hr_api_info); break; case HeartRateAction::Stop: hrsensorInfo->close(); break; case HeartRateAction::GetStatus: ret = TjdUiAppHrPresenter::GetInstance()->HeartRateGetWearStatus(); break; default: break; } return ret; } } // namespace TJD