#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
// 获取检测字符串\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