#include <unistd.h>\r
\r
#include "battery_hal.h"\r
-#include "ui_service.h"\r
#include "languagecode/LanguageInit.h"\r
+#include "ui_service.h"\r
\r
#ifdef __cplusplus\r
extern "C" {\r
uapi_dev_runtime_set_hrs_passivity(1);\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,\r
"uapi_dev_runtime_set_hrs_passivity(1)");\r
- }\r
- else\r
- {\r
+ } else {\r
uapi_dev_runtime_set_hrs_passivity(0);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
"uapi_dev_runtime_set_hrs_passivity(0)");\r
if (checkstate == HeartCheck::CARDCHECK) {\r
//重置传感器状态\r
sensorstate = false;\r
+ uapi_dev_runtime_set_heartrate_detect_status(0);\r
}\r
// 复原检测状态\r
checkstate = HeartCheck::RESTSTSTE;\r
// 取消常亮屏\r
ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);\r
//设置runtime\r
- uapi_dev_runtime_set_heartrate_detect_status(0);\r
+\r
Heart_Result(); // 处理结果\r
\r
//为了防止主界面卡片一直重复开传感器\r
if (checkstate != HeartCheck::CARDCHECK) {\r
//重置传感器状态\r
sensorstate = false;\r
+ uapi_dev_runtime_set_heartrate_detect_status(0);\r
}\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "本次心率检测结束");\r
}\r
? "未佩戴状态"\r
: (result == HeartResult::TIMEOUT) ? "超时" : "无效数据";\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果:%s情况", resultMsg);\r
+ uapi_set_screen_on_api(); // 亮屏\r
NativeAbility::GetInstance().ChangeSlice(VIEW_CHECK_ABNORMAL);\r
}\r
// 处理低心率情况\r
void HeartModel::handleLowHeartRate() {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果:低结果情况");\r
- HealthState lowHealthState = {BLOOD_CHECK, LOW, thresholdValue};\r
+ HealthState lowHealthState = {HEART_CHECK, LOW, thresholdValue};\r
HealthService::GetInstance()->SetHealthCurrent(lowHealthState);\r
+ uapi_set_screen_on_api(); // 亮屏\r
NativeAbility::GetInstance().ChangeSlice(VIEW_CHECK_INVALID);\r
}\r
// 处理高心率情况\r
void HeartModel::handleHighHeartRate() {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果:高结果情况");\r
- HealthState highHealthState = {BLOOD_CHECK, HIGH, thresholdValue};\r
+ HealthState highHealthState = {HEART_CHECK, HIGH, thresholdValue};\r
HealthService::GetInstance()->SetHealthCurrent(highHealthState);\r
+ uapi_set_screen_on_api(); // 亮屏\r
NativeAbility::GetInstance().ChangeSlice(VIEW_CHECK_INVALID);\r
}\r
// 设置佩戴状态\r
// 获取检测字符串\r
// 获取检测字符串\r
// TODO: 适配多国语言\r
-std::string HeartModel::GetCheckString() { \r
- std::string check_string = "检测结果未知"; \r
-\r
- // 获取检测数据 \r
- if (currentheart == 0) { \r
- if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) { \r
- check_string = "暂无检测数据";\r
- } else { \r
- check_string = "No detection data is available"; \r
- } \r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "检测数据:%s", check_string.c_str());\r
- return check_string; \r
- } \r
-\r
- // 获取目前的时间戳 \r
- uint32_t currentTime; \r
- if (uapi_get_timestampe_ss(¤tTime) != ERRCODE_SUCC) { \r
- if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) { \r
- check_string = "获取当前时间失败"; \r
- } else { \r
- check_string = "Get time failed"; \r
- } \r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "获取当前时间失败"); \r
- return check_string; \r
- } \r
-\r
- // 检查时间戳是否有效 \r
- if (timestamp_ms == 0) { \r
- if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) { \r
- check_string = std::to_string(currentheart) + " " + "时间无效,无法检测";\r
- } else { \r
- check_string = std::to_string(currentheart) + " " + "Invalid time, cannot detect"; \r
- } \r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "时间戳无效,无法检测:%s", check_string.c_str()); \r
- return check_string; \r
- } \r
-\r
- // 进行时间戳相减计算 \r
- uint32_t diff = currentTime - timestamp_ms; \r
- uint32_t diff_min = diff / 60; \r
- uint32_t diff_hour = diff_min / 60; \r
-\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "当前时间:%d, 上次检测时间:%d", currentTime, timestamp_ms); \r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "时间差(秒):%d, 时间差(分钟):%d, 时间差(小时):%d", diff, diff_min, diff_hour); \r
-\r
- // 根据时间差生成检测字符串 \r
- if (diff_min < 1) { \r
- if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) { \r
- check_string = std::to_string(currentheart) + "次/分 " + "刚刚检测"; // \r
- } else { \r
- check_string = std::to_string(currentheart) + " bpm " + "Just detected"; \r
- } \r
- } else if (diff_hour < 1) { // Within one hour \r
- if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) { \r
- check_string = std::to_string(currentheart) + "次/分 " + std::to_string(diff_min) + "分钟前"; \r
- } else { \r
- check_string = std::to_string(currentheart) + " bpm " + std::to_string(diff_min) + " minutes ago"; \r
- } \r
- } else { \r
- if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) { \r
- check_string = std::to_string(currentheart) + "次/分 " + "超过一个小时前"; \r
- } else { \r
- check_string = std::to_string(currentheart) + " bpm " + "More than an hour ago"; \r
- } \r
- } \r
-\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "检测结果:%s", check_string.c_str()); \r
- return check_string; // Return the final string \r
+std::string HeartModel::GetCheckString() {\r
+ std::string check_string = "检测结果未知";\r
+\r
+ // 获取检测数据\r
+ if (currentheart == 0) {\r
+ if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) {\r
+ check_string = "暂无检测数据";\r
+ } else {\r
+ check_string = "No detection data is available";\r
+ }\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "检测数据:%s", check_string.c_str());\r
+ return check_string;\r
+ }\r
+\r
+ // 获取目前的时间戳\r
+ uint32_t currentTime;\r
+ if (uapi_get_timestampe_ss(¤tTime) != ERRCODE_SUCC) {\r
+ if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) {\r
+ check_string = "获取当前时间失败";\r
+ } else {\r
+ check_string = "Get time failed";\r
+ }\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "获取当前时间失败");\r
+ return check_string;\r
+ }\r
+\r
+ // 检查时间戳是否有效\r
+ if (timestamp_ms == 0) {\r
+ if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) {\r
+ check_string = std::to_string(currentheart) + " " + "时间无效,无法检测";\r
+ } else {\r
+ check_string =\r
+ std::to_string(currentheart) + " " + "Invalid time, cannot detect";\r
+ }\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "时间戳无效,无法检测:%s",\r
+ check_string.c_str());\r
+ return check_string;\r
+ }\r
+\r
+ // 进行时间戳相减计算\r
+ uint32_t diff = currentTime - timestamp_ms;\r
+ uint32_t diff_min = diff / 60;\r
+ uint32_t diff_hour = diff_min / 60;\r
+\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "当前时间:%d, 上次检测时间:%d",\r
+ currentTime, timestamp_ms);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,\r
+ "时间差(秒):%d, 时间差(分钟):%d, 时间差(小时):%d", diff,\r
+ diff_min, diff_hour);\r
+\r
+ // 根据时间差生成检测字符串\r
+ if (diff_min < 1) {\r
+ if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) {\r
+ check_string = std::to_string(currentheart) + "次/分 " + "刚刚检测"; //\r
+ } else {\r
+ check_string = std::to_string(currentheart) + " bpm " + "Just detected";\r
+ }\r
+ } else if (diff_hour < 1) { // Within one hour\r
+ if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) {\r
+ check_string = std::to_string(currentheart) + "次/分 " +\r
+ std::to_string(diff_min) + "分钟前";\r
+ } else {\r
+ check_string = std::to_string(currentheart) + " bpm " +\r
+ std::to_string(diff_min) + " minutes ago";\r
+ }\r
+ } else {\r
+ if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) {\r
+ check_string = std::to_string(currentheart) + "次/分 " + "超过一个小时前";\r
+ } else {\r
+ check_string =\r
+ std::to_string(currentheart) + " bpm " + "More than an hour ago";\r
+ }\r
+ }\r
+\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "检测结果:%s", check_string.c_str());\r
+ return check_string; // Return the final string\r
}\r
\r
// 声明定时器变量\r
// 退出进入普通模式\r
do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NORMAL_MODE, NULL);\r
opensensorstuats = false; // 恢复标志位\r
- StopAndResetTimer(); // 关闭计时器\r
+ StopAndResetTimer(); // 关闭计时器\r
break;\r
case ExerciseState::Pause:\r
do_cywee_service_check_msg(CYWEE_SERVICE_CMD_PAUSE, 0);\r
&TrainingDataView::UpdataTime, TrainingDataView::GetInstance()));\r
\r
TraingModel::GetInstance()->updata_goal();\r
- \r
+\r
// 刷新训练数据:心率、卡路里、距离、步数、训练强度、目标完成度\r
SportData *sportdata = TraingModel::GetInstance()->GetSportdata();\r
RefreshData(sportdata);\r
m_sportTag = cmd->sportTag / 1000;\r
} else {\r
m_sportTag = cmd->sportTag;\r
- }\r
+ }\r
TraingModel::GetInstance()->SetSportTag(\r
static_cast<ExerciseTag>(cmd->sportTagType), m_sportTag);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "目标设置成功!\r\n");\r
if (cmdstate == ExerciseState::Start) {\r
if ((currentState == ExerciseState::General)) {\r
if (TraingCardView::GetInstance() == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ble 开启运动");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble 开启运动");\r
uapi_set_screen_on_api(); // 亮屏\r
NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGCRAD);\r
// 设置目标类型和项目有且只有一次\r
handleStartState();\r
return true;\r
} else {\r
- \r
+\r
reply_APP_OpenSportModeCmd(false);\r
// return false;\r
}\r
if (cmdstate == ExerciseState::Pause) {\r
if (currentState == ExerciseState::Start ||\r
currentState == ExerciseState::Continue) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ble 暂停运动");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble 暂停运动");\r
reply_APP_SportPasueResetCmd(TraingModel::GetInstance()->GetSportTime());\r
handlePauseState();\r
return true;\r
// 仅在暂停状态下允许恢复运动\r
if (cmdstate == ExerciseState::Continue &&\r
currentState == ExerciseState::Pause) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ble 恢复运动");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble 恢复运动");\r
reply_APP_SportPasueResetCmd(TraingModel::GetInstance()->GetSportTime());\r
handleContinueState();\r
return true;\r
(currentState == ExerciseState::Start ||\r
currentState == ExerciseState::Continue ||\r
currentState == ExerciseState::Pause)) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ble 结束运动");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble 结束运动");\r
uint32_t sport_time = TraingModel::GetInstance()->GetSportTime();\r
reply_APP_SportStopModeCmd(sport_time);\r
handleEndState();\r
\r
/*训练暂停*/\r
void TraingCardPresenter::handlePauseState() {\r
+ uapi_set_screen_on_api(); // 亮屏\r
TrainingControlView::GetInstance()->GetLabel()->SetTextId(STR_RESUME);\r
TrainingControlView::GetInstance()->GetButton()->SetImageSrc(\r
SPORT_CONTINUE_IMAGE, SPORT_CONTINUE_IMAGE);\r
\r
/*训练继续*/\r
void TraingCardPresenter::handleContinueState() {\r
+ uapi_set_screen_on_api(); // 亮屏\r
TrainingControlView::GetInstance()->GetLabel()->SetTextId(STR_PAUSE);\r
TrainingControlView::GetInstance()->GetButton()->SetImageSrc(\r
SPORT_PAUSE_IMAGE, SPORT_PAUSE_IMAGE);\r