#define NUM_7 7\r
#define NUM_16 16\r
#define NUM_99 99\r
-\r
+ // 心率检测状态\r
+ enum class HeartState\r
+ {\r
+ End = 0,\r
+ Start,\r
+ };\r
typedef struct\r
{\r
uint32_t heartRatePerSec;\r
void SetCheckTime(uint64_t time); // 设置本次测试完的时间\r
uint16_t GetIndex(); // 测试点位\r
void SetIndex(uint16_t index);\r
+ void Heart_Control(HeartState state);\r
\r
private:\r
HealthAllDatas healthDatas;\r
uint64 TIME_; // 检测时间(存(时、分),大于24小时,改为1天前,小于1分钟为刚刚)\r
\r
bool initstatus = true;\r
+ bool heartstate = false;\r
uint8_t wear_;\r
uint8_t valid_counter_ = 0; // 有效数计数器\r
uint8_t disvalid_counter_ = 0; // 无效数计数器\r
#include "DialModelHeartRate.h"\r
#include "health_service.h"\r
#include "custom_utils.h"\r
+#include "ppg_service.h"\r
\r
#ifdef __cplusplus\r
extern "C"\r
ResultView = false;\r
CheckStatus = false;\r
wearStatus = true;\r
- // 初始化血氧值\r
+ // 初始化心率值\r
HeartRateData *data;\r
data = HealthService::GetInstance()->ReadHeartRateData();\r
Heart_ = data->Heart;\r
}\r
/* ---------------------------------- 状态检测 ---------------------------------- */\r
\r
+ // 控制心率检测\r
+ void HeartModel::Heart_Control(HeartState state)\r
+ {\r
+ if (state == HeartState::End && heartstate == true)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartState End");\r
+ uint8_t md = PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST;\r
+ send_ppg_cmd_msg(md);\r
+ heartstate = false;\r
+ }\r
+ else if (state == HeartState::Start && heartstate == false)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartState Start");\r
+ uint8_t md = PPG_SERVICE_CMD_TYPE_DO_PPG_TEST;\r
+ send_ppg_cmd_msg(md);\r
+ heartstate = true;\r
+ }\r
+ }\r
void HeartModel::Heart_Start()\r
{\r
// 进行初始化操作\r
{\r
return CheckStatus;\r
}\r
-\r
+ // 获取心率数据\r
uint16_t HeartModel::GetHeartdata()\r
{\r
return Heart_;\r
#include "PresenterTask.h"
#include "DialModelTime.h"
#include "DialModelPower.h"
+#include "heartrate/include/HeartModel.h"
#include "gfx_utils/mem_check.h"
#include "custom_utils.h"
#include "traing/training_card/include/Training_CardView.h"
namespace OHOS
{
- std:: map<std::string, AppViewId> g_jumpView = {
+ std::map<std::string, AppViewId> g_jumpView = {
{DROPDOWN_CLICK_SETTING, VIEW_SETTING}, // 设置
{DROPDOWN_CLICK_LIGHTING, VIEW_CLASSIC_BLUETOOTH}, // 蓝牙
{DROPDOWN_CLICK_DNOTDISTURB, VIEW_DNOTDISTURB}, // 勿扰
void MainPresenterSample::Notify(void)
{
CardId cardId = view_->GetHorCurrentCard();
+ // 指南针卡片
if (cardId == COMPASS)
{
SetCompassRotate();
}
+ // 音乐卡片
else if (cardId == MUSIC_PLAYER)
{
SetCircleProgress();
}
+ // 主界面
else if (cardId == WATCH_FACE)
{
DialSetting &setting = GetDialSetting();
dynamic_cast<MainClockView *>(view_->GetViewById(WATCH_FACE))->UpdateTime();
}
}
+ // 心率卡片
+ else if (cardId == HEART_RATE)
+ {
+ // 开启心率检测
+ HeartModel::GetInstance()->Heart_Control(HeartState::Start);
+ }
+ else if (cardId != HEART_RATE)
+ {
+ // 关闭心率检测
+ HeartModel::GetInstance()->Heart_Control(HeartState::End);
+ }
}
void MainPresenterSample::InitCardSettings(void)