// 设置佩戴状态\r
void HeartModel::SetWearStatus() {\r
\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "佩戴状态 %d %d",\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "佩戴状态 %d %d",\r
uapi_dev_runtime_get_heartrate_detect_status(),\r
unwear_counter_);\r
\r
g_pSleepView = nullptr;
}
-void SleepView::SleepDataRefresh() {
- // 获取睡眠数据内存
- SleepModel &sleepModel = SleepModel::GetInstance();
- sleepModel.ReInitData();
-
- int sleep_hour = sleepModel.get_sleep_hour();
- int sleep_min = sleepModel.get_sleep_min();
- int total_sleep = sleepModel.get_sleep_total();
- int sleep_goal = sleepModel.get_sleep_goal();
-
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
- "SleepDataRefresh %d %d sleep_goal:%d total_sleep:%d",
- sleep_hour, sleep_min, sleep_goal * 60, total_sleep);
-
- // 补零操作
- std::string hour_str = (sleep_hour < 10) ? "0" + std::to_string(sleep_hour)
- : std::to_string(sleep_hour);
- std::string min_str = (sleep_min < 10) ? "0" + std::to_string(sleep_min)
- : std::to_string(sleep_min);
-
- // 有数据才刷新
- if (sleep_hour != 0 || sleep_min != 0) {
- // 更新时间显示
- if (time_hour != nullptr) {
- time_hour->SetText(hour_str.c_str());
- }
- if (time_minute != nullptr) {
- time_minute->SetText(min_str.c_str());
- }
-
- // 计算进度百分比,确保目标睡眠时间不为零
- float progress_value = 0.0f;
- if (sleep_goal > 0) {
- progress_value =
- static_cast<float>(total_sleep) / (sleep_goal * 60); // 计算进度
- }
-
- // 日志输出进度百分比
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Progress value: %.2f%%",
- progress_value * 100); // 显示为百分比
-
- // 更新进度条
- circleProgress_->SetValue(progress_value *
- 100); // 更新进度条值,范围为 0 到 100
- circleProgress_->SetCapType(CAP_ROUND);
- }
- // 更新时间
- if (sleep_update_time != nullptr) {
- std::string update_time = sleepModel.GetUpdateSleepTime();
- if (!update_time.empty()) // 检查返回值是否有效
- {
- std::string update_time_str;
- // TODO:多国语言
- if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) {
- update_time_str = update_time + " 更新";
- }
- else {
- update_time_str = update_time + " update";
- }
- sleep_update_time->SetText(update_time_str.c_str());
- // UpdateLabel(sleep_update_time, sleep_goal, STR_SLEEPMGOAL); // TODO:
- // 多国语言支持
- }
- }
- // 刷新视图
- RootView::GetInstance()->Invalidate();
+void SleepView::SleepDataRefresh() {
+ // 获取睡眠数据内存
+ SleepModel &sleepModel = SleepModel::GetInstance();
+ sleepModel.ReInitData();
+
+ int sleep_hour = sleepModel.get_sleep_hour();
+ int sleep_min = sleepModel.get_sleep_min();
+ int total_sleep = sleepModel.get_sleep_total();
+ int sleep_goal = sleepModel.get_sleep_goal();
+
+ // 检查是否超过24小时
+ if (sleep_hour >= 24) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "异常:睡眠时长超过24小时");
+ return;
+ }
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "SleepDataRefresh %d %d sleep_goal:%d total_sleep:%d",
+ sleep_hour, sleep_min, sleep_goal * 60, total_sleep);
+
+ // 补零操作
+ std::string hour_str = (sleep_hour < 10) ? "0" + std::to_string(sleep_hour)
+ : std::to_string(sleep_hour);
+ std::string min_str = (sleep_min < 10) ? "0" + std::to_string(sleep_min)
+ : std::to_string(sleep_min);
+
+ // 有数据才刷新
+ if (sleep_hour != 0 || sleep_min != 0) {
+ // 更新时间显示
+ if (time_hour != nullptr) {
+ time_hour->SetText(hour_str.c_str());
+ }
+ if (time_minute != nullptr) {
+ time_minute->SetText(min_str.c_str());
+ }
+
+ // 计算进度百分比,确保目标睡眠时间不为零
+ float progress_value = 0.0f;
+ if (sleep_goal > 0) {
+ progress_value =
+ static_cast<float>(total_sleep) / (sleep_goal * 60); // 计算进度
+ }
+
+ // 日志输出进度百分比
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Progress value: %.2f%%",
+ progress_value * 100); // 显示为百分比
+
+ // 更新进度条
+ circleProgress_->SetValue(progress_value *
+ 100); // 更新进度条值,范围为 0 到 100
+ circleProgress_->SetCapType(CAP_ROUND);
+ }
+
+ // 更新时间
+ if (sleep_update_time != nullptr) {
+ std::string update_time = sleepModel.GetUpdateSleepTime();
+ if (!update_time.empty()) // 检查返回值是否有效
+ {
+ std::string update_time_str;
+ // TODO:多国语言
+ if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) {
+ update_time_str = update_time + " 更新";
+ }
+ else {
+ update_time_str = update_time + " update";
+ }
+ sleep_update_time->SetText(update_time_str.c_str());
+ // UpdateLabel(sleep_update_time, sleep_goal, STR_SLEEPMGOAL); // TODO:
+ // 多国语言支持
+ }
+ }
+
+ // 刷新视图
+ RootView::GetInstance()->Invalidate();
}
void SleepView::ClearAll() {
"memcpy_s cywee_activity_result_t fail ret = %d", rets);
return;
}
+ // GraphicService::GetInstance()->PostGraphicEvent(
+ // std::bind(&TraingCardPresenter::send_sport_cmd,
+ // TraingCardPresenter::GetInstance(), traingbleInfo));
TraingCardPresenter::GetInstance()->send_sport_cmd(traingbleInfo);
delete traingbleInfo;
}
// 设置训练 runtime 为 1 训练中
uapi_dev_runtime_set_train_status(1);
if (Openingway) {
- uapi_ble_connect_param_update(10);
+ // uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_HIGH);
}
// 更新用户数据
// 设置训练 runtime 为 0 训练结束
uapi_dev_runtime_set_train_status(0);
if (Openingway) {
- uapi_ble_connect_param_update(50);
+ // uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_SLOW);
}
sportdata->endtime = time;
if (cmdstate == ExerciseState::Start) {\r
if ((currentState == ExerciseState::General)) {\r
if (TraingCardView::GetInstance() == nullptr) {\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
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
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
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
uint32_t sport_time = TraingModel::GetInstance()->GetSportTime();\r
reply_APP_SportStopModeCmd(sport_time);\r
handleEndState();\r
buf = ym_malloc(17 + datalen + 1); \r
memset_s(buf,ble_nus_max_data_len,0,17 + datalen + 1);\r
if (buf == NULL && datalen!=0) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"内存分配失败\n");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"内存分配失败\n");\r
return;\r
}\r
if(type.Packet_id>=2)\r
uint32_t data_len=3;\r
data[0]=state;\r
memcpy(&data[1],&time,2);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"发送训练状态数据%d %d\r\n",data[0],time);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"发送训练状态数据%d %d\r\n",data[0],time);\r
ble_data_type type={0x05,0x50,data_len,1,1};\r
send_big_data(type,data,data_len);\r
\r
char data[1]={0};\r
uint32_t data_len=1;\r
data[0]=0; //[0 结束]\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"发送训练状态结束%d\r\n",data[0]);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"发送训练状态结束%d\r\n",data[0]);\r
\r
ble_data_type type={0x05,0x51,data_len,1,1};\r
send_big_data(type,data,data_len);\r
{\r
training_ble_data.sportType= data[0];//运动类型 0 健走 1跑步 2骑行 3\r
training_ble_data.controlmd= START;\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开启指定运动%d\r\n",data[0]);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"开启指定运动%d\r\n",data[0]);\r
CustomEventPublish(TOPIC_EVENT_BLE_TRAINING,(uint8_t*)&training_ble_data,sizeof(training_ble));\r
\r
// value[17] = 1; //1 操作成功 2 操作失败\r
uint32_t data_len=3;\r
data[0]=1;\r
memcpy(&data[1],&time,2);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"发送训练状态数据%d %d\r\n",data[0],time);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"发送训练状态数据%d %d\r\n",data[0],time);\r
ble_data_type type={0x01,0x0B,data_len,1,1};\r
send_big_data(type,data,data_len);\r
}\r
\r
training_ble_data.sportType= 4;//运动类型 0 健走 1跑步 2骑行 3\r
training_ble_data.controlmd= END;\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束运动\r\n");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"结束运动\r\n");\r
\r
CustomEventPublish(TOPIC_EVENT_BLE_TRAINING,(uint8_t*)&training_ble_data,sizeof(training_ble));\r
// value[17] = 1; //1 操作成功 2 操作失败\r